//=====   POSITIONIERUNG DES INFOFENSTER (DIV TAG) =============================>

wmtt = null;

document.onmousemove = updateWMTT;

function updateWMTT(e) {
	try {
		x=(document.all) ? window.event.x + document.documentElement.scrollLeft + document.getElementsByTagName("div")[1].scrollLeft: e.pageX; 
		y=(document.all) ? window.event.y + document.documentElement.scrollTop + document.getElementsByTagName("div")[1].scrollTop: e.pageY;
		if (wmtt != null) {
		
		}
	}
	catch(e) { }

}


function showWMTT(id) {
	wmtt = document.getElementById(id);
	wmtt.style.display = "block"
}

function hideWMTT() {
	wmtt.style.display = "none";
}

//////////////////////////////////////////////////////////////
function Numsort (a, b) {
  return a - b;
}

function berechnePreise(){

	Array.prototype.array_add = function() {
		return eval(this.join("+"));
	}
	
	var Versicherung = document.getElementsByName("versicherung")[0];
	var Radwegekarte = document.getElementsByName("radwegekarte")[0];
	var Anlieferung	 = document.getElementsByName("deliver")[0];
	var Abholung	 = document.getElementsByName("pickup")[0];

	var gesamtbikes = 	0;
	var gesamtpreis = 	0;
	var rabatt		=	0;
	var ids 		= 	document.getElementsByName("bike_id");
	
	/* Rabatte */
	var rabatte 		= new Array();
	var rabattanzeige 	= document.getElementsByName("rabattanzeige");
	var show_rabatt 	= document.getElementById("show_rabatt");
	
	var zubehoer = 0;

	show_rabatt.innerHTML	=	"";
	rabattanzeige[0].value	=	"";

	


	for(var i=0;i< ids.length;i++){
		
		var id= ids[i].value;
		
		///////////////////////////////////////////////////////////////////////////////
		//////////////             Datumsberechnung
		///////////////////////////////////////////////////////////////////////////////
		var datumsfeld_von 		= 	document.getElementsByName("date_von")[0];
		var grundpreis 			= 	document.getElementById("tagespreis["+id+"]");
		var datumsfeld_bis 		= 	document.getElementsByName("date_bis")[0];
		var rabattfelder 		= 	document.getElementsByName("rabatt");
		var date_von 			= 	datumsfeld_von.value.split(".");
		var date_bis 			= 	datumsfeld_bis.value.split(".");
		var versicherung_gesamt = 	document.getElementById("versicherung_gesamt");
		var karte_gesamt 		= 	document.getElementById("karte_gesamt");
		var deliver_gesamt		=	document.getElementById("deliver_gesamt");
		var pickup_gesamt		=	document.getElementById("pickup_gesamt");
		
		var datum_von	=	new Date(date_von[2],(date_von[1]-1),date_von[0]);
		var datum_bis	=	new Date(date_bis[2],(date_bis[1]-1),date_bis[0]);
		
		var ms=(datum_bis.getTime() - datum_von.getTime());
		var Tage = Math.floor((ms / (1000 * 60 * 60 * 24)+1));
		var minTage = document.getElementsByName("mintage")[0].value;

		if(Tage<=0 ){
			alert("Bitte geben Sie einen gültigen Zeitraum an!");
			return(false);
		}//end if
			
		if(Tage < minTage){
			alert("Die Mindestmietdauer beträgt " + minTage + " Tage!");
			return(false);
		}//if	

		///////////////////////////////////////////////////////////////////////////////
		//////////////             Einzelberechnung
		///////////////////////////////////////////////////////////////////////////////
		var anzahl 		= document.getElementsByName("anzahl["+id+"]")[0];
		var preisfeld 	= document. getElementById("preise["+id+"]");
		var Bikepreis 	= document. getElementsByName("preis["+id+"]")[0];
		var Bikerabatt 	= document. getElementsByName("einzelrabatt["+id+"]")[0];
		var einzelpreis = anzahl.value*(grundpreis.firstChild.nodeValue*Tage);
		var bezeichnung = "Stk";
	
		preisfeld.innerHTML = "Preis für "+Tage+" Tage: "+einzelpreis.toFixed(2)+" € ("+anzahl.value+" "+bezeichnung+")";
		 
		Bikepreis.value=einzelpreis;
		
		gesamtbikes +=  parseInt(anzahl.value);
		
		///////////////////////////////////////////////////////////////////////////////
		//////////////             Versicherung
		///////////////////////////////////////////////////////////////////////////////
		if (Versicherung.checked == true){
		//var ohneverspflich = new Array(62,63,64,65,75);
		
			if(id==62 || id==63 || id==64 || id==65 || id==72  ){
			
				gesamtbikes = gesamtbikes - parseInt(anzahl.value);
				zubehoer += parseInt(anzahl.value);
	
			}//end if
			
			
			
			var versicherungspreis = (1.5 * Tage)*parseInt(gesamtbikes);
			var versicherungspreis = (parseFloat(Versicherung.value) * Tage)*parseInt(gesamtbikes);
			
			versicherung_gesamt.innerHTML = versicherungspreis +" €";
			
		}//end if
		else{
			var versicherungspreis = 0;
			versicherung_gesamt.innerHTML = 0 +"€";
		}//end else
		
		///////////////////////////////////////////////////////////////////////////////
		//////////////             Gesamtberechnung
		///////////////////////////////////////////////////////////////////////////////
		gesamtpreis= gesamtpreis + einzelpreis;	 
	
		//////////////Rabatte von JSON auslesen und in berechnung einbeziehen falls vorhanden
		var moegRabatt = document.getElementById("moegRabatt["+id+"]");
		moegRabatt.nodeValue="keine Rabattierung für diesen Zeitraum";
	
		//gucken ob für das Fahrrad Rabatte mitgeliefert wurden
		with(eval(rabattfelder[i].value)){
			var summeRabatte=0;
			var day= from_day.split(", ");  
			var prozente= percent.split(", ");  
			day.sort(Numsort);
			prozente.sort(Numsort);
			var index=0;
			for(var j=0;j<day.length;j++){
				
				//wenn der From_day der Rabatte mit den eingegebenen Tagen übereinstimmt
				if(Tage>=day[j]){
					
					var test= day[j];
					index=j;
					
				}//end if
				
			}// end for
			
			if(test>0){
				percent = prozente[index];
				rabatte[i] =einzelpreis /100 * percent;
				var rabattstr = "- "+rabatte[i].toFixed(2)+"€";
				moegRabatt.innerHTML="- "+(einzelpreis /100 * percent).toFixed(2)+"€";
				show_rabatt.innerHTML+=rabattstr+"<br>";
				Bikerabatt.value=rabatte[i].toFixed(2);
			}//end if
			else{
				moegRabatt.innerHTML="keine Rabattierung für diesen Zeitraum";
			}//end else
		
			if(rabatte==""){
				summeRabatte=0;
				show_rabatt.innerHTML="";
			}// end if
					
			//wenn rabatte nicht leer, dann das array zu Gesamtrabatt addieren
			else{
				
				for(var a = 0; a<rabatte.length; a++){
					
						if(typeof(rabatte[a]) != 'undefined'){
							
								summeRabatte +=rabatte[a];

						}//end if
							
					}//end for
						
				}// end else
			
		}//end with
		
	}//end for
	
	
	///////////////////////////////////////////////////////////////////////////////
	//////////////             Radwegekarte
	///////////////////////////////////////////////////////////////////////////////
	if (Radwegekarte.checked == true){

	
		var radwegepreis = parseFloat(3.30);
		var radwegepreis = parseFloat(Radwegekarte.value);
		
		karte_gesamt.innerHTML = radwegepreis.toFixed(2) +" €";
		var karte_gebucht = 1;
		
	}//end if
	else{
		var radwegepreis = 0;
		karte_gesamt.innerHTML = 0 +" €";
		var karte_gebucht = 0;
	}//end else
	
	
	/*
	gesamtpreis= gesamtpreis+versicherungspreis+radwegepreis;
	rabattanzeige[0].value+=summeRabatte.toFixed(2);
	berechneEndpreis((gesamtbikes+zubehoer),gesamtpreis,summeRabatte,versicherungspreis,karte_gebucht);
	*/
	
	////////////////////////////
	/// Anlieferung/Abholung ///
	///////////////////////////
	var anlieferungpreis = 0.00;
	var deliver_gebucht  = 0;
	var abholungpreis	 = 0.00;
	var pickup_gebucht	 = 0;
	
	if(Anlieferung.checked == true){
		var anlieferungpreis 		= parseFloat(Anlieferung.value);
		var deliver_gebucht 		= 1;
		deliver_gesamt.innerHTML 	= anlieferungpreis.toFixed(2) +" €";	
	}//if
	
	
	if(Abholung.checked == true){
		var abholungpreis 			= parseFloat(Abholung.value);
		var pickup_gebucht 			= 1;
		pickup_gesamt.innerHTML 	= abholungpreis.toFixed(2) +" €";
	}//if
	
	if(Anlieferung.value > 0.00 || Abholung.value > 0.00){
		document.getElementById("liefern").checked 			=	"";
		document.getElementById("liefern").disabled 		=	"disabled";
		document.getElementById("selbstabholen").checked 	=	"checked ";
		document.getElementById("selbstabholen").disabled 	=	"";
	}//if
	
	if(anlieferungpreis > 0.00 || abholungpreis > 0.00){
		document.getElementById("liefern").checked 			=	"checked";
		document.getElementById("liefern").disabled 		=	"";
		document.getElementById("selbstabholen").checked 	=	"";
		document.getElementById("selbstabholen").disabled 	=	"disabled";
	}//if

	
	

	gesamtpreis = gesamtpreis+versicherungspreis+radwegepreis+anlieferungpreis+abholungpreis;
		
	/////////////////
	/// Bonuscode ///
	/////////////////
	var bonus = 0;
	
	if(document.getElementsByName("bonuscode").length == 2){	

		document.getElementsByName("bonuscode")[1].style.border = "";	
	
		if(document.getElementById("gutscheinaktion")){
			document.getElementById("gutscheinaktion").innerHTML = "";	
		}

		if(gesamtpreis > 25.00){
		
			if(document.getElementsByName("bonuscode").length == 2){
			
				if(document.getElementsByName("bonuscode")[0].value == document.getElementsByName("bonuscode")[1].value){	
				
					bonus = document.getElementsByName("bonusvalue")[0].value
					document.getElementById("gutscheinaktion").innerHTML =  "-" + bonus;
			
				}//if
			
		
				if(document.getElementsByName("bonuscode")[1].value.length > 0){
			
					if(document.getElementsByName("bonuscode")[0].value != document.getElementsByName("bonuscode")[1].value){
					
						document.getElementsByName("bonuscode")[1].style.border = "solid 1px #ff0000";
				
					}	
				}	
			
			}//if
	
		}//if

	}//if

	rabattanzeige[0].value+=summeRabatte.toFixed(2);
	berechneEndpreis((gesamtbikes+zubehoer),gesamtpreis,summeRabatte,versicherungspreis,karte_gebucht,deliver_gebucht,pickup_gebucht, bonus);
	
	
}// end function berechnePreise

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* Alle Daten in das Formular und die hidden-Felder zur Übergabe speichern  */
function berechneEndpreis(gesamtbikes,gesamtpreis,summeRabatte,versicherungspreis,karte_gebucht,deliver_gebucht,pickup_gebucht, bonus){
	

	

	var bonus_hi 			= document.getElementsByName("bonus_hidden")[0];
	var anzahl_gesamt_hi 	= document.getElementsByName("anzahl_gesamt_hidden")[0];
	var gesamt_hi 			= document.getElementsByName("gesamt_hidden")[0];
	var end_hi 				= document.getElementsByName("end_hidden")[0];
	var mwst_hi 			= document.getElementsByName("mwst_hidden")[0];
	var radwegekarte_hi 	= document.getElementsByName("radwegekarte_hidden")[0];
	var deliver_hi 			= document.getElementsByName("deliver_hidden")[0];
	var pickup_hi 			= document.getElementsByName("pickup_hidden")[0];
	var vers_gesamt_hi 		= document.getElementsByName("vers_gesamt_hidden")[0];
	var anzahl_gesamt 		= document.getElementById("anzahl_gesamt");
	var gesamt 				= document.getElementById("gesamt");
	var end 				= document.getElementById("end");
	var mwst 				= document.getElementById("mwst");
	var endpreis			= gesamtpreis-summeRabatte-bonus;
	
	
	anzahl_gesamt_hi.value 				= gesamtbikes;
	anzahl_gesamt.firstChild.nodeValue 	= gesamtbikes;
	
	vers_gesamt_hi.value	=	versicherungspreis;
	radwegekarte_hi.value	=	karte_gebucht;
	deliver_hi.value		=	deliver_gebucht;
	pickup_hi.value			=	pickup_gebucht;
	bonus_hi.value				=	bonus;


	gesamt_hi.value 			= gesamtpreis.toFixed(2);
	gesamt.firstChild.nodeValue = gesamtpreis.toFixed(2)+" €";
	
	end_hi.value = endpreis.toFixed(2);
	end.firstChild.nodeValue = endpreis.toFixed(2)+" €";
	
	mwst_hi.value=(endpreis-(endpreis/1.19)).toFixed(2);
	mwst.firstChild.nodeValue = (endpreis-(endpreis/1.19)).toFixed(2) +" €";
	

}// end function berechneEndpreis

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* Kommentar  */
function checkForm(action){

	switch(action){
		
		case 'getPrice': getPrice(); 
		               break;
					   
		case 'goBack': showBikes(); 
		               break;
		
		case 'noBikes': noBikes(); 
		               break;
					  
		default: return(false); 
		
	} //end switch

	return(true); 

} //end function checkFormular
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*  übergibt beim Klick auf "Ausliehrabatt ändern" den operation value */					
function getPrice(){
	
	var form = document.getElementById("choose_bikes");
	var inputs = form.getElementsByTagName("input");
	var check=0;
	
	for (var i=0;i<inputs.length;i++){
		
		if(inputs[i].type=="checkbox"){
			
			if(inputs[i].checked == true){
				check++;
			}//end if
		}//end if
	}//end for
	if(check>0){
	
		form.include.value = "pricing";
	    form.submit();
		
	}//end if
	else{
		alert("Bitte mindestens ein Fahrrad auswählen");
	}
		
}// end function getPrice

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* Kommentar  */
function entferneBike(Value){
	
	var form = document.getElementById("preisberechnung"); 

	form.include.value 		= "pricing";
	form.deleteId.value		=  Value;	
	form.operation.value 	= "entferneBike";
	form.submit();
	
}// end function getPrice  

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* Kommentar  */
function checkFormOnBlur(Values){

	var form = document.getElementById("preisberechnung");
	var ids  = document.getElementsByName("bike_id");
	
	var inpAnz = new Array();
	var inpAnzAusgefuellt = 0;
	
	var sp= document.getElementsByTagName("input");
	
	for(var j=0;j<sp.length;j++){
		if(sp[j].name.indexOf("anzahl[")!=-1) {
			
			inpAnz.push(sp[j]);
			
			if(sp[j].value != "") {	
				inpAnzAusgefuellt++;
			}//end if
		}//end if
	}	//end for
	
	if(inpAnzAusgefuellt == inpAnz.length) {
		
		if(!form.date_von.value || !form.date_bis.value){
			return false;
			
		}//end if
		else{
			berechnePreise(Values);
		}//end else
		
	}//end if
	
}//end function

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* Kommentar  */
function checkKundendaten(Values){
	
	var form = document.getElementById("preisberechnung"); 
	var radios= document.getElementsByName("lieferung");
	
	var art_lieferung=document.getElementById("liefern");
	var art_abholung=document.getElementById("selbstabholen");
	var anmietstation=document.getElementsByName("anmietstationen")[0];
	var datumsfeld_von = document.getElementsByName("date_von")[0];
	var jetzt = new Date();
	
	if(!form.vorname.value || !form.nachname.value  || !form.strasse.value || !form.hausnummer.value  || !form.plz.value|| !form.ort.value || !	form.email.value || !form.mobil.value){
		alert("Bitte füllen Sie  alle mit * gekennzeichneten Felder aus!");
		return(false);
	}//end if
	if(form.email.value.indexOf('@') == -1 ){
				
			alert("Bitte gültige Emailadresse angeben");
			return(false);
	}
	if(form.email.value.indexOf('.') == -1 ){
		alert("Bitte gültige Emailadresse angeben");
		return(false);
	}
		var lieferungAusgefuellt = 0;
	for(var i=0; i<radios.length;i++){
		if(radios[i].checked==true){
			lieferungAusgefuellt++;
		}	//end if
	}//end for
	if(lieferungAusgefuellt>0){
		
		if(art_lieferung.checked ==true ){
			if(!form.strasse_liefern.value || !form.hausnummer_liefern.value  || !form.plz_liefern.value|| !form.ort_liefern.value){
			alert("Bitte füllen Sie die Lieferadresse vollständig aus!");
			return(false);
			}//end if
		}//end if
	}//end if
	else{
		alert("Bitte wählen Sie die Felder Lieferung oder Abholung aus!")
		return(false);
	}
	
	return(true);
	
}//end function+
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* Prüft ob alle Daten eingetragen wurden, die zur Preisberechnung benötigt werden  */
function checkPreisdaten(){
	
	
	var form = document.getElementById("preisberechnung"); 
	var ids = document.getElementsByName("bike_id");
	
	if(!form.date_von.value || !form.date_bis.value ){
			alert("Bitte gewünschten Zeitraum eintragen");
			return(false);
	}//end if

	///////////////////////////////////////////////////////////////////////////////
	//////////////             Datumsberechnung
	///////////////////////////////////////////////////////////////////////////////
	var datumsfeld_von 		= 	document.getElementsByName("date_von")[0];
	var datumsfeld_bis 		= 	document.getElementsByName("date_bis")[0];
	var date_von 			= 	datumsfeld_von.value.split(".");
	var date_bis 			= 	datumsfeld_bis.value.split(".");
		
	var datum_von	=	new Date(date_von[2],(date_von[1]-1),date_von[0]);
	var datum_bis	=	new Date(date_bis[2],(date_bis[1]-1),date_bis[0]);
		
	var ms=(datum_bis.getTime() - datum_von.getTime());
	var Tage = Math.floor((ms / (1000 * 60 * 60 * 24)+1));
	var minTage = document.getElementsByName("mintage")[0].value;
	
	if(Tage < minTage){
		alert("Die Mindestmietdauer beträgt " + minTage + " Tage!");
		return(false);
	}//if	

	for(var i=0;i< ids.length;i++){
		var id= ids[i].value;
		var anzahlfelder = document.getElementsByName("anzahl["+id+"]");
		var datumvon_array = form.date_von.value.split(".");
		var datumbis_array = form.date_bis.value.split(".");

		if(anzahlfelder[0].value =="" || anzahlfelder[0].value=="0"){
			alert("Bitte Anzahl für alle Fahrräder angeben (Anzahl darf nicht 0 sein)");
			return(false);
		}//end if*/
		
	}//end for
	
	return(true);

}//end function
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
function checkAgb(){

	with(document.getElementsByName("agb")[0]){
		if(checked){
			return(true);
		}
	}
	
	alert("Bitte bestätigen Sie unsere AGBs");

	return(false);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* Kommentar  */
function saveReservation(Values){
	var form = document.getElementById("preisberechnung"); 
	
	if(checkAgb() && checkPreisdaten(Values) && checkKundendaten(Values)){
	checkFormOnBlur(Values);
	form.include.value = "save"; 
	form.submit();
	}
	else return(false);
	
}// end function setDatesForReservation

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* Kommentar  */
function showBikes(){

var form = document.getElementById("preisberechnung"); 

	form.include.value = "choose";
	form.submit();
	
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* Kommentar  */
function noBikes(){

var form = document.getElementById("preisberechnung"); 

	form.include.value = "pricing";
	form.submit();
	
}

