$(document).ready(function() {
	if( $.browser.msie ) {
		objectSwap();
	}
	
	/*---------------------------------------*/
	// Viewer 
	var mapHolder = $("#MapHolder");
	var formHolder = $("#FormHolder");
	
	$(".backButton").click(showFlash);
	$("#showMap").click(showMap);
	$("#showFlash").click(showFlash);
	$("#showForm").click(showForm);
	
	function checkClasses() {
		$(".showMap").click(showMap);
		$(".showFlash").click(showFlash);
		$(".showForm").click(showForm);	
	}
	
	// $("#FlashHolder").hide();
	// formHolder.css({left:0});
	// mapHolder.css({left:0});
	
	function showMap() {
		if( !$.browser.msie ) {
			$("#mapFrame").css({visibility : "visible"});
		}
		
		mapHolder.animate( { left : 0 }, "slow" );
		formHolder.animate( { left : "-950px" }, "slow" );
		if( $("#LocateDealerTrackingTag").length == 0 ) { mapHolder.append('<img src="http://switch.atdmt.com/action/brmsub_SubaruSTILocateADealer_1" width="0" height="0" alt="" border="0" id="LocateDealerTrackingTag" />'); }
	}
	
	function showFlash(){
		if( !$.browser.msie ) {
			$("#mapFrame").css({visibility : "hidden"});
		}
		mapHolder.animate( { left : "950px" }, "slow" );
		formHolder.animate( { left : "-950px" }, "slow" );
	}
	
	function showForm() {
		if( !$.browser.msie ) {
			$("#mapFrame").css({visibility : "hidden"});
		}
		mapHolder.animate( { left : "950px" }, "slow" );
		formHolder.animate( { left : 0 }, "slow" );
		$("#FormThanks").remove();
		resetErrors();
		document.forms.testdriveBrochureForm.reset();
		$("#testdriveBrochureForm").fadeIn("slow");
		$("#title").focus();
	}

	
	/*---------------------------------------*/
	// Form
	$("#testdriveBrochureForm").submit(function() {
		submitForm();
		return false;
	});
	
	function setFormError(aElem) {
		var isError = document.getElementById("IsError");
		var errorClass = "formError";
		
		if(isError.className != errorClass) {
			isError.className = errorClass
		}
		aElem.parentNode.className = errorClass;
	}
	
	function resetErrors() {
		$(".formError").removeClass("formError");
	}
	
	function isEmail(str) {
		var regEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if(regEmail.test(str)) {
			return true;
		} else {
			return false;
		}
	}
	
	function submitForm() {
		var bolError = false;
		var focusElement = null;
		var formElements = document.forms.testdriveBrochureForm.elements;
		
		/* reset */
		resetErrors();
		
		/* Error handling */
		for(var i = 0, intLength = formElements.length; i < intLength; i++) {
			if( formElements[i].className.match("required") && formElements[i].value == "" ) {
				bolError = true;
				setFormError(formElements[i]);
				focusElement = focusElement == null ? formElements[i] : focusElement;
			} else if( formElements[i].name == "email" ) {
				/* Email */
				if(isEmail(formElements[i].value) == false) {
					bolError = true;
					setFormError(formElements[i]);
					focusElement = focusElement == null ? formElements[i] : focusElement;
				}
			}
		}
		
		if(bolError == false) { // If there are no errors
			var formValues = {
					title							: $("#title").val(),
					firstName 						: $("#firstName").val(),
					surname 						: $("#surname").val(),
					email 							: $("#email").val(),
					addressLine1 					: $("#addressLine1").val(),
					addressLine2 					: $("#addressLine2").val(),
					addressLine3 					: $("#addressLine3").val(),
					city 							: $("#city").val(),
					postcode 						: $("#postcode").val(),
					telephone 						: $("#telephone").val(),
					doNotRecieveMarketingByPhone	: $("#doNotRecieveMarketingByPhone").attr("checked"),
					doNotRecieveMarketingByPost		: $("#doNotRecieveMarketingByPost").attr("checked"),
					requestWrxBrochure				: $("input[name='requestWrxBrochure'][checked]").attr("value"),
					requestWrxStiBrochure			: $("input[name='requestWrxStiBrochure'][checked]").attr("value"),
					requestTestdrive				: $("#requestTestdrive").attr("checked"),
					ieFixer 						: new Date()
			};
			saveForm(formValues);
			return true;
		}
		else { // If there are errors
			focusElement.focus();
			return false;
		}
	}
	
	function saveForm(formValues) {
		$("#AjaxLoader").fadeIn("slow");
		$.getJSON(
			"/system/scripts/testdriveBrochureForm.php",
			formValues,
			function(json) {
				/*$("textarea").val("");
				$("textarea").val(json);
				alert(json.requestWrxStiBrochure);
				return false; // For textarea*/
				
				$("#AjaxLoader").fadeOut("slow");
				$("#testdriveBrochureForm").fadeOut("slow", function() {
					$("#FormHolder").append(
						'<div id="FormThanks"><p>Thank you for your request, we will getting backing back to you shortly.</p>' +
						'<p class="showFlash">Return to main content</p>' +
						'<p class="showMap">Locate a dealer</p>' +
						'<p class="showForm">Request another brochure / test drive</p>' +
						'</div>'
					);
					
					if(json.requestTestdrive != "0") {
						var testdriveTracking = "http://switch.atdmt.com/action/brmsub_SubaruSTITestDriveCONVERSION_1";
						$("#FormThanks").append('<img src="' + testdriveTracking + '" width="1" height="1" border="0" alt="" id="TestdriveTrackingTag" />');
					}
					if(json.requestWrxBrochure != "0") {
						var wrxTracking = "http://switch.atdmt.com/action/brmsub_SubaruSTIBrochureWRXCONVERSION_7";
						$("#FormThanks").append('<img src="' + wrxTracking + '" width="1" height="1" border="0" alt="" id="wrxTrackingTag" />');
					}
					if(json.requestWrxStiBrochure != "0") {
						var wrxStiTracking = "http://switch.atdmt.com/action/brmsub_SubaruSTIBrochureWRXStiCONVERSION_7";
						$("#FormThanks").append('<img src="' + wrxStiTracking + '" width="1" height="1" border="0" alt="" id="wrxStiTrackingTag" />');
					}
					checkClasses();
				});
			}
		);
	}
});