﻿// TASignupFormValidation.js
<!--


function checkRequiredFields(theForm){
    var bSubmitOK = true;        
    var emptyWarn = "";
	var numWarns = 0;
    
    var sAgency = getTextValue('frmAgentSignup','agency');
    var sIATA = getTextValue('frmAgentSignup','iatanum');
    var sStreet = getTextValue('frmAgentSignup','tastreet');
    var sCity = getTextValue('frmAgentSignup','tacity');
    var sPhone = getTextValue('frmAgentSignup','tafone');
    var sSurname = getTextValue('frmAgentSignup','talast');
    var sFirstName = getTextValue('frmAgentSignup','tafirst');
    var sStateProv = getTextValue('frmAgentSignup','tastate');
    var sPostalZip = getTextValue('frmAgentSignup','tazip');
    var sEmailAddress = getTextValue('frmAgentSignup','email');

	if (sAgency <= "     ") {
		displayError('lblValidateAgency','Agency name is required.');
		bSubmitOK = false;
	}
	
	if (sIATA <= "     ") {
		displayError('lblValidateIATA','IATA number is required.');
		bSubmitOK = false;
	}
	
	if (sStreet <= "     ") {
		displayError('lblValidateStreet','Street address is required.');
		bSubmitOK = false;
	}
	
	if (sCity <= "     ") {
		displayError('lblValidateCity','City name is required.');
		bSubmitOK = false;
	}
	
	if (sStateProv <= "     ") {
		displayError('lblValidateStateProv','Province/State is required.');
		bSubmitOK = false;
	}
	
	if (sPostalZip <= "     ") {
		displayError('lblValidatePostalZip','Postal/Zip code is required.');
		bSubmitOK = false;
	}	
	
		
	if (sPhone <= "     ") {
		displayError('lblValidatePhone','Phone number is required.');
		bSubmitOK = false;
	}
	
	if (sEmailAddress <= "     ") {
		displayError('lblValidateEmail','Email address is required.');
		bSubmitOK = false;
	}
	
	if (sSurname <= "     ") {
		displayError('lblValidateSurname','Surname is required.');
		bSubmitOK = false;
	}
	
	if (sFirstName <= "     ") {
		displayError('lblValidateFirstName','First name is required.');
		bSubmitOK = false;
	}

    return bSubmitOK;
}

function hideErrorLabels(){
    hideError('lblValidateAgency');
    hideError('lblValidateIATA');
    hideError('lblValidateStreet');
    hideError('lblValidateCity');
    hideError('lblValidateStateProv');
    hideError('lblValidatePostalZip');
    hideError('lblValidatePhone');
    hideError('lblValidateSurname');
    hideError('lblValidateFirstName');
    hideError('lblValidateEmail');
}

function validateEmailAddress(sFormName) {
	//Make sure email address has correct syntax
	var bContinue = true;
	var emailstr = getTextValue(sFormName,'email');

	if (emailstr > "") {
		var numAts = 0;
		var atPos = -1;
		var perPos = -1;
		var illegalChar = false;
		var currChar = ""

		//Count '@' signs and position
		for (var i = 0; i <= emailstr.length -1; i++) {
			currChar = emailstr.charAt(i);
			
			if (currChar == "@")  {
				numAts++;
				atPos = i;
			} else {
				if (currChar == ".")
					perPos = i;
				else {
					if (((currChar < "0") && (currChar != ".") && (currChar != "-"))
							|| ((currChar > "9") && (currChar < "@"))
							|| ((currChar > "Z") && (currChar < "a") && (currChar != "_"))
							|| (currChar > "z")) {
						illegalChar = true;
						break;
					}
				}
			}
		}  //for

		if (illegalChar == true) {
			displayError('lblValidateEmail','Your Email Address contains an illegal character.');
			bContinue = false;
		}

		if ((bContinue == true) && (numAts == 0)) {
			displayError('lblValidateEmail','Your Email Address contains no @ character.');
			bContinue = false;
		}

		if ((bContinue == true) && (numAts > 1)) {
    		displayError('lblValidateEmail','Your Email Address contains too many @ characters.');
			bContinue = false;
		}

		if ((bContinue == true) && (atPos == 0)) {
			displayError('lblValidateEmail','Your Email Address has nothing before the @ character.');
			bContinue = false;
		}

		if ((bContinue == true) && (atPos == (emailstr.length -1))) {
			displayError('lblValidateEmail','Your Email Address has nothing after the @ character.');
			bContinue = false;
		}

		if ((bContinue == true) && (perPos < atPos)) {
			displayError('lblValidateEmail','Your Email Address has an invalid domain name (no periods).');
			bContinue = false;
		}
		
		if ((bContinue == true) && (emailstr.charAt(atPos+1) == ".")) {
			displayError('lblValidateEmail','Your Email Address as an invalid domain name.');
			bContinue = false;
		}

		if ((bContinue == true) && (perPos > atPos)) {
			var sValidDomains = ",aero,asia,biz,cat,com,coop,info,jobs,mobi,name,net,org,pro,tel,travel,edu,gov,mil,int,us,ag,ar,aw,bh,bm,br,bo,bs,bz,ca,cl,co,cr,de,do,ec,fi,gt,id,jm,ky,mx,nu,og,pa,pe,pk,sv,tt,tv,uk,um,ux,uy,ve,vg,vi,vt";
			var sTopLevDomain = emailstr.substring(perPos+1,emailstr.length);
			var domPosn = sValidDomains.indexOf(sTopLevDomain.toLowerCase());
			if (domPosn <= 0) {
				displayError('lblValidateEmail','Your Email Address you have submitted has an invalid top level domain.');
				bContinue = false;
			}
		}
	} //if emailstr > ""


	// If there was an error, then hilight email address
	if (bContinue == false) {			
		setFocus(sFormName, 'email');
	}

	return bContinue;
}	//	function validEmailAddress



function doSubmit(){
    var bSubmitOK = true;
    
    hideErrorLabels();
    
    bSubmitOK = checkRequiredFields(document.forms['frmAgentSignup']);
    
    if (bSubmitOK){
        bSubmitOK = validateEmailAddress('frmAgentSignup');
    }

    if (bSubmitOK == true) {
        
		 //submit the form
		document.forms['frmAgentSignup'].target = "_top";     // _blank, _self, _parent, _top
		document.forms['frmAgentSignup'].submit();
	}
}

//-->
