var jq_win = $(window);
var jq_doc = $(document);
var jq_bd = $("body");
// document load
jq_doc.ready(function() {
	initializeGoogleMaps();
	if ($("#print").val() == "y")
		window.print();
});
// mousemovement opvangen (later nodig voor positioneren infoboxen op map)
jq_doc.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() {
	// grote mappen
	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
										jq_bd
												.append("<div id='info'><table class='norm_table'><tr>"
														+ str_titel
														+ "</tr><tr>"
														+ str_tekst
														+ "</tr></table></div>");
										jq_info = $("#info");
										// item verwijderen uit de info
										// (overtollig en moet niet bij info
										// staan dag-info)
										jq_info.children().children()
												.children().children()
												.children(".item").remove();
										// ook de lees meer link verwijderen
										// (voor hotels)
										jq_info.children().children().children(
												":last").children().children()
												.children(".tBlue").remove();
										// niet meer tonen want eerst
										// positionere
										jq_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
										jq_info.fadeIn();
									});
					// mouseout, dus via fideout terug hidden
					google.maps.event.addListener(arr_marker[m], "mouseout",
							function() {
								$("#info").fadeOut(1000);
							});
				}
			}
		}
	}
	// map alle hoogtepunten (getoond op land-pagina)
	if (document.getElementById("map_canvas_hoogtepunt")) {
		// 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
		};
		// hoogtepunt map definieren
		var map = new google.maps.Map(document
				.getElementById("map_canvas_hoogtepunt"), 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/I.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
										jq_bd
												.append("<div id='info'><table class='norm_table'><tr>"
														+ str_titel
														+ "</tr><tr>"
														+ str_tekst
														+ "</tr></table></div>");
										jq_info = $("#info");
										// item verwijderen uit de info
										// (overtollig en moet niet bij info
										// staan dag-info)
										jq_info.children().children()
												.children().children()
												.children(".item").remove();
										// ook de lees meer link verwijderen
										// (voor hotels)
										jq_info.children().children().children(
												":last").children().children()
												.children(".tBlue").remove();
										// niet meer tonen want eerst
										// positionere
										jq_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
										jq_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() {
										jq_info = $("#info");
										// vorige info-window verwijderen
										jq_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
										jq_bd
												.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)
										jq_info.children().children()
												.children().children()
												.children(".item").remove();
										// ook de lees meer link verwijderen
										// (voor hotels)
										jq_info.children().children().children(
												":last").children().children()
												.children(".tBlue").remove();
										// niet meer tonen want eerst
										// positionere
										jq_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
										jq_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");
	}
}

function toggleLegalInfo(str_season) {
	if (str_season == "z") {
		$("#legal_z").show();
		$("#legal_w").hide();
	} else {
		$("#legal_w").show();
		$("#legal_z").hide();
	}
}
/* 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");
}
// GET DATA
function toonPrijstabel(h, u, s) {
	$.post("/ajax/getData.php", {
		"action" : "getPrijstabel",
		"u" : u,
		"s" : s,
		"h" : h
	}, function(data) {
		jq_bd.overlay(0.6);
		jq_bd.append("<div class='iWindow'></div>");
		jq_w = $(".iWindow").html(
				"<div class='iWindowHeader'>X</div><div class='iWindowContainer'>"
						+ data.prijstabel + "</div>");
		jq_w.position("stage");
		$(".overlay,.iWindowHeader").click(function() {
			$(".overlay,.iWindow").remove();
		});
	}, "json");
}
