//document load
$(document).ready(function(){		
	initializeGoogleMaps();
	if($("#print").val()=="y")
		window.print();	
});
//mousemovement opvangen (later nodig voor positioneren infoboxen op map)
$(document).mousemove(function(e){
	tempX = e.pageX;
	tempY = e.pageY;
	if (tempX < 0){tempX = 0;}
	if (tempY < 0){tempY = 0;} 	
	$("#mouseX").val(tempX);
	$("#mouseY").val(tempY);
});
/*GOOGLE MAPS*/
//google maps initialiseren
function initializeGoogleMaps(){	
	if(document.getElementById("map_canvas")){		
		//positie + zoom in vars steken
		latitude = $("input[name=lat]").val();
		longitude = $("input[name=long]").val();
		zm = parseInt($("input[name=zoom]").val(),10);
		//positie definieren
		var latlng = new google.maps.LatLng(latitude, longitude);
		//opties definieren
    	var myOptions = {
     		zoom: zm,
      		center: latlng,
      		navigationControl: true,
    		scaleControl: false,
			mapTypeControl: false,
      		mapTypeId: google.maps.MapTypeId.ROADMAP
    	};
    	//grote map definieren
    	var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    	//als er een positie gekend is dan tonen op de map
    	if($("input[name=lat_all]").val()!=undefined){
    		var arr_marker = new Array();
    		var arr_contentWindow = new Array();
    		//alle positie splitsen zodat we elk punt apart op de map kunnen tonen
    		arr_lat = $("input[name=lat_all]").val().split("#");
    		arr_lng = $("input[name=long_all]").val().split("#");
    		arr_zm = $("input[name=zoom_all]").val().split("#");
    		amount = arr_lat.length;
    		//alle elementen overlopen in de collectie
    		for(m=0;m<amount;m++){
    			//positie definieren
				var latlng = new google.maps.LatLng(arr_lat[m], arr_lng[m]);
				//marker zetten voor ieder punt
				var marker = new google.maps.Marker({
					nr:m,//nr toevoegen aan marker, later dan gebruiken om te weten welke info er getoond moet worden
					draggable:false,
			    	position: latlng, 
			    	map: map,
			    	icon: '/images/gm/'+(m+1)+'.png'
				});
				arr_marker.push(marker);
				//als er info gekend is voor de 
				if($("#info_titel_"+m).html()!="" && $("#info_titel_"+m).html()!=null){
					//mouse-over event zetten op de marker zodat de info dan getoond kan worden
					google.maps.event.addListener(arr_marker[m],"mouseover",function(){
						//vorige info-window verwijderen
						$("#info").remove();
						//positie van de muis ophalen
						arr_mouse = getMouseXY();
						//titel en tekst in var steken (via nr dan weten welke info nodig is)
						str_titel = $("#info_titel_"+this.nr).html()!=null?$("#info_titel_"+this.nr).html():"";
						str_tekst = $("#info_tekst_"+this.nr).html()!=null?$("#info_tekst_"+this.nr).html():"";
						//info-window maken en toevoegen aan body
						$("body").append("<div id='info'><table class='norm_table'><tr>"+str_titel+"</tr><tr>"+str_tekst+"</tr></table></div>");
						//item verwijderen uit de info (overtollig en moet niet bij info staan dag-info)
						$(".item").remove();
						//niet meer tonen want eerst positionere
						$("#info").hide();
						//info-kader positioneren + opmaak
						$("#info").css({"background":"#FFF","left":arr_mouse[0]+"px","padding":"5px","position":"absolute","top":arr_mouse[1]+"px"});
						//a.d.h.v. fade in tonen
						$("#info").fadeIn();
					});
					//mouseout, dus via fideout terug hidden
					google.maps.event.addListener(arr_marker[m],"mouseout",function(){
						$("#info").fadeOut(1000);
					});
				}	
			}
    	}    	  	    
	}
	//kleine map
	if(document.getElementById("map_canvas_small")){		
		//positie + zoom in vars steken
		latitude = $("input[name=lat]").val();
		longitude = $("input[name=long]").val();
		zm = parseInt($("input[name=zoom]").val(),10)-1;		
		//positie definieren
		var latlng = new google.maps.LatLng(latitude, longitude);
		//opties definieren
    	var myOptions = {
     		zoom: zm,
      		center: latlng,
      		navigationControl: true,
    		scaleControl: false,
			mapTypeControl: false,
      		mapTypeId: google.maps.MapTypeId.ROADMAP
    	};
    	//map definieren
    	var map = new google.maps.Map(document.getElementById("map_canvas_small"), myOptions);
    	//indien er een positie gekend is dan displayen op map
    	if($("input[name=lat_all]").val()!=undefined){
    		var arr_marker = new Array();
    		var arr_contentWindow = new Array();
    		//alle positie splitsen zodat we elk punt apart op de map kunnen tonen
    		arr_lat = $("input[name=lat_all]").val().split("#");
    		arr_lng = $("input[name=long_all]").val().split("#");
    		arr_zm = $("input[name=zoom_all]").val().split("#");
    		amount = arr_lat.length;
    		//alle elementen overlopen in de collectie
    		for(m=0;m<amount;m++){
    			//positie definieren
				var latlng = new google.maps.LatLng(arr_lat[m], arr_lng[m]);
				//marker positioneren
				var marker = new google.maps.Marker({
					nr:m,//nr toevoegen aan marker, later dan gebruiken om te weten welke info er getoond moet worden
					draggable:false,
			    	position: latlng, 
			    	map: map,
			    	icon: '/images/gm/'+(m+1)+'.png'
				});				
				arr_marker.push(marker);
				if($("#info_titel_"+m).html()!="" && $("#info_titel_"+m).html()!=null){
					//mouse-over event zetten op de marker zodat de info dan getoond kan worden
					google.maps.event.addListener(arr_marker[m],"mouseover",function(){
						//vorige info-window verwijderen
						$("#info").remove();
						//positie van de muis ophalen
						arr_mouse = getMouseXY();
						//titel en tekst in var steken (via nr dan weten welke info nodig is)s
						str_titel = $("#info_titel_"+this.nr).html()!=null?$("#info_titel_"+this.nr).html():"";
						str_tekst = $("#info_tekst_"+this.nr).html()!=null?$("#info_tekst_"+this.nr).html():"";
						//info-window maken en toevoegen aan body
						$("body").append("<div id='info'><table class='norm_table'><tr>"+str_titel+"</tr><tr>"+str_tekst+"</tr></table></div>");
						//item verwijderen uit de info (overtollig en moet niet bij info staan dag-info)
						$(".item").remove();
						//niet meer tonen want eerst positionere
						$("#info").hide();
						//info-kader positioneren + opmaak
						$("#info").css({"background":"#FFF","left":arr_mouse[0]+"px","padding":"5px","position":"absolute","top":arr_mouse[1]+"px"});
						//a.d.h.v. fade in tonen
						$("#info").fadeIn();
					});
					//mouseout, dus via fideout terug hidden
					google.maps.event.addListener(arr_marker[m],"mouseout",function(){
						$("#info").fadeOut(1000);
					});
				}				
			}
    	}
    	//als marker gedefinieed is dan tonen op de map
    	if($("input[name=marker]").val()!=undefined){
			var latlng = new google.maps.LatLng(latitude, longitude);
			var marker = new google.maps.Marker({
				draggable:false,
		    	position: latlng, 
		    	map: map,
		    	icon: '/images/gm/'+($("input[name=marker]").val())+'.png'
			});
    	}
	}
}
/*INPUT*/
//date format ingevuld op reservatieformulier corrigeren
function correctDateFormat(me){
	//maanden full
	var arr_maandenF = Array("januari","jan","janvier","februari","feb","fevrier","fév","maart","maa","mars","mar","april","apr","avr","avril","mei","mai","juni","jun","juin","juli","jul","juillet","jui","augustus","aug","août","september","sep","septembre","oktober","okt","octobre","oct","november","nov","novembre","december","dec","décembre");
	//maanden maandnr
	var arr_maandenT = Array("01","01","01","02","02","02","02","03","03","03","03","04","04","04","04","05","05","06","06","06","07","07","07","07","08","08","08","09","09","09","10","10","10","10","11","11","11","12","12","12");
	var val = $("#"+me).val();
	var int_limit = arr_maandenF.length;
	//'.','-',' ' vervangen door /
	while(val.indexOf(".")!=-1){
		val = val.replace(".","/");
	}
	while(val.indexOf("-")!=-1){
		val = val.replace("-","/");
	}
	while(val.indexOf(" ")!=-1){
		val = val.replace(" ","/");
	}
	//alle andere schrijfvormen omzetten naar maandnummers
	for(m=0;m<int_limit;m++){
		val = val.replace(arr_maandenF[m],arr_maandenT[m]);
	}
	//datum omzetten naar dd/mm/yyyy
	if(val.length == 5 || val.length == 4 || val.length == 3){
		var today = new Date();
		val +="/"+today.getFullYear().toString().substring(2);
	}
	$("#"+me).val(val);
}

/* FORM VALIDATIE */
//controleren of alles correct is ingevuld
function checkForm() {
	boo_submit = 1;
	// verplichte velden
	arr_one = Array("naam", "voornaam", "straat", "postcode", "telefoon",
			"email","vertrek");
	//arr_drop = Array("dpl_volwassenen","dpl_kinderen", "dpl_babys", "bf_room_double","bf_room_single","bf_room_triple","bf_room_quadruple");
	arr_drop = Array("dpl_volwassenen","dpl_kinderen", "dpl_babys");
	arr_kamers = Array("bf_room_double","bf_room_single","bf_room_triple","bf_room_quadruple");
	arr_three = Array("reisagent", "vertrek", "nacht");
	

	// check deel 1
	for (o = 0; o < arr_one.length; o++) {
		// indien leeg dan error tonen
		if ($("input[name=" + arr_one[o] + "]").val() == "") {
			$("#err_" + arr_one[o]).remove();
			$("input[name=" + arr_one[o] + "]").parent().html(
					$("input[name=" + arr_one[o] + "]").parent().html()
							+ "<span class='sprite spr_error' id='err_"
							+ arr_one[o] + "'></span>");
			boo_submit = 0;
			// niet leeg dus eventuele error terug verwijderen
		} else {
			$("#err_" + arr_one[o]).remove();
		}
	}
	/*
	for(o=0; o<arr_drop.length;o++){
		 //alert(document.getElementById(arr_drop[o]).value);
		if ($("select[name=" + arr_drop[o] + "]").val() == "") {
			$("#err_" + arr_drop[o]).remove();
			$("select[name=" + arr_drop[o] + "]").parent().html(
					$("select[name=" + arr_drop[o] + "]").parent().html()
							+ "<span class='sprite spr_error' id='err_"
							+ arr_drop[o] + "'></span>");
			boo_submit = 0;
			// niet leeg dus eventuele error terug verwijderen
		} else {
			$("#err_" + arr_drop[o]).remove();
		}
	}
	$sum = 0;
	for(o=0; o<arr_kamers.length;o++){
		 //alert(document.getElementById(arr_drop[o]).value);
		$sum +=parseInt($("select[name=" + arr_kamers[o] + "]").val()); 
		if ($("select[name=" + arr_kamers[o] + "]").val() == "" || $("select[name=" + arr_kamers[o] + "]").val() == "0") {
			$("#err_" + arr_kamers[o]).remove();
			$("select[name=" + arr_kamers[o] + "]").parent().html(
					$("select[name=" + arr_kamers[o] + "]").parent().html()
							+ "<span class='sprite spr_error' id='err_"
							+ arr_kamers[o] + "'></span>");
			boo_submit = 0;
			// niet leeg dus eventuele error terug verwijderen
		} else {
			$("#err_" + arr_kamers[o]).remove();
		}
	}
	if($sum == 0){
		boo_submit = 0;
	}else{
		for(o=0; o<arr_kamers.length;o++){
			$("#err_" + arr_kamers[o]).remove();
		}
	}*/
	
	
	//Check Amount people
	arr_empty_people = new Array();
 int_sum_people = 0;
 $("select[name^=dpl_]").each(function(){
           str_val = $(this).val();
           str_id = $(this).attr("id");
           $("#err_" + str_id).remove();
           if(str_val!="" && str_val!=0){
                    ++int_sum_people;                      
           }else{
         	  arr_empty_people.push(str_id);
           }                 
 });
 if(int_sum_people == 0){
           boo_submit = 0;
           int_limit_room = arr_empty_people.length;                  
           for(r=0;r<int_limit_room;r++){
                    idx_room = arr_empty_people[r];
                    $("#" + idx_room).parent().append("<span class='sprite spr_error' id='err_"+ idx_room + "'></span>");
           }
 }
	
	//Check rooms
	arr_empty_rooms = new Array();
 int_sum = 0;
 $("select[name^=bf_room_]").each(function(){
           str_val = $(this).val();
           str_id = $(this).attr("id");
           $("#err_" + str_id).remove();
           if(str_val!="" && str_val!=0){
                    ++int_sum;                      
           }else{
                    arr_empty_rooms.push(str_id);
           }                 
 });
 if(int_sum == 0){
           boo_submit = 0;
           int_limit_room = arr_empty_rooms.length;                  
           for(r=0;r<int_limit_room;r++){
                    idx_room = arr_empty_rooms[r];
                    $("#" + idx_room).parent().append("<span class='sprite spr_error' id='err_"+ idx_room + "'></span>");
           }
 }

	// check deel 3
	//document.getElementById('td_reisagent').innerHTML = document.getElementById('td_reisagent').innerHTML.replace("Gelieve een reisagent te selecteren","");
	//document.getElementById('td_reisagent').innerHTML =document.getElementById('td_reisagent').innerHTML.replace("Selectez une agence de voyage svp","");
	
	// emailadres valideren
	if ($("input[name=email]").val().indexOf("@") == -1
			|| $("input[name=email]").val().indexOf(".") == -1
			|| $("input[name=email]").val().indexOf(".") == $(
					"input[name=email]").val().length - 1) {
		$("#err_email").remove();
		$("input[name=email]")
				.parent()
				.html(
						$("input[name=email]").parent().html()
								+ "<span class='sprite spr_error' id='err_email'></span>");
	} else {
		$("#err_email").remove();
	}
	// check deel 2

	for (o = 0; o < 6; o++) {

		// Kijken of de tekstvelden zichtbaar staan
		var parenttr = document.getElementById('tbl_' + o);

		if (parenttr.style.visibility != 'hidden') {
			if ($("input[name=nm_" + o + "]").val() == "" || $("input[name=geb_"+o+"]").val() =="") {
				$("#err_nm"+o).remove();
				var html = document.getElementById('tbl_' + o).innerHTML;
				document.getElementById('tbl_' + o).innerHTML= html + "<span class='sprite spr_error' id='err_nm"+o+"'></span>";
			}else{
				$("#err_nm"+o).remove();
			}
		} else {
			
		}
	}

	for (o = 0; o < arr_three.length; o++) {
		// indien leeg dan error tonen
		
		if (document.getElementById(arr_three[o])) {
			str_fout = "";
			if (arr_three[o] == "reisagent" && $("#lng").val() == 1)
				str_fout = "Gelieve een reisagent te selecteren";
			if (arr_three[o] == "reisagent" && $("#lng").val() == 2)
				str_fout = "Selectez une agence de voyage svp";
			if ($("input[name=" + arr_three[o] + "]").val() == "") {
				$("#err_" + arr_three[o]).remove();
				$("input[name=" + arr_three[o] + "]").parent().html(
						$("input[name=" + arr_three[o] + "]").parent().html()
								+ "<span class='sprite spr_error' id='err_"
								+ arr_three[o] + "'></span> " + str_fout);
				boo_submit = 0;
			} else {
				$("#err_" + arr_three[o]).remove();
			}
		}
	}
	// formsubmiten als er geen error is
	if (boo_submit == 1) {
		//pageTracker._trackEvent('Reserveren', 'click', 'Doorboeken reservatie');
		document.form.submit();
	} else {
		if ($("#lng").val() == 1)
			alert("Gelieve alle gegevens in te vullen");
		if ($("#lng").val() == 2)
			alert("remplir tous les détails svp");
	}
}

/*AJAX*/
//SAVE DATA
//het te reserveren product bewaren in de sessie
function reserveerProduct(seizoen,user,hotelcode,type){
	$.post("/ajax/addDataToSession.php",{"action":"reserveerProduct","user":user,"seizoen":seizoen,"hotelcode":hotelcode,"type":type},
		function(data){
			window.location = data.link;
		}
	,"json");
}
//het te printen product bewaren in de sessie
function printProduct(seizoen,user,hotelcode,type){
	$.post("/ajax/addDataToSession.php",{"action":"printProduct","user":user,"seizoen":seizoen,"hotelcode":hotelcode,"type":type},
		function(data){
			window.open(data.link);
		}
	,"json");
}
