$(document).ready(function() {
	$("#signup_vendor").validate({
		invalidHandler: function (e, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				var message = errors == 1
					? 'You missed 1 field. It has been highlighted below'
					: 'You missed ' + errors + ' fields.  They have been highlighted below';
				$("div.formError span").html(message);
				$("div.formError").show();
			} else {
				$("div.formError").hide();
			}
		},
		submitHandler: function(form) {
			$("div.formError").hide();
			form.submit();
		},
		rules: {
			txt_email: { required: true, email: true },
			txt_fname: "required",
			txt_lname: "required",
			txt_pswd: "required",
			txt_bname: "required",
			txt_website: { webpage: true },
			txt_phone: { required: true, phoneUS: true },
			txt_add: "required",
			sel_country: "required",
			sel_state: "required",
			txt_city: "required",
			txt_zip: "required",
			heardabt: {
				required: function(element) {
					return ($("#txt_others").val()?false:true);
				}
			},
			txt_others: {
				required: function(element) {
					return ($("#heardabt").val()?false:(!$("#txt_others").val()?false:true));
				}
			},
			serve_country: "required",
			serve_state: "required",
			serve_city: "required",
			category: {
				required: function(element) {
					return ($("#txt_special").val()?false:true);
				}
			},
			txt_special: {
				required: function(element) {
					return ($("#category").val()?false:(!$("#txt_special").val()?false:true));
				}
			},
			chk_agree: "required",
			txt_code: "required"
		},
		messages: {
			txt_email: {
				required: "",
				email: "Please enter a valid email address"	
			},
			txt_fname: { required: "" },
			txt_lname: { required: "" },
			txt_pswd: { required: "" },
			txt_bname: { required: "" },
			txt_website: { required: "" },
			txt_phone: { required: "" },
			txt_add: { required: "" },
			sel_country: { required: "" },
			sel_state: { required: "" },
			txt_city: { required: "" },
			txt_zip: { required: "" },
			heardabt: {
				required: "Please select how you heard about us or type it in below"
			},
			txt_others: { required: "" },
			serve_country: { required: "" },
			serve_state: { required: "" },
			serve_city: { required: "" },
			category: {
				required: "Please select your specialty or type it in below"
			},
			txt_special: { required: "" },
			chk_agree: { required: "You must agree to the Terms & Conditions to continue" },
			txt_code: { required: "" }
		}
	});
	
	$("#signup_vendor_2").validate({
		invalidHandler: function (e, validator) {
			if (!$("input[name='hid_AdvPlan']:checked").val()) {
				alert("You must select a Vendor Plan to continue.");
			}
		},
		submitHandler: function(form) {
			form.submit();
		},
		rules: {
			hid_AdvPlan: { required: true }
		},
		messages: {
			hid_AdvPlan: {
				required: ""
			}
		}
	});
	
	$("#signup_vendor_3").validate({
		invalidHandler: function (e, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				var message = errors == 1
					? 'You missed 1 field. It has been highlighted below'
					: 'You missed ' + errors + ' fields.  They have been highlighted below';
				$("div.formError span").html(message);
				$("div.formError").show();
			} else {
				$("div.formError").hide();
			}
		},
		submitHandler: function(form) {
			$("div.formError").hide();
			form.submit();
		},
		rules: {
			serve_state_1: {
				required: function(element) { return ($("#serve_country_1").val()?true:false); }
			},
			serve_state_2: {
				required: function(element) { return ($("#serve_country_2").val()?true:false); }
			},
			serve_state_3: {
				required: function(element) { return ($("#serve_country_3").val()?true:false); }
			},
			serve_state_4: {
				required: function(element) { return ($("#serve_country_4").val()?true:false); }
			},
			serve_state_5: {
				required: function(element) { return ($("#serve_country_5").val()?true:false); }
			},
			serve_state_6: {
				required: function(element) { return ($("#serve_country_6").val()?true:false); }
			},
			serve_state_7: {
				required: function(element) { return ($("#serve_country_7").val()?true:false); }
			},
			serve_state_8: {
				required: function(element) { return ($("#serve_country_8").val()?true:false); }
			},
			serve_state_9: {
				required: function(element) { return ($("#serve_country_9").val()?true:false); }
			},
			serve_city_1: {
				required: function(element) { return ($("#serve_country_1").val()?true:false); }
			},
			serve_city_2: {
				required: function(element) { return ($("#serve_country_2").val()?true:false); }
			},
			serve_city_3: {
				required: function(element) { return ($("#serve_country_3").val()?true:false); }
			},
			serve_city_4: {
				required: function(element) { return ($("#serve_country_4").val()?true:false); }
			},
			serve_city_5: {
				required: function(element) { return ($("#serve_country_5").val()?true:false); }
			},
			serve_city_6: {
				required: function(element) { return ($("#serve_country_6").val()?true:false); }
			},
			serve_city_7: {
				required: function(element) { return ($("#serve_country_7").val()?true:false); }
			},
			serve_city_8: {
				required: function(element) { return ($("#serve_country_8").val()?true:false); }
			},
			serve_city_9: {
				required: function(element) { return ($("#serve_country_9").val()?true:false); }
			}
		},
		messages: {
			serve_country_1: { required: "" },
			serve_country_2: { required: "" },
			serve_country_3: { required: "" },
			serve_country_4: { required: "" },
			serve_country_5: { required: "" },
			serve_country_6: { required: "" },
			serve_country_7: { required: "" },
			serve_country_8: { required: "" },
			serve_country_9: { required: "" },
			serve_state_1: { required: "" },
			serve_state_2: { required: "" },
			serve_state_3: { required: "" },
			serve_state_4: { required: "" },
			serve_state_5: { required: "" },
			serve_state_6: { required: "" },
			serve_state_7: { required: "" },
			serve_state_8: { required: "" },
			serve_state_9: { required: "" },
			serve_city_1: { required: "" },
			serve_city_2: { required: "" },
			serve_city_3: { required: "" },
			serve_city_4: { required: "" },
			serve_city_5: { required: "" },
			serve_city_6: { required: "" },
			serve_city_7: { required: "" },
			serve_city_8: { required: "" },
			serve_city_9: { required: "" }
		}
	});
	
	
	$("#signup_vendor_4").validate({
		invalidHandler: function (e, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				var message = errors == 1
					? 'You missed 1 field. It has been highlighted below'
					: 'You missed ' + errors + ' fields.  They have been highlighted below';
				$("div.formError span").html(message);
				$("div.formError").show();
			} else {
				$("div.formError").hide();
			}
		},
		submitHandler: function(form) {
			$("div.formError").hide();
			form.submit();
		},
		rules: {
			txtCardNo: { creditcard: true, required: function(element) { return ($("#sel_PayType").val()=='CC'?true:false);} },
			txtSecCode: { digits: true, required: function(element) { return ($("#sel_PayType").val()=='CC'?true:false);} },
			expiration_month: { required: function(element) { return ($("#sel_PayType").val()=='CC'?true:false);} },
			expiration_year: { required: function(element) { return ($("#sel_PayType").val()=='CC'?true:false);} },
			txtBankName: { required: function(element) { return ($("#sel_PayType").val()=='ECHECK'?true:false);} },
			txtBAcNumber: { required: function(element) { return ($("#sel_PayType").val()=='ECHECK'?true:false);} },
			txtBNameAc: { required: function(element) { return ($("#sel_PayType").val()=='ECHECK'?true:false);} },
			sel_AcType: { required: function(element) { return ($("#sel_PayType").val()=='ECHECK'?true:false);} },
			txtBRoutNumber: { digits: true, required: function(element) { return ($("#sel_PayType").val()=='ECHECK'?true:false);} },
			fname: "required",
			lname: "required",
			txtBusiness: "required",
			txtAddress: "required",
			sel_country: "required",
			sel_state: "required",
			txt_city: "required",
			txt_Zip: "required"
		},
		messages: {
			txtCardNo: { required: "" },
			txtSecCode: { required: "" },
			expiration_month: { required: "" },
			expiration_year: { required: "" },
			txtBankName: { required: "" },
			txtBAcNumber: { required: "" },
			txtBNameAc: { required: "" },
			sel_AcType: { required: "" },
			txtBRoutNumber: { required: "" },
			fname: { required: "" },
			lname: { required: "" },
			txtBusiness: { required: "" },
			txtAddress: { required: "" },
			sel_country: { required: "" },
			sel_state: { required: "" },
			txt_city: { required: "" },
			txt_Zip: { required: "" }
		}
	});
	
	$("#signup_vendor_4_free").validate({
		invalidHandler: function (e, validator) {
			var errors = validator.numberOfInvalids();
			if (errors) {
				var message = errors == 1
					? 'You missed 1 field. It has been highlighted below'
					: 'You missed ' + errors + ' fields.  They have been highlighted below';
				$("div.formError span").html(message);
				$("div.formError").show();
			} else {
				$("div.formError").hide();
			}
		},
		submitHandler: function(form) {
			$("div.formError").hide();
			form.submit();
		},
		rules: {
			txt_lurl: { required: true }
		},
		messages: {
			txt_lurl: { required: "" }
		}
	});
});