
	$(document).ready(function(){
		
		$('#homeBanner').cycle({
			fx: 'fade',
			speed:  2000,
			timeout:  5000,
			pause: 1
		});
		
		$("#clearVehicleButton").click(function(){
			$("#vehicleSearchPanel").show();
			$("#currentVehiclePanel").hide();
			return false;
		});
		
		$("#cancelVehicleSearchButton").click(function(){
			$("#vehicleSearchPanel").hide();
			$("#currentVehiclePanel").show();
			return false;
		});		
		
		$("#surveyForm").submit(function(){
			var error = false;
			var checked = 0;
			$("#surveyForm input").each(function(index, field){
				if ($(field).attr("checked")) {
					checked = checked + 1;	
				}
			});
			
			if (checked < 5) {
				error = true;	
			}
			if (error) {
				alert("Please complete all questions");
				return false;	
			}
		});
		
		$("#accountForm select#customer_type").change(function(){
			if ($(this).val()) {
				if ($(this).val()=="Limited Company") {
					$("#fieldsInd").hide();	
					$("#fieldsLtd").slideDown();
				}
				else
				{
					$("#fieldsInd").slideDown();	
					$("#fieldsLtd").hide();
				}
			}
			else
			{
				$("#fieldsInd,#fieldsLtd").slideUp();
			}
		});
		
		$("#accountForm").submit(function(){
			error = false;
			
			if ($("#accountForm #termsConfirm:checked").val() == null) {
				$("#accountForm #termsLabel").css("color", "#f00");
				error = true;		
			}
			else
			{
				$("#accountForm #termsLabel").css("color", "#000");
			}
			
			if ($("#accountForm #credittermsConfirm:checked").val() == null) {
				$("#accountForm #credittermsLabel").css("color", "#f00");
				error = true;		
			}
			else
			{
				$("#accountForm #credittermsLabel").css("color", "#000");
			}
			
			$("#accountForm *.required:visible").each(function(index, field){
				$(this).siblings(".error").remove();
				if ($(this).val()) {
					
				}
				else
				{
					error = true;
					$(this).parent().append('<p class="error">' + 'Required' + '</p>')	
				}
			});		
				
			if (error) {
				alert("Please complete all required fields.");
				return false;
			}
			else
			{
				return true;	
			}
		});
		
		$(".radioRow input").change(function(){
			$("#basketForm").submit();
		});	
		
		$(".partGallery ul li a").click(function(){
			$(".partGallery div").css("backgroundImage","url(" + $(this).attr("href") + ")");
			return false;
		});
		
		$("#partImage a").click(function(){
			$("#partImage div").css("backgroundImage","url(" + $(this).attr("href") + ")");
			return false;
		});
		
		$(".columns").columnize({columns: 3});
		
		$("#partFinderReg form, #partFinderChassis form").submit(function(){
			$(this).hide();
			$(this).siblings(".loading").show();
			$(this).submit();		
		});
		
		$("#checkoutAddressForm input,#checkoutAddressForm textarea").focusout(function(){
			$.ajax({
				type: 'POST',
				url: "/checkout/addresscheck",
				data: { key: $(this).attr("name"), val: $(this).val() },
				dataType: "json",
				success: function(data) {
					$("#checkoutAddressForm input[name=" + data.key + "],#checkoutAddressForm textarea[name=" + data.key + "]").siblings(".error").remove();
					if (data.error) {
						$("#checkoutAddressForm input[name=" + data.key + "],#checkoutAddressForm textarea[name=" + data.key + "]").parent().append('<p class="error">' + data.error + '</p>');
					}
				}	
			});
		});
		
		var addresschecked = false;		
		
		$("#checkoutAddressForm").submit(function(){
			if (!addresschecked) {
				$.ajax({
					type: 'POST',
					url: "/checkout/addresscheck",
					data: $(this).serialize(),
					dataType: "json",
					success: function(data) {
						$("#checkoutAddressForm .error").remove();
						if (data.errors) {
							$.each(data.errors, function(key, error){
								$("#checkoutAddressForm input[name=" + key + "],#checkoutAddressForm textarea[name=" + key + "]").parent().append('<p class="error">' + error + '</p>');
							});
						}
						else
						{
							addresschecked = true;							
							$("#checkoutAddressForm").submit();	
						}
					}	
				});
				return false;
			}
		});	
		
		$("#registerForm input").focusout(function(){
			$.ajax({
				type: 'POST',
				url: "/user/regcheck",
				data: { key: $(this).attr("name"), val: $(this).val() },
				dataType: "json",
				success: function(data) {
					$("#registerForm input[name=" + data.key + "]").siblings(".error").remove();
					if (data.error) {
						$("#registerForm input[name=" + data.key + "]").parent().append('<p class="error">' + data.error + '</p>');
					}
				}	
			});
		});
		
		var checked = false;		
		
		$("#registerForm").submit(function(){
			if (!checked) {
				$.ajax({
					type: 'POST',
					url: "/user/regcheck",
					data: $(this).serialize(),
					dataType: "json",
					success: function(data) {
						$("#registerForm .error").remove();
						if (data.errors) {
							$.each(data.errors, function(key, error){
								$("#registerForm input[name=" + key + "]").parent().append('<p class="error">' + error + '</p>');
							});
						}
						else
						{
							checked = true;							
							$("#registerForm").submit();	
						}
					}	
				});
				return false;
			}
		});
		
		$("#loginPassword").change(function(){
			$("#loginregLogin").attr("checked", "checked");
			$("#loginregReg").attr("checked", "");
		});
		
		var termschecked = false;		
		
		$("#checkoutConfirmForm").submit(function(){
			if (!termschecked) {
				if ($('#termsConfirm:checked').val() == null) {
					$("#termsLabel").css("color", "#f00");				
				}
				else
				{
					$("#termsLabel").css("color", "#000");
					termschecked = true;
					$("#checkoutConfirmForm").submit();
				}
				return false;
			}
		});
		
		var agenttermschecked = false;		
		
		$("#checkoutAgentForm").submit(function(){
			if (!agenttermschecked) {
				if ($('#termsConfirm:checked').val() == null) {
					$("#termsLabel").css("color", "#f00");				
				}
				else
				{
					$("#termsLabel").css("color", "#000");
					agenttermschecked = true;
					$("#checkoutAgentForm").submit();
				}
				return false;
			}
		});		
		
	});
