/*--------------------------------
WOOLWORTHS VALIDATION
--------------------------------*/

jQuery(function() {
	jQuery("#entryForm .textBox").focus(function() {
		jQuery(this).removeClass("errata").parent().addClass("focus");
	});
	jQuery("#entryForm .textBox").blur(function() {
		jQuery(this).parent().removeClass("focus");
	});
});

var FormIsValid;
function FormSubmit() {
	FormIsValid = true;
	if (FormValidate()) {
	    //form submit
	    jQuery("form:first").submit();
		//fnShowThanks();
	}
}

function fnShowThanks() {
	jQuery('div.innerForm').fadeOut('fast');
	jQuery('div#thank-you-mesg').fadeIn('fast');
}


function FormValidate() {

	var fname = fnRequiredVal('.fname input');
	var lname = fnRequiredVal('.lname input');
	var stAddr = fnRequiredVal('.addr input');
	var subrb = fnRequiredVal('.subrb input');
	var postCode = fnRequiredVal('.postcode input');
	var stateTrtry = jQuery('.state option:selected').val() != "";
	var phNum = fnRequiredVal('.item.ph input');
	var usrEmail = fnRequiredVal('.item.email input');
	var omoBcode = fnRequiredVal(jQuery('.item.barcode input').eq(0));
	var woolRcpt = fnRequiredVal(jQuery('.item.receipt input'));
	var cbTerms = (jQuery('.checkbox.terms input:checked').length > 0);
	var cbOmoOpt = (jQuery('.checkbox.omo-opt input:checked').length > 0);
	var cbUniOpt = (jQuery('.checkbox.uni-opt input:checked').length > 0);

	var jRex = new RegExp('([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.[\.]{1,})+([a-zA-Z0-9]{2,4})+');

	if (!stateTrtry) { fnSetInvalidEle('#state_li select'); }
	if (!cbTerms) { jQuery('.terms-notice').show(); }
	//2nd level validation
	if (FormIsValid) {

		//if (!cbTerms) { fnSetInvalidEle('.li3.terms .terms-notice'); }
		if (!cbTerms) { fnSetInvalidEle('div.terms-conditions'); }
		if (!jRex.test(usrEmail.replace(" ", ""))) { fnSetInvalidEle('.item.email input'); }
		if (!fnValidateBarCode(omoBcode)) { fnSetInvalidEle(jQuery('.item.barcode input').eq(0)); }
		
		jRex.compile('^[0-9]{4}$');
		if (!jRex.test(postCode)) { fnSetInvalidEle(jQuery('.item.postcode input').eq(0)); }
		
		if (!jRex.test(jQuery('.item.receipt input.woolworths-receipt1').val())) {fnSetInvalidEle(jQuery('.item.receipt input.woolworths-receipt1').eq(0));}
		if (!jRex.test(jQuery('.item.receipt input.woolworths-receipt3').val())) {fnSetInvalidEle(jQuery('.item.receipt input.woolworths-receipt3').eq(0));}
		
		jRex.compile('^[0-9]{3}$');
		if (!jRex.test(jQuery('.item.receipt input.woolworths-receipt2').val())) {fnSetInvalidEle(jQuery('.item.receipt input.woolworths-receipt2').eq(0));}
				
	}

	return FormIsValid;
}

function fnRequiredVal(jqEle) {
	if (!jQuery(jqEle).val()) {
		fnSetInvalidEle(jqEle);
	}
	return jQuery(jqEle).val();
}

function fnValidateBarCode(omoBcode) {
	var isMatch = false;

	var ajxResponse = jQuery.ajax({
		type: "GET",
		url: "../xml/omo-barcodes.xml",
		async: false
	});

	jQuery(ajxResponse.responseXML.documentElement).find("barcode").each(function() {
		if (parseFloat(jQuery(this).text()) == parseFloat(omoBcode)) {
			isMatch = true;
		}
	});
	return isMatch;
}

function fnSetInvalidEle(jqEle) {
	    FormIsValid = false;
	    jQuery(jqEle).addClass('errata').parent().addClass('child-has-err');
}