// jQuery front_end_advertentie
// Jaap van Hardeveld / Corben Leek - Autodealers.nl

var detailTabs;

function valideerEmail(inputObject) {
	var emailPattern = /^[A-Za-z0-9_\-.]+@[A-Za-z0-9_\-.]+\.[A-Za-z]{2,4}$/;
	return emailTest = emailPattern.test(inputObject.val());
}

function valideerTelefoon(inputObject){
	var telefoonPattern = /^(\+)?[0-9]{8,}$/;
	var strippedTelefoon = inputObject.val().replace(/[\(\)\s-]/g,"");
	return telefoonTest = telefoonPattern.test(strippedTelefoon);
}

function valideerText(inputObject) {
	var textPattern = /^[A-Za-z]{2,}([\sA-Za-z]+)?$/;
	return textTest = textPattern.test(inputObject.val());
}

function valideerInput(inputObject) {
	if (inputObject.hasClass("email")) {
		
		if (valideerEmail(inputObject)) {
			inputObject.next(".validatie_tooltip").addClass("valid");
		} else {
			inputObject.next(".validatie_tooltip").removeClass("valid");
		}
		
	} else if (inputObject.hasClass("telefoon")) {
	
		if (valideerTelefoon(inputObject)) {
			inputObject.next(".validatie_tooltip").addClass("valid");
		} else {
			inputObject.next(".validatie_tooltip").removeClass("valid");	
		}
		// validatie van telefoon nummer
	} else {
		
		if (valideerText(inputObject)) {
			inputObject.next(".validatie_tooltip").addClass("valid");
		} else {
			inputObject.next(".validatie_tooltip").removeClass("valid");
		}
	}
}

function verstuurFormulier(inputObject) {
	// check of er voldoende inputs correct zijn ingevoerd
	var invalidInput = 0;
	var formulier = inputObject.parents("form");
	var inputs = formulier.find(".contact_inputs input");
	//console.log(inputs);
	
	if (($("form .contact_inputs").find("#contact_form_telefoon").val().length <= 0) && ($("form .contact_inputs").find("#contact_form_email").val().length <= 0)) {
		// Beide vereiste velden zijn leeg, error
		//console.log("telefoon en email zijn beide leeg");
		displayError("Vul of een telefoonnummer of een emailadres in");
		$("form .contact_inputs").find("#contact_form_telefoon").focus();
		return false;
	} else {
		// Telefoon nummer of email is ingevuld.
		// Bepaal welke input leeg is
		if ($("form .contact_inputs").find("#contact_form_telefoon").val().length <= 0) {
			// telefoon is leeg, Email valideren
			if (valideerEmail($("form").find("#contact_form_email")) == false) {
				// email niet valid, niet versturen
				displayError("Email niet geldig");
				$("form .contact_inputs").find("#contact_form_email").focus();
				return false;
			} else if (($("form .contact_inputs").find("#contact_form_naam").val().length > 0) && (valideerText($("form .contact_inputs").find("#contact_form_naam")) == false)) {
				// de ingevulde naam is ongeldig
				displayError("De ingevoerde naam is ongeldig");
				$("form .contact_inputs").find("#contact_form_naam").focus();
				return false;
			} else {
				// Email is correct ingevoerd
				// Telefoon is leeg
				// Naam is correct ingevoerd
				postForm(formulier);
			}
		} else if ($("form .contact_inputs").find("#contact_form_email").val().length <= 0) {
			// email is leeg, telefoon valideren
			if (valideerTelefoon($("form .contact_inputs").find("#contact_form_telefoon")) == false) {
				// telefoon niet valid, niet versturen
				displayError("Telefoon niet geldig");
				inputs.eq(1).focus();
				return false;
			} else if (($("form .contact_inputs").find("#contact_form_naam").val().length > 0) && (valideerText($("form .contact_inputs").find("#contact_form_naam")) == false)) {
				// de ingevulde naam is ongeldig
				displayError("De ingevoerde naam is ongeldig");
				$("form .contact_inputs").find("#contact_form_naam").focus();
				return false;		
			} else {
				// Email is leeg
				// Telefoon is correct ingevoerd
				// Naam is correct ingevoerd
				postForm(formulier);
			}
		} else {
			// Email en telefoon beide valideren
			if (valideerTelefoon($("form .contact_inputs").find("#contact_form_telefoon")) == false) {
				// telefoon niet valid, niet versturen
				displayError("Telefoon niet geldig");
				inputs.eq(1).focus();
				return false;
			} if (valideerEmail($("form").find("#contact_form_email")) == false) {
				// email niet valid, niet versturen
				displayError("Email niet geldig");
				inputs.eq(2).focus();
				return false;
			} else if (($("form .contact_inputs").find("#contact_form_naam").val().length > 0) && (valideerText($("form .contact_inputs").find("#contact_form_naam")) == false)) {
				// de ingevulde naam is ongeldig
				displayError("De ingevoerde naam is ongeldig");
				inputs.eq(0).focus();
				return false;
			} else {
				// Email is leeg
				// Telefoon is correct ingevoerd
				// Naam is correct ingevoerd
				
				postForm(formulier);
			}
		}
		
	}
}

function postForm(formulier) {
    //alert("postForm");
	 $("#contact_form_submit").verzendFormulier({
	 	formulier: "form",
		url: "/verzendemail.ashx",
		naVersturen: function(data) {
			displayError(data);
		}
	 });
	 // contactForm.submitForm("form");
}

function displayError(errorMsg) {
	// laat error zien
	$("#contact_form_submit").bericht(errorMsg, {
		statisch: true
	});
}

$(document).ready(function(){
			
			/******************************************
			** Tabs handler
			******************************************/
			
			// custom tabs effect
			
			$.tools.tabs.addEffect("JaapRoodSlide", function(tabIndex, done){
				var currentSize = $("#advertentie_details_content").height();
				var newSize = this.getPanes().eq(tabIndex).height();
				
				if (currentSize != newSize) {
					// verschil in grootte tussen tabs = animeren
					$("#advertentie_details_content").animate({height: newSize + "px"}, 350)
					
				}
				
				this.getPanes().hide().eq(tabIndex).fadeIn(150);
			});
			
			// tabs genereren
			$("ul#advertentie_details_tabs").tabs(".advertentie_details_pane", {
					effect: 'JaapRoodSlide',
					fadeInSpeed: 100
			});
			
			// tabs handle
			detailTabs = $("ul#advertentie_details_tabs").tabs(0);
			var fotoTab = 2; // Index nummer van de meerfoto's tab (-1)
			
			// meer foto's link
			$("a.advertentie_foto_link").click(function(){
				detailTabs.click(fotoTab); // activeer tab
				topOffset = 35;
				fotoOffset = $("#advertentie_details").offset().top;
				$("html, body").animate({scrollTop: fotoOffset-topOffset}, 800);
			});
			
			// meer specificaties
			if ($("#advertentie_overzicht_info ul li.item_hidden").length <= 0) {
				$("a.advertentie_specs_link").hide();
			}
			
			$("a.advertentie_specs_link").click(function(){
				$("#advertentie_overzicht_info ul li.item_hidden").slideToggle(250);
				if ($(this).text().substr(0,4) == "Meer") {
					$(this).text("Minder"+$(this).text().substr(4));
				} else {
					$(this).text("Meer"+$(this).text().substr(6));
				}
			});
			
			// zet de juiste hash link
			$("#advertentie_details_tabs a").click(function(){
				var hash = $(this).attr("href").substr(1);
				window.location.hash = hash;
			});
			
			
			/******************************************
			** Gerelateerde occasions tooltip
			******************************************/
			/*
			$("#advertentie_gerelateerd_content ul li a").tooltip({
				position: ['bottom','left'],
				offset: [30,350],
				effect: 'fade',
				relative: true,
				slideInSpeed: 150,
				slideOutSpeed: 150
			});
			*/
			/******************************************
			** Contact Formulier
			******************************************/
			
			
			// valideer inputs bij typen
			$("form .contact_inputs :text").keyup(function(){
				valideerInput($(this));
			});
			
			// submit formulier
			$("form .contact_inputs :button").click(function(){
				//alert("corben");
				verstuurFormulier($(this));
				return false;
			});
			
			// Tooltip op juiste plaats zetten
			$("form .contact_inputs :text").each(function(i){
				var tooltip = $(this).parents(".contact_inputs").find(".validatie_tooltip:eq("+i+")");
				$(this).after(tooltip);
			});
			
			// Tooltip genereren
			$("form .contact_inputs :text").tooltip({
				position: ['center','right'],
				offset: [-5,33],
				effect: "fade",
				relative: true,
				fadeInSpeed: 150,
				fadeOutSpeed: 150
			});
			
			/*****************************************
			** Banner laden
			******************************************/
			
			var sUrl = "/uc/bannertag.txt";
			
			$.get(sUrl, function(data){
			    $("#sidebar").html(data);
			});
			
			//
			//
			
			
		});
