function test(cal) { // Pilnuje, zeby data koncowa nie byla mniejsza od poczatkowej
       var date = cal.date;
       var from = document.getElementById("ankunft");
       var to = document.getElementById("abreise");
       var nights = document.getElementById("naechte");
       // Because it take wrong format
       var first = to.value.split("/");
       var second = from.value.split("/");
       var field = new Date(first[2], first[1]-1, first[0]);
       var field2 = new Date(second[2], second[1]-1, second[0]);
       if (field.getTime() <= field2.getTime() || (from.value == "" || to.value =="")) {
       		var time = date.getTime();
		var date2 = new Date(time);
		if (from.value == "") {
                    var date3 = new Date(time - Date.DAY);
                    from.value = date3.print("%d/%m/%Y");
                    to.value = date2.print("%d/%m/%Y");
                    if (nights != null) nights.value = '1';
		} else {
			var date3 = new Date(time + Date.DAY);
			to.value = date3.print("%d/%m/%Y");
			from.value = date2.print("%d/%m/%Y");
                        if (nights != null) nights.value = '1';
		}
	} else {
            if (nights != null) nights.value = Math.round((Math.abs(field2.getTime() - field.getTime()))/(1000 * 60 * 60 * 24));
        }

}

function dateStatus(date) {
	var min = new Date();
	if (date.getTime() < min.getTime() - 1*24*60*60*1000)
		return true; // true says "disable"
	else
		return false; // leave other dates enabled
}

function winterStatus(date) {
	var min = new Date(2009, 10, 1);
        var max = new Date(2009, 1, 28);
	if ((date.getTime() < min.getTime() - 1*24*60*60*1000) || (date.getTime() > max.getTime() - 1*24*60*60*1000))
		return true; // true says "disable"
	else
		return false; // leave other dates enabled
}

function nightsChange() {
    var nights = document.getElementById("naechte").value;
    if (nights != '') {
    var from = document.getElementById("ankunft");
    var to = document.getElementById("abreise");
    var splitted = from.value.split("/");
    var datum= new Date(splitted[2], splitted[1]-1, splitted[0]);
    datum.setDate(datum.getDate()+ parseInt(nights));
    to.value = datum.print("%d/%m/%Y");
    }
}

function checkNrPeople(lang, domain) {
    if (validateBuchung1()) {
    var mann = document.getElementById('mann').value;
    var frau = document.getElementById('frau').value;
    var kind = document.getElementById('kind1').value;
    var kind2 = document.getElementById('kind2').value;
    
    var people = parseIntOwn(mann) + parseIntOwn(frau) + parseIntOwn(kind) + parseIntOwn(kind2);
       if (document.getElementById('city').options[document.getElementById('city').selectedIndex].value == 'down' || document.getElementById('city').options[document.getElementById('city').selectedIndex].value == 'salz') {
          document.buchungsformular.action = 'index.php?id=134' + lang + '&city=' + document.getElementById('city').options[document.getElementById('city').selectedIndex].value;
          return true;
       } else {
              if (people > 11) {
                  document.buchungsformular.action = 'index.php?id=118' + lang;
              } else {
                  document.buchungsformular.action = 'https://' + domain + '/index.php?id=119' + lang;
              }
              return true;
       }
    } else {
        return false;
    }
}

function parseIntOwn(string) {
    if (string == null || string == '') {
        return 0;
    } else {
        return parseInt(string);
    }
}


function validateEmpfehlung() {
    var storno = new Array('name', 'email', 'name2');
    var el;
    var noerror = true;
    for ( var i=storno.length-1; i>=0; --i ){
        el = document.getElementById(storno[i]);
        if(el.value == '') {
            el.style.backgroundColor = 'red';
            noerror = false;
        } else {
            el.style.backgroundColor = '';
        }
    }
    if (noerror == true) {
        return noerror;
    } else {
        alerter('Bitte alle Pflichtfelder (*) ausfüllen. / Please fill in all obligatory fields.');
        return noerror;
    }
}

function validateStorno() {
    var storno = new Array('nr', 'type', 'city', 'ankunft', 'abreise', 'kommentar', 'anrede', 'surname', 'name', 'email', 'tel');
    var el;
    var noerror = true;
    for ( var i=storno.length-1; i>=0; --i ){
        el = document.getElementById(storno[i]);
        if(el.value == '') {
            el.style.backgroundColor = 'red';
            noerror = false;
        } else {
            el.style.backgroundColor = '';
        }
    }
    if (noerror == true) {
        noerror = validateEmail(document.getElementById('email').value);
        if (noerror == true) {
            noerror = isDate(document.getElementById('ankunft').value) && isDate(document.getElementById('abreise').value);
            if (noerror == true) {
                return noerror;
            } else {
                alerter('Datum bitte im Format TT/MM/JJJJ eingeben. / Please fill in the dates in the DD/MM/YYYY format.');
                document.getElementById('ankunft').style.backgroundColor = 'red';
                document.getElementById('abreise').style.backgroundColor = 'red';
                return noerror;
            }
        } else {
            document.getElementById('email').style.backgroundColor = 'red';
            alerter('Bitte die E-mail Adresse überprüfen. / Please check the e-mail address.');
            return noerror;
        }
    } else {
        alerter('Bitte alle Pflichtfelder (*) ausfüllen. / Please fill in all obligatory fields.');
        return noerror;
    }
}

function validateBuchung1() {
    var storno = new Array('city', 'naechte', 'ankunft', 'abreise');
    var el;
    var noerror = true;
    for ( var i=storno.length-1; i>=0; --i ){
        el = document.getElementById(storno[i]);
        if(el.value == '') {
            el.style.backgroundColor = 'red';
            noerror = false;
        } else {
            el.style.backgroundColor = '';
        }
    }
    if (noerror == true) {
        var mann = document.getElementById('mann').value;
        var frau = document.getElementById('frau').value;
        var kind = document.getElementById('kind1').value;
        var kind2 = document.getElementById('kind2').value;
    
        var people = parseIntOwn(mann) + parseIntOwn(frau) + parseIntOwn(kind) + parseIntOwn(kind2);
        if (people > 0) {
            if (document.getElementById('naechte').value >0) {
                if (isDate(document.getElementById('ankunft').value) && isDate(document.getElementById('abreise').value)) {
                    if (isDateInPast()) {
                            alert('Datum kann nicht in der Vergangenheit liegen. / Dates cannot be in the past.');
                            document.getElementById('ankunft').style.backgroundColor = 'red';
                            document.getElementById('abreise').style.backgroundColor = 'red';
                            return false;
                     } else {
                            return true;
                     }
                } else {
                     alert('Datum bitte im Format TT/MM/JJJJ eingeben. / Please fill in the dates in the DD/MM/YYYY format.');
                     document.getElementById('ankunft').style.backgroundColor = 'red';
                     document.getElementById('abreise').style.backgroundColor = 'red';
                     return false;
                }
            } else {
                alert('Anzahl der Nächte kann nicht Null sein. / Number of nights can\'t be zero.');
                document.getElementById('naechte').style.backgroundColor = 'red';
                return false;
            }
        } else {
            alert('Anzahl der Personen kann nicht Null sein. / Number of people can\'t be zero.');
            return false;
        }
    } else {
        alert('Bitte alle Felder ausfüllen. / Please fill in all obligatory fields.');
        return noerror;
    }
}

function validateBuchungX() {
    var storno = new Array('city', 'naechte', 'ankunft', 'abreise');
    var el;
    var noerror = 1;
    for ( var i=storno.length-1; i>=0; --i ){
        el = document.getElementById(storno[i]);
        if(el.value == '') {
            el.style.backgroundColor = 'red';
            noerror = 0;
        } else {
            el.style.backgroundColor = '';
        }
    }
    if (noerror == 1) {
        var mann = document.getElementById('mann').value;
        var frau = document.getElementById('frau').value;
        var kind = document.getElementById('kind1').value;
        var kind2 = document.getElementById('kind2').value;
    
        var people = parseIntOwn(mann) + parseIntOwn(frau) + parseIntOwn(kind) + parseIntOwn(kind2);
        if (people > 0) {
            if (document.getElementById('naechte').value >0) {
                if (isDate(document.getElementById('ankunft').value) && isDate(document.getElementById('abreise').value)) {
                    if (isDateInPast()) {
                            document.getElementById('ankunft').style.backgroundColor = 'red';
                            document.getElementById('abreise').style.backgroundColor = 'red';
                            return 0;
                     } else {
                            return 1;
                     }
                } else {
                     document.getElementById('ankunft').style.backgroundColor = 'red';
                     document.getElementById('abreise').style.backgroundColor = 'red';
                     return 0;
                }
            } else {
                document.getElementById('naechte').style.backgroundColor = 'red';
                return 0;
            }
        } else {
            return 0;
        }
    } else {
        return noerror;
    }
}

function validateBuchung2() {
    var storno = new Array('city', 'naechte', 'ankunft', 'abreise', 'personen');
    var el;
    var noerror = true;
    for ( var i=storno.length-1; i>=0; --i ){
        el = document.getElementById(storno[i]);
        if(el.value == '') {
            el.style.backgroundColor = 'red';
            noerror = false;
        } else {
            el.style.backgroundColor = '';
        }
    }
    if (noerror == true) {
        var mann = document.getElementById('mehrbett').value;
        var frau = document.getElementById('zweibett').value;
        var kind = document.getElementById('einzelbett').value;
    
        var people = parseIntOwn(mann) + parseIntOwn(frau) + parseIntOwn(kind);
        if (people > 0 && people == parseIntOwn(document.getElementById('personen').value)) {
            if (document.getElementById('naechte').value >0) {
                if (isDate(document.getElementById('ankunft').value) && isDate(document.getElementById('abreise').value)) {
                    if (parseIntOwn(document.getElementById('personen').value) > 0) {
                            if (isDateInPast()) {
                                alerter('Datum kann nicht in der Vergangenheit liegen. / Dates cannot be in the past.');
                                document.getElementById('ankunft').style.backgroundColor = 'red';
                                document.getElementById('abreise').style.backgroundColor = 'red';
                                return false;
                            } else {
                                   return true;
                            }
                    } else {
                        alerter('Anzahl der Personen kann nicht Null sein. / Number of people can\'t be zero.');
                        return false;
                    }
                } else {
                    alerter('Datum bitte im Format TT/MM/JJJJ eingeben. / Please fill in the dates in the DD/MM/YYYY format.');
                    document.getElementById('ankunft').style.backgroundColor = 'red';
                    document.getElementById('abreise').style.backgroundColor = 'red';
                    return false;
                }
            } else {
                alerter('Anzahl der Nächte kann nicht Null sein. / Number of nights can\'t be zero.');
                document.getElementById('naechte').style.backgroundColor = 'red';
                return false;
            }
        } else {
            alerter('Bitte Zimmerkategorien für alle Teilnehmer wählen. / Please specify room types for all participants.');
            document.getElementById('mehrbett').style.backgroundColor = 'red';
            return false;
        }
    } else {
        alerter('Bitte alle Pflichtfelder (*) ausfüllen. / Please fill in all obligatory fields.');
        return noerror;
    }
}

function validateAnfrage() {
    var storno = new Array('city', 'ankunft', 'abreise', 'personen', 'name', 'surname', 'email');
    var el;
    var noerror = true;
    for ( var i=storno.length-1; i>=0; --i ){
        el = document.getElementById(storno[i]);
        if(el.value == '') {
            el.style.backgroundColor = 'red';
            noerror = false;
        } else {
            el.style.backgroundColor = '';
        }
    }
    if (noerror == true) {
        if (document.getElementById('personen').value) {
                if (isDate(document.getElementById('ankunft').value) && isDate(document.getElementById('abreise').value)) {
                    if (parseIntOwn(document.getElementById('personen').value) > 0) {
                        noerror = validateEmail(document.getElementById('email').value);
                        if (noerror == false) {
                            document.getElementById('email').style.backgroundColor = 'red';
                            alerter('Bitte die E-mail Adresse überprüfen. / Please check the e-mail address.');
                        } else {
                            if (isDateInPast()) {
                                   alerter('Datum kann nicht in der Vergangenheit liegen. / Dates cannot be in the past.');
                                   document.getElementById('ankunft').style.backgroundColor = 'red';
                                   document.getElementById('abreise').style.backgroundColor = 'red';
                                   return false;
                            } else {
                                   return noerror;
                            }
                        }
                        return noerror;
                    } else {
                        alerter('Anzahl der Personen kann nicht Null sein. / Number of people can\'t be zero.');
                        return false;
                    }
                } else {
                    alerter('Datum bitte im Format TT/MM/JJJJ eingeben. / Please fill in the dates in the DD/MM/YYYY format.');
                    document.getElementById('ankunft').style.backgroundColor = 'red';
                    document.getElementById('abreise').style.backgroundColor = 'red';
                    return false;
                }
        } else {
            alerter('Bitte Zimmerkategorien für alle Teilnehmer wählen. / Please specify room types for all participants.');
            return false;
        }
    } else {
        alerter('Bitte alle Pflichtfelder (*) ausfüllen. / Please fill in all obligatory fields.');
        return noerror;
    }
}

function validateBewerbung() {
    var storno = new Array('job', 'stadt', 'strasse', 'plz', 'ort', 'land', 'anrede', 'surname', 'name', 'email');
    var el;
    var noerror = true;
    for ( var i=storno.length-1; i>=0; --i ){
        el = document.getElementById(storno[i]);
        if(el.value == '') {
            el.style.backgroundColor = 'red';
            noerror = false;
        } else {
            el.style.backgroundColor = '';
        }
    }
    if (noerror == true) {
        noerror = validateEmail(document.getElementById('email').value);
        if (noerror == true) {
            return noerror;
        } else {
            document.getElementById('email').style.backgroundColor = 'red';
            alert('Bitte die E-mail Adresse überprüfen. / Please check the e-mail address.');
            return noerror;
        }
    } else {
        alert('Bitte alle Pflichtfelder (*) ausfüllen. / Please fill in all obligatory fields.');
        return noerror;
    }
}

function validateEmail(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   return reg.test(email);
}

function isDate(sDate) {
   var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
   return re.test(sDate);
}

function isDateInPast() {
       var from = document.getElementById("ankunft");
       var to = document.getElementById("abreise");

       var first = to.value.split("/");
       var second = from.value.split("/");
       var field = new Date(first[2], first[1]-1, first[0]);
       var field2 = new Date(second[2], second[1]-1, second[0]);
       var today = new Date();
       var today2 = new Date(today.getFullYear(), today.getMonth(), today.getDate());
       //alert(today2);
       today = today2.getTime();
       //alert(today + ' ' + field2.getTime());
       return (field.getTime() < today || field2.getTime() < today);
}

function alerter(text) {
    var box = document.getElementById('alerter');
    box.innerHTML = text;
    box.style.display = 'block';
    window.location.hash='alerter';
}


function vote(el, type) {
   if (el.alt == 'super') {
      points = 100;
      el.src = 'fileadmin/template/grafik/ratingtool/5_act.jpg';
      document.getElementById(type+'4').src = 'fileadmin/template/grafik/ratingtool/4.jpg';
      document.getElementById(type+'3').src = 'fileadmin/template/grafik/ratingtool/3.jpg';
      document.getElementById(type+'2').src = 'fileadmin/template/grafik/ratingtool/2.jpg';
      document.getElementById(type+'1').src = 'fileadmin/template/grafik/ratingtool/1.jpg';
   } else {
      if (el.alt == 'gut') {
         points = 80;
          el.src = 'fileadmin/template/grafik/ratingtool/4_act.jpg';
         document.getElementById(type+'5').src = 'fileadmin/template/grafik/ratingtool/5.jpg';
         document.getElementById(type+'3').src = 'fileadmin/template/grafik/ratingtool/3.jpg';
         document.getElementById(type+'2').src = 'fileadmin/template/grafik/ratingtool/2.jpg';
         document.getElementById(type+'1').src = 'fileadmin/template/grafik/ratingtool/1.jpg';
      } else {
         if (el.alt == 'ok') {
            points = 60;
            el.src = 'fileadmin/template/grafik/ratingtool/3_act.jpg';
            document.getElementById(type+'5').src = 'fileadmin/template/grafik/ratingtool/5.jpg';
            document.getElementById(type+'4').src = 'fileadmin/template/grafik/ratingtool/4.jpg';
            document.getElementById(type+'2').src = 'fileadmin/template/grafik/ratingtool/2.jpg';
            document.getElementById(type+'1').src = 'fileadmin/template/grafik/ratingtool/1.jpg';
         } else {
            if (el.alt == 'naja') {
               points = 40;
                el.src = 'fileadmin/template/grafik/ratingtool/2_act.jpg';
               document.getElementById(type+'5').src = 'fileadmin/template/grafik/ratingtool/5.jpg';
               document.getElementById(type+'4').src = 'fileadmin/template/grafik/ratingtool/4.jpg';
               document.getElementById(type+'3').src = 'fileadmin/template/grafik/ratingtool/3.jpg';
               document.getElementById(type+'1').src = 'fileadmin/template/grafik/ratingtool/1.jpg';
            } else {
               points = 20;
               el.src = 'fileadmin/template/grafik/ratingtool/1_act.jpg';
               document.getElementById(type+'5').src = 'fileadmin/template/grafik/ratingtool/5.jpg';
               document.getElementById(type+'4').src = 'fileadmin/template/grafik/ratingtool/4.jpg';
               document.getElementById(type+'3').src = 'fileadmin/template/grafik/ratingtool/3.jpg';
               document.getElementById(type+'2').src = 'fileadmin/template/grafik/ratingtool/2.jpg';
            }
         }
      }
   }
   document.getElementById('rate_'+type).value = points;
   return;
}

function checkWertung() {
   if(document.getElementById('comment').value == 'Kommentar eingeben...' || document.getElementById('email').value == '' || document.getElementById('rate_lage').value == '' || document.getElementById('rate_zimmer').value == '' || document.getElementById('rate_service').value == '' ||
      document.getElementById('rate_sauberkeit').value == '' || document.getElementById('rate_essen').value == '') {
      alerter('Bitte alle Felder ausfüllen! / Please fill in all fields!');
      return false;
   } else {
      return true;
   }
}


var url = 'http://www.meininger-hotels.com/fileadmin/template/php/ratingtool/captcha_validataor.php?txt=';
var captchaOK = 2; // 2 - not yet checked, 1 - correct, 0 - failed

function getHTTPObject() {
   try {
      req = new XMLHttpRequest();
   } catch (err1) {
      try {
         req = new ActiveXObject("Msxml12.XMLHTTP");
      } catch (err2) {
         try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (err3) {
            req = false;
         }
      }
   }
   return req;
}

var http = getHTTPObject(); // We create the HTTP Object

function handleHttpResponse() {
   if (http.readyState == 4) {
      captchaOK = http.responseText;
      if(captchaOK != 'ok') {
         alert('Bitte tragen Sie die Zahl aus dem Anti-Spam Bild in das Feld. / Please fill in the number from the image.');
         document.getElementById('captcha').value='';
         document.getElementById('captcha').focus();
         return false;
      }
      document.bewertungForm.submit();
   }
}

function captchaRequest(thecode) {
   http.open("GET", url + escape(thecode), true);
   http.onreadystatechange = handleHttpResponse;
   http.send(null);
}

function checkWertung1() {
   if(document.getElementById('email').value == '' || document.getElementById('name').value == '' ||
      document.getElementById('surname').value == '' || document.getElementById('captcha').value == '') {
      alert('Bitte alle Felder ausfüllen! / Please fill in all the fields.');
      return false;
   }
   captchaRequest(document.getElementById('captcha').value);
   return false; 
}