$(document).ready(function(){
	$('a[rel*=facebox]').facebox();
	$(".shadowhead").dropShadow({top: 4, left: 4, blur: 3, opacity: 0.2});
	$("#calcform").ajaxForm();
  	var container = $("div.container");
	var validator = $("#calcform").validate({
		errorContainer: "#status",
		errorLabelContainer: "#status ul",
		wrapper: 'li',
		errorElement: 'em',
		submitHandler: function(form) { 
			var options = {
				target:		'#status2',
				url:		'calc.php'
			};
			var queryString = $(form).formSerialize();
			
			$(form).ajaxSubmit(options);
			$.post('calc.php', queryString);
			if ($("#status2").is(":visible")) {
				$("#status2").show('pulsate', { times: 2 }, 750, {});
			} else {
				$("#status2").fadeIn(500);
			}
			$("#status").fadeOut(500);
			return false;	
		},
		invalidHandler: function(form, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				$("#status2").html('');
				$("#status2").fadeOut(500);
			} else {
				$("#status").html('');
			}
		},
		showErrors: function(errorMap, errorList) {
			var errors = this.numberOfInvalids();
			if (errors) {
				var message = errors == 1
			  ? '1 error found. See details below:'
			  : errors + ' errors found. See details below:';
				$("#statushdr").html(message);
				$("#status").fadeIn(500);
				this.defaultShowErrors();
			} else {
				$("#status").fadeOut(500);
			}
		}
	
	}); 
	
	
	
	
	$("#prodtype").rules("add", {
			required: true,
			messages: {
				required: "Product Type required"
			}
		});
	
	$(":input").filter(function () {
		return this.id.match(/lin|tab|fold|kerchief|corner|shirr|rodpock|multi/);
	}).change(function(event) {
		if (($(this).val() == "contrast" || $(this).val() == "2color" || $(this).val() == "3color")) {
			$("#secfabdiv").fadeIn(500);
		} else {
			$("#secfabdiv").fadeOut(500);
		}
	});
	

		
	
	$("#pttstyle,#casvalstyle").change(function(event){ 
		$(":input").each(function() {
			$(this).rules("remove");
		});
		
		$("#calcform").validate().form();
	});
	
	
	$("#prodtype").change(function(event){
		$(":input").each(function() {
			$(this).rules("remove");
		});		
	$("#calcform").validate().form();

   	v = $("#prodtype").val();

    if (v == "classic" || v == "relaxed" || v == "london" || v == "hobbled") {
		if ($("#sheer").is(':checked')) {
			setprompts({"#valancediv" : 1, "#widthdiv": 1, "#sheerdiv": 1, "#heightdiv": 1 });
		} else {
			setprompts({"#valancediv" : 1, "#widthdiv": 1, "#sheerdiv": 1, "#heightdiv": 1, "#edgeshadediv": 1, "#trimdiv": 1 });
		}

		$("#sheer").change(function(event) {
			if ($(this).is(':checked')) {
				$('div').filter(function() {
					return (this.id.match(/.*?edge|trim.*?div/) );
				}).fadeOut(500);
				$("#hideroddiv").hide(0);
			} else {
				$("#edgeaccentdiv").hide(0);
				$("#edgeshadediv").fadeIn(500);
				$("#trimdiv").fadeIn(500);
				if (v == "hobbled") {
					$("#hideroddiv").fadeIn(500);
				}
			}
		});
		
		$("#width").rules("add", {
			required: true,
			range: [12, 96],
			messages: {
				required: "Invalid width: please enter a value between 12\" and 96\"",
				range: "Invalid width: please enter a value between 12\" and 96\""
			}
		});

     	$("#height").rules("add", {
			required: true,
			range: [12, 108],
			messages: {
				required: "Invalid height: please enter a value between 12\" and 108\"",
				range: "Invalid height: please enter a value between 12\" and 108\""
			}
		});
		if ( v == "hobbled") {
			$("#hideroddiv").fadeIn(500);
		} else {
			$("#hideroddiv").hide(0);
		}
     } else if (v == "knifepleat") {
     	
		if ($("#sheer").is(':checked')) {
			setprompts({"#valancediv" : 1, "#widthdiv": 1, "#heightdiv": 1 });
		} else {
			setprompts({"#valancediv" : 1, "#widthdiv": 1, "#heightdiv": 1, "#edgeaccentdiv": 1, "#trimdiv": 1 });
		}
		
		$("#sheer").change(function(event) {
			if ($(this).is(':checked')) {
				$('div').filter(function() {
					return (this.id.match(/.*?edge|trim.*?div/) );
				}).fadeOut(500);
			} else {
				$("#edgeshadediv").hide(0);
				$("#edgeaccentdiv").fadeIn(500);
				$("#trimdiv").fadeIn(500);
			}
		});
		
		$("#width").rules("add", {
			required: true,
			range: [12, 96],
			messages: {
				required: "Invalid width: please enter a value between 12\" and 96\"",
				range: "Invalid width: please enter a value between 12\" and 96\""
			}
		});

     	$("#height").rules("add", {
			required: true,
			range: [12, 108],
			messages: {
				required: "Invalid height: please enter a value between 12\" and 108\"",
				range: "Invalid height: please enter a value between 12\" and 108\""
			}
		});
     } else if (v == "pleated") {
     	setprompts({"#drawdiv": 1, "#returnsizediv": 1, "#sheerdiv": 1, "#widthdiv": 1, "#heightdiv": 1, "#drapetrimdiv": 1, "#edgedrapediv": 1 });

     	$("#height").rules("add", {
			required: true,
			range: [24, 240],
			messages: {
				required: "Invalid height: please enter a value between 24\" and 240\"",
				range: "Invalid height: please enter a value between 24\" and 240\""
			}
		}); 
		$("#width").rules("add", {
			required: true,
			range: [20, 290],
			messages: {
				required: "Invalid width: please enter a value between 20\" and 290\"",
				range: "Invalid width: please enter a value between 20\" and 290\""
			}
		});
		
		$("#returnsize").rules("add", {
			required: true,
			range: [0, 7.5],
			messages: {
				required: "Invalid return size: please enter a value between 0\" and 7.5\"",
				range: "Invalid return size: please enter a value between 0\" and 7.5\""
			}
		});
		
		$("#drawopt").rules("add", {
			required: true,
			messages: {
				required: "Invalid draw selection: please select one-way or split"
			}
		});
		
     } else if (v == "tabtopdrape" || v == "gatheredtabdrape") {
     	setprompts({"#drawdiv": 1, "#widthdiv": 1, "#heightdiv": 1, "#drapetrimdiv": 1, "#edgedrapediv": 1 });

     	$("#height").rules("add", {
			required: true,
			range: [24, 240],
			messages: {
				required: "Invalid height: please enter a value between 24\" and 240\"",
				range: "Invalid height: please enter a value between 24\" and 240\""
			}
		}); 
		$("#width").rules("add", {
			required: true,
			range: [20, 290],
			messages: {
				required: "Invalid width: please enter a value between 20\" and 290\"",
				range: "Invalid width: please enter a value between 20\" and 290\""
			}
		});
		
		$("#returnsize").rules("add", {
			required: true,
			range: [0, 7.5],
			messages: {
				required: "Invalid return size: please enter a value between 0\" and 7.5\"",
				range: "Invalid return size: please enter a value between 0\" and 7.5\""
			}
		});
		
		$("#drawopt").rules("add", {
			required: true,
			messages: {
				required: "Invalid draw selection: please select one-way or split"
			}
		});
		
     } else if (v == "grommet") {
     	setprompts({"#drawdiv": 1, "#returnsizediv": 1, "#sheerdiv": 1, "#widthdiv": 1, "#heightdiv": 1, "#drapetrimdiv": 1, "#edgedrapediv": 1 });
		
		$("#sheer").change(function(event) {
			if ($(this).is(':checked')) {
				$('div').filter(function() {
					return (this.id.match(/.*?edge|trim.*?div/) );
				}).fadeOut(500);
			} else {
				$("#edgedrapediv").fadeIn(500);
				$("#drapetrimdiv").fadeIn(500);
			}
		});
		
     	$("#height").rules("add", {
			required: true,
			range: [24, 240],
			messages: {
				required: "Invalid height: please enter a value between 24\" and 240\"",
				range: "Invalid height: please enter a value between 24\" and 240\""
			}
		}); 
		$("#width").rules("add", {
			required: true,
			range: [20, 290],
			messages: {
				required: "Invalid width: please enter a value between 20\" and 290\"",
				range: "Invalid width: please enter a value between 20\" and 290\""
			}
		});
		
		$("#returnsize").rules("add", {
			required: true,
			range: [0, 7.5],
			messages: {
				required: "Invalid return size: please enter a value between 0\" and 7.5\"",
				range: "Invalid return size: please enter a value between 0\" and 7.5\""
			}
		});
		
		$("#drawopt").rules("add", {
			required: true,
			messages: {
				required: "Invalid draw selection: please select one-way or split"
			}
		});
		
     } else if (v == "flatflow") {
     	setprompts({"#drawdiv": 1, "#sheerdiv": 1, "#returnsizediv": 1, "#widthdiv": 1, "#heightdiv": 1 , "#drapetrimdiv": 1, "#edgedrapediv": 1 });
     	
     	$("#sheer").change(function(event) {
			if ($(this).is(':checked')) {
				$('div').filter(function() {
					return (this.id.match(/.*?edge|trim.*?div/) );
				}).fadeOut(500);
			} else {
				$("#edgedrapediv").fadeIn(500);
				$("#drapetrimdiv").fadeIn(500);
			}
		});

		$("#height").rules("add", {
			required: true,
			range: [24, 240],
			messages: {
				required: "Invalid height: please enter a value between 24\" and 240\"",
				range: "Invalid height: please enter a value between 24\" and 240\""
			}
		}); 
		$("#width").rules("add", {
			required: true,
			range: [20, 290],
			messages: {
				required: "Invalid width: please enter a value between 20\" and 290\"",
				range: "Invalid width: please enter a value between 20\" and 290\""
			}
		});	
		
		$("#drawopt").rules("add", {
			required: true,
			messages: {
				required: "Invalid draw selection: please select one-way or split"
			}
		});
		} else if (v == "tabtop" || v == "gatheredtab") {
     	setprompts({"#widthsdiv": 1, "#heightdiv": 1, "#drapetrimdiv": 1, "#edgedrapediv": 1 });
     	$("#height").rules("add", {
			required: true,
			range: [24, 240],
			messages: {
				required: "Invalid height: please enter a value between 24\" and 240\"",
				range: "Invalid height: please enter a value between 24\" and 240\""
			}
		});
		$("#widths").rules("add", {
			required: true,
			messages: {
				required: "Invalid number of widths: please select"
			}
		});
		} else if (v == "rodpocketdrape") {
     	setprompts({"#rodsizediv": 1, "#headerdiv": 1, "#widthdiv": 1, "#sheerdiv": 1, "#heightdiv": 1,  "#drapetrimdiv": 1,  "#edgedrapediv": 1, "#drawdiv": 1 });
     	
     	$("#sheer").change(function(event) {
			if ($(this).is(':checked')) {
				$('div').filter(function() {
					return (this.id.match(/.*?edge|trim.*?div/) );
				}).fadeOut(500);
			} else {
				$("#edgedrapediv").fadeIn(500);
				$("#drapetrimdiv").fadeIn(500);
			}
		});
     	
     	$("#drawopt").rules("add", {
			required: true,
			messages: {
				required: "Invalid draw selection: please select one-way or split"
			}
		});
     	
     	$("#width").rules("add", {
			required: true,
			range: [20, 290],
			messages: {
				required: "Invalid width: please enter a value between 20\" and 290\"",
				range: "Invalid width: please enter a value between 20\" and 290\""
			}
		});
     	
     	$("#height").rules("add", {
			required: true,
			range: [24, 240],
			messages: {
				required: "Invalid height: please enter a value between 24\" and 240\"",
				range: "Invalid height: please enter a value between 24\" and 240\""
			}
		});
		$("#rodsize").rules("add", {
			required: true,
			messages: {
				required: "Please select a rod type"
			}
		}); 
		$("#headersize").rules("add", {
			required: true,
			range: [0,6],
			messages: {
				required: "Invalid header size: please enter a value between 0\" and 6\"",
				range: "Invalid header size: please enter a value between 0\" and 6\""
			}
		});
		} else if (v == "ripplefold") {
			setprompts({"#fulldiv": 1, "#widthdiv" : 1, "#heightdiv": 1, "#drawdiv" : 1, "#multicolordiv": 1,  "#drapetrimdiv": 1, "#edgedrapediv": 1, "#sheerdiv": 1});
			
			$("#sheer").change(function(event) {
			if ($(this).is(':checked')) {
				$('div').filter(function() {
					return (this.id.match(/.*?edge|trim.*?div/) );
				}).fadeOut(500);
			} else {
				$("#edgedrapediv").fadeIn(500);
				$("#drapetrimdiv").fadeIn(500);
			}
		});
			
			$("#height").rules("add", {
			required: true,
			range: [24, 240],
			messages: {
				required: "Invalid height: please enter a value between 24\" and 240\"",
				range: "Invalid height: please enter a value between 24\" and 240\""
			}
		}); 
		$("#width").rules("add", {
			required: true,
			range: [20, 192],
			messages: {
				required: "Invalid width: please enter a value between 20\" and 192\"",
				range: "Invalid width: please enter a value between 20\" and 192\""
			}
		});	
		} else if (v == "pleatpanel") {
     	setprompts({"#widthsdiv": 1, "#sheerdiv": 1, "#heightdiv": 1, "#drapetrimdiv": 1, "#edgedrapediv": 1 });
     	
     	$("#sheer").change(function(event) {
			if ($(this).is(':checked')) {
				$('div').filter(function() {
					return (this.id.match(/.*?edge|trim.*?div/) );
				}).fadeOut(500);
			} else {
				$("#edgedrapediv").fadeIn(500);
				$("#drapetrimdiv").fadeIn(500);
			}
		});
     	
     	$("#height").rules("add", {
			required: true,
			range: [24, 240],
			messages: {
				required: "Invalid height: please enter a value between 24\" and 240\"",
				range: "Invalid height: please enter a value between 24\" and 240\""
			}
		});
		$("#widths").rules("add", {
			required: true,
			messages: {
				required: "Invalid number of widths: please select"
			}
		});
     }  else if (v == "flatpanel") {
     	setprompts({"#widthsdiv": 1, "#sheerdiv": 1, "#heightdiv": 1, "#drapetrimdiv": 1, "#edgedrapediv": 1});
     	
     	$("#sheer").change(function(event) {
			if ($(this).is(':checked')) {
				$('div').filter(function() {
					return (this.id.match(/.*?edge|trim.*?div/) );
				}).fadeOut(500);
			} else {
				$("#edgedrapediv").fadeIn(500);
				$("#drapetrimdiv").fadeIn(500);
			}
		});
     	
     	$("#height").rules("add", {
			required: true,
			range: [24, 240],
			messages: {
				required: "Invalid height: please enter a value between 24\" and 240\"",
				range: "Invalid height: please enter a value between 24\" and 240\""
			}
		});
		$("#widths").rules("add", {
			required: true,
			messages: {
				required: "Invalid number of widths: please select"
			}
		});
     
     }  else if (v == "grommetpanel") {
     	setprompts({"#widthsdiv": 1, "#sheerdiv": 1, "#heightdiv": 1, "#drapetrimdiv": 1, "#edgedrapediv": 1 });
     	
     	$("#sheer").change(function(event) {
			if ($(this).is(':checked')) {
				$('div').filter(function() {
					return (this.id.match(/.*?edge|trim.*?div/) );
				}).fadeOut(500);
			} else {
				$("#edgedrapediv").fadeIn(500);
				$("#drapetrimdiv").fadeIn(500);
			}
		});
     	
     	$("#height").rules("add", {
			required: true,
			range: [24, 240],
			messages: {
				required: "Invalid height: please enter a value between 24\" and 240\"",
				range: "Invalid height: please enter a value between 24\" and 240\""
			}
		});
		$("#widths").rules("add", {
			required: true,
			messages: {
				required: "Invalid number of widths: please select"
			}
		});
     
     } else if (v == "rodpocketpanel") {
     	setprompts({"#headerdiv": 1, "#widthsdiv": 1, "#rodsizediv": 1, "#headerdiv": 1, "#sheerdiv": 1, "#heightdiv": 1,  "#drapetrimdiv": 1, "#edgedrapediv": 1 });

		$("#sheer").change(function(event) {
			if ($(this).is(':checked')) {
				$('div').filter(function() {
					return (this.id.match(/.*?edge|trim.*?div/) );
				}).fadeOut(500);
			} else {
				$("#edgedrapediv").fadeIn(500);
				$("#drapetrimdiv").fadeIn(500);
			}
		});

     	$("#height").rules("add", {
			required: true,
			range: [24, 240],
			messages: {
				required: "Invalid height: please enter a value between 24\" and 240\"",
				range: "Invalid height: please enter a value between 24\" and 240\""
			}
		});
		$("#rodsize").rules("add", {
			required: true,
			messages: {
				required: "Please select a rod type"
			}
		});
		$("#widths").rules("add", {
			required: true,
			messages: {
				required: "Invalid number of widths: please select"
			}
		});
		$("#headersize").rules("add", {
			required: true,
			range: [0,6],
			messages: {
				required: "Invalid header size: please enter a value between 0\" and 6\"",
				range: "Invalid header size: please enter a value between 0\" and 6\""
			}
		});
	} else if (v == "rodpocket") {
		setprompts({"#rodsizediv": 1, "#headerdiv": 1, "#widthdiv": 1, "#sheerdiv": 1, "#heightdiv": 1});
		
		$("#sheer").change(function(event) {
			if ($(this).is(':checked')) {
				$('div').filter(function() {
					return (this.id.match(/.*?edge|trim.*?div/) );
				}).fadeOut(500);
			} else {
				$("#edgedrapediv").fadeIn(500);
				$("#drapetrimdiv").fadeIn(500);
			}
		});
		
		$("#width").rules("add", {
			required: true,
			range: [8, 48],
			messages: {
				required: "Invalid width: please enter a value between 8\" and 48\"",
				range: "Invalid width: please enter a value between 8\" and 48\""
			}
		}); 
     	$("#height").rules("add", {
			required: true,
			range: [8, 192],
			messages: {
				required: "Invalid height: please enter a value between 8\" and 192\"",
				range: "Invalid height: please enter a value between 8\" and 192\""
			}
		});
		$("#rodsize").rules("add", {
			required: true,
			messages: {
				required: "Please select a rod type"
			}
		});
		$("#headersize").rules("add", {
			required: true,
			range: [0,6],
			messages: {
				required: "Invalid header size: please enter a value between 0\" and 6\"",
				range: "Invalid header size: please enter a value between 0\" and 6\""
			}
		});	
     
     } else if (v == "ptt") {
     	setprompts({"#pttstylediv": 1});
     	$("#pttstyle").rules("add", {
     		required: true,
     		messages: {
     			required: "A Premium Top Treatment style must be selected."
     		}
     	});
     	$("#pttstyle").change(function(event) {
     		setpttprompts();
     	});
     }	else if (v == "valance") {
     	setprompts({"#widthdiv": 1, "#heightdiv": 1, "#boardsize": 1});
      } else if (v == "casval") {
     	setprompts({"#casvalstylediv" : 1});
     	$("#casvalstyle").rules("add", {
     		required: true,
     		messages: {
     			required: "A Casual Valance style must be selected."
     		}
     	});
     	$("#casvalstyle").change(function(event) {
     		setcasvalprompts();
     	});
     } else if (v == "pillow") {
     	setprompts({"#psizediv" : 1, "#pcorddiv" : 1, "#trimdiv": 1});
     } else {
     	setprompts(null);
     }
   });
   $("input[type=text]").focus(function(){ $(this).select();
	});


 });

 function setcasvalprompts() {
	style = $("#casvalstyle").val();
	
	$("#width").rules("add", {
		required: true,
		range: [18, 200],
		messages: {
			required: "Invalid width: please enter a value between 18\" and 200\"",
			range: "Invalid width: please enter a value between 18\" and 200\""
		}
	});
	
	if (style == "k1" || style == "k2" || style == "k4") {
		setprompts({"#widthdiv": 1, "#klindiv": 1, "#widthdiv": 1, "#casvalstylediv": 1 });
		$("#klin").rules("add", {
			required: true,
			messages: {
				required: "Please select a lining option"
			}
		});
	} else {
		setprompts({"#widthdiv": 1, "#casvalstylediv" : 1});
	}
	
}


