$(document).ready(function(){
	
	//Validation
	
	$.validator.addMethod('phone', function (value) { 
		return /^(\()?([0-9]{3})(\)|-)?([0-9]{3})(-)?([0-9]{4}|[0-9]{4})$/.test(value); 
	}, 'Please enter a valid US phone number.'); 
	
	$("#order-form").validate({
		rules: {
			job_type: "required",
			company: "required",
			contact: "required",
			phone: {
				required: true,
				phone: true
			},
			email: {
				required: true,
				email: true
			},
			project_type: "required"
		},
		messages: {
			company: "Please enter the company name",
			contact: "Please enter the contact name",
			phone: {
				required: "Please enter a phone number",
				phone: "Please enter a valid phone number"
			},
			email: {
				required: "Please enter an email",
				email: "Please enter a valid email"
			},
			project_type: "Please enter the type of project"
		}
	});

	//General Flow
	$("#order-form-2").hide();
	$("#order-form-3").hide();
	$("#order-form-4").hide();
	$("#order-form-5").hide();
	$("#billing-address-field").hide();
	$("#changes-to-job-field").hide();

	$("#next-button-1").click(function () {
		//Elements to validate
		var job_type = false;
		job_type = $("#order-form").validate().element( ".job_type" );

		if(job_type){
			$("#order-form-1").fadeOut(1000,
				function(){
					var job_type = $("input[@name='job_type']:checked").val();
					if( job_type == "Exact Repeat") {
						$("#next-button-3").val("Next: Finalize Order");
					}
					if( job_type == "New Job") {
						$(".required_check").show();
					}else{
						$(".required_check").hide();
					}
					$("#order-form-2").fadeIn(1000);
				}
			);
		}
	});
	
	$("#next-button-2").click(function () {
		//Elements to validate
		var company = false;
		company = $("#order-form").validate().element( "#company" );
		var contact = false;
		contact = $("#order-form").validate().element( "#contact" );
		var phone = false;
		phone = $("#order-form").validate().element( "#phone" );
		var email = false;
		email = $("#order-form").validate().element( "#email" );
		
		var job_type = $("input[@name='job_type']:checked").val();
		if( job_type == "New Job") {
			var delivery_address = false;
			if( $("#delivery_address").val() != "" ) {
				delivery_address = true;
				$("#delivery_address_error").hide();
			}else{
				$("#delivery_address_error").show();
			}
			var delivery_city = false;
			if( $("#delivery_city").val() != "" ) {
				delivery_city = true;
				$("#delivery_city_error").hide();
			}else{
				$("#delivery_city_error").show();
			}
			var delivery_state = false;
			if( $("#delivery_state").val() != "" ) {
				delivery_state = true;
				$("#delivery_state_error").hide();
			}else{
				$("#delivery_state_error").show();
			}
			var delivery_zip = false;
			if( $("#delivery_zip").val() != "" ) {
				delivery_zip = true;
				$("#delivery_zip_error").hide();
			}else{
				$("#delivery_zip_error").show();
			}
		}else{
			var delivery_address = true;
			var delivery_city = true;
			var delivery_state = true;
			var delivery_zip = true
		}
		
		if(company && contact && phone && email && delivery_address && delivery_city && delivery_state && delivery_zip ) {
			$("#order-form-2").fadeOut(1000,
				function(){
					var job_type = $("input[@name='job_type']:checked").val();
					if( job_type == "Change Repeat") {
						$("#changes-to-job-field").show();
					}
					$("#order-form-3").fadeIn(1000);
				}
			);
		}
	});
	
	$("#next-button-3").click(function () {
		//Elements to validate
		var project_type = false;
		project_type = $("#order-form").validate().element( "#project_type" );
		
		//Custom Quanity Validation
		var quantity = false;
		if( $("#quantity").val() != "" || $("#quantity_custom").val() != "") {
			quantity = true;
			$("#quantity_error").hide();
		}else{
			$("#quantity_error").show();
		}
		
		if(project_type && quantity) {
			$("#order-form-3").fadeOut(1000,
				function(){
					var job_type = $("input[@name='job_type']:checked").val();
					if( job_type == "Exact Repeat") {
						$("#order-form-5").fadeIn(1000);
					}else{
						$("#order-form-4").fadeIn(1000);
					}
				}
			);
		}
	});
	
	$("#next-button-4").click(function () {
		$("#order-form-4").fadeOut(1000,
			function(){
				$("#order-form-5").fadeIn(1000);
			}
		);
	});
	
	//Dynamic Operations
	$("#billing_same").click(function () {
		if( $("#billing-address-field").is(':visible') ) {
			$("#billing-address-field").hide("blind", { direction: "vertical" }, 600);
		}
	});
	
	$("#billing_different").click(function () {
		if( $("#billing-address-field").is(':hidden') ) {
			$("#billing-address-field").show("blind", { direction: "vertical" }, 600);
		}
	});
	
	$("#quantity").change(function() {
		if( $("#quantity").val() != "" || $("#quantity_custom").val() != "") {
			quantity = true;
			$("#quantity_error").hide();
		}else{
			$("#quantity_error").show();
		}
	});
	
	$("#quantity_custom").change(function() {
		if( $("#quantity").val() != "" || $("#quantity_custom").val() != "") {
			quantity = true;
			$("#quantity_error").hide();
		}else{
			$("#quantity_error").show();
		}
	});

});