//###   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() {
	//###   SEARCHING   ###
	$("#searchform").validate();

	//###   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;
		}
	});

	//###   ACADEMIC FEEDBACK   ###
	$("#academic-feedback-form").validate({

		// Disabled after issues with AJAX
		//submitHandler: function(form) {
		//	//###   Disable the Submit button   ###
		//	$("#academic-feedback-form .button").attr("disabled","true").fadeTo("slow", 0.20).addClass("disabled");
		//	SubmitAcademicFeedbackForm();
		//	return false;
		//},

		// the errorPlacement has to take the layout into account
		errorPlacement: function(error, element) {
			if ( element.is(":radio") ) {
				if( element.parent().is('li') ) {
					error.appendTo( element.parent().parent().parent() );
				}else if( element.parent().is('td') ) {
					element.parent().parent().after("<tr><td colspan='7'></td></tr>");
					error.appendTo(  element.parent().parent().next().children('td') );	
				}			
			}else if ( element.is(":checkbox") ) {
				error.appendTo ( element.parent().parent().parent() );
			}else {
				if( element.hasClass('grouped') ) {error.insertAfter(element);}else {
					error.appendTo( element.parent() );
				}
			}
		}
	});

	//###   DESK INSPECTION REQUEST FORM   ###
	$("#desk-inspection-form").validate({
/* Disabled after issues with AJAX
		submitHandler: function(form) {
			//###   Disable the Submit button   ###
			$("#desk-inspection-form .button").attr("disabled","true").fadeTo("slow", 0.20).addClass("disabled");
			SubmitDeskInspectionForm();
			return false;
		}
*/
	});

	//###   LOGIN   ###
	$("#login-form").validate({
		submitHandler: function(form) {
			//###   Disable the Submit button   ###
			$("#login-form .button").fadeTo("slow", 0.20).attr("disabled","true").addClass("disabled");
			SubmitLogin();
			return false;
		}
	});

	//###   REGISTRATION   ###
	$("#register-form").validate({
		submitHandler: function(form) {
			//###   Disable the Submit button   ###
			$("#register-form .button").fadeTo("slow", 0.20).attr("disabled","true").addClass("disabled");
			SubmitRegistration();//  Also deals with submitting newsletter details
			// Uncomment if want to test, and comment out line above
			// SubmitNewsletter("register-form");
			return false;
		}
	});

	//###   UPDATE PROFILE   ###
	$("#user-details-form").validate({
		submitHandler: function(form) {
			//###   Disable the Submit button   ###
			$("#user-details-form .button").fadeTo("slow", 0.20).attr("disabled","true").addClass("disabled");
			// NOTE: Form shared between edit user details and cart checkout, so return url needs to do two different things
			// unfortunately, using AJAX submission doesn't actually update anything, and don't have time to work out why
			//SubmitProfileUpdate();
			//return false;
			
			form.submit();// Uncomment if want to use EE's hard redirect based on embedded RET variable
		}
	});

	//###   RESET PASSWORD   ###
	$("#forgot-password-form").validate({
		submitHandler: function(form) {
			//###   Disable the Submit button   ###
			$("#forgot-password-form .button").fadeTo("slow", 0.20).attr("disabled","true").addClass("disabled");
			SubmitPasswordReset();
			return false;
		}
	});


	//###   ACADEMIC REGISTRATION - SET INITIAL STATE   ###
	if ( $("#registerAcademic").is(':checked') )
		$(".registerAcademic").next("#academic-fields").show().find("input, textarea, select").removeAttr("disabled");
	else
		$(".registerAcademic").next("#academic-fields").hide().find("input, textarea, select").attr("disabled","true");

	//###   ACADEMIC REGISTRATION - SHOW/HIDE FORM   ###
	$("#registerAcademic").click(function() {
		if ( $("#registerAcademic").is(':checked') )
			$(".registerAcademic").next("#academic-fields").show().find("input, textarea, select").removeAttr("disabled");
		else
			$(".registerAcademic").next("#academic-fields").hide().find("input, textarea, select").attr("disabled","true");
	});

	//###   UPDATE PROFILE - Form display   ###
	if ( $("#user-details-form").length ) {
		
		SetAreaFields( $("#user-details-form #billing-country") );

		if ( $("#delivery-same-address").is(':checked') ) {
			$("#user-details-form #delivery-details").hide().find("input,select,textarea").attr("disabled","disabled");
		} else {
			SetAreaFields( $("#user-details-form #delivery-country") );
		}

		//###   Interactions   ###
		$("#user-details-form #delivery-same-address").bind(($.browser.msie ? "click" : "change"), function () {
			if ( $(this).attr("checked") ) {
				$("#delivery-different").remove();
				$("#user-details-form #delivery-details").fadeOut("normal").find("input,select,textarea").attr("disabled","disabled");
				SetAreaFields( $("#user-details-form #billing-country") );
			} else {
				$("#user-details-form").prepend("<input type='hidden' name='m_field_id_13' id='delivery-different' value='n' />");
				$("#user-details-form #delivery-details").fadeIn("normal").find("input,select,textarea").removeAttr("disabled");
				SetAreaFields( $("#user-details-form #delivery-country") );
			}
		});
		$("#user-details-form #billing-country, #user-details-form #delivery-country").change(function () {
			SetAreaFields( $(this) );
		});
	}
});


//###   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('##');
			 //console.log('HTML: '+html);

			 
			 if ( html.search(/<title>error<\/title>/i) >= 0 ) {  
				//alert('errors');

				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 {
				//alert("hide form");

				$("#contact-form").hide();
				$(".section .form-success").slideDown("slow");

				/*
				if ( $("#newsletter-signup").is(":checked") == true) {
					//###   Create Appropriate Fields for Newsletter Submission   ###
					$NameField = $("#contact-form #fullname");
					$NameField.clone().insertAfter($NameField).attr("name", "cm-name");
					$EmailField = $("#contact-form #email");
					$EmailField.clone().insertAfter($EmailField).attr("name", "cm-kjklkk-kjklkk");

					SubmitNewsletterForm("contact-form");
				} */
			}
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			//alert(textStatus + errorThrown);
			$("#contact-form .button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");
		}
	});
}


//###   LOGIN FORM SUBMISSION   ###
function SubmitLogin() {
	//###   Send form via AJAX   ###
	$.ajax({
		type: "POST",
		data: $("#login-form").serialize() + "&action=" + $("#login-form").attr("action"),
		dataType: "html",
		success: function (html) {
			//alert(html);
			//###   Successfully received an html page from the server   ###
			//if ( html.search(/error/i) >= 0 ) {
			if ( html.search(/<title>error<\/title>/i) >= 0 ) {  
				if (html.search(/username you submitted was not found/i) >= 0) {
					$("#username").addClass('error');
					$("#username").after('<label class="error" for="username" generated="true">Email address doesn\'t exist<br />Re-check or register an account</label>');

				} else if (html.search(/password/i) >= 0) {
					$("#password").addClass('error');
					$("#password").after('<label class="error" for="password" generated="true">You have entered an incorrect password</label>');

				} else if (html.search(/already logged in/i) >= 0) {
					$("#login-form .button").after('<label class="error" for="submit" generated="true">User already logged in!</label>');

				} else if (html.search(/account has not been activated yet/i) >= 0) {
					$("#login-form .button").after('<label class="error" for="submit" generated="true">Account has not been activated yet<br />Check your email and activate</label>');

				} else {
				}

				$("#login-form .button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");

			} else {
				//###   Successfully Logged in   ###
				$("#login-form").hide().prev("p,h3").hide();
				$(".registerSection").hide()
				$("#login-form").next(".form-success").slideDown("slow");
				$("#masthead .utils a.account-links").html("My account");

				ClearForm("#login-form");
			}
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			//###   Error occurred, could be server, CMS or 404   ###
			//alert(textStatus + errorThrown);
			$("#login-form .button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");
		}
	});
} //###   End of SubmitLogin function   ###


//###   REGISTER FORM SUBMISSION   ###
function SubmitRegistration() {
	//###   Send form via AJAX   ###
	$.ajax({
		type: "POST",
		data: $("#register-form").serialize() + "&action=" + $("#register-form").attr("action"),
		dataType: "html",
		success: function (html) {
			//alert(html);
			//###   Successfully received an html page from the server   ###
			//if ( html.search(/error/i) >= 0 ) {
			if ( html.search(/<title>error<\/title>/i) >= 0 ) { 			
				if (html.search(/email you chose is not available/i) >= 0) {
					$("#reg-username").addClass('error').after('<label class="error" for="reg-username" generated="true">An account with this email already exists</label>');
					$("#reg-email").addClass('error');

				} else if (html.search(/captcha/i) >= 0) {
					$("#captcha").addClass('error').after('<label class="error" for="captcha" generated="true">' + $("#captcha").attr('title') + '</label>')
				}

				$("#register-form .button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");

			} else {
				//###   Successfully Registered   ###
				$("#register-form").hide().prev("h3, p").hide();
				$("#login-form").parent().hide();
				$("#register-form").nextAll(".form-success").slideDown("slow");

				if ( $("#register-form #newsletter-signup").is(":checked") == true) {
					//###   Newsletter Submission   ###
					SubmitNewsletter("register-form");
				}
				
				$("#masthead .utils a.account-links").html("My account / sign out");
			}
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			//###   Error occurred, could be server, CMS or 404   ###
			//alert(textStatus + errorThrown);
			$("#register-form button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");
		}
	});
} //###   End of SubmitRegistration function   ###


//###   SUBMIT PROFILE SUBMISSION   ###
function SubmitProfileUpdate() {
	//###   Send form via AJAX   ###		
	$.ajax({
		type: "POST",
		data: $("#user-details-form").serialize() + "&action=" + $("#user-details-form").attr("action"),
		dataType: "html",
		success: function (html) {

			//alert ('http://www.avabooks.com'+window.location.pathname);

			//alert(html);
			//###   Successfully received an html page from the server   ###
			// if ( html.search(/error/i) >= 0 ) {
			if ( html.search(/<title>error<\/title>/i) >= 0 ) { 
				if (html.search(/email you chose is not available/i) >= 0) {
					$("#reg-username").addClass('error').after('<label class="error" for="reg-username" generated="true">An account with this email already exists</label>');
					$("#reg-email").addClass('error');
				}

				$("#user-details-form .button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");

			} else {
				//###   Successfully Updated   ###				
				if( window.location.pathname == '/cart/checkout/' || window.location.pathname == '/cart/checkout') {
					// Redirect submissions of form from cart to payment page
					window.location = 'http://www.avabooks.com'+'/cart/payment/'
				}else{
					// Do the usual hide form and show success message
					$("#user-details-form").hide().nextAll(".form-success").slideDown("slow");
				}				
			}
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			//###   Error occurred, could be server, CMS or 404   ###
			//alert(textStatus + errorThrown);
			$("#user-details-form button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");
		}
	});
} //###   End of SubmitProfileUpdate function   ###


//###   NEWSLETTER SUBMISSION   ###
function SubmitNewsletter(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-jyhkiu-jyhkiu="+encodeURIComponent($("#"+formID+" #email").val());


		//###   AVA Specific   ###		
		//-------------------------------------------------------
		// Loops through checkboxes and if value matches CM custom field name then adds that to string
		// CM custom field name, and CM segment, and value for custom field all need to match
		// When AVA adds further disciplines EE and CM will need updating accordingly.
		// And corresponding CM field identifier ('cm-f-huniu' etc) will need adding here.
		// Perhaps one day use API for this instead....
		//-------------------------------------------------------
		if ( $("#"+formID+" #discipline-signup .check:checked").length ) {

			$("#"+formID+" #discipline-signup .check:checked").each(function() {

				
				if( $(this).val() == "Advertising" ) {
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819618' );
				}else if( $(this).val() == "Animation" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819621' );
				}else if( $(this).val() == "Architecture" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819619' );
				}else if( $(this).val() == "Branding" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819622' );
				}else if( $(this).val() == "Creative Photography" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819620' );
				}else if( $(this).val() == "Design Management" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819629' );
				}else if( $(this).val() == "Digital Media" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819623' );
				}else if( $(this).val() == "Fashion Design" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819630' );
				}else if( $(this).val() == "Film-Making" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819624' );
				}else if( $(this).val() == "Graphic Design" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819631' );
				}else if( $(this).val() == "Illustration" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819625' );
				}else if( $(this).val() == "Interior Architecture" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819632' );
				}else if( $(this).val() == "Interior Design" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819626' );
				}else if( $(this).val() == "Landscape Architecture" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819633' );
				}else if( $(this).val() == "Marketing" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819627' );
				}else if( $(this).val() == "Photography" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819634' );
				}else if( $(this).val() == "Product Design" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819628' );
				}else if( $(this).val() == "Typography" ){
					str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '819635' );
				}

				
				
			});


		} else { // Set a default of ALL for those who've clicked to join, but not specified which
			// Use Discipline custom field
			//str = str + "&cm-f-dhhkkk=";
			//str = str + "all";

			// Use 'All' option in 'Interested In' multi option custom field
			str = str + "&cm-fo-hunkr[]=" + encodeURIComponent( '824859' );
		}

		//###   Set form action   ###
		var formAction = "http://boost.twobelowzero.com/t/r/s/jyhkiu/";
	}
			
	//###   Add form action to end of serialized data
	var final = str + "&action=" + formAction;

	//alert("final="+final);

	//###   Submit the form via ajax
	$.ajax({
		url: "/themes/site_themes/ava/js/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   ###


//###   RESET PASSWORD FORM SUBMISSION   ###
function SubmitPasswordReset() {
	//###   Send form via AJAX   ###
	$.ajax({
		type: "POST",
		data: $("#forgot-password-form").serialize() + "&action=" + $("#forgot-password-form").attr("action"),
		dataType: "html",
		success: function (html) {
			//###   Successfully received an html page from the server   ###
			//alert(html);
			//if ( html.search(/error/i) >= 0 ) {
			if ( html.search(/<title>error<\/title>/i) >= 0 ) { 
				if (html.search(/not found/i) >= 0) {
					$("#pwd-reset-email").addClass('error');
					$("#pwd-reset-email").after('<label class="error" for="login-username" generated="true">Email address doesn\'t exist<br />Re-check or register an account</label>');

				} else if (html.search(/already logged in/i) >= 0) {
					$("#forgot-password-form button").after('<label class="error" for="login-username" generated="true">User already logged in!</label>');

				} else if (html.search(/account has not been activated yet/i) >= 0) {
					$("#forgot-password-form button").after('<label class="error" for="login-username" generated="true">Account has not been activated yet<br />Check your email and activate</label>');

				} else {
				}

				$("#forgot-password-form button").fadeTo("slow", 1).removeAttr("disabled");

			} else {
				//###   Successfully sent reset request   ###
				//"Instructions for resetting your password have just been emailed to you."
				$("#forgot-password-form").hide().prev("p").hide().nextAll(".form-success").slideDown("slow");
			}
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			//###   Error occurred, could be server, CMS or 404   ###
			//alert(textStatus + errorThrown);
			$("#forgot-password-form button").fadeTo("slow", 1).removeAttr("disabled")
		}
	});
} //###   End of SubmitPasswordReset 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   ###


function SetAreaFields($CountryField) {
	
	$AddressGroup = $CountryField.parent().parent();

	if ($CountryField.find("option:selected").val() != "") {
		//###   Country HAS been selected   ###
		$AddressGroup.find("input,textarea,select").removeAttr("disabled");
		$AddressGroup.children("div").fadeTo("slow", 1);
		$AddressGroup.find(".instructions").hide();

		//alert( 'County: '+ $AddressGroup.find("*[id$='county']").val() +', State:'+$AddressGroup.find("*[id$='state']").val() + ', Province:' + $AddressGroup.find("*[id$='province']").val() );
		//alert( ($AddressGroup.attr('id')) );

		if ($CountryField.val() == "UK" || $CountryField.val() == "GB" || $CountryField.val() == "United Kingdom") {

			// Show Country-specific field
			$AddressGroup.find("*[id$='county']").fadeIn("slow").prev().fadeIn("slow");

			// Hide non-country-specific fields
			$AddressGroup.find("*[id$='state']").attr("disabled","disabled").hide().prev().hide();
			$AddressGroup.find("*[id$='province']").attr("disabled","disabled").hide().prev().hide();

			// Clear non-country-specific fields
			$AddressGroup.find("select[id$='state']").children(":first").attr("selected", "selected"); //###   Clear State value selected   ###
			$AddressGroup.find("input[id$='province']").val(""); //###   Clear Province value entered   ###

			// But we do need to submit them, even though they've been cleared.... UK/Other needs State submitted 8,21, US needs UK submitted 7,20
			// So let's add hidden fields for billing and delivery accordingly
			// And clear up any previously created
			if(  $AddressGroup.attr('id') == 'billing-details' ) { 
				if(! $("#hidden-state-billing").length){
					$("#user-details-form .hiddenFields").append('<input type="hidden" id="hidden-state-billing" name="m_field_id_8" value="" />'); 
				}
				$("#hidden-county-billing").remove();
			}
			if( $AddressGroup.attr('id') == 'delivery-details' ) { 
				if(! $("#hidden-state-delivery").length){
					$("#user-details-form .hiddenFields").append('<input type="hidden" id="hidden-state-delivery" name="m_field_id_21" value="" />'); 
				}
				$("#hidden-county-delivery").remove();
			}
			// Rename Postcode label
			$AddressGroup.find("input[id$='postcode']").prev().html("Postcode*"); //###   Rename Postcode label   ###

		} else if ($CountryField.val() == "US" || $CountryField.val() == "United States") {
			$AddressGroup.find("*[id$='state']").fadeIn("slow").prev().fadeIn("slow");
			$AddressGroup.find("*[id$='county']").attr("disabled","disabled").hide().prev().hide();
			$AddressGroup.find("*[id$='province']").attr("disabled","disabled").hide().prev().hide();

			$AddressGroup.find("select[id$='county']").children(":first").attr("selected", "selected"); //###   Clear State value selected   ###
			$AddressGroup.find("input[id$='province']").val(""); //###   Clear Province value entered   ###

			// But we do need to submit them, even though they've been cleared.... UK/Other needs State submitted 8,21, US needs UK submitted 7,20
			// So let's add hidden fields for billing and delivery accordingly
			// And clear up any previously created
			if(  $AddressGroup.attr('id') == 'billing-details' ) { 
				if(! $("#hidden-county-billing").length){
					$("#user-details-form .hiddenFields").append('<input type="hidden" id="hidden-county-billing" name="m_field_id_7" value="" />'); 
				}
				$("#hidden-state-billing").remove();
			}
			if( $AddressGroup.attr('id') == 'delivery-details' ) { 
				if(! $("#hidden-county-delivery").length){
					$("#user-details-form .hiddenFields").append('<input type="hidden" id="hidden-county-delivery" name="m_field_id_20" value="" />'); 
				}
				$("#hidden-state-delivery").remove();
			}
			$AddressGroup.find("input[id$='postcode']").prev().html("Zip*"); //###   Rename Postcode label   ###
		} else {
			$AddressGroup.find("*[id$='province']").fadeIn("slow").prev().fadeIn("slow");
			$AddressGroup.find("*[id$='county']").attr("disabled","disabled").hide().prev().hide();
			$AddressGroup.find("*[id$='state']").attr("disabled","disabled").hide().prev().hide();

			$AddressGroup.find("select[id$='county']").children(":first").attr("selected", "selected"); //###   Clear State value selected   ###
			$AddressGroup.find("select[id$='state']").children(":first").attr("selected", "selected"); //###   Clear Province value entered   ###

			// But we do need to submit them, even though they've been cleared.... UK/Other needs State submitted 8,21, US needs UK submitted 7,20
			// So let's add hidden fields for billing and delivery accordingly
			// And clear up any previously created
			if(  $AddressGroup.attr('id') == 'billing-details' ) { 
				if(! $("#hidden-state-billing").length){
					$("#user-details-form .hiddenFields").append('<input type="hidden" id="hidden-state-billing" name="m_field_id_8" value="" />'); 
				}
				$("#hidden-county-billing").remove();
			}
			if( $AddressGroup.attr('id') == 'delivery-details' ) { 
				if(! $("#hidden-state-delivery").length){
					$("#user-details-form .hiddenFields").append('<input type="hidden" id="hidden-state-delivery" name="m_field_id_21" value="" />'); 
				}
				$("#hidden-county-delivery").remove();
			}

			$AddressGroup.find("input[id$='postcode']").prev().html("Areacode/zip*"); //###   Rename Postcode label   ###
		}

		//alert( 'County: '+ $AddressGroup.find("*[id$='county']").val() +', State:'+$AddressGroup.find("*[id$='state']").val() + ', Province:' + $AddressGroup.find("*[id$='province']").val() );

	} else {
		//###   Country has NOT been selected yet - Defaults   ###
		$AddressGroup.find("p.instructions").remove();
		$AddressGroup.children("div:first").before('<p class="instructions">Start by selecting your country...</p>');

		$AddressGroup.children("div:gt(2)").hide().find("input,textarea,select").attr("disabled","disabled");

		$AddressGroup.find("*[id$='country']").removeAttr("disabled").parent().show();
/*		$AddressGroup.find("*[id$='county']").show().prev().show();
		$AddressGroup.find("input[id$='postcode']").prev().html("Postcode");
		$AddressGroup.find("*[id$='state']").hide().prev().hide();
		$AddressGroup.find("*[id$='province']").hide().val("").prev().hide(); */
	}

/*	//###   Update Cart (total delivery) via AJAX   ###
	$.ajax({
		url: "/AjaxHandler/delivery-cost/" + $CountryField.val(),
		type: "POST",
		dataType: "html",
		success: function (html) {
			//alert(html);
			$(".content #basket-totals p:not(:first)").remove();
			$(".content #basket-totals").append(html);
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			//alert("Error: " + textStatus + " - " + errorThrown);
		}
	}); */
} //###   End of SetAreaFields Function   ###


//###   DESK INSPECTION FORM SUBMISSION   ###
function SubmitDeskInspectionForm() {
	//###   Send form via AJAX   ###
	$.ajax({
		type: "POST",
		data: $("#desk-inspection-form").serialize() + "&action=" + $("#desk-inspection-form").attr("action"),
		dataType: "html",
		success: function (html) {
			//alert(html);

			//if ( html.search(/error/i) >= 0 ) {
			if ( html.search(/<title>error<\/title>/i) >= 0 ) { 
				$("#desk-inspection-form .button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");

			} else {
				$("#desk-inspection-form").hide();
				$(".section .form-success").slideDown("slow");
			}
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			//alert(textStatus + errorThrown);
			$("#desk-inspection-form .button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");

		}
	});
} //###   End of SubmitDeskInspectionForm Function   ###


//###   ACADEMIC FEEDBACK FORM SUBMISSION   ###
function SubmitAcademicFeedbackForm() {

	//alert('submitted');

	//###   Send form via AJAX   ###
	$.ajax({
		type: "POST",
		data: $("#academic-feedback-form").serialize() + "&action=" + $("#academic-feedback-form").attr("action"),
		dataType: "html",
		success: function (html) {
			//alert('success 1'+html);

			//if ( html.search(/error/i) >= 0 ) {
			if ( html.search(/<title>error<\/title>/i) >= 0 ) { 
				//alert('errors');
				$("#academic-feedback-form .button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");

			} else {
				//alert('success 2');
				$("#academic-feedback-form").hide();
				$(".section .form-success").slideDown("slow");
			}
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			//alert(textStatus + errorThrown);
			$("#academic-feedback-form .button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");
		},
/*
		complete: function (XMLHttpRequest, textStatus) {
			//alert('complete'+textStatus);

			if (textStatus == 'success'){
				//alert('success 3');
				$("#academic-feedback-form").hide();
				$(".section .form-success").slideDown("slow");
			}else{
				//alert('something else');
				$("#academic-feedback-form .button").fadeTo("slow", 1).removeAttr("disabled").removeClass("disabled");
			}
		},
*/
	});
} //###   End of SubmitAcademicFeedbackForm Function   ###
