
/**
 * Promotion Competition Entry form.
 */
  var g_dataString = "1234";
	var contactForm;
	jQuery(document).ready(function() {
		contactForm = jQuery("#contact_form");

	  	jQuery("#formState02").hide();
	    jQuery("#formState03").hide();
      jQuery("#formState04").hide();
	    jQuery("#formNavItem01 span").hide();
	    jQuery("#formNavItem02 span").hide();
	    jQuery("#formNavItem03 span").hide();
		 jQuery(".error").hide();
		
		
		NavButtons_Init();
		
		Step1_Init();
		
		ShowStep(1);
	});
	
	/** 
	 * Set the event handlers for the step buttons
	 */
	function NavButtons_Init() {
		var jqDataID = "stepTo";
		
		contactForm.find("#formState01 #nextBtn").data(jqDataID, 2);
		contactForm.find("#formState02 #backBtn01").data(jqDataID, 1);
		contactForm.find("#formState02 #submitBtn").data(jqDataID, 3);
		
		// Click event for the buttons
		contactForm.find(".button").click(function() {
		    jQuery(".error").hide();
			var button = jQuery(this);
			var stepTo = button.data(jqDataID);
			
			ShowStep(stepTo);
		});
	}
	
	
	/**
	 * Initialize Step 1. 
	 * Hides other steps.
	 */
	function Step1_Init() {
		
	}

	
	/**
	 * Shows a step
	 * Looks for #formState<number>
	 * @param {Int} number: Step number to show
	 */
	function ShowStep(number) {

		var stepID = "#formState0" + number;
		var navStepID = "#formNavItem0" + number + " span";
		
		var divStep = jQuery(stepID);
		var navStep = jQuery(navStepID);
		
		var hideSteps = jQuery(".step.activeStep");
		var hideNavSteps = jQuery(".formNavItem span").not(navStepID);
		
		var proceed = true;
		
		if (number == 2) {
			var message = jQuery("#textareaEntry").val();
			if (message == "") {
				jQuery("label#entryFormError").show();
				jQuery("textarea#textareaEntry").focus();
				return false;
			}
			if (message.length > 300) {
				jQuery("label#messageTooLongError").show();
				jQuery("textarea#textareaEntry").focus();
				return false;
			}
		}
		
		if (number == 3) {
			//Check valid form
			proceed = ValidateForm();
			
			//Submit & Check response.
			if (proceed) {
				proceed = false;
				SubmitForm(g_dataString);
			}
		}
    
		if (proceed) {
			hideSteps.removeClass("activeStep").fadeOut(500, function(){
				divStep.fadeIn();
			});
			hideNavSteps.fadeOut(500);
			
			divStep.addClass("activeStep");
			navStep.fadeIn();
		}
	}

	
	/**
	 * Validates the form
	 */
	function ValidateForm() {
		var result = true;
		
		jQuery(".error").hide();
		
  var firstName = jQuery("input#firstName").val();
  if (firstName == "") {
    jQuery("label#firstNameError").show();
    jQuery("input#firstName").focus();
    return false;
  }
  var lastName = jQuery("input#lastName").val();
  if (lastName == "") {
    jQuery("label#lastNameError").show();
    jQuery("input#lastName").focus();
    return false;
  }
  
  var postAddress = jQuery("input#postAddress").val();
  if (postAddress == "") {
    jQuery("label#postAddressError").show();
    jQuery("input#postAddress").focus();
    return false;
  }
  
  var suburb = jQuery("input#suburb").val();
  if (suburb == "") {
    jQuery("label#suburbError").show();
    jQuery("input#suburb").focus();
    return false;
  }

  var postCode = jQuery("input#postCode").val();
  if (postCode == "") {
    jQuery("label#postCodeError").show();
    jQuery("input#postCode").focus();
    return false;
  }
  else if (!IsNumeric(postCode) || postCode.length != 4) {
    jQuery("label#postCodeFormatError").show();
    jQuery("input#postCode").focus();
    return false;
  }
  
  var state = jQuery("select#state").val();
  if (state == "") {
    jQuery("label#stateError").show();
    jQuery("select#state").focus();
    return false;
  }
  
  var dPhone = jQuery("input#dPhone").val().replace(/[\s\-\(\)]/g, "");
  if (dPhone == "") {
    jQuery("label#dPhoneError").show();
    jQuery("input#dPhone").focus();
    return false;
  }
  else if (!IsNumeric(dPhone) || dPhone.length < 9 || dPhone.length > 13) {
    jQuery("label#dPhoneFormatError").show();
    jQuery("input#dPhone").focus();
    return false;
  }
  
  var email = jQuery("input#email").val();
  if (email == "") {
    jQuery("label#emailError").show();
    jQuery("input#email").focus();
    return false;
  }
  else if (!IsValidEmail(email)) {
    jQuery("label#emailFormatError").show();
    jQuery("input#email").focus();
    return false;
  }

  var TnC = document.getElementById("termsAgree").checked;
  if (!TnC) {
    jQuery("label#TnCError").show();
    jQuery("input#termsAgree").focus();
    return false;
  }

  var omoOpt = document.getElementById("chkOmoOpt").checked;
  var uniOpt = document.getElementById("chkUniOpt").checked;
  var message = jQuery("#textareaEntry").val();
		
  g_dataString = '&first name=' + firstName + '&last name=' + lastName + '&postal address=' + postAddress + '&suburb=' + suburb + '&post code=' + postCode + '&state=' + state + '&daytime phone=' + dPhone + '&email=' + email + '&message=' + message + '&omo optin=' + omoOpt + '&unilever optin=' + uniOpt;
    
		return result;
	}
  
  
	/** 
	 * Submits the Form
	 */
	function SubmitForm(dataString) {
  
  jQuery.ajax({
    beforeSend: function (xhr) {xhr.setRequestHeader("Content-Length", g_dataString.length);},
    type: "POST",
    url: "processForm.aspx",
    data: dataString,
    success: function(response){
        if (response == "Success") {
			jQuery("#formState02").hide();
			jQuery("#formState03").fadeIn(500);
			jQuery("#formNavItem02 span").hide();
			jQuery("#formNavItem03 span").fadeIn("fast");
			var item = document.getElementById("formState03");
			item.style[1] = "";
        }
		else {
			jQuery("label#genericError").show();
		}
    },
    error: function(res, textStatus, errorThrown) {
				jQuery("label#genericError").show();
    }
  });
  /*
		var result = false;
		
		var firstName = jQuery("input#firstName").val();
		var lastName = jQuery("input#lastName").val();
		var postAddress = jQuery("input#postAddress").val();
		var suburb = jQuery("input#suburb").val();
		var postCode = jQuery("input#postCode").val();
		var state = jQuery("input#state").val();
		var dPhone = jQuery("input#dPhone").val();
		var email = jQuery("input#email").val();
		var entry = jQuery("#textareaEntry").val();
		
		var postUrl = "processForm.aspx";
		var postParams = 'first name=' + firstName 
						+ '&last name=' + lastName 
						+ '&postal address=' + postAddress 
						+ '&suburb=' + suburb 
						+ '&post code=' + postCode 
						+ '&state=' + state 
						+ '&daytime phone=' + dPhone 
						+ '&email=' + email
						+ '&entry=' + entry;
		
		jQuery.post(postUrl, postParams, function(data) {
			result = (1) ? true : false;
		});
		return result;
*/

	}
function IsNumeric(sText) {
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;

	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;
}
function IsValidEmail(email) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	return reg.test(email);
}