var emailFilter=/^.+@.+\..{2,3,4,6}$/;
var emailFilter1=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var illegalChars_email= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
var illegalChars_address= /\|/;
var zipFormatFilter = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
var phone1Filter = /\d\d\d-\d\d\d-\d\d\d\d/;

function validateEmail(logon_id) {

	var emailField = document.getElementById(logon_id);
	if(emailField != null){
		var tempEmail = emailField.value;
		var email = tempEmail.replace(/^\s+|\s+$/,'');
	}
	
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) {
        return false;
    }
 
    if(splitted[1] != null ) {
        var regexp_user=/^\"?[\w-_\.\']*\"?$/;
        if(splitted[1].match(regexp_user) == null) {
                return false;
        }
    }
 
    if(splitted[2] != null) {
        var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
 
        if(splitted[2].match(regexp_domain) == null) {
            var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
            if(splitted[2].match(regexp_ip) == null) {
                    return false;
            }
        }// if
        return true;
    }
 
    return false;
}

function validateEmailVerification(logon_id, confirmLogon_id) 
	{

	var tempEmailField = document.getElementById(logon_id).value;
	var tempEmailFieldVer = document.getElementById(confirmLogon_id).value;
	var emailField = tempEmailField.replace(/^\s+|\s+$/,'');
	var emailFieldVer = tempEmailFieldVer.replace(/^\s+|\s+$/,'');

	
	if(emailField != null)
		{
			var emailVerify = emailField;
		}
	else
		{
			return false;
		}
		
	if(emailField != emailFieldVer)
		{
			return false;
		}
		else
		{
			return true;
		}
		
	}

	function clearFormErrors()
	{
		document.getElementById("emailValidationMessage").style.display = "none";
		document.getElementById("emailNullValidationMessage").style.display = "none";	
		document.getElementById("emailVeriValidationMessage").style.display = "none";
		document.getElementById("emailNullVeriValidationMessage").style.display = "none";
		document.getElementById("passwordValidationMessage").style.display = "none";
		document.getElementById("passwordVeriValidationMessage").style.display = "none";
		document.getElementById("passwordQValidationMessage").style.display = "none";
		document.getElementById("passwordAValidationMessage").style.display = "none";
		document.getElementById("firstNameValidationMessage").style.display = "none"; 
		document.getElementById("lastNameValidationMessage").style.display = "none";
		document.getElementById("address1ValidationMessage").style.display = "none";
		document.getElementById("cityValidationMessage").style.display = "none";
		document.getElementById("zipCodeValidationMessage").style.display = "none";
		document.getElementById("zipCodeNullValidationMessage").style.display = "none";
		document.getElementById("phone2ValidationMessage").style.display = "none";
		document.getElementById("phone1ValidationMessage").style.display = "none";
		document.getElementById("passwordNullVeriValidationMessage").style.display = "none";
		document.getElementById("passwordNullValidationMessage").style.display = "none";
		document.getElementById("agreementValidationMessage").style.display = "none";
		document.getElementById("enrollmentValidationMessage").style.display = "none";
		document.getElementById("enrollmentNumberValidationMessage").style.display = "none";
		document.getElementById("signMeUpValidationMessageError").style.display = "none";
		document.getElementById("signMeUpValidationMessage").style.display = "inline";
		document.getElementById("stateNullValidationMessage").style.display = "none";
		
		document.getElementById("address2InvalidCharacterMessage").style.display = "none";
		document.getElementById("address1InvalidCharacterMessage").style.display = "none";
		document.getElementById("cityInvalidCharacterMessage").style.display = "none";
		document.getElementById("zipCodeInvalidCharacterMessage").style.display = "none";
	}
	function validateRegistrationForm(formName)
	{
		clearFormErrors();
		var error =0;
		var logonId = '';
		var Email = '';
		
		

		if(formName.logonId.value.replace(/^\s+|\s+$/,'') == "" || formName.logonId.value.replace(/^\s+|\s+$/,'') == null)
		{
			document.getElementById("emailNullValidationMessage").style.display = "inline";
			error++;
		}

		
		else if(!validateEmail("logonId"))
		{
			document.getElementById("emailValidationMessage").style.display = "inline";
			error++;
		}
				
		if(formName.confirmLogonId.value == "" || formName.confirmLogonId.value == null)
		{
			document.getElementById("emailNullVeriValidationMessage").style.display = "inline";
			error++;
		}

		if(!validateEmailVerification("logonId","confirmLogonId"))
		{
			document.getElementById("emailVeriValidationMessage").style.display = "inline";
			error++;
		}
				
		if(formName.logonPassword.value == "" || formName.logonPassword.value == null)
		{
			document.getElementById("passwordNullValidationMessage").style.display = "inline";
			error++;
		}
		else if(formName.logonPassword.value.length <6)
		{
			document.getElementById("passwordValidationMessage").style.display = "inline";
			error++;
		}
		if(formName.logonPasswordVerify.value == "" || formName.logonPasswordVerify.value == null)
		{
			document.getElementById("passwordNullVeriValidationMessage").style.display = "inline";
			error++;
		}
		if(formName.logonPasswordVerify.value != formName.logonPassword.value)
		{
			document.getElementById("passwordVeriValidationMessage").style.display = "inline";
			error++;
		}
		
		if(formName.challengeQuestion.value == "" || formName.challengeQuestion.value == null)
		{
			document.getElementById("passwordQValidationMessage").style.display = "inline";
			error++;
		}
		if(formName.challengeAnswer.value == "" || formName.challengeAnswer.value == null)
		{
			document.getElementById("passwordAValidationMessage").style.display = "inline";
			error++;
		}
		if(formName.firstName.value == "")
		{
			document.getElementById("firstNameValidationMessage").style.display = "inline";
			error++;
		}
		if(formName.lastName.value == "")
		{
			document.getElementById("lastNameValidationMessage").style.display = "inline";
			error++;
		}
		if(formName.address1.value == "")
		{
			document.getElementById("address1ValidationMessage").style.display = "inline";
			error++;
		}
		if(formName.address1.value.indexOf("|") > -1)
		{
			document.getElementById("address1InvalidCharacterMessage").style.display = "inline";
			error++;
		}
		if(formName.address2.value.indexOf("|") > -1)
		{
			document.getElementById("address2InvalidCharacterMessage").style.display = "inline";
			error++;
		}
		if(formName.city.value == "")
		{
			document.getElementById("cityValidationMessage").style.display = "inline";
			error++;
		}
		if(formName.city.value.indexOf("|") > -1)
		{
			document.getElementById("cityInvalidCharacterMessage").style.display = "inline";
			error++;
		}
		if(formName.zipCode.value == "")
		{
			document.getElementById("zipCodeNullValidationMessage").style.display = "inline";
			error++;
		}
		if(formName.zipCode.value.indexOf("|") > -1)
		{
			document.getElementById("zipCodeInvalidCharacterMessage").style.display = "inline";
			error++;
		}
		if(formName.zipCode.value.length >1)
		{ 

			if(! validateZIP(formName.zipCode.value))
			{
				document.getElementById("zipCodeValidationMessage").style.display = "inline";
				error++;
			}
		}
		

		
                if( formName.phone1.value.length > 12 )
                {
                        document.getElementById("phone1ValidationMessage").style.display = "inline";
                        error++;
                }

                if( formName.phone2.value.length > 12 )
                {
                        document.getElementById("phone2ValidationMessage").style.display = "inline";
                        error++;
                }
		

		if( formName.phone1.value.length < 1 ) 
		{
			document.getElementById("phone1ValidationMessage").style.display = "inline";
			error++;
		}
		else

		{
			var phone2Format = /\d\d\d-\d\d\d-\d\d\d\d/;
   
  			if(phone2Format.exec(formName.phone1.value) == null)
  			{
    			document.getElementById("phone1ValidationMessage").style.display = "inline";
				error++;
  			}
		}
		
		if(formName.phone2.value.length >0)    
		{	
			var phone1Format = /\d\d\d-\d\d\d-\d\d\d\d/;
   
  			if(phone1Format.exec(formName.phone2.value) == null)
  			{
    			document.getElementById("phone2ValidationMessage").style.display = "inline";
				error++;
  			}
			
		}
		if (!formName.termAgreementCheck.checked)
		{
				document.getElementById("agreementValidationMessage").style.display = "inline";
				error++;
		}
		
		
		
		if(formName.enrolled[0].checked  && (formName.demographicField5.value == null||formName.demographicField5.value == "" ))
		{
				document.getElementById("enrollmentValidationMessage").style.display = "inline";
				error++;
		}
		
		if( formName.demographicField5.value.length > 0)
		{
		 	if(!validateFitNumber(formName.demographicField5.value))
			{
				document.getElementById("enrollmentNumberValidationMessage").style.display = "inline";
				error++;
			}
		}

		if(!document.getElementById("noRadio").checked && !document.getElementById("yesRadio").checked)
		{
				document.getElementById("signMeUpValidationMessageError").style.display = "inline";
				document.getElementById("signMeUpValidationMessage").style.display = "none";
				error++;
		}
		
		if(formName.state.value == 0)
		{
			document.getElementById("stateNullValidationMessage").style.display = "inline";
			error++;
		}
		
		
		if(error>0)
		{
			return false;
		}
		else
		{
			return true;
		}
	
	}
	
	

	function validateZIP(field) {
		var valid = "0123456789-";
		var hyphencount = 0;
		
			if (field.length!=5 && field.length!=10) {
				return false;
			}
			for (var i=0; i < field.length; i++) {
			temp = "" + field.substring(i, i+1);
			if (temp == "-") hyphencount++;
			if (valid.indexOf(temp) == "-1") {
			
			return false;
			}
			if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
				return false;
			   }
			}
		return true;
		}


	
function validateInteger(number)
{
	var strString = number;
	var strValidChars = "0123456789";
	var strChar;
	var blnResult = true;

	for (i = 0; i < strString.length && blnResult == true; i++)
	{
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1)
		{
		blnResult = false;
		}
	}
	
	return blnResult;
}

function validateFitNumber(number)
{
	var strString = number;
	var strValidChars = "0123456789";
	var strChar;
	var blnResult = true;
	
	if(strString.length !=9)
	{
		blnResult = false;
	}
	
	if(number.indexOf('05') != 0 && number.charAt(0) != 2)
	{
		blnResult = false;
	}

	for (i = 0; i < strString.length && blnResult == true; i++)
	{
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1)
		{
		
		blnResult = false;
		}
	}
	
	return blnResult;
}

	
function validatePhoneField(field){
			var elem = document.getElementById(field);
			var val = elem.value;
			var stripped = val.replace(/[\(\)\.\-\ ]/g, '');
			if (isNaN(parseInt(stripped)) || !(stripped.length == 10)) {
				return false;
			}else{
				val = stripped.substring(0,3)+"-"+stripped.substring(3, 6)+"-"+stripped.substring(6);
				elem.value = val;
				return true;
			}
}
		
function validateEmailField(field){
			var elem = document.getElementById(field);
			var val = elem.value;
			var emailFilter=/^.+@.+\..{2,3,4,6}$/;
			var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
			if (!(emailFilter.test(val)) || val.match(illegalChars)) { 
				return false;
			}else{
				return true;
			}
}
function validateFields(fields){
	var errorcount = 0;
	for(var iter = 0; iter < fields.length ; iter++){
		errorcount += validateField(fields[iter]); 
	}
	if(errorcount >0)
	{
		return false;
	}
	else
	{
		return true;
	}
}		
function validateField(field){
	
	var errorVal = 0;
	var invalid = field + "Invalid";
	var required = field + "Required";
	var error = field + "Error";
	switch(field){
		case "firstName":
			errorVal += checkRequiredInvalid(field,illegalChars_address,error,invalid);
			break;
  		case "lastName":
			errorVal += checkRequiredInvalid(field,illegalChars_address,error,invalid);
  			break;
  		case "address1":
			errorVal += checkRequiredInvalid(field,illegalChars_address,error,invalid);			
  			break;
		case "address2":
 			errorVal += checkInvalid(field,illegalChars_address,invalid);
  			break;
		case "city":
  			errorVal += checkRequiredInvalid(field,illegalChars_address,error,invalid);
  			break;
  		case "zipCode":
  			errorVal += checkRequiredInvalid(field,illegalChars_address,error,invalid);
  			break;
  		 case "phone1":
  			errorVal += checkRequiredInvalid(field,illegalChars_address,error,invalid);
  			break;	
		default:
			return errorVal ;
  			//code to be executed if n is different from case 1 and 2
		}
		return errorVal;


}

function resetField(field){
	if (document.getElementById(field+"Invalid") != null){document.getElementById(field+"Invalid").style.display="none";}
	if (document.getElementById(field+"Error") != null){document.getElementById(field+"Error").style.display="none";}
	if(document.getElementById(field+"Required") != null) {document.getElementById(field+"Required").style.display="none";}
}
function resetValidation(fields){
	for(var iter = 0; iter < fields.length ; iter++){
		resetField(fields[iter]);
	}	
}


function resetFieldRegistration(field){
	if(document.getElementById(field+"Invalid") != null) {document.getElementById(field+"Invalid").style.display="none";}
	if(document.getElementById(field+"Format") != null) {document.getElementById(field+"Format").style.display="none";}
	if(document.getElementById(field+"Required") != null) {document.getElementById(field+"Required").style.display="none";}
	if(document.getElementById(field+"Match") != null) {document.getElementById(field+"Match").style.display="none";}
}

function resetValidationRegistration(fields){
	for(var iter = 0; iter < fields.length ; iter++){
		resetFieldRegistration(fields[iter]);
	}	
}


function getFieldValue(fieldName)
{
	if (document.getElementById(fieldName) == null)
	{
	  var testFieldList = document.getElementsByName(fieldName);
	  if(testFieldList[0] == null)
		{//alert("Error finding field: " + fieldName);
		}
	  else {
	
		  var testField = testFieldList[0].value;
		}
	}
	else
	{
		var testField = document.getElementById(fieldName).value;
	}
	return testField;
}
function displayError(errorId)
{
	if(document.getElementById(errorId) != null){document.getElementById(errorId).style.display="inline";}
	else {//alert("errorID is missing a span in Page: "+ errorId); 
	}
	
}

function validateRequiredField(fieldName)
{
	var testField= getFieldValue(fieldName);
	if(testField == "" || testField == null)
  	{
  		return false;
  	}
  	return true;
}

function isValidFieldFormat(fieldName,filterName)
{
	var testValue = getFieldValue(fieldName);
	if (filterName.test(testValue)) 
	{ 
		return true;
	}
	else {return false;}
	
}
function hasInvalidCharacter(fieldName, invalidCharacterFilter)
{
	var testValue = getFieldValue(fieldName);
	if(invalidCharacterFilter.test(testValue))
	{
		
		return true;
		
	}
	else {
		
		return false;
	}
}
function checkMatchFields(fieldName1,fieldName2,misMatchErrorId)
{	
	var error = 0;
	if(!validateMatchFields(fieldName1,fieldName2)){displayError(misMatchErrorId);error++;return error;}
	return error;
}
function checkRequired(fieldName,requiredErrorId)
{	
	var error = 0;
	if(!validateRequiredField(fieldName)){displayError(requiredErrorId);error++;return error;}
	return error;
}
function checkInvalid(fieldName,validFilter,invalidErrorId)
{	
	var error = 0;
	if(validateRequiredField(fieldName) && hasInvalidCharacter(fieldName,validFilter)){displayError(invalidErrorId);error++;return error;}
	return error;
}
function checkFormat(fieldName,formatFilter,formatErrorId)
{	
	var error = 0;
	//only validate if the field is filled.
	if(validateRequiredField(fieldName) && !isValidFieldFormat(fieldName,formatFilter)){displayError(formatErrorId);error++; return error;}
	return error;
}

function checkRequiredInvalid(fieldName,validFilter, requiredErrorId, invalidErrorId)
{	
	var error = 0;
	if (!validateRequiredField(fieldName)) {displayError(requiredErrorId);error++;return error;}
	if(hasInvalidCharacter(fieldName,validFilter)){displayError(invalidErrorId);error++;return error;}
	return error;
}
function checkRequiredFormat(fieldName,formatFilter, requiredErrorId, formatErrorId)
{	
	var error = 0;
	if(!validateRequiredField(fieldName)) {displayError(requiredErrorId);error++;return error;}
	if(!isValidFieldFormat(fieldName,formatFilter)){displayError(formatErrorId);error++; return error;}
	return error;
}
function checkAll(fieldName,validFilter, formatFilter,requiredErrorId, invalidErrorId, formatErrorId)
{
	error = 0;
	if(!validateRequiredField(fieldName)) {displayError(requiredErrorId);error++;return error;}
	if(hasInvalidCharacter(fieldName,validFilter)){displayError(invalidErrorId);error++;return error;}
	if(!isValidFieldFormat(fieldName,formatFilter)){displayError(formatErrorId);error++;return error;}
	return error;
	
}
function validateSpecialEventsRegistrationForm(formName)
{
	var error = 0;
	//clearFormErrors();
		var addressFieldArray = new Array('TUX_FORMAL_EVENT<>city'
	,'TUX_FORMAL_EVENT<>address1'
	,'TUX_FORMAL_EVENT<>address2'
	,'TUX_FORMAL_EVENT<>postal'
	,'TUX_FORMAL_EVENT<>eventCity'
	,'TUX_FORMAL_EVENT<>eventDt'
	,'TUX_FORMAL_EVENT<>eventAttendeeCount'
	,'TUX_FORMAL_EVENT<>firstName'
	,'TUX_FORMAL_EVENT<>companyName'
	,'TUX_FORMAL_EVENT<>lastName'
	
	);
	resetValidationRegistration(addressFieldArray);
	error += checkRequiredInvalid('TUX_FORMAL_EVENT<>city',illegalChars_address,'cityRequired', 'cityInvalid');
	error += checkRequiredInvalid('TUX_FORMAL_EVENT<>address1',illegalChars_address,'address1Required', 'address1Invalid');
	error += checkInvalid('TUX_FORMAL_EVENT<>address2',illegalChars_address, 'address2Invalid');
	error += checkAll('TUX_FORMAL_EVENT<>postal',illegalChars_address,zipFormatFilter,'postalRequired', 'postalInvalid','postalFormat');
	//error += checkRequired('TUX_FORMAL_EVENT<>firstName','TUX_FORMAL_EVENT<>firstNameRequired');
	//error += checkRequired('TUX_FORMAL_EVENT<>lastName','TUX_FORMAL_EVENT<>lastNameRequired');
	//error += checkRequired('TUX_FORMAL_EVENT<>eventCity','TUX_FORMAL_EVENT<>eventCityRequired');
	//error += checkRequired('TUX_FORMAL_EVENT<>eventAttendeeCount','TUX_FORMAL_EVENT<>eventAttendeeCountRequired');
	//error += checkRequired('TUX_FORMAL_EVENT<>eventDt','TUX_FORMAL_EVENT<>eventDtRequired');
	//error += checkRequired('TUX_FORMAL_EVENT<>companyName','TUX_FORMAL_EVENT<>companyNameRequired');
	
	if(error>0)
	{
		return false;
	}
	else
	{
		return true;
	}
	
}
function validateWeddingRegistrationForm(formName)
{
	var errorWeddingRegistrationForm = 0;
	
	var addressFieldArray = new Array('TUX_WEDDING_PRIMARY<>address1'
	,'TUX_WEDDING_PRIMARY<>address2'
	,'TUX_WEDDING_PRIMARY<>city'
	,'TUX_WEDDING_PRIMARY<>postal'
	,'TUX_WEDDING_SECONDARY<>address1'
	,'TUX_WEDDING_PRIMARY<>dayPhone'
	,'TUX_WEDDING_SECONDARY<>city'
	,'TUX_WEDDING_SECONDARY<>postal'
	,'TUX_WEDDING_SECONDARY<>dayPhoneFormat'
	,'TUX_WEDDING_PRIMARY<>eventDt'
	,'TUX_WEDDING_PRIMARY<>firstName'
	,'TUX_WEDDING_PRIMARY<>lastName'
	);
	resetValidationRegistration(addressFieldArray);
	errorWeddingRegistrationForm += checkRequired('TUX_WEDDING_PRIMARY<>eventDt','TUX_WEDDING_PRIMARY<>eventDtRequired');
	errorWeddingRegistrationForm += checkRequired('TUX_WEDDING_PRIMARY<>firstName','TUX_WEDDING_PRIMARY<>firstNameRequired');
	errorWeddingRegistrationForm += checkRequired('TUX_WEDDING_PRIMARY<>lastName','TUX_WEDDING_PRIMARY<>lastNameRequired');
	errorWeddingRegistrationForm += checkRequiredInvalid('TUX_WEDDING_PRIMARY<>address1',illegalChars_address,'TUX_WEDDING_PRIMARY<>address1Required', 'TUX_WEDDING_PRIMARY<>address1Invalid');
	errorWeddingRegistrationForm += checkInvalid('TUX_WEDDING_PRIMARY<>address2',illegalChars_address, 'TUX_WEDDING_PRIMARY<>address2Invalid');
	errorWeddingRegistrationForm += checkRequiredInvalid('TUX_WEDDING_PRIMARY<>city',illegalChars_address,'TUX_WEDDING_PRIMARY<>cityRequired', 'TUX_WEDDING_PRIMARY<>cityInvalid');
	errorWeddingRegistrationForm += checkAll('TUX_WEDDING_PRIMARY<>postal',illegalChars_address,zipFormatFilter,'TUX_WEDDING_PRIMARY<>postalRequired', 'TUX_WEDDING_PRIMARY<>postalInvalid','TUX_WEDDING_PRIMARY<>postalFormat');
	errorWeddingRegistrationForm += checkAll('TUX_WEDDING_PRIMARY<>dayPhone',illegalChars_address,phone1Filter,'TUX_WEDDING_PRIMARY<>dayPhoneRequired', 'TUX_WEDDING_PRIMARY<>dayPhoneInvalid','TUX_WEDDING_PRIMARY<>dayPhoneFormat');
	errorWeddingRegistrationForm += checkInvalid('TUX_WEDDING_SECONDARY<>address1',illegalChars_address, 'TUX_WEDDING_SECONDARY<>address1Invalid');
	errorWeddingRegistrationForm += checkInvalid('TUX_WEDDING_SECONDARY<>address2',illegalChars_address, 'TUX_WEDDING_SECONDARY<>address2Invalid');
	errorWeddingRegistrationForm += checkInvalid('TUX_WEDDING_SECONDARY<>city',illegalChars_address, 'TUX_WEDDING_SECONDARY<>cityInvalid');
	//error += checkInvalid('TUX_WEDDING_SECONDARY<>postal',illegalChars_address, 'TUX_WEDDING_SECONDARY<>postalInvalid');
	errorWeddingRegistrationForm += checkFormat('TUX_WEDDING_SECONDARY<>postal',emailFilter, 'TUX_WEDDING_SECONDARY<>postalFormat');
	errorWeddingRegistrationForm += checkFormat('TUX_WEDDING_SECONDARY<>dayPhoneFormat',phone1Filter, 'TUX_WEDDING_SECONDARY<>dayPhoneFormat');
		
	if(error>0)
	{
		return false;
	}
	else
	{
		return true;
	}
	
}

function validatePromRepRegistrationForm(formName)
{
	var error = 0;
	
	var addressFields = new Array();
		addressFields[0] = "tux_address1";
		addressFields[1] = "tux_address2";
		addressFields[2] = "tux_city";
		addressFields[3] = "tux_school_address";
		addressFields[4] = "tux_zip_code";
		addressFields[5] = "tux_last_name";
		addressFields[6] = "tux_first_name";
		addressFields[7] = "tux_phone";
		addressFields[8] = "tux_school";
	resetValidationRegistration(addressFields);
	error += checkRequiredInvalid('tux_address1',illegalChars_address,'tux_address1Required', 'tux_address1Invalid');
	error += checkInvalid('tux_address2',illegalChars_address, 'tux_address2Invalid');
	error += checkRequiredInvalid('tux_city',illegalChars_address,'tux_cityRequired', 'tux_cityInvalid');
	error += checkRequiredInvalid('tux_school_address',illegalChars_address,'tux_school_addressRequired', 'tux_school_addressInvalid');
	error += checkAll('tux_zip_code',illegalChars_address,zipFormatFilter,'tux_zip_codeRequired', 'tux_zip_codeInvalid','tux_zip_codeFormat');
	error += checkRequired('tux_last_name','tux_last_nameRequired');
	error += checkRequired('tux_first_name','tux_first_nameRequired');
	error += checkRequired('tux_phone','tux_phoneRequired');
	error += checkRequired('tux_school','tux_schoolRequired');
	if(error>0)
	{
		return false;
	}
	else
	{
		return true;
	}
	
}

	function clearFormErrorsCheckout()
	{
		document.getElementById("shipping_firstNameNullValidationMessage").style.display = "none";
		document.getElementById("billing_firstNameNullValidationMessage").style.display = "none";
		document.getElementById("shipping_lastNameNullValidationMessage").style.display = "none";	
		document.getElementById("billing_lastNameNullValidationMessage").style.display = "none";
		document.getElementById("shipping_addressNullValidationMessage").style.display = "none";
		document.getElementById("shipping_addressValidationMessage").style.display = "none";
		document.getElementById("billing_addressNullValidationMessage").style.display = "none";		
		document.getElementById("billing_address1Required").style.display = "none";
		document.getElementById("billing_address1Invalid").style.display = "none";
		document.getElementById("billing_address1Required").style.display = "none";
		//document.getElementById("shipping_address1Required").style.display = "none";
		document.getElementById("shipping_address1Invalid").style.display = "none";
		document.getElementById("billing_cityInvalid").style.display = "none";
		document.getElementById("shipping_cityInvalid").style.display = "none";
		document.getElementById("billing_cityRequired").style.display = "none";
		document.getElementById("billing_firstNameRequired").style.display = "none";
		document.getElementById("billing_lastNameRequired").style.display = "none";
		document.getElementById("billing_zipCodeInvalid").style.display = "none";
		document.getElementById("billing_zipCodeRequired").style.display = "none";
		document.getElementById("shipping_zipCodeInvalid").style.display = "none";



		document.getElementById("shipping_cityNullValidationMessage").style.display = "none";
		document.getElementById("billing_cityNullValidationMessage").style.display = "none";
		document.getElementById("shipping_zipCodeNullValidationMessage").style.display = "none";
		document.getElementById("billing_zipCodeNullValidationMessage").style.display = "none";
		document.getElementById("shipping_zipCodeValidationMessage").style.display = "none";
		document.getElementById("billing_zipCodeValidationMessage").style.display = "none";
		document.getElementById("shipping_phoneNullValidationMessage").style.display = "none";
		document.getElementById("billing_phoneNullValidationMessage").style.display = "none";
		document.getElementById("shipping_phoneValidationMessage").style.display = "none";
		document.getElementById("billing_phoneValidationMessage").style.display = "none";
		document.getElementById("emailNullValidationMessage").style.display = "none";
		document.getElementById("emailValidationMessage").style.display = "none";
		document.getElementById("confirmEmailNullValidationMessage").style.display = "none"; 
		document.getElementById("confirmEmailValidationMessage").style.display = "none";
		document.getElementById("shipModeNullValidationMessage").style.display = "none";
		document.getElementById("ccNameNullValidationMessage").style.display = "none";
		document.getElementById("ccNumberNullValidationMessage").style.display = "none";
		document.getElementById("ccTypeNullValidationMessage").style.display = "none";
		document.getElementById("ccValidationMessage").style.display = "none";
		document.getElementById("cvcNullValidationMessage").style.display = "none";
		document.getElementById("cvcValidationMessage").style.display = "none";
		document.getElementById("ccMonthValidationMessage").style.display = "none";
		document.getElementById("ccYearValidationMessage").style.display = "none";
		document.getElementById("ccExpiryValidationMessage").style.display = "none";
	}
function validateFormCheckout(form)
	{

		clearFormErrorsCheckout();
		var error=0;
		
		if(navigator.appName.indexOf("Microsoft") > -1){
				var canSee = 'block'
		} else {
				var canSee = 'table-row';
		}
		
		if(form.shipping_firstName.value == "")
		{
			document.getElementById("shipping_firstNameNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.shipping_lastName.value == "")
		{
			document.getElementById("shipping_lastNameNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.shipping_address1.value == "")
		{
			document.getElementById("shipping_addressNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.shipping_address1.value.length > 1)
		{
			if(! validateAddress(form.shipping_address1.value))
			{
				document.getElementById("shipping_addressValidationMessage").style.display = "inline";
				error++;
			}
		}
		if(form.shipping_address1.value.indexOf("|")>-1)
		{
			document.getElementById("shipping_address1Invalid").style.display = "inline";
			error++;
		}
		if(form.shipping_address2.value.indexOf("|")>-1)
		{
			document.getElementById("shipping_address2Invalid").style.display = "inline";
			error++;
		}
		if(form.shipping_city.value == "")
		{
			document.getElementById("shipping_cityNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.shipping_city.value.indexOf("|")>-1)
		{
			document.getElementById("shipping_cityInvalid").style.display = "inline";
			error++;
		}
		if(form.shipping_zipCode.value == "")
		{
			document.getElementById("shipping_zipCodeNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.shipping_zipCode.value.length >1)
		{
			if(! validateZIP(form.shipping_zipCode.value))
			{
				document.getElementById("shipping_zipCodeValidationMessage").style.display = "inline";
				error++;
			}
		}
		if(form.shipping_zipCode.value.indexOf("|")>-1)
		{
			document.getElementById("shipping_zipCodeInvalid").style.display = "inline";
			error++;
		}
		if(form.shipping_phone1.value.length < 1 ) 
		{
			document.getElementById("shipping_phoneNullValidationMessage").style.display = "inline";
			error++;
		}
		else
		{
			var phone1Format = /\d\d\d-\d\d\d-\d\d\d\d/;

   
  			if(phone1Format.exec(form.shipping_phone1.value) == null)
  			{
    			document.getElementById("shipping_phoneValidationMessage").style.display = "inline";
				error++;
  			}
		}
		
		if(form.billing_firstName.value == "")
		{
			document.getElementById("billing_firstNameNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.billing_lastName.value == "")
		{
			document.getElementById("billing_lastNameNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.billing_address1.value == "")
		{
			document.getElementById("billing_addressNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.billing_address1.value.indexOf("|")>-1)
		{
			document.getElementById("billing_address1Invalid").style.display = "inline";
			error++;
		}
		if(form.billing_address2.value.indexOf("|")>-1)
		{
			document.getElementById("billing_address2Invalid").style.display = "inline";
			error++;
		}
		if(form.billing_city.value == "")
		{
			document.getElementById("billing_cityNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.billing_city.value.indexOf("|")>-1)
		{
			document.getElementById("billing_cityInvalid").style.display = "inline";
			error++;
		}
		if(form.billing_zipCode.value == "")
		{
			document.getElementById("billing_zipCodeNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.billing_zipCode.value.indexOf("|")>-1)
		{
			document.getElementById("billing_zipCodeInvalid").style.display = "inline";
			error++;
		}
		if(form.billing_zipCode.value.length >1)
		{
			if(! validateZIP(form.billing_zipCode.value))
			{
				document.getElementById("billing_zipCodeValidationMessage").style.display = "inline";
				error++;
			}
		}
		if(form.billing_phone1.value.length < 1 ) 
		{
			document.getElementById("billing_phoneNullValidationMessage").style.display = "inline";
			error++;
		}
		else
		{
			var phone1Format = /\d\d\d-\d\d\d-\d\d\d\d/;
   
  			if(phone1Format.exec(form.billing_phone1.value) == null)
  			{
    			document.getElementById("billing_phoneValidationMessage").style.display = "inline";
				error++;
  			}
		}
		
		if(form.billing_email1.value.replace(/^\s+|\s+$/,'') == "" || form.billing_email1.value.replace(/^\s+|\s+$/,'') == null)
		{
			document.getElementById("emailNullValidationMessage").style.display = "inline";
			error++;
		}
		
		else if(!validateEmail("billing_email1"))
		{
			document.getElementById("emailValidationMessage").style.display = "inline";
			error++;
		}
		
		if(!validateEmailVerification("billing_email1","billing_confirmEmail"))
		{
			document.getElementById("confirmEmailValidationMessage").style.display = "inline";
			error++;
		}
		
		if(form.billing_confirmEmail.value == "" || form.billing_confirmEmail.value == null)
		{
			document.getElementById("confirmEmailNullValidationMessage").style.display = "inline";
			error++;
		}
		
		if(form.shipModeId.value == "")
		{
			document.getElementById("shipModeNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.pay_cc_nameoncard.value == "")
		{
			document.getElementById("ccNameNullValidationMessage").style.display = "inline";
			error++;
		}
		if(form.pay_cc_brand.value == " " || form.pay_cc_brand.value == "undefined")
		{ 

			document.getElementById("ccValidationMessage").style.display = canSee; 
			document.getElementById("ccTypeNullValidationMessage").style.display = canSee;
			error++;
		} 
		if(form.pay_account.value == "") 
		{
		 
			document.getElementById("ccValidationMessage").style.display = canSee;
			document.getElementById("ccNumberNullValidationMessage").style.display = canSee;
			error++;
		}
		if(form.pay_expire_month.value == "" && form.pay_cc_brand.value.trim() != 'TMWCC')
		{
		     document.getElementById("ccYearMonthValidationMessage").style.display = canSee;
		    document.getElementById("ccMonthValidationMessage").style.display = canSee;			
			error++;
		}
		
		if(form.pay_expire_year.value == "" && form.pay_cc_brand.value.trim() != 'TMWCC')
		{
		    
		    document.getElementById("ccYearMonthValidationMessage").style.display = canSee;
		    document.getElementById("ccYearValidationMessage").style.display = canSee;			
			error++;
		}	
			

	        if(form.pay_expire_month.value != "" && form.pay_expire_year.value != "" && form.pay_cc_brand.value.trim() != 'TMWCC')
		{
		        var d = new Date();
		        var curr_date = d.getDate();
		        var curr_month = d.getMonth();
		        var curr_year = d.getFullYear();
		
		        if(curr_year == form.pay_expire_year.value){
		                if(curr_month >= form.pay_expire_month.value){
					document.getElementById("ccYearMonthValidationMessage").style.display = canSee;
		                      document.getElementById("ccExpiryValidationMessage").style.display = canSee;
		      				  error++;
		                }
		        }
		}
	
		if(form.pay_cc_cvc.value == "")
		{
			document.getElementById("cvcNullValidationMessage").style.display = canSee;
			error++;
		}else
		{
			cvcFormat = /^\d{3,4}$/;
			
			if(cvcFormat.exec(form.pay_cc_cvc.value) == null)
  			{
    			document.getElementById("cvcValidationMessage").style.display = canSee;
				error++;
  			}
		}

		if(form.termAgreementCheck != null && form.termAgreementCheck.checked){
		
			if(form.logonPassword.value == "" || form.logonPassword.value == "undefined")
			{ 

				document.getElementById("passwordValidationMessage").style.display = canSee; 
				document.getElementById("passwordNullValidationMessage").style.display = canSee;
				error++;
			}else if(form.logonPassword.value.length <6)
			{
				document.getElementById("passwordValidationMessage").style.display = "inline";
				error++;
			}

			if(form.logonPasswordVerify.value == "" || form.logonPasswordVerify.value == "undefined")
			{ 

				document.getElementById("passwordVeriValidationMessage").style.display = canSee; 
				document.getElementById("passwordNullVeriValidationMessage").style.display = canSee;
				error++;
			} 

			if(form.logonPasswordVerify.value != form.logonPassword.value)
			{
				document.getElementById("passwordVeriValidationMessage").style.display = "inline";
				error++;
			}

			if(form.challengeQuestion.value == "" || form.challengeQuestion.value == "undefined")
			{ 

				document.getElementById("passwordQValidationMessage").style.display = canSee; 
				error++;
			} 

			if(form.challengeAnswer.value == "" || form.challengeAnswer.value == "undefined")
			{ 

				document.getElementById("passwordAValidationMessage").style.display = canSee; 
				error++;
			} 
		}
		
		if(error>0)
		{
			
			return false;
		}
		else
		{
			return true;
		}
	}
	
function profileInfoUdpate(form,validateFields){
	
	var errorCount = 0;
	resetValidation(validateFields);
	for(var iter = 0; iter < validateFields.length ; iter++){
			var fieldName = validateFields[iter];
			var required = fieldName + "Required";
			var formatId = fieldName + "Invalid";
			if(fieldName == 'logonId')
			{
				errorCount += checkRequiredFormat(fieldName,emailFilter1, required, formatId);
			}
			else
			{
				errorCount += checkRequired(fieldName,required); 
			}
		}
	if(errorCount > 0) {
		return false;
	}
	else{
		return true;
	}

}

function validateMatchFields(field1, field2) 
{

	var tempField1 = getFieldValue(field1);
	var tempField2 = getFieldValue(field2);
	var field1_stripped = tempField1.replace(/^\s+|\s+$/,'');
	var field2_stripped = tempField2.replace(/^\s+|\s+$/,'');
	if(field1_stripped != field2_stripped)
	{
		return false;
	}
	else
	{
		return true;
	}
		
}
function validateAskGeorge(validateFields)
{
	var errorCount = 0;
	var errorCountVerify = 0;
	resetValidation(validateFields);
	for(var iter = 0; iter < validateFields.length ; iter++){
			var fieldName = validateFields[iter];
			var required = fieldName + "Required";
			var formatId = fieldName + "Format";
			var matchId = fieldName + "Match";
			
			if(fieldName == 'AG_email1')
			{
				errorCount += checkRequiredFormat(fieldName,emailFilter1, required, formatId);
			}
			if (fieldName == 'AG_email1Verify')
			{
				errorCountVerify += checkRequiredFormat(fieldName,emailFilter1, required, formatId);
			}
			
				
			
			
			else
			{
				errorCount += checkRequired(fieldName,required); 
			}
			errorCount+=checkMatchFields('AG_email1','AG_email1Verify',matchId);
			errorCount+=errorCountVerify;
		}
	if(errorCount > 0) {
		return false;
	}
	else{
		return true;
	}
}
