/**
 * NETVLIES JAVASCRIPTS
 * Authors:
 *   Sebastiaan Smid, Netvlies
 *   Hugo Stijns, Netvlies
 */

var pickupDateChanged =  false;

$(function() {
	switchStylestyle("printc");
	
	if($("#prijsopgaveform input[name=taal]").length > 0 ) {
		var currentLanguage = $("#prijsopgaveform input[name=taal]")[0].value;
	}
	/**
	 * DATE PICKER
	 */ 
	if (currentLanguage == 'en') {
		$.datepicker.setDefaults($.extend($.datepicker.regional['']));
	} else {
		$.datepicker.setDefaults($.extend($.datepicker.regional[currentLanguage]));
	}
	
	var datePickerOptions = {
		dateFormat : "dd/mm/yy",
		minDate : 0,
		maxDate : "+3 Y",
		changeMonth : true,
		changeYear : true,
		showOn: "both",
		buttonImageOnly : true,
		buttonImage : "/img/calculator_ico_kalender.gif"
	};
	
	$("#datum_aanvang_huur").datepicker(
		$.extend(
			datePickerOptions, {
			onClose	: function(){
				try {
					var dayInTime = 86400000;
					var pickupDate = new Date($("#datum_aanvang_huur").datepicker("getDate"));
					var returnDate = new Date($("#datum_einde_huur").datepicker("getDate"));
					var returnMinDate = new Date(pickupDate);
					
					if (!pickupDateChanged) {
						var returnDate = new Date();
						returnDate.setTime(pickupDate.getTime() + 7 * dayInTime);
					}
					
					pickupDateChanged = true;
					
					if (pickupDate > returnDate) {
						returnDate = new Date(pickupDate);
					}
					
					pickupDate.setTime(pickupDate.getTime() * dayInTime );  
				
					$("#datum_einde_huur").datepicker("option", "minDate", returnMinDate);
					$("#datum_einde_huur").datepicker("setDate", returnDate);
					calculeerSubtotaal(currentLanguage);
				} catch (e) { alert(e); }
			}
		})
	);
	$("#datum_einde_huur").datepicker(
		$.extend(
			datePickerOptions, {
			onClose	:  function(){
				calculeerSubtotaal(currentLanguage);
			}
		})
	);
	
	try {
		var newMinDate = new Date($("#datum_aanvang_huur").datepicker("getDate").getDate());
		newMinDate = (newMinDate - new Date().getDate()) + 0;
		$("#datum_einde_huur").datepicker("option", "minDate", newMinDate);
	} catch (e) {
	}
	
	$('[name=aankomsttijd_uur]').change(function(){
		if( $('[name=aankomsttijd_uur]').val() != 'null' && $('[name=aankomsttijd_minuten]').val() == 'null' ){
			$('[name=aankomsttijd_minuten]').val('0');		
		}
	});
	$('[name=inlevertijdstip_uur]').change(function(){
		if( $('[name=inlevertijdstip_uur]').val() != 'null' && $('[name=inlevertijdstip_minuten]').val() == 'null' ){
			$('[name=inlevertijdstip_minuten]').val('0');		
		}
	});
	
	/**
	 * // DATE PICKER
	 */
	
	$('#prijsopgaveform .opties :input').click(function() {
		veranderOpties();
	});
	
	$("#prijsopgaveform table:first select").change(function() {
		taal = document.prijsopgaveform.taal.value;	
		calculeerSubtotaal(taal);
		validateDates();
	});

	$('#prijsopgaveform input[triggercalcsub=true]').change(function() {
		taal = document.prijsopgaveform.taal.value;	
		calculeerSubtotaal(taal);
	//	setDatumNaam();
	});

	$('#merktype').change(function() {
		taal = document.prijsopgaveform.taal.value;	
		wijzigAuto(taal);
	});
	
/*	= BEKENDE KLANT
	----------------------------------------------------*/	
	$("#btn_bekendeklant").click(function() {
		$("#keuze_bekendeklant").css("display", "block");
		$("#NVSopties").css("display", "block");
		switchStylestyle('printb');
		$("#keuze_nieuweklant").css("display", "none");
		$("#carbelangrijktekst").hide();
		$("#carbelangrijktekst").prev("h2").hide();
		
		// form value instellen
		document.prijsopgaveform.soortklant.value = "bekendeklant";
		document.location = '#onderkant';
		
		// GA tag meegeven zodat we kunnen zien dat hij op nieuwe klant heeft geklikt
		pageTracker._setCustomVar(
		      1,             			// This custom var is set to slot #1
		      "Reserveringsformulier",  // The name of the custom varaible
		      "Bekende klant",      	// "Nieuwe klant" of "Bekende klant"
		       2             			// Sets the scope to session-level  
		   );
		pageTracker._trackPageview('/reserveringsformulier/bekende-klant');
		
		return false;	
	});

	
	$("#btn_nieuweklant").click(function() {
		$("#keuze_nieuweklant").css("display", "block");
		$("#NVSopties").css("display", "block");
		switchStylestyle('printa')
		$("#keuze_bekendeklant").css("display", "none");
		$("#carbelangrijktekst").hide();
		$("#carbelangrijktekst").prev("h2").hide();
		
		// form value instellen
		document.prijsopgaveform.soortklant.value = "nieuweklant";
		document.location = '#onderkant';
		
		// GA tag meegeven zodat we kunnen zien dat hij op nieuwe klant heeft geklikt
		pageTracker._setCustomVar(
		      1,             			// This custom var is set to slot #1
		      "Reserveringsformulier",  // The name of the custom varaible
		      "Nieuwe klant",      		// "Nieuwe klant" of "Bekende klant"
		       2             			// Sets the scope to session-level  
		   );
		pageTracker._trackPageview('/reserveringsformulier/nieuwe-klant');

		return false;	
	});



/*	= AANVANG HUUR LOCATIE
	----------------------------------------------------*/	
	$("#locatie_aanvang_huur").change(function() {
		if ($("#locatie_aanvang_huur option:selected")[0].value == 'Elders') {	
			$("#locatie_aanvang_huur_elders").addClass("visible");
		} else {
			$("#locatie_aanvang_huur_elders").removeClass("visible");
			$("#lokatie_aanvang_elders")[0].value = '';
		}
	});

/*	= EINDE HUUR LOCATIE
	----------------------------------------------------*/	
	$("#locatie_einde_huur").change(function() {
		if ($("#locatie_einde_huur option:selected")[0].value == 'Elders') {	
			$("#locatie_einde_huur_elders").addClass("visible");
		} else {
			$("#locatie_einde_huur_elders").removeClass("visible");
			$("#lokatie_einde_elders")[0].value = '';
		}
	});

/*	= BEKENDE KLANT GEGEVENS AANPASSEN
	----------------------------------------------------*/	
	$("#mob_nummer_radios input:radio").click(function() {
		if($("#mob_nummer_radios input:checked")[0].value == 'ja') {
			$("#mob_nummer_changed").addClass("visible");
		} else {
			$("#mob_nummer_changed").removeClass("visible");
		}
	});
	
	$("#adres_radios input:radio").click(function() {
		if($("#adres_radios input:checked")[0].value == 'ja') {
			$("#adres_changed").addClass("visible");
		} else {
			$("#adres_changed").removeClass("visible");
		}
	});
	
	/*
	$("#prijsopgaveform input").change(function () {  
	    data = $("#prijsopgaveform").serialize();
	//    ajax.send(data)  
		$("#calculatorresultaat").load("/ajax/calcresult.php", formdata=data);
	})
	*/
	
	/**
	 * Meten van laatste form actie 
	 */	 	
	if ($("#prijsopgaveform").length) {
		var latest_action = 'default';
		var latest_element = 'default';
		var form_submitted = false;	
		
		$("#prijsopgaveform").find("input,select,textarea")
			.focus(function(e) {
				latest_action = 'focus';
				latest_element = $(this).attr('name');
			})
			.change(function() {
				latest_action = 'change';
				latest_element = $(this).attr('name');
			});
		
		$("#prijsopgaveform").submit(function() {
			form_submitted = true;
		});
			
		$(window).unload(function() {
			if (!form_submitted) {
				if (typeof pageTracker == 'object') {
					pageTracker._trackEvent('prijsopgaveform latest', latest_action, latest_element);
				}
			}
		});
	};
	
});


/* Prijsopgave & Reservering */
function validateDates() {
	return;
	var fromDay = $("#datum_aanvang_huur_dag").val();
	var fromMonth = $("#datum_aanvang_huur_maand :selected").val();
	var fromYear = $("#datum_aanvang_huur_jaar :selected").val();
	if (fromDay > 0 &&
			fromMonth > 0 &&
			fromYear > 0) {
		var dateFrom = new Date(fromYear, fromMonth - 1, fromDay);
	}
		
	var tillDay = $("#datum_einde_huur_dag").val();
	var tillMonth = $("#datum_einde_huur_maand :selected").val();
	var tillYear = $("#datum_einde_huur_jaar :selected").val();
	if (tillDay > 0 &&
			tillMonth > 0 &&
			tillYear > 0) {
		var dateTill = new Date(tillYear, tillMonth - 1, tillDay);
	}
	dump = dateTill;
	
	if ((dateFrom !== null && dateTill !== null) && (dateTill < dateFrom)) {
		$.alerts.alert("Datum einde huur kan niet voor datum aanvang huur liggen.", "Datum einde huur");
	}
}

function calculeerSubtotaal(taal) {
	validateDates();
	formData = $("#prijsopgaveform").serialize();
	$("#calculatorresultaat_subtotaal").load("/ajax/prijsopgave.php", {formData: formData, formpart: "subtotaal", taal: taal});
	$("#discount_sticker").load("/ajax/discountsticker.php", {formData: formData, formpart: "subtotaal", taal: taal});
	calculeerOpties(taal);
};

function calculeerOpties(taal) {
    formData = $("#prijsopgaveform").serialize();
	// opties
	$("#kinderzitjeprijs").load("/ajax/prijsopgave.php", {formData: formData, formpart: "kinderzitje", taal: taal});
	$("#babyzitjeprijs").load("/ajax/prijsopgave.php", {formData: formData, formpart: "babyzitje", taal: taal});

	$("#boosterprijs").load("/ajax/prijsopgave.php", {formData: formData, formpart: "booster", taal: taal});
	$("#tomtomprijs").load("/ajax/prijsopgave.php", {formData: formData, formpart: "tomtom", taal: taal});
	$("#sneeuwkettingenprijs").load("/ajax/prijsopgave.php", {formData: formData, formpart: "sneeuwkettingen", taal: taal});
	$("#winterbandenprijs").load("/ajax/prijsopgave.php", {formData: formData, formpart: "winterbanden", taal: taal});
	$("#italiespanjeprijs").load("/ajax/prijsopgave.php", {formData: formData, formpart: "italiespanje", taal: taal});

  $("#calculatorresultaat_optiestotaal").load("/ajax/prijsopgave.php", {formData: formData, formpart: "optiestotaal", taal: taal});

	calculeerTotaal(taal);
}
/*
function setDatumNaam() {
	var aanvang_huur_dag = $("#datum_aanvang_huur_dag").val();
	var aanvang_huur_maand = $("#datum_aanvang_huur_maand :selected").val();
	var aanvang_huur_jaar = $("#datum_aanvang_huur_jaar :selected").val();
	var aanvang_huur_dag_txt = geefDatumNaam(aanvang_huur_dag, aanvang_huur_maand, aanvang_huur_jaar, 'dag');
	dump = aanvang_huur_dag_txt;
	
	var einde_huur_dag = $("#datum_einde_huur_dag").val();
	var einde_huur_maand = $("#datum_einde_huur_maand :selected").val();
	var einde_huur_jaar = $("#datum_einde_huur_jaar :selected").val();
	var einde_huur_dag_txt = geefDatumNaam(einde_huur_dag, einde_huur_maand, einde_huur_jaar, 'dag');
	
	if(aanvang_huur_dag != '' && aanvang_huur_maand != '') {
		$("#datum_aanvang_huur_dag_txt").text(aanvang_huur_dag_txt);
	}
	if(einde_huur_dag != '' && einde_huur_maand != '') {
		$("#datum_einde_huur_dag_txt").text(einde_huur_dag_txt);
	}
}
*/
function geefDatumNaam(dag, maand, jaar, soort) {
	switch(soort){
		case 'dag':
		  date_format = 'DD';
		  break;    
		case 'maand':
		  date_format = 'MM';
		  break;
		case 'jaar':
		  date_format = 'YY';
		  break;
		default:
		  date_format = 'DD';
	}
	
	var naamDatum = $.datepicker.formatDate(date_format, new Date(jaar, maand - 1, dag), {dayNamesShort: $.datepicker.regional.dayNamesShort, dayNames: $.datepicker.regional.dayNames, monthNamesShort: $.datepicker.regional.monthNamesShort, monthNames: $.datepicker.regional.monthNames});
	if(naamDatum == 'undefined'){
		naamDatum = '';
	}	
	return naamDatum;
}

function calculeerTotaal(taal) {
	var formData = $("#prijsopgaveform").serialize();
	// totaal
	$.post("/ajax/prijsopgave.php", {formData: formData, formpart: "totaalprijs", taal: taal},
		function(data){
		$("#calculatorresultaat_totaal").html(data);
		$("#calculatorresultaat_totaal_2").html(data);
	});
	
	//$("#calculatorresultaat_totaal").
}

function wijzigAuto(taal) {
	thisId = document.prijsopgaveform.merktype.options[document.prijsopgaveform.merktype.selectedIndex].value;
	$("#carimg").load("/ajax/carinfo.php", {id: thisId, show: "thumbnail", taal: taal});
	$("#carinfo").load("/ajax/carinfo.php", {id: thisId, show: "info", taal: taal});
	$("#carbelangrijktekst").load("/ajax/carinfo.php", {id: thisId, show: "belangrijktekst", taal: taal});
	// meegeven of winterbanden gechecked staat bij het ajax updaten
	if (document.prijsopgaveform.winterbanden) {
		winterbandenchecked = (document.prijsopgaveform.winterbanden.checked?"on":"off");
	} else {
		winterbandenchecked = "off";
	}
	$("#winterbandendiv").load("/ajax/carinfo.php", {id: thisId, show: "winterbanden", taal: taal, winterbandenchecked:winterbandenchecked});
	// als winterbanden niet mogelijk zijn, zorgen dat sneeuwkettingen niet disabled staan
	
	if (document.prijsopgaveform.sneeuwkettingen) {
		document.prijsopgaveform.sneeuwkettingen.disabled = false;
	}
	
	
	// geeft eventueel de toegevoegde tomtom melding weer
	geefTomTomMelding();
	
	calculeerSubtotaal(taal);
}

function veranderOpties() {
	taal = document.prijsopgaveform.taal.value;
	
	// controle of winterbanden aanstaat, dat sneeuwkettingen niet ook aan kunnen
	if (document.prijsopgaveform.winterbanden) {
		if (document.prijsopgaveform.winterbanden.checked) {
			document.prijsopgaveform.sneeuwkettingen.checked = false;
			document.prijsopgaveform.sneeuwkettingen.disabled = true;
		}
	}

	// dropdown selectboxen weergeven wanneer de daarbij horende checkboxen aangevinkt zijn
	document.getElementById("aantal_kinderzitjes").style.display = (document.prijsopgaveform.kinderzitjes.checked?'inline':'none');
	document.getElementById("aantal_babyzitjes").style.display = (document.prijsopgaveform.babyzitjes.checked?'inline':'none');
	document.getElementById("aantal_boosters").style.display = (document.prijsopgaveform.boosters.checked?'inline':'none');

	//alert(document.prijsopgaveform.sneeuwkettingen.checked);
	
	// geeft eventueel de toegevoegde tomtom melding weer
	geefTomTomMelding();
	
	calculeerOpties(taal);
}

function veranderWinterbanden() {
	// functie wordt alleen aangeroepen door de winterbanden checkbox, als deze aan gaat moet de sneeuwkettingen optie disabled worden
	if (document.prijsopgaveform.winterbanden.checked) {
		document.prijsopgaveform.sneeuwkettingen.checked = false;
		document.prijsopgaveform.sneeuwkettingen.disabled = true;
	} else {
		document.prijsopgaveform.sneeuwkettingen.disabled = false;
	}	
	//alert(document.prijsopgaveform.winterbanden.checked);
	veranderOpties();
}

var message;

function geefTomTomMelding() {
	// wanneer tomtom geselecteerd is in combinatie met de ford C-Max (id 11) moet er een specifieke melding verschijnen
	thisAutoId = document.prijsopgaveform.merktype.options[document.prijsopgaveform.merktype.selectedIndex].value;
	
	setTomtomMelding(thisAutoId);
	$("#tomtom").removeAttr("disabled");
	
	if ((thisAutoId == "11" || thisAutoId == "6" || thisAutoId == "2")
			&& document.prijsopgaveform.tomtom.checked) {
		showTomtomMessage();
	
	} else {
		hideTomtomMessage();
		
	}
}

function setTomtomMelding(carId) {
	$("#tomtommelding").load("/ajax/carinfo.php", {
		id: carId,
		show: "get_tomtom_message",
		taal: taal
	});
}

function showTomtomMessage() {
	$("#tomtommelding").show();
}

function hideTomtomMessage() {
	$("#tomtommelding").hide();
}

function initCalc() {
	taal = document.prijsopgaveform.taal.value;	
	
	wijzigAuto(taal);
	veranderOpties();
}

function printReservation() {
	window.print();
	return false;
}


