/** Global **/
    var isSubmitted = false;


    function changeLandRegion() {
		var index = document.getElementById("idSelectCountryRegion").selectedIndex;
		disableFieldsLandRegion();
		if(index != -1 && index != 0) {
			fillAnmietortRueckgabeortSelektoren();
		}
	}
	
	function fillAnmietortRueckgabeortSelektoren() {
		var index = document.getElementById("idSelectCountryRegion").selectedIndex;
		var regionCode = document.getElementById("idSelectCountryRegion").options[index].value;
		toStep.regionCode = regionCode;
		EventsPageImpl.getPickupDropoffLists(toStep, {
			callback:function(page) {
				handleLokationensListen(page);
				}
			});
	}
	
	function handleLokationensListen(page) {
		var selektor1 = document.getElementById("idSelectAnmietort");
	  	var selektor2 = document.getElementById("idSelectRueckgabeort");
	
		selektor1.options.length = 0;
		selektor2.options.length = 0;
	
	  	for (var i=0; i<page.pickUpLocations.length; i++) {
	 		selektor1.options[i] = new Option(page.pickUpLocations[i].locationName, page.pickUpLocations[i].cityId);
	 	}
	  	for (var i=0; i<page.dropOffLocations.length; i++) {
	 		selektor2.options[i] = new Option(page.dropOffLocations[i].locationName, page.dropOffLocations[i].cityId);
	 	}
	 	selektor1.disabled = false;
		selektor2.disabled = false;
	}
	
	function showAngebotsseite(urlAktion, kalendarId) {

        if (isSubmitted || areInputFieldsNotSet()) {
			return;
		} else {
			// das Datum und die Uhrzeit aus den Feldern holen
		  	var selektor1 = document.getElementById("idSelectAnmietort");
		  	var selektor2 = document.getElementById("idSelectRueckgabeort");
			var knopf = document.getElementById("idSuchen");
			var index = document.getElementById("idSelectCountryRegion").selectedIndex;
			var landRegionId = document.getElementById("idSelectCountryRegion").options[index].value;
	
			toStep.cityIdPickUp = selektor1.options[selektor1.selectedIndex].value;
			toStep.cityIdDropOff = selektor2.options[selektor2.selectedIndex].value;

            duration.fromDate = dijit.byId(kalendarId).getStartDate();
			duration.toDate = dijit.byId(kalendarId).getEndDate();

			var mietdauerVonZeit = new Date(dijit.byId('idMitdauerVonZeit').getValue());
			var mietdauerBisZeit = new Date(dijit.byId('idMitdauerBisZeit').getValue());
	
			duration.fromDate.setHours(mietdauerVonZeit.getHours());
			duration.toDate.setHours(mietdauerBisZeit.getHours());
			var divError = document.getElementById("errorBox");

			if(duration.fromDate.getTime() < new Date().getTime()){
				toggleError( 'block', "Der Anmiettermin liegt in der Vergangenheit." );
				return;
            } else if(duration.toDate.getTime() < new Date().getTime()){
                toggleError( 'block', "Der Abgabetermin liegt in der Vergangenheit." );
                return;
            } else if(duration.toDate.getTime() - duration.fromDate.getTime() < 0) {
                toggleError( 'block', "Der Abgabetermin liegt vor dem Anmiettermin." );
                return;
            } else if(duration.toDate.getTime() - duration.fromDate.getTime() < 86400000) {
                toggleError( 'block', "Die Mietdauer betr&auml;gt weniger als 24 Stunden. Bitte geben Sie mindestens 1 Tag als Mietdauer ein, auch wenn Sie den Wagen weniger als 1 Tag anmieten m&ouml;chten." );
				return;
			} else {
				toggleError( 'none', "" );
			}
		}
	
		toStep.duration = duration;

		
		var paramString = urlAktion + ".action?";
		paramString = setParameterPair(paramString, 'step.regionCode', toStep.regionCode);
		paramString = setParameterPair(paramString, 'step.cityIdPickUp', toStep.cityIdPickUp);
		paramString = setParameterPair(paramString, 'step.cityIdDropOff', toStep.cityIdDropOff);
		paramString = setParameterPair(paramString, 'step.duration.fromDate', toStep.duration.fromDate.valueOf());
		paramString = setParameterPair(paramString, 'step.duration.toDate', toStep.duration.toDate.valueOf());
	
		var selektorTest = document.getElementById("idSelectAnmietort");

		var daten = "";
		
		daten += getToStepFeldAsString(toStep.regionCode);
		daten += getToStepFeldAsString(toStep.cityIdPickUp);
		daten += getToStepFeldAsString(toStep.cityIdDropOff);
		
		daten += getToStepFeldAsString(duration.fromDate);
		daten += getToStepFeldAsString(duration.toDate);
		//saveState(daten);
        isSubmitted = true;
        document.getElementById("idPreisAnzeigen").className = 'coGrey2';


		window.location.href = paramString;
	}
	
	function anmietortChanged() {
		var selektor1 = document.getElementById("idSelectAnmietort");
		var selectedValue = selektor1.value;	
		
		var selektor2 = document.getElementById("idSelectRueckgabeort");
	
		setSelectedValue(selectedValue, selektor2);
	}
	
	function setSelectedValue(selectedValuePickUp, selector2){
		for(var i = 0; i < selector2.options.length; i++) {
	     	if (selector2.options[i].value == selectedValuePickUp) {
	     		selector2.options[i].selected = "selected";
	     	}
	   	}
	}
	
	function areInputFieldsNotSet() {
		var test = false;
		var test1 = false;
		var test2 = false;
	
	  	var selektor1 = document.getElementById("idSelectAnmietort");
	  	var selektor2 = document.getElementById("idSelectRueckgabeort");
		var knopf = document.getElementById("idSuchen");
		var index = document.getElementById("idSelectCountryRegion").selectedIndex;
		var landRegionId = document.getElementById("idSelectCountryRegion").options[index].value;
	
		test1 = index == -1 || selektor1.selectedIndex == -1 || selektor2.selectedIndex == -1;
		test2 = index == 0 || selektor1.selectedIndex == 0 || selektor2.selectedIndex == 0;
	
		test = test1 || test2;
	
		if(test) {
            toggleError( 'block', "Bitte w&auml;hlen Sie ein Land/Region und oder Stationen aus" );

        } else {
            toggleError( "none", "" )  ;
		}
		return test;
	}
	
	function disableFieldsLandRegion() {
		setEnableField("idSelectAnmietort", true);
	  	setEnableField("idSelectRueckgabeort");
	}
	
	
	function setEnableField(elementId, isDisabled) {
		var element = document.getElementById(elementId);
		element.disabled = isDisabled;
		
		if(isDisabled) {
			element.options.length = 1;
		}
	}
	
	function showAbgabeOrtSelektor() {
		var checkboxAbgabeort = document.getElementById("idCheckboxAbgabeort");
		var element = document.getElementById("idSelectRueckgabeort");
		if(checkboxAbgabeort.checked) {
			element.style.display='block';
		} else {
			element.style.display='none';
		}
	}