/**
 * @author hieu
 * @modified 
 * 
 * + 31.03.2009
 * 		added:		
 * 
 * + 08.03.2010 js added:
 * Hier bei Schwarzkopf muss, wenn in Step 2 Ändern der Anmietdaten ausgewählt wird,
 * das Fenster angepasst werden
 */

	////////// Global Variable /////////
	var rentalData = new RentalData() ;
	var ss1 = new CStation() ;	
	var ss2 = new CStation() ;	
	var ss3 = new CStation() ;	
	var aStation = new Array() ;
	var selssindex  ;
	var selesindex  ;
	
	var isRequestCustomerSpecial = false ;
	var tagCheckStartStation = "" ;
	var isCheckLogin = false ; 
	
	var iKarenz = 0 ;	// Karenzszeit 
	
	function Schedule() {
		this.jstag  = 0 ; 
		this.bthour = 0 ; 
		this.btmin  = 0 ; 
		this.ethour = 0 ; 
		this.etmin  = 0 ; 
	}
	
	var aSchedule = new Array(7) ;
    
	/* Added von Jan am 24.02.10
	 * Params kann 4 Elemente haben
	 * sstat = startstation
	 * grp = Gruppe
	 * aZeit = dd.mm.yyyy_hhmm
	 * eZeit = dd.mm.yyyy_hhmm  
	 * force = true/false
	 * wenn force = true, dann müssen aZeit und eZeit gefüllt sein
	 */
	var UrlParams = new Array();

	/* Class CStation */
	function CStation() {
		this.station = "" ;
		this.name = "" ;
		this.strasse = "" ;
		this.plz = "" ;
		this.ort = "" ;	
		this.info = "" ;
		this.tresor = 0;
		this.forerun ;
		this.setData = Cx9_CStation_SetData ;
	}

	function Cx9_CStation_SetData( station , name, strasse, plz, ort,info )  {
		this.station = station;
		this.name = name;
		this.strasse= strasse;
		this.plz = plz;
		this.ort = ort;
		this.info = info;
	}


	/**
	 * 
	 */
	function getJsDateFromStartDate() {
		return getJsDateFromString($('#rental-startdate').attr("value")) ;
	}
	
	/**
	 * 
	 */
	function getJsDateFromEndDate() {
		return getJsDateFromString($('#rental-enddate').attr("value")) ;
	}
	
	/**
	 * 
	 * @param {Object} str
	 */
	function getJsDateFromString(str) {
		var dtDay   = parseInt(str.substring(0,2),10);
		var dtMonth = parseInt(str.substring(3,5),10);
		var dtYear  = parseInt(str.substring(6,10),10);
		var cdate = new Date(dtYear,dtMonth-1, dtDay, 0, 0)  ;			
		return cdate ;
	}
		
	function fillZeroDate(d) {
		if ( d < 10 ) return "0"+d ;
		else return d ;
	}
	
	function setaZeit () {
		var cdate   = UrlParams['aZeit'].split("_");
		var dtDay   = parseInt(cdate[0].substring(0,2),10);
		var dtMonth = parseInt(cdate[0].substring(3,5),10);
		var dtYear  = parseInt(cdate[0].substring(6,10),10);
		var dtHour  = parseInt(cdate[1].substring(0,2),10);
		var dtMin   = parseInt(cdate[1].substring(2,4), 10);
		
		
		var aZeit = new Date(dtYear,dtMonth-1, dtDay, dtHour, dtMin);
		rentalData.mietbeginn= fillZeroDate(aZeit.getDate())+"."+fillZeroDate(aZeit.getMonth()+1)+"."+aZeit.getFullYear();
		rentalData.startstunde = aZeit.getHours();
		rentalData.startminute = aZeit.getMinutes();
	}
	
	function seteZeit() {
		var cdate   = UrlParams['eZeit'].split("_");
		var dtDay   = parseInt(cdate[0].substring(0,2),10);
		var dtMonth = parseInt(cdate[0].substring(3,5),10);
		var dtYear  = parseInt(cdate[0].substring(6,10),10);
		var dtHour  = parseInt(cdate[1].substring(0,2),10);
		var dtMin   = parseInt(cdate[1].substring(2,4), 10);
		
		var eZeit = new Date(dtYear,dtMonth-1, dtDay, dtHour, dtMin);
		rentalData.mietende  = fillZeroDate(eZeit.getDate())+"."+fillZeroDate(eZeit.getMonth()+1)+"."+eZeit.getFullYear();
		rentalData.endstunde = eZeit.getHours();
		rentalData.endminute = eZeit.getMinutes();
	}
	
	function cx9_refreshFormData() {
		var d = new Date() ;
		var minstartdate = 0 ;
		
		if ( isVariable('CONFIG_MIN_STARTDATE') ) {
			if ( CONFIG_MIN_STARTDATE > 0 ) {
				minstartdate = CONFIG_MIN_STARTDATE ;
			}
			else { 
				minstartdate = 0 ;
			}
		}
		else {
			minstartdate = 1 ;
		}
		
		//haben wir eine Vorlaufzeit? dann das Datum da drauf setzten -> Soll Standard sein
		Cx9_SetForerunTime();
		
		//bei erhaltenem aZeit param -> setzen
		var aZeit;
		var eZeit;
		
		if (UrlParams['aZeit'].length > 0) {
			if ( rentalData.mietbeginn == "" ) {
				setaZeit();
			}  
		}
		
		if (UrlParams['eZeit'].length > 0) {
			if ( rentalData.mietende == "" ) {
				seteZeit();			
			}  
		}
		
		if (UrlParams['force'].length > 0) {
			if (UrlParams['force'] == 'true') {
				if ((UrlParams['aZeit'].length > 0) && (UrlParams['eZeit'].length > 0)) {
					setaZeit();
					seteZeit();
				}
			}
		}
		
		if ( rentalData.mietbeginn == "" ) {	
			var nd = new Date(d.getFullYear(),d.getMonth(), d.getDate()+minstartdate,d.getHours()+2,d.getMinutes(),0) ;	
			rentalData.mietbeginn= fillZeroDate(nd.getDate())+"."+fillZeroDate(nd.getMonth()+1)+"."+nd.getFullYear();
			if (rentalData.startstunde == "") {
				rentalData.startstunde = nd.getHours() ;
			}
			if ( rentalData.startminute == "" ) {
				rentalData.startminute = nd.getMinutes() ; 	
			}
		}
		
		if ( rentalData.mietende == "") {
			var ond = new Date(d.getFullYear(),d.getMonth(),d.getDate()+(minstartdate+1),d.getHours(),d.getMinutes(),0) ;
			rentalData.mietende= fillZeroDate(ond.getDate())+"."+fillZeroDate(ond.getMonth()+1)+"."+ond.getFullYear() ;
			if ( rentalData.endstunde == "" ) {
				rentalData.endstunde = companyStartHour ; 	
			}
			
			if ( rentalData.endminute == "" ) {
				rentalData.endminute = companyStartMinute ; 	
			}
		}
		
		$('#rental-startdate').attr("value" , rentalData.mietbeginn) ;
		$('#rental-enddate').attr("value" , rentalData.mietende) ;
		$('#field-startstation').attr("value", rentalData.sstationname) ;
		$('#field-endstation').attr("value", rentalData.estationname) ;
		
		if ( aSchedule.length == 0 ) {
			$('#h-startdate').html(cx9_listOptionHour(rentalData.startstunde));
		}
		else {
			refreshScheduleTime();
		}
		
		$('#h-enddate').html(cx9_listOptionHour(rentalData.endstunde)) ;
		$('#m-startdate').html(cx9_listOptionMinute(rentalData.startminute)) ;
		$('#m-enddate').html(cx9_listOptionMinute(rentalData.endminute)) ;
	
	}
	
	function Cx9_SetForerunTime() {
		var frtime = 0;
			
		if ( rentalData.inetmv.length > 0 && parseInt(rentalData.inetmv, 10) > 0 ) 
			frtime = parseInt(rentalData.inetmv, 10);	// kunden vorlaufszeit 
		else {
			if ((selssindex)) {
				
				frtime = parseInt(aStation[selssindex].forerun,10);	// station vorlaufszeit
			}
		}
		
		// PRIVATE=true und LOGIN=true
		if ( rentalData.inet_private_using=="1" && rentalData.login_checked==1 ) {
			
			frtime = parseInt(aStation[selssindex].forerun,10); 
			if (frtime == 0) {
				if (isVariable('CONFIG_MIN_VORLAUF')) 
					frtime = CONFIG_MIN_VORLAUF;
				else 
					frtime = 1440;
			}
		}
		
		// debugMsg(frtime) ;
		if ( isNaN(frtime) || frtime == null || frtime == "undefined" || frtime == 0) {	
			if (isVariable('CONFIG_MIN_VORLAUF') ) 
				frtime = CONFIG_MIN_VORLAUF; 
			else frtime = 1440;
		}
		
		frtime += 60;
		
		var now = new Date() ;
		var forerundate = new Date(now.getFullYear(), now.getMonth()+1, now.getDate(), now.getHours() , now.getMinutes()+frtime) ;
		// debugMsg(frtime + "|"+forerundate.toLocaleString()+"|#|"+cdate.toLocaleString()+"|") ;
		var totalhour = frtime/60; 
		
		if ( forerundate.getTime() < now.getTime() ) {
			//setzen der zeiten
			rentalData.mietbeginn = "";
			rentalData.startstunde = "";
			rentalData.startminute = "";
			rentalData.mietende  = "";
			rentalData.endstunde = "";
			rentalData.endminute = "";
		} else {
			rentalData.mietbeginn  = fillZeroDate(forerundate.getDate())+"."+fillZeroDate(forerundate.getMonth())+"."+forerundate.getFullYear();
			rentalData.startstunde = fillZeroDate(forerundate.getHours());
			rentalData.startminute = fillZeroDate(forerundate.getMinutes());
			tmp = new Date(forerundate.getFullYear(), forerundate.getMonth(), forerundate.getDate(), forerundate.getHours() , forerundate.getMinutes()+2880);
			rentalData.mietende    = fillZeroDate(tmp.getDate())+"."+fillZeroDate(tmp.getMonth())+"."+tmp.getFullYear();
			rentalData.endstunde   = fillZeroDate(tmp.getHours());
			rentalData.endminute   = fillZeroDate(tmp.getMinutes());
		}
	}
	
	/**
	 * 
	 * @param {Object} email
	 */
	function cx9_requestPasswortPerEmail(email) {
			
			$.ajax({
				type: "GET",
				url: "./index.php",
				data: "mod=901&reqemail="+escape(email),
				dataType: "xml",
				global: 'false',
				error: function (XMLHttpRequest, textStatus, errorThrown) {
					debugMsg("JS::cx9_requestPasswort()  Ajax Request Problem ! ")
				},
				beforeSend: function(xhr){
					xhr.setRequestHeader("Pragma", "no-cache");
      				xhr.setRequestHeader("Cache-Control", "must-revalidate");
					xhr.setRequestHeader("If-Modified-Since", document.lastModified);
				} ,
				success:  function(data) {	
					
					 if ( $("messages>message", data).length > 0  ) {
						msg = $("messages>message", data).get(0) ;
						switch ($("status" , msg).text() ) {
							case "success" : {
								alert($("content", msg).text()) ;
								break;	
							}
							case "error" : { 
								alert($("content", msg).text()) ;
								break; 
							}
							default : {}
						}
					 }	
					 else {}					
				} 
			});
			
		}
	
	function UpdateRegCustomerData(_email, _password) {
				$.ajax({
				type: "GET",
				url: "./index.php",
				data: "mod=902&email="+ Base64.encode(_email)+"&passwort="+Base64.encode(_password),
				dataType: "xml",
				global: 'false',
				error: function (XMLHttpRequest, textStatus, errorThrown) {
					debugMsg("JS::cx9_requestPasswort()  Ajax Request Problem ! ")
				},
				beforeSend: function(xhr){
					xhr.setRequestHeader("Pragma", "no-cache");
      				xhr.setRequestHeader("Cache-Control", "must-revalidate");
					xhr.setRequestHeader("If-Modified-Since", document.lastModified);
				} ,
				success:  function(data) {	
					
					 if ( $("messages>message", data).length > 0  ) {
						msg = $("messages>message", data).get(0) ;
						switch ($("status" , msg).text() ) {
							case "success" : {
								// alert($("content", msg).text()) ;
								rentalData.inetmv = $("content>inetmv",msg).text() ;
								rentalData.dutysta = $("content>dutysta",msg).text() ;
								// alert($("content>inetmv",msg).text()) ;
								break;	
							}
							case "error" : { 
								break; 
							}
							default : {}
						}
					 }	
					 else {}					
				} 
			});
				
	}
	/**
	 * 
	 * @param {Object} hour
	 */
	function cx9_listOptionHour(hour) {
		strOption = "" ;
		sel = "";

		for (i = 0; i < aSelHour.length; i++) {
			if (parseInt(aSelHour[i], 10) == parseInt(hour, 10)) 
				sel = "selected";
			else 
				sel = "";
			strOption += "<option value='" + aSelHour[i] + "' " + sel + ">" + aSelHour[i] + "</option>";
		}
		/*
		var jsstartdate = getJsDateFromStartDate();
		var jsenddate = getJsDateFromEndDate();
		
		var openstart = OpenSchedule.getByDay(jsstartdate.getDay()) ;
		var openend = OpenSchedule.getByDay(jsenddate.getDay()) ;
		// alert(openstart.starthour + " " + openstart.endhour) ;
		for ( i= 0 ; i < aSelHour.length ; i++ ) {
			
			if ( parseInt(aSelHour[i],10) == parseInt(hour,10) ) sel="selected" ;
			else sel ="" ;
			
			if ( parseInt(aSelHour[i], 10) >= openstart.starthour  && parseInt(aSelHour[i], 10) <= openstart.endhour ) {
				strOption += "<option value='" + aSelHour[i] + "' " + sel + ">" + aSelHour[i] + "</option>";
			}
			else { }
		}
		*/
		return strOption;
	}
	
	/**
	 * se [ true=startdate, false=enddate ] 
	 * @param {Object} hour
	 * @param true/false se
	 */
	function cx9_listSEOptionHour(hour, se){
		strOption = "" ;
		sel = "";
		
		var jsstartdate = null ;
		var jsenddate = null;
		var openstart = null ;
		
		if (se) {
			jsstartdate = getJsDateFromStartDate();
			openstart = OpenSchedule.getByDay(jsstartdate.getDay());
		}
		else {
			jsenddate = getJsDateFromEndDate() ;
			openstart = OpenSchedule.getByDay(jsenddate.getDay());
		}
		
		// alert(openstart.starthour + " " + openstart.endhour) ;
		for ( i= 0 ; i < aSelHour.length ; i++ ) {
			
			if ( parseInt(aSelHour[i],10) == parseInt(hour,10) ) sel="selected" ;
			else sel ="" ;
			
			if ( parseInt(aSelHour[i], 10) >= openstart.starthour  && parseInt(aSelHour[i], 10) <= openstart.endhour ) {
				strOption += "<option value='" + aSelHour[i] + "' " + sel + ">" + aSelHour[i] + "</option>";
			}
			else { }
		}
		return strOption;
	}
	
	
	/**
	 * 
	 * @param {Object} min
	 */
	function cx9_listOptionMinute(min) {
			strOption = "" ;
			sel = "";
			for ( i= 0 ; i < aSelMinute.length ; i++ ) {
				if ( parseInt(aSelMinute[i],10) == parseInt(min,10) ) sel="selected" ;
				else sel ="" ;
				strOption += "<option value='"+aSelMinute[i]+"' "+sel+">"+aSelMinute[i]+"</option>" ;
		
			}
			return strOption;
	}
	
	/**
	 * 
	 * @param {Object} id
	 */	
	function cx9_requestCheckStartStation(id) {
			
		$.ajax({
			type: "GET",
			url: "./index.php",
			data: "mod=1022&startstation="+id,
			dataType: "xml",
			global: 'false',
			error: function (XMLHttpRequest, textStatus, errorThrown) {
			},
			beforeSend: function(xhr){
				xhr.setRequestHeader("Pragma", "no-cache");
  				xhr.setRequestHeader("Cache-Control", "must-revalidate");
				xhr.setRequestHeader("If-Modified-Since", document.lastModified);
			} ,
			success:  function(data) {	
				 if ( $("messages>message", data).length > 0  ) {
					msg = $("messages>message", data).get(0) ;
					switch ($("status" , msg).text() ) {
						case "success" : {
							cx9_showAutoGroup($("content",msg).get(0)) ;
							break;	
						}
						case "error" : { 
							break 
						;}
						default : {}
					}
				 }	
				 else {}					
			} 
		});
		
	}
	
	
	// prÃ¼ft Station mit Tresor 
	function cx9_isTresorStation(station) {
		for ( countStation = 0 ; countStation < aStation.length ; countStation++) {
			// debugMsg( station +" ? "+aStation[countStation].station ) ;
			if (station == aStation[countStation].station && parseInt(aStation[countStation].tresor) == 1 ) {
				// debugMsg( station +" ? "+aStation[countStation].station ) ;
				return true;
			}
		}
		return false ;
	}

	// add 29/10/2009
	function refreshScheduleTime() {
		
		if ( aSchedule.length == 0 ) return false;
		if ( aSchedule == ',,,,,,') return false;
		
		var sd = $('#rental-startdate').attr("value") ;
		
		var dday = sd.substr(0,2) ;
		var dmon = sd.substr(3,2) ;
		var dyear = sd.substr(6,4) ;
		
		var dd = new Date(dyear, dmon-1, dday, 0, 0)  ;		
		var wd = dd.getDay() ;

		var ihour = aSchedule[wd].bthour; 
		
		var strOptHour  = "" ; 
		var rdStartHour = parseInt(rentalData.startstunde ,10) ;
		var sel = "" ; 
		
		while ( ihour < aSchedule[wd].ethour+1 ) {
			// alert(rentalData.starthour) ;
			if ( ihour == rdStartHour ) sel="selected" ;
			else sel="" ;
			
			if (ihour < 10 ) 
			strOptHour += "<option "+sel+" value='0"+ihour.toString()+"' >0"+ihour.toString()+"</option>" ; 
			else strOptHour += "<option "+sel+" value='"+ihour.toString()+"' >"+ihour.toString()+"</option>" ; 
			ihour++;  
		} 
		
		$('#h-startdate').html(strOptHour ) ;
		
	}


	// add 29/10/2009
	function reqFilialeSchedule(station) {
		// var resSchedules = new Array(7) ;
	  
	  if ( station.length == 0 ) {
		  aSchedule.length = 0 ; 
          return ; 
	  }
	  
	  $.getJSON("index.php?mod=1024&filiale="+station,
        function(data, textStatus){
          if (textStatus == "success") {
		  	$.each(data, function(i, item){
				var dsched = new Schedule() ;
				dsched.bthour = parseInt(item.bt.substr(0,2),10) ;
			    dsched.btmin = parseInt(item.bt.substr(2,2),10) ;
			    dsched.ethour = parseInt(item.et.substr(0,2),10) ;
			    dsched.etmin = parseInt(item.et.substr(2,2),10) ;
			   
				switch(item.wd) {
					case "Mo" : {   dsched.jstag = 1 ; 					
									break;
								}
					case "Di" : {   dsched.jstag = 2 ; 					
									break;
								}
					case "Mi" : {   dsched.jstag = 3 ; 					
									break;
								}
					case "Do" : {   dsched.jstag = 4 ; 					
									break;
								}
					case "Fr" : {   dsched.jstag = 5 ; 					
									break;
								}
					case "Sa" : {  dsched.jstag = 6 ; 					
									break;
								}
					case "So" : {   dsched.jstag = 0 ; 					
									break;
								}
				}
				aSchedule[dsched.jstag] = dsched ;
				
		  	});
		  } else {
		  	// request Error 
		  }
        });
		// alert(resSchedules.length) ;
		// return resSchedules  ; 
	}
	
	function cx9_GetParams() {
		var url;
		var parameter = new Array();
		UrlParams['sstat'] = '';
		UrlParams['grp'] = '';
		UrlParams['aZeit'] = '';
		UrlParams['eZeit'] = '';
		UrlParams['force'] = false;
		
		url = document.URL.split("?")[1];
		
		//wenn wir parameter haben
		if (url) {
		    parameter = url.split("&");
		    for (var i=0; i<(parameter.length); i++) {
		    	UrlParams[parameter[i].split("=")[0]] = parameter[i].split("=")[1];
			}
		}
	}

/** Prüft, ob das ausgewählte Datum ein Feiertag ist
 * 
 * @return boolean
 */
function DatumIsFeiertag(datum,station) {
	var result = false;
	
	$.ajax({
		type: "GET",
		url: "index.php",
		data: "mod=540&Datum="+datum+"&station="+station,
		dataType: "xml",
		global: 'false',
		error: function (XMLHttpRequest, textStatus, errorThrown) {
		alert("Datenbankfehler->Mod540");
			result = true;
		},
		beforeSend: function(xhr){
			xhr.setRequestHeader("Pragma", "no-cache");
			xhr.setRequestHeader("Cache-Control", "must-revalidate");
			xhr.setRequestHeader("If-Modified-Since", document.lastModified);
		} ,
		success:  function(data) {	
			 if ( $("messages>message", data).length > 0  ) {
				msg = $("messages>message", data).get(0) ;
				switch ($("status" , msg).text() ) {
					case "success" : {
						if (isVariable('CONFIG_RESERV_ON_HOLIDAY_MESSAGE') && (CONFIG_RESERV_ON_HOLIDAY_MESSAGE != '')){
							alert(CONFIG_RESERV_ON_HOLIDAY_MESSAGE);
						}else {
							alert("An "+$("content", msg).text()+" ist die Station geschlossen.");
						}
						result = true;
						break;	
					}
					case "error" : { 
						result = false;
						break; 
					;}
					default : {}
				}
			 }	
			 else {}					
		} 
	});
	
	return result;
}

/* ////////// MAIN PROGRAMM ////////// */
$(document).ready(function() {
	//alert("Hier ist der Start");
	
	// SETUP 
	$.ajaxSetup({async: false});
	
	/* holt Rental von session */		
	var isStartStation = false;
	var isEndStation = false;
	$("#blockS1Warning").hide();
	
	//Version checken, wenn != C-Rent Version, dann nicht starten sondern meldung ausgeben!
	
	if (!Cx9_CheckVersion()) {
	   //Das Webmodul darf hier nicht mehr angezeigt werden		
		alert("Webmodul Version ungleich der Version im Crent!");
		return;
	}
	
	//Evtl. übergebene Parameter auslesen
	cx9_GetParams();	
	
	cx9_GetRentalData(rentalData);
	
	//////////{{COOKIE //////////
	if (Cx9_Cookie_getCookie("loginpermanent") == "1") {
		$("#chkbox_login_permanent").attr("checked", "true");
	}
	 
	$("#fld_login_email").attr("value", Cx9_Cookie_getCookie("loginemail")) ;
	
	if ( isVariable('CONFIG_CHECK_SC') && CONFIG_CHECK_SC ) {
		var _lp = Cx9_Cookie_getCookie("_lp") ;
		if ( _lp.length > 0  ) $("#fld_login_password").attr("value", Base64.decode(_lp) ) ;

	} 
	//////////}}COOKIE //////////		
	
	function cx9_updateStationByXML(xml) {
		var max_station = $("stations>station", xml).length ;
		var dStation ;
		
		for (cs = 0 ; cs < max_station ; cs++) {
			dStation = $("stations>station",xml).get(cs) ;	
			var stTemp = new CStation();
			stTemp.station = $(dStation).attr("id") ;
			stTemp.name= $("name", dStation).text();
			stTemp.strasse = $("street", dStation).text();
			stTemp.plz = $("zipcode", dStation).text() ;
			stTemp.ort = $("city", dStation).text() ;
			stTemp.tresor = $("tresor", dStation).text();
			stTemp.info = "<b >"+stTemp.ort+"</b><br><br>"+stTemp.strasse+"<br>"+stTemp.plz+" - "+stTemp.ort+" <br/><br />"+$("inet_info_station", dStation).text();
			stTemp.forerun = $("forerun", dStation).text();
			aStation.push(stTemp);
		} 
		
		cx9_initStationList();
	}
	
	$.ajax({			
		type: "GET",
		url: "./index.php",
		data: "mod=1020",
		dataType: "xml",
		global: 'false',
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			debugMsg("Request[1020] Fehler - Bitte prÃ¼fen Sie die Stationdaten!")	
		},
		beforeSend: function(xhr){
			xhr.setRequestHeader("Pragma", "no-cache");
			xhr.setRequestHeader("Cache-Control", "must-revalidate");
			xhr.setRequestHeader("If-Modified-Since", document.lastModified);
		} ,
		success:  function(data) {		
			cx9_updateStationByXML(data);
			cx9_refreshFormData();
		} 
	});
	
	/* Initialisierung */
	 $('#blockSelStartStation').hide();
	 $('#pnlStartStationInfo').hide(); 
		
	// cx9_initStationList() ;
	
	var fld_startstation     = $('input#field-startstation') ;
	var fld_endstation       = $('input#field-endstation') ;
	var btndown_endstation   = $("div#btndown-endstation") ;
	var btndown_startstation = $("div#btndown-startstation") ;
	
	if (isVariable('CONFIG_ENDSTATION_SELECTABLE') &&  CONFIG_ENDSTATION_SELECTABLE == false) {
		$(fld_endstation).attr("disabled",true) ; 		
	}
	addBtnDownStartStation() ;
	addBtnDownEndStation() ;	
	
	/* drÃ¼ckt irgendwo um Startstation Wahlliste zu schliessen */
	$(document.body).mousedown( function(event) {
		var $target = $(event.target) ;	
		// $('#bPanel').html(event.target.id) ;
		if ( event.target.tagName == "BODY" || event.target.tagName=="IFRAME" ) {
				if ( isStartStation || isEndStation ) cx9_hideSelStartStation() ;
		} {
			
			if (isStartStation)  {
				var strTarg = new String(event.target.id) ;
				var selItem = false ;
				if ( strTarg.substring(0,4) == "ssID" ) selItem = true ;
				if (   !( /* ( $("#"+event.target.id).parent().get(0).id == "blockSelStartStation" ) ||*/ 
					   (event.target.id == "blockSelStartStation")  || 
					   (event.target.id == "field-startstation") || 
					   (event.target.id == "btndown-startstation" )|| (selItem == true ) ) ) {
						cx9_hideSelStartStation() ;
				}
			}
		}
	});
	
	/**
	 * StationList darstellen.
	 */
	function cx9_initStationList() {
		
		if ( aStation.length < 2 && aStation.length > 0  ) {
			
			if ( rentalData.sstationname.length == 0 || rentalData.sstationname == "" ){
				selssindex = 0 ;
				rentalData.startstation =  aStation[0].station;
				rentalData.sstationname =  aStation[0].ort+", "+aStation[0].strasse;			
			} 
			
			if ( rentalData.estationname.length == 0 || rentalData.estationname == "" ) 
			{
				selesindex = 0 ;
				rentalData.endstation 	=  aStation[0].station;
				rentalData.estationname =  aStation[0].ort+", "+aStation[0].strasse;			
			} 				
		}
		
		/* Hol Starttion */
		for (cs = 0 ; cs < aStation.length ; cs++ ) {
			// check if Startstation und Abgabstation not empty , then set default value;
			if ( isNaN(selesindex)  ) {
				if (rentalData.endstation == aStation[cs].station) {
					selesindex = cs ;
				}
			}
			
			if ( isNaN(selssindex)  ) {
				if (rentalData.startstation == aStation[cs].station) {
					selssindex = cs;
				}
				reqFilialeSchedule(rentalData.startstation);
				
			}
			//bei manueller startstation(?sstat=station) -> station setzen		
			
			if (UrlParams['sstat'].length>0) {
			    if (UrlParams['sstat'] == aStation[cs].station) {
			    	
			    	rentalData.startstation =  aStation[cs].station;
					rentalData.sstationname =  aStation[cs].name;
					$("#field-startstation").attr("value", aStation[cs].name);
					
					rentalData.endstation =  aStation[cs].station;
					rentalData.estationname =  aStation[cs].ort+", "+aStation[cs].strasse;
					$("#field-endstation").attr("value", aStation[cs].ort+", "+aStation[cs].strasse);		
					Cx9_Cookie_setCookie("startstation" , rentalData.startstation ,365 ) ;
					Cx9_Cookie_setCookie("endstation" , rentalData.startstation ,365 ) ;
					Cx9_Cookie_setCookie("sstationname" , rentalData.sstationname ,365 ) ;
					Cx9_Cookie_setCookie("estationname" , rentalData.estationname  ,365 ) ;
					reqFilialeSchedule(aStation[cs].station);
			    }
		    }							
			if (cs%2 == 1) 
				$('#blockSelStartStation').append("<div id='ssID_"+cs+"' ssid='"+cs+"' class='zeileBoxItemOdd' >"+aStation[cs].ort+", "+aStation[cs].strasse+" </div>") ;
			else
				$('#blockSelStartStation').append("<div id='ssID_"+cs+"' ssid='"+cs+"' class='zeileBoxItem' >"+aStation[cs].ort+", "+aStation[cs].strasse+" </div>") ;
		    
			//Immer die Zeiten holen
			reqFilialeSchedule(rentalData.startstation);
			
			//Events, die in der Stationsliste ausgelöst werden können
			$("div#ssID_"+cs).mouseover( function() {
				$(this).attr("class" , "zeileBoxItemSelect") ;
				$("#pnlStartStationInfo").html(aStation[$(this).attr("ssid")].info) ;				
				
			}).mouseout( function() {
				if (parseInt($(this).attr("ssid"))%2 == 1) 
				$(this).attr("class" , "zeileBoxItemOdd") ;		
				else 
				$(this).attr("class" , "zeileBoxItem") ;		
									   
			}).click(function() {
				if (isStartStation) {
					//prÃ¼ft Station mit Reservierung !!!
					selssindex = parseInt($(this).attr("ssid"),10) ;
					rentalData.startstation =  aStation[$(this).attr("ssid")].station;
					rentalData.sstationname =  aStation[$(this).attr("ssid")].name;
					$("#field-startstation").attr("value", aStation[$(this).attr("ssid")].name);
					
					rentalData.endstation =  aStation[$(this).attr("ssid")].station;
					rentalData.estationname =  aStation[$(this).attr("ssid")].ort+", "+aStation[$(this).attr("ssid")].strasse;
					$("#field-endstation").attr("value", aStation[$(this).attr("ssid")].ort+", "+aStation[$(this).attr("ssid")].strasse);		
					Cx9_Cookie_setCookie("startstation" , rentalData.startstation ,365 ) ;
					Cx9_Cookie_setCookie("endstation" , rentalData.startstation ,365 ) ;
					Cx9_Cookie_setCookie("sstationname" , rentalData.sstationname ,365 ) ;
					Cx9_Cookie_setCookie("estationname" , rentalData.estationname  ,365 ) ;
					reqFilialeSchedule(aStation[$(this).attr("ssid")].station) ;
					refreshScheduleTime();

				}if (isEndStation) {
					selesindex = parseInt($(this).attr("ssid"),10) ;
					rentalData.endstation = aStation[$(this).attr("ssid")].station ;
					rentalData.estationname = aStation[$(this).attr("ssid")].ort+", "+aStation[$(this).attr("ssid")].strasse;
					Cx9_Cookie_setCookie("endstation" , rentalData.endstation ,365 ) ;
					Cx9_Cookie_setCookie("estationname" , rentalData.estationname  ,365 ) ;
					$("#field-endstation").attr("value", aStation[$(this).attr("ssid")].ort+", "+aStation[$(this).attr("ssid")].strasse);
				}
				cx9_hideSelStartStation();
				cx9_refreshFormData();
			});
			
		}
		
	}//cx9_initStationList() end
	
	function cx9_hideSelStartStation() {
		$('#blockSelStartStation').hide("fast");
		$('#pnlStartStationInfo').hide("fast");
		isStartStation = false ;
		isEndStation = false ;
	}
	
	
	/* Datum aus Kalendar holen */ 
	$.datepicker.setDefaults({
		   showOn: 'both',
		   buttonImageOnly: true,
		   buttonImage: './templates/cx9/icon_calender.gif',
		   buttonText: 'Calendar', 
		   showWeeks: true,
		   hideIfNoPrevNext: true,
		   numberOfMonths: 2,
		   minDate:0,
		   navigationAsDateFormat: false,
		   shortYearCutoff: '+3',
		   yearRange: '-10:+3',
		   closeAtTop: false,
		   changeMonth: false,
		   changeYear: false

   	});
	$('#rental-startdate').datepicker( {
			dateFormat: 'dd.mm.yy' ,	
			firstDay: 1
	});
	$('#rental-enddate').datepicker({
			dateFormat: 'dd.mm.yy' ,
			firstDay: 1
	});
		
	/* End: Kalendar */


	/* ////////// Startdatum change ////////// */
	$('#rental-startdate').change(function() {
		
		var strStartDate = $(this).attr("value"); 
		
		if ( checkDataBeforeSubmit("","" ) == false  ) {
			
			var dtStartDay   = parseInt(strStartDate.substring(0,2),10);
			var dtStartMonth = parseInt(strStartDate.substring(3,5),10);
			var dtStartYear  = parseInt(strStartDate.substring(6,10),10);
			var iHourEndDate   = parseInt($('#h-enddate').attr("value"),10 );
			var iMinEndDate    = parseInt($('#m-enddate').attr("value"),10 ) ;
		
			var dtEndDate = new Date(dtStartYear,dtStartMonth-1, dtStartDay+1, iHourEndDate , iMinEndDate  ) ;
			
			rentalData.mietende= fillZeroDate(dtEndDate.getDate())+"."+fillZeroDate(dtEndDate.getMonth()+1)+"."+dtEndDate.getFullYear() ;
			$('#rental-enddate').attr("value" , rentalData.mietende) ;
				
		}
		refreshScheduleTime() ;
		
	}) ;
	
	/* ////////// Endtdatum change ////////// */
	$('#rental-enddate').change(function() { }) ;
	
	/* ////////// Passwort vergessen ////////// */
	$("#btnForgotPassword").click(function(){
		
		var strEmail = $("#fld_login_email").attr("value") ;
		
		if ( strEmail.length == 0 ) {
			alert("Bitte fÃ¼llen Sie erst Ihre korrekte eMail Adresse aus !") ;
			$("#fld_login_email").focus() ;
			return;
		}
		
		if ( isValidEmail(strEmail)) {
			cx9_requestPasswortPerEmail(strEmail) ;
		}
		else {
			alert("Ihr Login eMail existiert nicht ! Bitte geben Ihre korrekte eMail Adresse ein.") ;
			return;
		}
	}); 
	
	/* /////////// Login speichern ////////// */
	 $("#closeSaveLoginInfo").click( function(){
	 		if ( isVariable('CONFIG_CHECK_SC') && CONFIG_CHECK_SC ) {
				$("#popupSaveLogin").hide() ;
				$("#backgroundFilter").hide();
			} 
	 }) ;
	
	/* /////////// Passwort merken ////////// */
	$("#chkbox_login_permanent").click( function(){
		
		if ( $(this).attr("checked")== true ) {
			nd = new Date() ;
			Cx9_Cookie_setCookie("loginemail", $("#fld_login_email").attr("value"),365) ;
			
			if ( isVariable('CONFIG_CHECK_SC') && CONFIG_CHECK_SC ) {
				var password = $("#fld_login_password").attr("value") ;
				if ( password.length > 0  )
					Cx9_Cookie_setCookie("_lp", Base64.encode(password),365 ) ;
				else  Cx9_Cookie_setCookie("_lp", "" ,365 ) ;
				$("#popupSaveLogin").show() ;
				$("#backgroundFilter").show();
			} 

		} else {
			Cx9_Cookie_setCookie("loginemail", "",365) ;
			if ( isVariable('CONFIG_CHECK_SC') && CONFIG_CHECK_SC ) {
				Cx9_Cookie_setCookie("_lp", "",365) ;
			} 
			// deletecookies
		}
	
	});
	
	/* ////////// Startstation Input Click ////////// */
	fld_startstation.click(function(e) {
		if (aStation.length > 0) {
			var position = $(this).offset();
			Cx9_Show_StationList(position);
			isStartStation = true;
		}
		if ( selssindex  < aStation.length ) {
			$("#pnlStartStationInfo").html(aStation[selssindex].info) ;	
		}
	}) ;
	
	/* ////////// Endstation Input Click ////////// */
	fld_endstation.click(function(e) {
		
			if (isVariable('CONFIG_ENDSTATION_SELECTABLE') &&  CONFIG_ENDSTATION_SELECTABLE == false) {
	
			return ;
		}
		
		if (aStation.length > 0) {
			var position = $(this).offset();
			Cx9_Show_StationList(position);
			isEndStation = true;
		}
		if ( selesindex  < aStation.length ) {
			$("#pnlStartStationInfo").html(aStation[selesindex].info) ;	
		}
	}) ;
	
	/* ////////// Endstation Button "Down" Click ////////// */
	btndown_endstation.click(function(e) {
		
		if (isVariable('CONFIG_ENDSTATION_SELECTABLE') &&  CONFIG_ENDSTATION_SELECTABLE == false) {
			return ;
		}
		
			if (aStation.length > 0) {
				if (isEndStation) {
					cx9_hideSelStartStation();
				}
				else {
				
					Cx9_Show_StationList($(fld_endstation).offset());
					isEndStation = true;
				}
			}
			
			if (selesindex < aStation.length) {
				$("#pnlStartStationInfo").html(aStation[selesindex].info);
			}
		
	});
	
	/* ////////// Startstation Button "Down" Click ////////// */
	btndown_startstation.click(function(e) {
		if (aStation.length >0 ) {
			if (isStartStation) {
				cx9_hideSelStartStation();
			}
			else {
				Cx9_Show_StationList($(fld_startstation).offset());
				isStartStation = true;
			}
		}
		if ( selssindex  < aStation.length ) {
			$("#pnlStartStationInfo").html(aStation[selssindex].info) ;	
		}
	});
	
	
	
	/* ////////// Weiter ////////// */
	$("form#frmSubmitS1").submit(function(){

		var strStartDate  = $('#rental-startdate').attr("value") ;
		var strEndDate    = $('#rental-enddate').attr("value");
		
		var iHourStartDate = parseInt($('#h-startdate').attr("value"),10) ;
		var iMinStartDate  = parseInt($('#m-startdate').attr("value"),10) ;
		var iHourEndDate   = parseInt($('#h-enddate').attr("value"),10 );
		var iMinEndDate    = parseInt($('#m-enddate').attr("value"),10 ) ;
		
		
		var isError = checkDataBeforeSubmit(); 
		if (!(isError)) {
			// $("#blockS1Warning").html("Bitte &uuml;pr&uuml;fen Sie Ihr Mietdatum !")	
			alert("Bitte Ã¼berprÃ¼fen Sie Ihr Mietdatum !");
			return false;
		}
		else {			
			
			/* holt alle Daten um zu senden */ 
			$("#frmSubmitS1>#s1_mietbeginn").attr("value", $('#rental-startdate').attr("value")) ;
			$("#frmSubmitS1>#s1_mietende").attr("value", $('#rental-enddate').attr("value")) ;
			
			$("#frmSubmitS1>#s1_startstunde").attr("value", $('#h-startdate').attr("value")) ;
			$("#frmSubmitS1>#s1_startminute").attr("value", $('#m-startdate').attr("value")) ;
			$("#frmSubmitS1>#s1_endstunde").attr("value", $('#h-enddate').attr("value")) ;
			$("#frmSubmitS1>#s1_endminute").attr("value", $('#m-enddate').attr("value")) ;
			
			$("#frmSubmitS1>#s1_login_email").attr("value", $('#fld_login_email').attr("value")) ;
			$("#frmSubmitS1>#s1_login_passwort").attr("value", $('#fld_login_password').attr("value")) ;
			$("#frmSubmitS1>#s1_login_permanent").attr("value", $('#chkbox_login_permanent').attr("checked")) ;
			// alert($('#chkbox_login_permanent').attr("checked")) ;
			// alert($("#frmSubmitS1>#s1_mietbeginn").attr("value"));
			
			if ($("fld_login_email").attr("value").length > 0 || $("fld_login_passwort").length > 0 ) {
				checkCustomerLogin($("fld_login_email").attr("value"),$("fld_login_password").attr("value") );
			}
			else {
				return true;
			}
			
		}
	});
	
	/**
	 * Submit Events
	 */
	$("#submitDataS1").click(function(){
		
		if ( rentalData.startstation.length == 0 || rentalData.endstation.length == 0 ){
			
			alert( "Bitte wÃ¤hlen Sie Ihre Startstation aus ! ") ;
			return false ;
		} 
	
		/** ////////// COOKIE ////////// **/
		if ( isValidEmail($("#fld_login_email").attr("value")) && $("#chkbox_login_permanent").attr("checked")== true ) {
			// Cx9_Cookie_setCookie("loginpermanent",1,365) ;
			Cx9_Cookie_setCookie("loginemail", $("#fld_login_email").attr("value"),365) ;
			
			if ( isVariable('CONFIG_CHECK_SC') && CONFIG_CHECK_SC ) {
					var password = $("#fld_login_password").attr("value") ;
					if ( password.length > 0  )
						Cx9_Cookie_setCookie("_lp", Base64.encode(password),365 ) ;
					else  Cx9_Cookie_setCookie("_lp", "" ,365 ) ;
			}
			
			if ( $("#chkbox_login_permanent").attr("checked")== true ) {
				Cx9_Cookie_setCookie("loginpermanent",1,365) ;
			} else {
				Cx9_Cookie_setCookie("loginpermanent",0,365) ;
				// deletecookies
			}
		
		} else {
			Cx9_Cookie_setCookie("loginemail", "",365) ;
			Cx9_Cookie_setCookie("loginpermanent",0,365) ;
			Cx9_Cookie_setCookie("_lp","",365) ;
			// deletecookies
		}
			
		showPopupWait();
		
		if ($("#fld_login_email").attr("value").length > 0 || $("#fld_login_passwort").length > 0 ) {
	
			checkCustomerLogin($("#fld_login_email").attr("value"),$("#fld_login_password").attr("value") );
		}
		else {
			 
			param = "" ;
			tag = validateData(param) ;
	
			// prÃ¼ft Filiale mit Tresor  
			if (rentalData.login_checked == 0 || isNaN(rentalData.login_checked ) ) {
				if (cx9_isTresorStation(rentalData.startstation) ) {
					//showPopupWait();
					PopupVisible(false) ;
					alert("Die gewÃ¤hlte Startstation kann nur von registrierten Kunden verwendet werden.") ;
					return;
				}
				if (cx9_isTresorStation(rentalData.endstation)) {
					//showPopupWait();
					PopupVisible(false) ;
					alert("Die gewÃ¤hlte Abgabestation kann nur von registrierten Kunden verwendet werden.");
					return;
				}
			}
			
			if ( tag.length > 0  ) {
				// PrÃ¼ft Startstation 
				$.ajax({
					type: "GET",
					url: "./index.php",
					data: "mod=1022&startstation="+rentalData.startstation,
					dataType: "xml",
					global: 'false',
					error: function (XMLHttpRequest, textStatus, errorThrown) {
						debugMsg("submitDataS1::click -> Ajax Fehler, Startstation prÃ¼fen ") ;
					},
					beforeSend: function(xhr){
						xhr.setRequestHeader("Pragma", "no-cache");
	      				xhr.setRequestHeader("Cache-Control", "must-revalidate");
						xhr.setRequestHeader("If-Modified-Since", document.lastModified);
					} ,
					success:  function(data) {	
						
						 if ( $("messages>message", data).length > 0  ) {
							msg = $("messages>message", data).get(0) ;
							switch ($("status" , msg).text() ) {
								case "success" : {
									// submit Data 
									submitDataS1(tag) ;
									break;	
								}
								case "error" : {
									// showPopupWait()  ;
									PopupVisible(false) ;
									alert($("content",msg).text()) ;
									break;
								}
							}
						 }					
					} 
				});

			}
			else {
				PopupVisible(false) ;
				//...Fehler meldung ! 
				// alert(tag) ;
			}
		}
	}) ;
	
	$("div#btnReservCompany").click(function(){
		checkStartStation(tag+"&respriv=0") ;
	});
	
	$("div#btnReservPrivate").click(function(){
		
		// check MinVorlauf
		rentalData.inet_private_using = '1' ; 
		cx9_checkInetMinVorlauf(true) ;
		// rentalData.inet_private_using = '1' ; 
		
	});
	
	function validateData($param) {
		
		var tag = "" ;
		var strStartDate  = $('#rental-startdate').attr("value") ;
		var strEndDate    = $('#rental-enddate').attr("value");
		
		var iHourStartDate = parseInt($('#h-startdate').attr("value"),10) ;
		var iMinStartDate  = parseInt($('#m-startdate').attr("value"),10) ;
		var iHourEndDate   = parseInt($('#h-enddate').attr("value"),10 );
		var iMinEndDate    = parseInt($('#m-enddate').attr("value"),10 ) ;
		
		var frtime = 0 ; 
		var totalHour = 0 ; 
		
		// added 29/10/2009 
		var stDay = strStartDate.substr(0,2) ;
		var stMon = strStartDate.substr(3,2) ;
		var stYear = strStartDate.substr(6,4) ;
		var edDay = strEndDate.substr(0,2) ;
		var edMon = strEndDate.substr(3,2) ;
		var edYear = strEndDate.substr(6,4) ;
		
		var stDate = new Date(stYear, stMon-1, stDay, 0, 0)  ;
		var sched = aSchedule[stDate.getDay()];
		
		if ( iHourStartDate < sched.bthour || iHourStartDate > sched.ethour ) {
			showPopupWait()  ;
			alert("Ihre Mietbeginnzeit liegt ausserhalb der Öffnungszeit [von "+sched.bthour+":"+sched.btmin+" bis "+sched.ethour+":"+sched.etmin+"] !") ;
			return tag;
		}  else {
			
			if ( iHourStartDate == sched.bthour && iMinStartDate < sched.btmin ) {
				showPopupWait()  ;
				alert("Ihre Mietbeginnzeit liegt ausserhalb der Öffnungszeit [von "+sched.bthour+":"+sched.btmin+" bis "+sched.ethour+":"+sched.etmin+"] !") ;
				return tag;
			}
			
			if ( iHourStartDate == sched.ethour && iMinStartDate > sched.etmin ) {
				showPopupWait()  ;
				alert("Ihre Mietbeginnzeit liegt ausserhalb der Öffnungszeit [von "+sched.bthour+":"+sched.btmin+" bis "+sched.ethour+":"+sched.etmin+"] !") ;
				return tag;
			}
		}
				
		// Prüfung, ob Reservierung auch an einem Feiertag gesetzt werden darf
		if (isVariable('CONFIG_RESERV_ON_HOLIDAY') && (!CONFIG_RESERV_ON_HOLIDAY)) {
			if (DatumIsFeiertag(strStartDate, rentalData.startstation)) {
				return tag;
			}
			//if (DatumIsFeiertag(strEndDate, rentalData.endstation)) {
			//    return tag;	
			//}
		}
		
		var isError = checkDataBeforeSubmit();
		
		if (!(isError)) {
			showPopupWait();
			alert("Bitte prÃ¼fen Sie, dass der Mietbeginn vor dem Mietende liegt !") ;
			return tag;
		}
		else {
			if( Cx9_CheckForerunTime() ) {
				tag = "s1_mietbeginn="+escape($('#rental-startdate').attr("value")) ;
				tag += "&s1_mietende="+escape($('#rental-enddate').attr("value")) ;
				tag += "&s1_startstunde="+escape($('#h-startdate').attr("value")) ;
				tag += "&s1_endstunde="+escape($('#h-enddate').attr("value")) ;
	  		    tag += "&s1_startminute="+escape($('#m-startdate').attr("value")) ;
				tag += "&s1_endminute="+escape($('#m-enddate').attr("value")) ;
				tag += "&s1_startstation="+escape(rentalData.startstation);
				tag += "&s1_sstationname="+escape(rentalData.sstationname);
				tag += "&s1_abgabestation="+escape(rentalData.endstation) ;
				tag += "&s1_estationname="+escape(rentalData.estationname);
				// Hier noch die Gruppe mit übergeben, wenn als Parameter gesetzt
				if (UrlParams['grp'].length > 0) {
					tag += "&s1_grp="+escape(UrlParams['grp'].split("=")[0]);	
				}
				return tag;	
			} else {
				// showPopupWait()  ;
				PopupVisible(false) ;
				return tag;
			}
			
		}
	}
	
	
	/* /////////// FUNCTION ////////// */
	function checkDataBeforeSubmit($startdate, $enddate ) {
		
		var strStartDate = $('#rental-startdate').attr("value") ;
		var strEndDate   = $('#rental-enddate').attr("value");
		var iHourStartDate = parseInt($('#h-startdate').attr("value"),10) ;
		var iMinStartDate  = parseInt($('#m-startdate').attr("value"),10) ;
		var iHourEndDate   = parseInt($('#h-enddate').attr("value"),10 );
		var iMinEndDate    = parseInt($('#m-enddate').attr("value"),10 ) ;
		var dtStartDay   = parseInt(strStartDate.substring(0,2),10);
		var dtStartMonth = parseInt(strStartDate.substring(3,5),10);
		var dtStartYear  = parseInt(strStartDate.substring(6,10),10);
		var dtEndDay     = parseInt(strEndDate.substring(0,2),10);
		var dtEndMonth   = parseInt(strEndDate.substring(3,5),10);
		var dtEndYear    = parseInt(strEndDate.substring(6,10),10);
		
		var dtstart = new Date(dtStartYear,dtStartMonth-1, dtStartDay, iHourStartDate, iMinStartDate) ;
		var dtend   = new Date(dtEndYear,dtEndMonth-1, dtEndDay, iHourEndDate, iMinEndDate) ;
		// alert(dtStartDay + " "+dtStartMonth+" "+dtstart.toUTCString());
		if (dtstart.getTime() < dtend.getTime()) {	
			return true;
		}
		else {
			return false;
		}
	}
	
	function submitDataS1(param) {
		// debugMsg("parameter "+param);
		
		$.ajax({
			type: "POST",
			url: "./index.php",
			data: "mod=100&"+param ,
			dataType: "xml",
			global: 'false',
			error: function (XMLHttpRequest, textStatus, errorThrown) {
				debugMsg("submitDataS1() -> Ajax Request Error ! "+textStatus) ;	
				// showPopupWait();	
				PopupVisible(false) ;
			},
			beforeSend: function(xhr){
				xhr.setRequestHeader("Pragma", "no-cache");
  				xhr.setRequestHeader("Cache-Control", "must-revalidate");
				xhr.setRequestHeader("If-Modified-Since", document.lastModified);
			} ,
			success:  function(data) {	
				 if ( $("messages>message", data).length > 0  ) {
					msg = $("messages>message", data).get(0);
					switch ($("status" , msg).text() ) {
						case "success" : {
							if ($("#pnlWrapper").attr("state") == "extern" || $("#pnlRentalStation").attr("state")=="extern" || $("#configStep1").attr("state")=="extern" ) {
								PopupVisible(false) ;
								/*
								// window.open($("content" , msg).text(), 'PopupWindow' ,'channelmode=no , dependent=no,location=no ,status=no ,menubar=no ,directories=no , resizable=no ,toolbar=no ,scrollbars=no ,width=685,height=555');
								if (isVariable('CONFIG_URL_EXTERN_STEP2') && CONFIG_URL_EXTERN_STEP2.length > 0) {
									window.parent.location.replace(CONFIG_URL_EXTERN_STEP2);
								}
								else {
									if ( isVariable('CONFIG_EXTERN_STEP2_PARENT') && CONFIG_EXTERN_STEP2_PARENT )
										window.parent.location.replace($("content" , msg).text(), 'PopupWindow' ,'channelmode=no , dependent=no,location=no ,status=no ,menubar=no ,directories=no , resizable=no ,toolbar=no ,scrollbars=no ,width=685,height=555');
									else 
										window.open($("content", msg).text(), 'PopupWindow', 'channelmode=no , dependent=no,location=no ,status=no ,menubar=no ,directories=no , resizable=no ,toolbar=no ,scrollbars=no ,width=685,height=555');
									
								}
								*/
								replaceKdLocation($("content", msg).text()) ;
							}
							else 
								// window.location.replace($("content", msg).text());
								replaceKdSingleLocation($("content", msg).text()) ;
								
							break;	
						}
						case "error" : { 
							PopupVisible(false) ;
							debugMsg($("content" , msg).text() );
							
							break;
						}
					}
				 } 			
			} 
		});

		
	}
	
	/**
	 * prÃ¼ft Kunden Login Daten 
	 * @param {Object} email
	 * @param {Object} password
	 */
	function checkCustomerLogin(_email,_password) {
		
		param = "email="+_email+"&passwort="+_password ;
		// debugMsg(param) ;
		var reempf  = "" ;
		var inetprivateusing = "" ;
		
		// resultReqCusSpe = reqCustomerSpecial(_email, _password  ); 	
				
		$.ajax({
			type: "POST",
			url: "./index.php",
			data:"mod=500&"+param,
			dataType: "xml",
			global: 'false',
			error: function (XMLHttpRequest, textStatus, errorThrown) {
				debugMsg("checkCustomerLogin() -> Ajax Request Error ! "+textStatus) ;	
				// showPopupWait();
				PopupVisible(false) ;
			},
			beforeSend: function(xhr){
				xhr.setRequestHeader("Pragma", "no-cache");
  				xhr.setRequestHeader("Cache-Control", "must-revalidate");
				xhr.setRequestHeader("If-Modified-Since", document.lastModified);
			} ,
			success:  function(data) {	
				 if ( $("messages>message", data).length > 0  ) {
					msg = $("messages>message", data).get(0);
					switch ($("status" , msg).text() ) {
						case "success" : {
							// debugMsg($("content" , msg).text() ) ;

							// Update Inet_min_Vorlauf 
							UpdateRegCustomerData(_email, _password)  ;
							// rentalData.login_checked = 1 ; 
							
							param = "" ;
							tag = validateData(param) ;
							tagCheckStartStation = tag ;
							
							if ( tag.length > 0 ) {
								
								if ( isVariable('CONFIG_CHECK_REEMPF') && CONFIG_CHECK_REEMPF ) {
									reqCustomerSpecial(_email, _password);
								} 
								else {
									checkStartStation(tag);
								}
							}
							else {
								// data fehler 
								PopupVisible(false) ;
							}
							
							break;	
						}
						case "error" : {
							// Email & Password existiert nicht 
							PopupVisible(false) ;
							alert($("content" , msg).text()) ;
							// check Tresor 
							if (cx9_isTresorStation(rentalData.startstation) ) {
								alert("Die gewÃ¤hlte Startstation kann nur von registrierten Kunden verwendet werden.") ;
								return;
							}
							if (cx9_isTresorStation(rentalData.endstation)) {
								alert("Die gewÃ¤hlte Abgabestation kann nur von registrierten Kunden verwendet werden.");
								return;
							}			
							break;
						}
						
					}
				 } else { 
				 	PopupVisible(false) ;
				 }					
			} 
		});
	}

	
	
	function checkStartStation(param) {
		
		// PrÃ¼ft Startstation 
		$.ajax({
			type: "GET",
			url: "./index.php",
			data: "mod=1022&startstation=" + rentalData.startstation,
			dataType: "xml",
			global: 'false',
			error: function(XMLHttpRequest, textStatus, errorThrown){
				// debugMsg("submitDataS1::click -> Ajax Fehler, Startstation prÃ¼fen ");
				// showPopupWait();
				PopupVisible(false) ;
			},
			beforeSend: function(xhr){
				xhr.setRequestHeader("Pragma", "no-cache");
				xhr.setRequestHeader("Cache-Control", "must-revalidate");
				xhr.setRequestHeader("If-Modified-Since", document.lastModified);
			},
			success: function(data){											
				if ($("messages>message", data).length > 0) {
					msg = $("messages>message", data).get(0);
					switch ($("status", msg).text()) {
						case "success":{
							// submit Data 
							submitDataS1(param);
							break;
						}
						case "error":{
							// showPopupWait();
							PopupVisible(false);
							alert($("content", msg).text());
							break;
						}
					}
				}
				else {
					PopupVisible(false);
				}
			}
		});
		
	}
	
	
	function reqCustomerSpecial(_email, _password ) {
	
		var isCheckCustomerSpecial = false ;
					
		param2 = "em="+Base64.encode(_email)+"&mm="+Base64.encode(_password) ;

		$.ajax({
			type: "GET",
			url: "./index.php",
			data: "mod=1500&"+param2,
			dataType: "xml",
			global: 'false',
			error: function(XMLHttpRequest, textStatus, errorThrown){
				waitProcessAjax = false ;
				debugMsg("submitDataS1::click -> Ajax Fehler, Startstation prÃ¼fen ");
				isRequestCustomerSpecial = false;
				PopupVisible(false) ;
			},
			beforeSend: function(xhr){
				xhr.setRequestHeader("Pragma", "no-cache");
				xhr.setRequestHeader("Cache-Control", "must-revalidate");
				xhr.setRequestHeader("If-Modified-Since", document.lastModified);
			},
			success: function(data){
				if ($("messages>message", data).length > 0) {
					msg = $("messages>message", data).get(0);
					switch ($("status", msg).text()) {
						case "success":{
							PopupVisible(false) ;
							isCheckCustomerSpecial = true ;
							
							var content = $("content", msg).get(0) ;
							
							rentalData.reempf = Base64.decode($("reempf", content).text());
							rentalData.inet_private_using = Base64.decode($("inet_private_using", content).text());		
							
							if ( rentalData.reempf.length > 0 ) {	
								if ( rentalData.inet_private_using == "1") {
									$("div#popupReservationOwner").show() ;
									$("div#backgroundFilter").show() ;
									// Fragen: private ? firma
								} else {
									checkStartStation(tagCheckStartStation+"&respriv=0");
								}
							} else {
								// Wenn REEMpf leer ist, ist immer fÃ¼r privat 
		
								checkStartStation(tagCheckStartStation+"&respriv=1");
								
							}
							
							break;
						}
						case "error":{
							// showPopupWait();
							PopupVisible(false) ;
							alert($("content", msg).text());
							break;
						}
					}
				}
				else {
					isRequestCustomerSpecial = false;
				}
			}
		});			
		
		return isRequestCustomerSpecial ;
	}
	
	// Button DropDown Ã¼ber EndStation Input 
	function addBtnDownStartStation() {
		var position = $(fld_startstation).offset();
		$(btndown_startstation).css("top", position.top+1) ;
		$(btndown_startstation).css("left", position.left+CONFIG_FLD_STATION_SIZE-16) ;
	}
	
	// Button DropDown Ã¼ber EndStation Input
	function addBtnDownEndStation() {
		var position = $(fld_endstation).offset();
		$(btndown_endstation).css("top", position.top+1) ;
		$(btndown_endstation).css("left", position.left+CONFIG_FLD_STATION_SIZE-16) ;
		
	}
	
	function Cx9_Show_StationList(pos) {
		$('#blockSelStartStation').css("top", pos.top+20) ;
		$('#blockSelStartStation').css("left", pos.left) ;
		$('#blockSelStartStation').show(200);
		$('#pnlStartStationInfo').css("top", pos.top+20) ;
		$('#pnlStartStationInfo').css("left", pos.left+305) ;
		if (isVariable('CONFIG_SHOW_STATION_INFO' )) {
			if (CONFIG_SHOW_STATION_INFO )
			$('#pnlStartStationInfo').show(200);
			else $('#pnlStartStationInfo').hide();
		}
		else 
			$('#pnlStartStationInfo').hide();
	}
	
	function Cx9_Compare_Date(startdate, enddate ) {
		if ( iStartDate < iEndDate ) return -1;
		else {
			if ( iEndDate == iStartDate )
			return 0;
			else return 1;
		}
	}

	function Cx9_CheckForerunTime() {
		var strStartDate = $('#rental-startdate').attr("value") ;
		var iHourStartDate = parseInt($('#h-startdate').attr("value"),10) ;
		var iMinStartDate  = parseInt($('#m-startdate').attr("value"),10) ;
		var dtStartDay   = parseInt(strStartDate.substring(0,2),10);
		var dtStartMonth = parseInt(strStartDate.substring(3,5),10);
		var dtStartYear  = parseInt(strStartDate.substring(6,10),10);
		var frtime = 0 ; 
			
		if ( rentalData.inetmv.length > 0 && parseInt(rentalData.inetmv, 10) > 0 ) 
			frtime = parseInt(rentalData.inetmv, 10);	// kunden vorlaufszeit 
		else {
			if (selssindex) {
				frtime = parseInt(aStation[selssindex].forerun,10);	// station vorlaufszeit
			}
		}
		
		// PRIVATE=true und LOGIN=true
		if ( rentalData.inet_private_using=="1" && rentalData.login_checked==1 ) {
			
			frtime = parseInt(aStation[selssindex].forerun,10); 
			if (frtime == 0) {
				if (isVariable('CONFIG_MIN_VORLAUF')) 
					frtime = CONFIG_MIN_VORLAUF;
				else 
					frtime = 1440;
			}
		}


			// debugMsg(frtime) ;
		if ( isNaN(frtime) || frtime == null || frtime == "undefined") {	
			if (isVariable('CONFIG_MIN_VORLAUF') ) 
				frtime = CONFIG_MIN_VORLAUF; 
			else frtime = 1440;
		}
		
		
		var now = new Date() ;
		var forerundate = new Date(now.getFullYear(), now.getMonth() , now.getDate() , now.getHours() , now.getMinutes()+frtime ) ;
		var cdate = new Date(dtStartYear,dtStartMonth-1, dtStartDay, iHourStartDate, iMinStartDate)	 ;			
		// debugMsg(frtime + "|"+forerundate.toLocaleString()+"|#|"+cdate.toLocaleString()+"|") ;
		var totalhour = frtime/60 ; 
		
		if ( forerundate.getTime() < cdate.getTime() ) {
			// debugMsg("CheckForerunTime():true") ;
			return true ;
		} else {
			// debugMsg("CheckForerunTime():false") ;
			showMVConflict(frtime, totalhour) ;
			return false ;
		}
	}
	
	
	function cx9_checkInetMinVorlauf(isPrivat) {
		PopupVisible(false) ;
		
		var addtime = 0 ;
		 
		if ( isPrivat ){
			
			rentalData.inet_private_using = '1' ;
			rentalData.login_checked = true ; 
			
			if (Cx9_CheckForerunTime()) {
				checkStartStation(tag + "&respriv=1");
			} else {
				// showMVConflict(addTime, totalHour) ;
				return; 
			}
		}
	}

	function showMVConflict(mintime, totalHour ) {
		var now = new Date() ;
		var forerundate = new Date(now.getFullYear(), now.getMonth() , now.getDate() , now.getHours() , now.getMinutes()+(mintime) ) ;
		if (isVariable('USER_TEXT_FORERUN') && USER_TEXT_FORERUN.length > 0) {
			
			var strVorlauf = new String(USER_TEXT_FORERUN);
			var dtMin = fillZeroDate(forerundate.getDate()) + "." + fillZeroDate((forerundate.getMonth() + 1)) + "." + forerundate.getFullYear() + " um " + fillZeroDate(forerundate.getHours()) + ":" + fillZeroDate(forerundate.getMinutes());
			
			strVorlauf = strVorlauf.replace(/DATETIME/gi, dtMin);
			strVorlauf = strVorlauf.replace(/FORERUN_HOUR/gi, totalHour);
			// alert(dtMin);
			alert(strVorlauf);
			$("div#popupReservationOwner").hide();
		}
		else {
			$("div#popupReservationOwner").hide();
			alert("Der frÃ¼heste Abfahrtstermin ist " + fillZeroDate(forerundate.getDate()) + "." + fillZeroDate((forerundate.getMonth() + 1)) + "." + forerundate.getFullYear() + " um " + fillZeroDate(forerundate.getHours()) + ":" + fillZeroDate(forerundate.getMinutes()) + "\r\n Bitte wÃ¤hlen Sie eine spÃ¤tere Abfahrtszeit aus. ");
		}
	}
	
	
	/* Wird in Step 2 "Ändern" der abfahrt oder ankunft aufgerufen && hat das ganze nen 
	 * zusätzlichen Header und bilder drum herum, dann diese ausblenden und positionen anpassen */
	if ($("div#pnlWrapper").attr("state") == "extern") {
    	$("div#tPanel").hide();
    	$("div#cPanelR").hide();
    	//$("div#btndown-startstation").attr("style", "top:6px; left:338px");
    	//$("div#btndown-endstation").attr("style", "top:28px; left:338px");
    }
			
	////////// WAIT //////////
	$("#popupWindowWait").hide() ;
	$("#backgroundFilter").hide() ;
	
});	