//Script fuer Hotelreservierungen

var curElement;
  var curForm;
  var x = 0;
  var y = 0;
  
  var calendar;
  
  function setXY(e){
    if(navigator.appName == "Microsoft Internet Explorer"){
      x = window.event.screenX;
      y = window.event.screenY;
    }
    else if(navigator.appName == "Netscape"){
      if(e){
        x = e.screenX;
        y = e.screenY;
      }
    }
  }

  document.onmousedown = setXY;
// ################################################################################################################################################################  
  function gueltigesDatum (datum)
{
    //(Schritt 1) Fehlerbehandlung
 if (!datum) return false;
 datum=datum.toString();

    //(Schritt 2) Aufspaltung des Datums
 datum=datum.split(".");
 if (datum.length!=3) return false;

    //(Schritt 3) Entfernung der fuehrenden Nullen und Anpassung des Monats

 datum[0]=parseInt(datum[0],10);
 datum[1]=parseInt(datum[1],10)-1;

    //(Schritt 4) Behandlung Jahr nur zweistellig
 if (datum[2].length==2) datum[2]="20"+datum[2];

    //(Schritt 5) Erzeugung eines neuen Dateobjektes
 var kontrolldatum=new Date(datum[2],datum[1],datum[0]);

    //(Schritt 6) Vergleich, ob das eingegebene Datum gleich dem JS-Datum ist
 if (kontrolldatum.getDate()==datum[0] && kontrolldatum.getMonth()==datum[1] && kontrolldatum.getFullYear()==datum[2])
     return true; else return false;

}
// ################################################################################################################################################################

// ################################################################################################################################################################  
  function eingabegueltig(datum)
{
    //(Schritt 1) Fehlerbehandlung
 if (!datum) {alert('Bitte geben Sie ein gültiges Datum im Format "TT.MM.JJJJ" ein!!');this.value='';}
 datum=datum.toString();

    //(Schritt 2) Aufspaltung des Datums
 datum=datum.split(".");
 if (datum.length!=3) {alert('Bitte geben Sie ein gültiges Datum im Format "TT.MM.JJJJ" ein!!');this.value='';}

    //(Schritt 3) Entfernung der fuehrenden Nullen und Anpassung des Monats

 datum[0]=parseInt(datum[0],10);
 datum[1]=parseInt(datum[1],10)-1;

    //(Schritt 4) Behandlung Jahr nur zweistellig
 if (datum[2].length==2) datum[2]="20"+datum[2];

    //(Schritt 5) Erzeugung eines neuen Dateobjektes
 var kontrolldatum=new Date(datum[2],datum[1],datum[0]);

    //(Schritt 6) Vergleich, ob das eingegebene Datum gleich dem JS-Datum ist
 if (kontrolldatum.getDate()==datum[0] && kontrolldatum.getMonth()==datum[1] && kontrolldatum.getFullYear()==datum[2])
     return true; else{ alert('Bitte geben Sie ein gültiges Datum im Format "TT.MM.JJJJ" ein!!');this.value='';}

}

// ################################################################################################################################################################  


  function getDateCalendar(form, elementName){
    curForm = form;
    var url = "/wEnglish/reservierung/calendar_plege.php5";
	curElement = elementName;
	
    if(form.elements[curElement].value != ""){
      var date  = form.elements[curElement].value;
      var year  = date.substr(6,4);
      var month = date.substr(3,2);

      if(month.substr(0,1) == "0"){
        month = month.replace("0","");
      }
    
    }

    calendar = window.open(url,"DateDialog","width=220,height=220,top=" + y + ",left=" + x);
    calendar.focus();
  }
 
  
  function setDateCalendar(date){

  if (!curForm.elements['Date_From']) input_field='Date_From';
  else input_field='Date_From';
  dateIso=date.substr(6,4)+'-'+date.substr(3,2)+'-'+date.substr(0,2);  
  dateIsoForm=curForm.elements[input_field].value.substr(6,4)+'-'+curForm.elements[input_field].value.substr(3,2)+'-'+curForm.elements[input_field].value.substr(0,2);
  dateToIsoForm=curForm.elements['Date_To'].value.substr(6,4)+'-'+curForm.elements['Date_To'].value.substr(3,2)+'-'+curForm.elements['Date_To'].value.substr(0,2);
    
   if (curElement=='Date_To' && curForm.elements[input_field].value!='' && (dateIsoForm>=dateIso)) 
   {
    alert("Das Enddatum darf nicht vor dem oder gleich dem Startdatum liegen!");curForm.submit();
   }
   else
   {  
    if (curElement==input_field && curForm.elements['Date_To'].value!='' && dateToIsoForm<=dateIso) 
    { 
	 var aktuelljahr =date.substr(6,4);
	 var aktuellmonat =date.substr(3,2)-1;
	 var aktuelltag =date.substr(0,2);
	 var diezeit = new Date(aktuelljahr, aktuellmonat, aktuelltag); 
	 var jetztZeit = diezeit.getTime(); var morgen = jetztZeit + (1000*60*60*24); diezeit.setTime(morgen);                   
	 var Jahr = diezeit.getYear();                      
	 var Monat = diezeit.getMonth();                  
	 var Tag = diezeit.getDate();                       
     curForm.elements[curElement].value = date;
  	Monat=Monat+1;
	if(String(Tag).length == 1 && Tag <=9){
  	  Tag = "0" + Tag;
  	}
	if(String(Monat).length == 1){
  	  Monat = "0" + Monat;
  	}
	if (Jahr < 999)Jahr += 1900;
	 curForm.elements['Date_To'].value = Tag + "." + Monat + "." + Jahr;
	 curForm.submit();
    }
    else
    {
     curForm.elements[curElement].value = date;
	 curForm.submit();
    }
   }
  }
  
  
  function setOneDayCalendar(form, elementName){
    curElement = elementName;
    if(curElement = "Date_To"){
      form.elements[curElement].value = form.Date_From.value;
    }
  }
  
  function setTimeSpace(form, timeSpace){
    
  	if(timeSpace == "day"){
  	  form.Date_From.value = getToday();
      form.Date_To.value = getToday();
  	}
  	else{
  	  var today = new Date();
  	  var now  = today.getTime();
      if(timeSpace == "week"){
  	    var then = now + (7*24*60*60*1000);
      }
      else if(timeSpace == "month"){
        var then = now + (30*24*60*60*1000);
      }
  	  var week = new Date();
  	  week.setTime(then);
  	  var dayWeek   = week.getDate();
  	  var monthWeek = week.getMonth() + 1;
  	  var yearWeek  = week.getFullYear();
      
      if(String(monthWeek).length == 1){
        monthWeek = "0" + monthWeek;
      }
      if(String(dayWeek).length == 1){
        dayWeek = "0" + dayWeek;
      }

      form.Date_From.value = getToday();
      form.Date_To.value = dayWeek + "." + monthWeek + "." + yearWeek;
  	}
  }
  
  function getToday(){
    var today = new Date();
  	var day   = today.getDate();
  	var month = today.getMonth() + 1;
  	var year  = today.getFullYear();
  
  	if(String(day).length == 1){
  	  day = "0" + day;
  	}
  	
  	if(String(month).length == 1){
  	  month = "0" + month;
  	}
  	
  	return day + "." + month + "." + year;
  }
  
  function setDateFormat(form){
    var dateFrom 		= form.elements["Date_From"].value;
    var dateTo   		= form.Date_To.value;
		var dateOnline	= form.Date_Online.value;
    
    if(dateTo == ""){
      dateTo = dateFrom;
    }
		
		if(dateOnline == ""){
			dateOnline = dateFrom;
		}
    
    form.Date_From_Format.value 		= dateFrom.substr(6,4) + "-" + dateFrom.substr(3,2) + "-" + dateFrom.substr(0,2);
    form.Date_To_Format.value   		= dateTo.substr(6,4)   + "-" + dateTo.substr(3,2)   + "-" + dateTo.substr(0,2);
		form.Date_Online_Format.value   = dateOnline.substr(6,4)   + "-" + dateOnline.substr(3,2)   + "-" + dateOnline.substr(0,2);
  }
  
////////////////////////////////////////////////////////////////
//
// Beschreibung: Überprüft das Vorhandensein einer Kategorie.
//
// @params form = das Formular; checkNewValue = der Wert, der getestet werden soll;
//				checkOldValues = die Werte gegen welche geprüft werden soll;
//				notAllowedString = der String, der nicht zugelassen ist (z.B. "")
//				valueTitle = der Titel des zu erzeugenden Parameters
//
////////////////////////////////////////////////////////////////  

function checkValue(form, checkNewValue, checkOldValues, notAllowedString, valueTitle){
  
  if(checkNewValue == null) checkNewValue = "Category";
  if(checkOldValues == null) checkOldValues = "cats";
  if(notAllowedString == null) notAllowedString = "";
  if(valueTitle == null) valueTitle = "Kategorie";
  
  // Returnvariable
  var ret = true;
  var alertStr = "";
  
  // Lese die neu anzulegende Kategorie aus
  var newValue= form.elements[checkNewValue].value;
  if(newValue == notAllowedString) alertStr = "Bitte geben Sie eine " + valueTitle + " an.";
  
  // Lese die vorhandenen Kategorien aus dem Formular aus
  else if(form.elements[checkOldValues].value != ""){
    var oldValues = form.elements[checkOldValues].value;
    
    // Strip first "|" if any
    if(oldValues.indexOf("|") == 0) oldValues = oldValues.substr(1,oldValues.length-1);
    
    var presentValues = oldValues.split("|");
    
    // Prüfe ob vorhanden
    for(var i=0; i <= presentValues.length-1; i++){
      if(presentValues[i] == newValue) alertStr = valueTitle + " schon vorhanden";
    }
  }
  
  if(alertStr != ""){
    alert(alertStr);
    ret = false;
  }
  return ret;
}

