//###   Add custom method - this requires the value to be the same as the first parameter   ###
$.validator.methods.notequal = function(value, element, param) {
	return value != param;
};

$(document).ready(function() {

	//###   CONTACT US FORM   ###
	$("#contact-form").validate({
		submitHandler: function(form) {
			//###   Disable the Submit button   ###
			$("#contact-form button").attr("disabled","true").fadeTo("slow", 0.20).addClass("disabled");

			SubmitContactForm();
			return false;
		}
	});

	//###   SEARCHING   ###
	$("#sitesearch").validate({
		rules: {
			keywords: {
				required: true,
				minlength: 3,
				maxlength: 30
			}
		}
	});

	//###   ADD TO BASKET FORM   ###
	$("#add-to-basket-form").validate();

	//###   NEWSLETTER   ###
	$("#newsletter-form").validate({
		submitHandler: function(form) {
			//###   Disable the Submit button   ###
			$("#newsletter-form button").attr("disabled","true").fadeTo("slow", 0.20).addClass("disabled");

			SubmitNewsletterForm();
			return false;
		}
	});
}); //###   End of DOM Ready   ###

//###   CONTACT US SUBMITTED   ###
function SubmitContactForm() {
	//###   Send form via AJAX   ###
	$.ajax({
		type: "POST",
		data: $("#contact-form").serialize() + "&action=" + $("#contact-form").attr("action"),
		dataType: "html",
		success: function (html) {
			//alert(html);

			if ( html.search(/error/i) >= 0 ) {
				if (html.search(/captcha/i) >= 0) {
					$("#captcha").addClass('error').after('<label class="error" for="captcha" generated="true">' + $("#captcha").attr('title') + '</label>')
				}
				$("#contact-form button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");

			} else {
				$("#contact-form").hide().next(".form-success").slideDown("slow");
				if ( $("#newsletter-signup").is(":checked") == true) {SubmitNewsletterForm("contact-form");}
				//ClearForm("#contact-form");
			}
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			//alert(textStatus + errorThrown);
			$("#contact-form button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");

		},
		complete: function (XMLHttpRequest, textStatus) {//alert(textStatus);}
	});
}

//###   NEWSLETTER SUBMISSION   ###
function SubmitNewsletterForm(formID) {
	if (formID == undefined || formID == "newsletter-form") {
		//###   Serialize form values to be submitted with POST   ###
		var str = $("#newsletter-form [name*=cm-]").serialize();
		//###   Grab form action   ###
		var formAction = $("#newsletter-form").attr("action");
	} else {
		//###   Serialize form values to be submitted with POST   ###
		if ( $("#"+formID+" #fullname").length ) {
			var str = "cm-name="+encodeURIComponent( $("#"+formID+" #fullname").val() );
		} else {
			var str = "cm-name="+encodeURIComponent( $("#"+formID+" #firstname").val()+" "+$("#"+formID+" #surname").val() );
		}
		str = str + "&cm-kuktjy-kuktjy="+encodeURIComponent($("#"+formID+" #email").val());
		//###   Set form action   ###
		var formAction = "http://boost.twobelowzero.com/t/r/s/kuktjy/";
	}

	//###   Add form action to end of serialized data
	var final = str + "&action=" + formAction;

	//###   Submit the form via ajax
	$.ajax({
		url: "/themes/site_themes/shop-in-a-box/javascript/newsletter-proxy.php",
		type: "POST",
		data: final,
		success: function(html) {
			//alert(html);
			$("#newsletter-form").hide().next(".form-success").slideDown("slow");

			//###   Set Session Variable   ###
			$.ajax({
				url: "/ajax/newsletter"
			});
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			//alert(textStatus + errorThrown);
			$("#newsletter-form input[type=submit]").removeAttr("disabled").fadeTo("slow", 1).removeClass("disabled");
		}
	});
} //###   End of SubmitNewsletter function   ###

//###   Clear any form - pass form element   ###
function ClearForm(FormID) {
	//###   Reset Contact Form   ###
	$(":input", FormID).each(function() {
		var type = this.type;
		var tag = this.tagName.toLowerCase();
		if (type == 'text' || type == 'password' || tag == 'textarea') {
			this.value = "";
		}
	});
} //###   End of ClearForm function   ###
