var Tag   = 0;
var Monat = 0;
var Jahr  = 0;
function DatumCheck(Datum) {
  ErgebnisDatumCheck = true;
  Trennzeichen = ".";
  Zaehler = 0;
  for (var i=0; i<Datum.length; i++) {
    if (Datum.charAt(i) == Trennzeichen) { Zaehler++; }
  }
  if (Zaehler == 2) {
    ErstesTZ = Datum.indexOf(Trennzeichen);
    ZweitesTZ = Datum.indexOf(Trennzeichen, ErstesTZ +1);
    Tag = parseInt(Datum.substring(0, ErstesTZ), 10);
    Monat = parseInt(Datum.substring(ErstesTZ + 1, ZweitesTZ), 10);
    Jahr = parseInt(Datum.substring(ZweitesTZ + 1, Datum.length), 10);
    if (Jahr < 100) { Jahr = Jahr + 2000; }
    if ((Tag<=31) && (Tag>=1) && (Monat>=1) && (Monat<=12)) {
      if((Monat==1) || (Monat==3) || (Monat==5) || (Monat==7) || (Monat==8) || (Monat==10) || (Monat==12)) {
      } else {
        if ((Tag<=30) && (Tag>=1)) {
          if((Monat==4) || (Monat==6) || (Monat==9) || (Monat==11)) {
          } else {
            if ((Tag<=28) && (Tag>=1)) {
            } else {
              if (Tag==29) {
                if ((Jahr%4)==0) {
                  if ((Jahr%100)!=0) {
                  } else {
                    if ((Jahr%400)==0) {
                    } else {
                      ErgebnisDatumCheck = false;
                    }
                  }
                } else {
                  ErgebnisDatumCheck = false;
                }
              } else {
                ErgebnisDatumCheck = false;
              }
            }
          }
        } else {
          ErgebnisDatumCheck = false;
        }
      }
    } else {
      ErgebnisDatumCheck = false;
    }
  } else {
    ErgebnisDatumCheck = false;
  }
  return ErgebnisDatumCheck;
}

var Tag   = 0;
var Monat = 0;
var Jahr  = 0;

function DatumCheckEn(Datum) {
  ErgebnisDatumCheck = true;
  Trennzeichen = "-";
  Zaehler = 0;
  for (var i=0; i<Datum.length; i++) {
    if (Datum.charAt(i) == Trennzeichen) { Zaehler++; }
  }
  if (Zaehler == 2) {
    ErstesTZ = Datum.indexOf(Trennzeichen);
    ZweitesTZ = Datum.indexOf(Trennzeichen, ErstesTZ +1);
    Jahr = parseInt(Datum.substring(0, ErstesTZ), 10);
    Monat = parseInt(Datum.substring(ErstesTZ + 1, ZweitesTZ), 10);
    Tag = parseInt(Datum.substring(ZweitesTZ + 1, Datum.length), 10);
    if (Jahr < 100) { Jahr = Jahr + 2000; }
    if ((Tag<=31) && (Tag>=1) && (Monat>=1) && (Monat<=12)) {
      if((Monat==1) || (Monat==3) || (Monat==5) || (Monat==7) || (Monat==8) || (Monat==10) || (Monat==12)) {
      } else {
        if ((Tag<=30) && (Tag>=1)) {
          if((Monat==4) || (Monat==6) || (Monat==9) || (Monat==11)) {
          } else {
            if ((Tag<=28) && (Tag>=1)) {
            } else {
              if (Tag==29) {
                if ((Jahr%4)==0) {
                  if ((Jahr%100)!=0) {
                  } else {
                    if ((Jahr%400)==0) {
                    } else {
                      ErgebnisDatumCheck = false;
                    }
                  }
                } else {
                  ErgebnisDatumCheck = false;
                }
              } else {
                ErgebnisDatumCheck = false;
              }
            }
          }
        } else {
          ErgebnisDatumCheck = false;
        }
      }
    } else {
      ErgebnisDatumCheck = false;
    }
  } else {
    ErgebnisDatumCheck = false;
  }
  return ErgebnisDatumCheck;
}


function GetWeekDay(dd,mm,yyyy, lang) {
  var timeObj=new Date();
  var time=Date.UTC(yyyy,(mm-1),dd);
  if(yyyy<1582 || yyyy==1582 && (mm<10 || mm==10 && dd<15))
    time+=10*24*60*60*1000;
  for(k=0;k<4;k++) {
    for(year=1500-k*400;year>1200-k*400;year-=100) {
      if(yyyy<year || yyyy==year && mm<3) time-=24*60*60*1000;
    }
  }
  if(yyyy<100) time-=24*60*60*1000;
  timeObj.setTime(time);

  weekday=timeObj.getDay();
  if(lang == 'de'){
	  var week = "SoMoDiMiDoFrSa";
  } else {
	  var week = "SuMoTuWeThFrSa";
  }
  return week.substr(weekday*2,2);
}
  
  // Funktion AktualisiereWochentag
function AktualisiereWochentag(Feld, Datum) {
  if (Feld == "anreise") {
    if (DatumCheck(Datum)) {
      WochenTag = GetWeekDay(Tag, Monat, Jahr, 'de');
      document.getElementById("WoTagAnreise").innerHTML = WochenTag + ",&nbsp;";
    } else {
      document.getElementById("WoTagAnreise").innerHTML = '?!&nbsp;&nbsp;';
    }
  }
  if (Feld == "abreise") {
    if (DatumCheck(Datum)) {
      WochenTag = GetWeekDay(Tag, Monat, Jahr, 'de');
      document.getElementById("WoTagAbreise").innerHTML = WochenTag + ",&nbsp;";
    } else {
      document.getElementById("WoTagAbreise").innerHTML = '?!&nbsp;&nbsp;';
    }
  }
}

  // Funktion AktualisiereWochentag
function AktualisiereWochentagEn(Feld, Datum) {
  if (Feld == "anreise") {
    if (DatumCheckEn(Datum)) {
      WochenTag = GetWeekDay(Tag, Monat, Jahr, 'en');
      document.getElementById("WoTagAnreise").innerHTML = WochenTag + ",&nbsp;";
    } else {
      document.getElementById("WoTagAnreise").innerHTML = '?!&nbsp;&nbsp;';
    }
  }
  if (Feld == "abreise") {
    if (DatumCheckEn(Datum)) {
      WochenTag = GetWeekDay(Tag, Monat, Jahr, 'en');
      document.getElementById("WoTagAbreise").innerHTML = WochenTag + ",&nbsp;";
    } else {
      document.getElementById("WoTagAbreise").innerHTML = '?!&nbsp;&nbsp;';
    }
  }
}
  
function EingabeCheck() {
  Ergebnis = true;
  Ergebnis = DatumCheck(document.SuchFormular.SeVon.value);
  if (Ergebnis) {
    AnreiseDatum = new Date(Jahr, Monat-1, Tag);
    Ergebnis = DatumCheck(document.SuchFormular.SeBis.value);
    if (Ergebnis) {
      AbreiseDatum = new Date(Jahr, Monat-1, Tag);
      if (AnreiseDatum.getTime() < AbreiseDatum.getTime()) {
        Heute = new Date();
        Heute.setHours(0);
        Heute.setMinutes(0);
        Heute.setSeconds(0);
        Heute.setMilliseconds(0)
        if (AnreiseDatum.getTime() >= Heute.getTime()) {
          SeOb = document.SuchFormular.SeOb.value;
          ZwErgebnis = false;
          for (i=0;i<SeOb.length;++i) { if (SeOb.charAt(i) != " ") { ZwErgebnis = true }}
          if (ZwErgebnis) {
            Personen = document.SuchFormular.SePe.value;
            if (Personen == "") {
              Ergebnis = false;
              alert("Bitte geben Sie eine Anzahl von Personen vor.");
              document.SuchFormular.SePe.focus();
            } else {
              for (i=0;i<Personen.length;++i) {
                if (Personen.charAt(i) >= "0" && Personen.charAt(i) <= "9" && parseInt(Personen) != 0) {
                } else {
                  Ergebnis = false;
                  alert("Bitte kontrollieren Sie die Anzahl der Personen.");
                  document.SuchFormular.SePe.focus();
                }
              }
            }
          } else {
            Ergebnis = false;
            alert("Bitte geben Sie eine Objekt-Nr. ein.");
            document.SuchFormular.SeOb.focus();
        }
        } else {
          Ergebnis = false;
          alert("Das Anreisedatum liegt in der Vergangenheit.");
          document.SuchFormular.SeVon.focus();
        }
      } else {
        Ergebnis = false;
        alert("Das Abreisedatum muss nach dem Anreisedatum liegen.");
        document.SuchFormular.SeBis.focus();
      }
    } else {
      alert("Bitte ueberpruefen Sie das Abreisedatum.");
      document.SuchFormular.SeBis.focus();
    }
  } else {
    alert("Bitte ueberpruefen Sie das Anreisedatum.");
    document.SuchFormular.SeVon.focus();
  }
  return Ergebnis;
}


function selectRegion(area){
	document.getElementById('ext-region').value = area;
	document.getElementById('ext-card').submit();
}

function CheckDatum(von, bis, format, lang){
	vonID = document.getElementById(von);
	bisID = document.getElementById(bis);	
	vonValue = document.getElementById(von).value;
	bisValue = document.getElementById(bis).value;	
	if(lang == 'de'){
		vonCheck = DatumCheck(vonValue);
		if(vonCheck){
			AnreiseDatum = new Date(Jahr, Monat-1, Tag);
			bisCheck = DatumCheck(bisValue);
			if(bisCheck){
				AbreiseDatum = new Date(Jahr, Monat-1, Tag);
				var diffAnreise =  Math.floor(((((AnreiseDatum.getTime() / 1000)/60)/60)/24));
				var diffAbreise =  Math.floor(((((AbreiseDatum.getTime() / 1000)/60)/60)/24));
				if ((diffAbreise-diffAnreise) > 56) {
					if(von == 'ls-anreise'){
						alert("In der Schnell-Live-Suche kann maximal ein Zeitraum von 8 Wochen abgefragt werden.");
					} else {					
						alert("In der erweiterten Suche kann maximal ein Zeitraum von 8 Wochen abgefragt werden.");
					}
					var newAbreise = new Date(AnreiseDatum.getYear(),AnreiseDatum.getMonth()+1,AnreiseDatum.getDate()+56);
					
					var month = newAbreise.getMonth();
					var year = newAbreise.getFullYear();
					var day = newAbreise.getDate();
					if(day<10) day = "0" + day;
					if(month<10) month= "0" + month;
					if(year<1000) year+=1900;
					document.getElementById(bis).value = day+"."+month+"."+year;
						
				} else if (AnreiseDatum.getTime() < AbreiseDatum.getTime()) {
					Heute = new Date();
					Heute.setHours(0);
					Heute.setMinutes(0);
					Heute.setSeconds(0);
					Heute.setMilliseconds(0)
					if (AnreiseDatum.getTime() >= Heute.getTime()) {
						var month = AnreiseDatum.getMonth()+1;
						var year = AnreiseDatum.getYear();
						var day = AnreiseDatum.getDate();
						if(day<10) day = "0" + day;
						if(month<10) month= "0" + month;
						if(year<1000) year+=1900;
						document.getElementById(von).value = day+"."+month+"."+year;
						
						var month = AbreiseDatum.getMonth()+1;
						var year = AbreiseDatum.getYear();
						var day = AbreiseDatum.getDate();
						if(day<10) day = "0" + day;
						if(month<10) month= "0" + month;
						if(year<1000) year+=1900;
						document.getElementById(bis).value = day+"."+month+"."+year;

					} else {
						 alert("Das Anreisedatum liegt in der Vergangenheit.");
					}
				} else {
					alert("Das Abreisedatum muss nach dem Anreisedatum liegen.");
				}
				
			} else {
				if(vonValue.indexOf('Abreise') != -1){
					alert("Bitte ueberpruefen Sie das Abreisedatum.");
					bisID.focus();
				} 
			}
		} else {
			if(bisValue != 'Früheste Anreise'){
				alert("Bitte ueberpruefen Sie das Anreisedatum.");
				vonID.focus();
			}
		}
	} else {
		if(vonValue.indexOf('.') != -1){
			vonCheck = DatumCheck(vonValue);
		} else {
			vonCheck = DatumCheckEn(vonValue);
		}
		if(vonCheck){
			AnreiseDatum = new Date(Jahr, Monat-1, Tag);
			if(vonValue.indexOf('.') != -1){
				bisCheck = DatumCheck(bisValue);
			} else {
				bisCheck = DatumCheckEn(bisValue);
			}
			if(bisCheck){
				AbreiseDatum = new Date(Jahr, Monat-1, Tag);
				var diffAnreise =  Math.floor(((((AnreiseDatum.getTime() / 1000)/60)/60)/24));
				var diffAbreise =  Math.floor(((((AbreiseDatum.getTime() / 1000)/60)/60)/24));
				if ((diffAbreise-diffAnreise) > 56) {
					if(von == 'ls-anreise'){
						alert("The live availability search is covering a maximum period of 8 weeks.");
					} else {
						alert("The advanced search is covering a maximum period of 8 weeks.");
					}
					
					var newAbreise = new Date(AnreiseDatum.getYear(),AnreiseDatum.getMonth()+1,AnreiseDatum.getDate()+56);
					
					var month = newAbreise.getMonth();
					var year = newAbreise.getFullYear();
					var day = newAbreise.getDate();
					if(day<10) day = "0" + day;
					if(month<10) month= "0" + month;
					if(year<1000) year+=1900;
					document.getElementById(bis).value = year+"-"+month+"-"+day;
						
				} else if (AnreiseDatum.getTime() < AbreiseDatum.getTime()) {
					Heute = new Date();
					Heute.setHours(0);
					Heute.setMinutes(0);
					Heute.setSeconds(0);
					Heute.setMilliseconds(0)
					if (AnreiseDatum.getTime() >= Heute.getTime()) {
						var month = AnreiseDatum.getMonth()+1;
						var year = AnreiseDatum.getYear();
						var day = AnreiseDatum.getDate();
						if(day<10) day = "0" + day;
						if(month<10) month= "0" + month;
						if(year<1000) year+=1900;
						document.getElementById(von).value = year+"-"+month+"-"+day;
						
						var month = AbreiseDatum.getMonth()+1;
						var year = AbreiseDatum.getYear();
						var day = AbreiseDatum.getDate();
						if(day<10) day = "0" + day;
						if(month<10) month= "0" + month;
						if(year<1000) year+=1900;
						document.getElementById(bis).value = year+"-"+month+"-"+day;
						
					} else {
						 alert("The arrival is in the past.");
					}
				} else {
					alert("The departure has to be after the arrival.");
				}
			} else {
				if(bisValue != 'Latest Departure' && bisValue != ''){
					alert("Please check departure.");
					bisID.focus();
				}
			}
		} else {
			if(bisValue != 'Earliest Arrival'){
				alert("Please check arrival.");
				vonID.focus();
			}
		}
	}
}

function CheckAuswahl (sel, id) {
	var tget = document.getElementById(id);
	var i = 0;
  	for (i = 0; i < tget.length; ++i){
	    if (tget.options[i].value == sel){
			tget.options[i].selected = true;
		}
	}
	if(id == 'ls-objekt' && sel == 2){
		checkHotel(2);
	}
}
var lastid= 1;
function openTab(id){
	var lasttget = document.getElementById('reiter'+lastid);
	lasttget.style.display = 'none';
	lastid = id;
	
	var tget = document.getElementById('reiter'+id);
	tget.style.display = 'block';
	
}


var sfHover = function() {
	var sfEls = document.getElementById("topnav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

var lastabreise = '';
var lastanreise = '';
function checkHotel(aktiv){
	var anreise = document.getElementById('ls-anreise').value;
	var abreise = document.getElementById('ls-abreise').value;
	
	if(aktiv == 2){
		document.getElementById('hidden-hotel-hint').style.display = 'block';
		lastanreise = anreise;
		lastabreise = abreise;
		document.getElementById('ls-anreise').value = '';
		document.getElementById('ls-abreise').value = '';
	} else {
		document.getElementById('hidden-hotel-hint').style.display = 'none';
		if(lastanreise) document.getElementById('ls-anreise').value = lastanreise;
		if(lastabreise) document.getElementById('ls-abreise').value = lastabreise;
	}
}