$(document).ready(function(){
	//###############   Form focus & default text   ###############
	$("form input.required:not([type=password]), form textarea.required").each(function(i) {
		$ParentForm = $(this).parents("form");
		if ($ParentForm.attr("id") == "searchForm")
			DefaultValue = "Enter search term";
		else if ($(this).attr("name") == "cm-name")
			DefaultValue = "Enter full name";
		else if ($(this).attr("name") == "cm-kjklkk-kjklkk")
			DefaultValue = "Enter valid email";
		else
			DefaultValue = "required";
		$(this).attr("notequal", DefaultValue);

		if ($(this).val() == "") {$(this).val(DefaultValue).addClass("empty");}

		$(this).focus(function () {
			if ($(this).parents("#searchForm").length)
				DefaultValue = "Enter search term";
			else if ($(this).attr("name") == "cm-name")
				DefaultValue = "Enter full name";
			else if ($(this).attr("name") == "cm-kjklkk-kjklkk")
				DefaultValue = "Enter valid email";
			else
				DefaultValue = "required";
			if ($(this).val() == DefaultValue) {$(this).val("").removeClass("empty");}
		}).blur(function () {
			if ($(this).val() == "") {
				if ($(this).parents("#searchForm").length)
					DefaultValue = "Enter search term";
				else if ($(this).attr("name") == "cm-name")
					DefaultValue = "Enter full name";
				else if ($(this).attr("name") == "cm-kjklkk-kjklkk")
					DefaultValue = "Enter valid email";
				else
					DefaultValue = "required";

				$(this).val(DefaultValue).addClass("empty");
			}
		});
	});

	//###############   Form Updates relating to Price change   ###############
	$("select#size, select#colour").change(function () {
		//###   Dropdown box selection   ###
		GetItemPrice($(this));
	});
	$("input[name='quantity']").keyup(function () {
		//###   Free Entry   ###
		GetItemPrice($(this));
	});

	//###############   Dim add-to-basket button if relevant   ###############
				if (jQuery.trim( $("#add-to-basket-form .price b").html() ) == "Not Available")
					$("#add-to-basket-form input[type=submit]").attr("disabled","true").fadeTo("slow", 0.20).addClass("disabled");
				if ($("#add-to-basket-form select#size").val() == "")
					$("#add-to-basket-form input[type=submit]").attr("disabled","true").fadeTo("slow", 0.20).addClass("disabled");
				else if ($("#add-to-basket-form select#colour").val() == "")
					$("#add-to-basket-form input[type=submit]").attr("disabled","true").fadeTo("slow", 0.20).addClass("disabled");
});

//###############   Gets an updated price via Ajax after changes to the product selection   ###############
function GetItemPrice( $fieldID ) {
	var $Form = $fieldID.parents("form")
	var EntryID = $Form.find("input[name='cartAdd']").val();

	if (EntryID.length > 0) {
		//###   Send form via AJAX   ###
		$.ajax({
			url: "/ajax/price/" + EntryID,
			type: "POST",
			data: $Form.serialize(),
			dataType: "html",
			success: function (html) {
				//alert(html);
				$Form.find(".price b").html(html);
				if (jQuery.trim(html) == "Not Available")
					$Form.find("input[type=submit]").attr("disabled","true").fadeTo("slow", 0.20).addClass("disabled");
				else if ($Form.find("select#size").val() == "")
					$Form.find("input[type=submit]").attr("disabled","true").fadeTo("slow", 0.20).addClass("disabled");
				else if ($Form.find("select#colour").val() == "")
					$Form.find("input[type=submit]").attr("disabled","true").fadeTo("slow", 0.20).addClass("disabled");
				else
					$Form.find("input[type=submit]").removeAttr("disabled").fadeTo("slow", 1).removeClass("disabled");
			}
		});
	}
}
