//jQuery Functions

$(document).ready(function(){
	
	var relpath = "/";
	
	
	$(".show_factuur").click(function(){
		var id = this.id.replace("show_", "");
		//window.location = relpath+"facturen/"+id+"";
		window.open(relpath+"factuur/"+id,'_blank');
	});	
	
	$("#diergeslacht").change(function(){
			
		if($(this).val() == 1) {
			$("label[for='gecastreerd']").text("Gecastreerd:");
		}
		if($(this).val() == 2) {
			$("label[for='gecastreerd']").text("Gesteriliseerd:");
		}
		
	});
	

  //toggle class for td mouseover
  
	$(".page_navigation div").hover(function(){
		
		$(this).addClass("td_highlight");
			}, function() {
		$(this).removeClass("td_highlight");
			
		}
	);
		
	$("#page_navigation div").click(function(){		
		
		var thisid = this.id;
		
		var id = thisid.replace("page_", "");

		window.location = relpath+"nieuws/"+id+"";
		
	});
	
	$("#page_navigation_guestbook div").click(function(){		
		
		var thisid = this.id;
		
		var id = thisid.replace("page_", "");

		window.location = relpath+"gastenboek/"+id+"";
		
	});	
	

	//dieren pagina
	
	$(".dieredit").click(function(){
	
		var id = this.id.replace("dier_", "");
		
		window.location = relpath+"mijndieren-wijzigen/"+id+"";
	
	});


	//dieren verwijder
	$(".dierremove").click(function(){
		
		var answer = confirm("Weet u zeker dat u dit dier wilt verwijderen?");
		
		var id = this.id.replace("dier_", "");
		
		var content;
		var succes;
		if(answer) {
			$.ajax({
					type: "POST",
					url: relpath+"mijndieren-remove.php",
					data: "id="+id,
					
					success: function(msg){			

						//set return message
						switch(msg) {
							case "mysql":
								content = "no-remove";
								break;
							case "remove":
								content = "remove";
								break;
							case "noremove":
								content = "no-remove";
								break;
						}
						
						window.location = relpath+"mijndieren/message/"+content+"";
						
					}
				});		
		}
		
	});
	
	//reservering verwijderen
	
	$(".resremove").click(function(){
		
		var answer = confirm("Weet u zeker dat u deze reservering wilt verwijderen?");
		
		var id = this.id.replace("res_", "");
		
		if(answer) {
			window.location = relpath+"mijnreserveringen-remove/"+id+"";
		}
		
	});
		
	
	//guestbook functions
	$(".guestbook_delete_btn").click(function(){
		
		var answer = confirm("Weet u zeker dat u misbruik wilt melden?");
		var result = this.id.split("-");

		var id = result[0];
		var page = result[1];
					
		if (answer){
			 $.ajax({
				type: "POST",
				url: relpath+"gastenboek_action.php",
				data: "id="+id,
				
				success: function(msg){			
					
					window.location = relpath+"gastenboek/"+page+"";
					
				}
			});
		}
	
	});
	//gastenboek wijzig
	$(".guestbook_edit_btn").click(function(){
	
		var result = this.id.split("-");

		var id = result[1];
		var page = result[2];
		
		window.location = relpath+"gastenboek-schrijven/"+id+"";
	
	});
	
	//gastenboek verwijder
	$(".guestbook_remove_btn").click(function(){
		
		var answer = confirm("Weet u zeker dat u dit bericht wilt verwijderen?");
		var result = this.id.split("-");

		var id = result[1];
		var page = result[2];
		
		var content;
		var succes;
		if(answer) {
			$.ajax({
					type: "POST",
					url: relpath+"gastenboek_remove.php",
					data: "id="+id,
					
					success: function(msg){			

						//set return message
						switch(msg) {
							case "mysql":
								content = "no-remove";
								break;
							case "remove":
								content = "remove";
								break;
							case "noremove":
								content = "no-remove";
								break;
						}
						
						window.location = relpath+"gastenboek/message/"+content+"";
						
					}
				});		
		}
		
	});
	
	//check for photo effect
	if($(".photoslideshow").length > 0) {
		$(".photoslideshow").cycle({
			fx: "fade"
		});	
		
	}
	$(".resopen").click(function(){
		var opentr = this.id.replace("panel_", "");				
		//check if the div is open 				
		$("#tr_"+opentr).slideToggle("medium");
		//change the icon
		if($(this).attr("src") == relpath+"img/icon_plus.png"){
			$(this).attr("src", relpath+"img/icon_min.png");
		} else {
			$(this).attr("src", relpath+"img/icon_plus.png");	
		}
			
	});
	
	var default_message_empty = "Er is geen {value} ingevuld.";
	var default_message_notvalid = "Er is geen geldig {value} ingevuld.";
	var default_message_user_exists = "De gekozen {value} is al in gebruik.";
	//FORM CHECK FUNCTION
	
	$(".check").blur(function(){
		validate_field(this.id);	
	});
	
	
	$(".submit").click(function(){
		
		var valid;		
		var return_form = true;
		
		//check form		
		$(".check").each(function(){
			//check for each field in the form with the class check
			validate_field(this.id);
			
			valid = validate_field(this.id);
			
			if(!valid) {
				return_form = false;	
			}
			
		});
		
		//submit the form
		if(return_form) {
			document.form.submit();
		}
		
	});
	
	var form_valid = true;
	
	function validate_field(check_field){
		
		
		//REGEXP
		var email_regexp = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
		//var phone_regexp = /^(\d{10})$/;
		var phone_regexp = /(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)/;
		var zipcode_regexp = /^[1-9]{1}[0-9]{3}\s?[a-zA-Z]{2}$/;
		var url_regexp = /(((ht|f)tp(s?):\/\/)|(www\.[^ \[\]\(\)\n\r\t]+)|(([012]?[0-9]{1,2}\.){3}[012]?[0-9]{1,2})\/)([^ \[\]\(\),;&quot;'&lt;&gt;\n\r\t]+)([^\. \[\]\(\),;&quot;'&lt;&gt;\n\r\t])|(([012]?[0-9]{1,2}\.){3}[012]?[0-9]{1,2})/
		
		var field_value = document.getElementById(check_field).value;
		
		//generate the error message with the label
		var name = $("label[for='"+check_field+"']").text();
		var name_strip = name.replace(":", "");

		var message = default_message_empty.replace("{value}", name_strip.toLowerCase());
		var message_notvalid = default_message_notvalid.replace("{value}", name_strip.toLowerCase());
		var message_userexists = default_message_user_exists.replace("{value}", name_strip.toLowerCase());
		
		var message_selector = "#"+check_field+" + .error";
	
		//alert($("label[for=' + this.attr("+check_field+") + ']").html());
		
		//default check
		if(!field_value) {			
			//check if message already is set
			if($(message_selector).length == 0) {
				//append the message for this id
				$("#"+check_field).addClass("error");
				$("#"+check_field).after("<label class=\"error\">"+message+"</label>");	

			}
			
			form_valid = false;
			
		} else {
			
			//remove the default message
			$("#"+check_field).removeClass("error");
			$(message_selector).remove();
			
			form_valid = true;

		}
		

		
		//check if there is a different field to check
		switch(check_field){
			case "zipcode":
				//check zipcode
				if(zipcode_regexp.test(field_value)){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
			case "email":
				//check zipcode
				if(email_regexp.test(field_value)){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
			case "phone":
				//check phone
				if(phone_regexp.test(field_value)){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
			case "cp_phone":
				//check phone
				if(phone_regexp.test(field_value)){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
			case "da_phone":
				//check phone
				if(phone_regexp.test(field_value)){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
			case "url":
				//check url
				if(url_regexp.test(field_value)){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
			case "gebnaam":
					//check gebnaam with ajax function
					$.ajax({
					type: "POST",
					url: "/new/check_username.php",
					data: "user="+field_value,
				
					success: function(return_value){
							
							if(return_value == "true") {
									
									//if($(message_selector).length > 0) {
									$("#"+check_field).removeClass("error");
									$(message_selector).remove();
									form_valid = true;
								//}
							} else {
								if($(message_selector).length == 0) {
									$("#"+check_field).addClass("error");
									$("#"+check_field).after("<label class=\"error\">"+message_userexists+"</label>");
								}
								form_valid = false;
							}
						
						}
					});
				break;
			case "diersoort":
				//check diersoort
				if(field_value > 0){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
			case "diergeboortejaar":
				//check diersoort
				if(field_value > 0){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
			case "diergeslacht":
				//check diersoort
				if(field_value > 0){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
				
			case "voorw":
				
				message = "Accepteer eerst de algemene voorwaarden.";
				message_selector = "#voorw_check + .checkbox_label_long_error";
				
				if(!$("#"+check_field).is(":checked")){
					if($(message_selector).length == 0) {
						//append the message for this id
						$("#voorw_check").after("<label class=\"checkbox_label_long_error\">"+message+"</label>");	
					}
						
					form_valid = false;
					
				} else {
					//remove the default message
					$(message_selector).remove();
					
					form_valid = true;
				}
				
				
				break;
		}
				
		return form_valid;
	}
	
	$(".content_tr_oneven").mouseover(function(){
		$(this).toggleClass("content_tr");
	}).mouseout(function(){
		$(this).toggleClass("content_tr");
	});
	
	$(".content_tr_even").mouseover(function(){
		$(this).toggleClass("content_tr");
	}).mouseout(function(){
		$(this).toggleClass("content_tr");
	});	
	
	
	
	/* RESERVEREN */
	$(".plus").click(function(){
				
		var newid = this.id.replace("plus_", "count_");
		var count = $("#"+newid).html();
			
		var newvalue = parseFloat(count)+1;
					
		if(newvalue <= 10) {
			$("#"+newid).html(newvalue);
			$("#input_"+newid).val(newvalue);
		}

	});
				
	$(".min").click(function(){
				
		var newid = this.id.replace("min_", "count_");
		var count = $("#"+newid).html();
					
		var newvalue = parseFloat(count)-1;
				
		if(newvalue >= 0) {
			$("#"+newid).html(newvalue);
			$("#input_"+newid).val(newvalue);
		}
					
				
	});
				
				
	var dateformat = 'dd-mm-yy';
	var daynames = ['Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'];
	var monthnames = ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'];
	var mindate = new Date();
		
	$("#date_breng").datepicker({
		dateFormat: dateformat, 
		minDate: new Date(mindate.getFullYear(), mindate.getMonth(), mindate.getDate()), 
		maxDate: new Date(mindate.getFullYear()+1, mindate.getMonth(), mindate.getDate()),
		dayNamesMin: daynames,
		monthNames: monthnames,
		onClose: function(dateText, inst){ callDateHaal(); }
	});
				
				
	function callDateHaal(){
		//destroy the datepicker before
		$("#date_haal").datepicker('destroy');
					
		$("#count_days").html("Selecteer eerst beide datums");					
		//remove the current value
		$("#date_haal").val(""); 
		//switch off disabled
		$("#date_haal").attr("disabled", "");
		
		//convert datebreng to array
		var datebreng = $("#date_breng").val();
		datebreng = datebreng.split("-");
		
		//call datepicker for date_haal
		$("#date_haal").datepicker({
			dateFormat: dateformat, 
			minDate: new Date(datebreng[2], datebreng[1]-1, datebreng[0]), 
			maxDate: new Date(mindate.getFullYear()+1, mindate.getMonth(), mindate.getDate()),
			dayNamesMin: daynames,
			monthNames: monthnames,
			onClose: function(dateText, inst){ calcDays(); }
			});
			
			//validate #date_breng
			validate_field("date_breng");
	
		}
				
		//function for calc days between days
		function calcDays(){
			
			//validate #date_haal			
			validate_field("date_haal");
			
			var date1 = $("#date_breng").val();
			var date2 = $("#date_haal").val();
			date1 = date1.split("-");
			date2 = date2.split("-");
			
			var sDate = new Date(date1[1]+"/"+date1[0]+"/"+date1[2]);
			var eDate = new Date(date2[1]+"/"+date2[0]+"/"+date2[2]);
			var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));
					
			daysApart += 1;
			
			if(daysApart == 1) {
				var dayname = " dag";
			} else {
				var dayname = " dagen";
			}
					
			$("#count_days").html(daysApart+dayname);
					
					
		}
				
				
		$(".date_loopsheid").datepicker({
			dateFormat: dateformat, 
			maxDate: new Date(mindate.getFullYear(), mindate.getMonth(), mindate.getDate()),
			dayNamesMin: daynames,
			monthNames: monthnames
		});
				

	
	
});
