//ante:04/07/2005 #19640 - APECS/Discovery National Users Association

String.prototype.trim = function() {
	return this.replace(/^\s+/,"").replace(/\s+$/,"");
}

function ufLoad() {
    document.frmAnua.tfFirstName.focus();
}

function ufValidation() {
    var lObj				= document.frmAnua;
    var lsAttendee			= lObj.cbxAttendee.checked;
    var lsFirstName			= lObj.tfFirstName.value;
    var lsLastName			= lObj.tfLastName.value;
    var lsPosition			= lObj.tfPosition.value;
    var lsInstitution		= lObj.tfInstitution.value;
    var lsAddress			= lObj.tfAddress.value;
    var lsCity				= lObj.tfCity.value;
    var lsState				= lObj.lbState.value;
    var lsZip				= lObj.tfZip.value;
    var lsPhone				= lObj.tfPhone.value;
    var lsEmail				= lObj.tfEmail.value;
    var lsEventAAdult		= lObj.lbEventAAdult.value;
//    var lsEventAChildren    = lObj.lbEventAChildren.value;
//    var lsEventBAdult       = lObj.lbEventBAdult.value;
//    var lsEventBChildren    = lObj.lbEventBChildren.value;

    if (lsAttendee == true) {
        lObj.cbxAttendee.value = "Y";
    } else {
        lObj.cbxAttendee.value = "N";
    }

    if (lsFirstName.trim() == "") {
        alert ("First Name is required.");
        lObj.tfFirstName.select();
        lObj.tfFirstName.focus();
        return false
    }

    if (lsLastName.trim() == "") {
        alert ("Last Name is required.");
        lObj.tfLastName.select();
        lObj.tfLastName.focus();
        return false
    }

    if (lsPosition.trim() == "") {
        alert ("Position is required.");
        lObj.tfPosition.select();
        lObj.tfPosition.focus();
        return false
    }

    if (lsInstitution.trim() == "") {
        alert ("Institution is required.");
        lObj.tfInstitution.select();
        lObj.tfInstitution.focus();
        return false
    }

    if (lsAddress.trim() == "") {
        alert ("Address is required.");
        lObj.tfAddress.select();
        lObj.tfAddress.focus();
        return false
    }

    if (lsCity.trim() == "") {
        alert ("City is required.");
        lObj.tfCity.select();
        lObj.tfCity.focus();
        return false
    }

    if (lsState.trim() == "") {
        alert ("State is required.");
        lObj.lbState.focus();
        return false
    }

    if (lsZip.trim() == "") {
        alert ("Zip is required.");
        lObj.tfZip.select();
        lObj.tfZip.focus();
        return false
    }

    if (lsPhone.trim() == "") {
        alert ("Phone is required.");
        lObj.tfPhone.select();
        lObj.tfPhone.focus();
        return false
    }

    if (lsEmail.trim() == ""){
        alert("Email is required.");
        lObj.tfEmail.select();
        lObj.tfEmail.focus();
        return false;
    } else if (ufEmailCheck(lsEmail.trim())!=""){
        alert(ufEmailCheck(lsEmail.trim()));
        lObj.tfEmail.focus();
        return false;
    }

	if (ufGetEventCAttendance() == "") {
		alert ("Answer on Monday Event is required.");
        lObj.rdoAttendance[0].focus();
        return false;
    }

    return true;
}


// NOTE : returns a string value (message)
function ufEmailCheck(lsEmailStr) {
    var checkTLD=1;
    var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
    var emailPat=/^(.+)@(.+)$/;
    var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom=validChars + '+';
    var word="(" + atom + "|" + quotedUser + ")";
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray=lsEmailStr.match(emailPat);
    if (matchArray==null) {
        return "There is a problem with your email. Please make sure the caps lock is OFF and re-enter.";
    }
    var user=matchArray[1];
    var domain=matchArray[2];
    for (i=0; i<user.length; i++) {
        if (user.charCodeAt(i)>127) {
            return "There is a problem with your email. Please make sure the caps lock is OFF and re-enter.";
        }
    }
    for (i=0; i<domain.length; i++) {
        if (domain.charCodeAt(i)>127) {
            return "There is a problem with your email. Please make sure the caps lock is OFF and re-enter.";
        }
    }
    if (user.match(userPat)==null) {
        return "There is a problem with your email. Please make sure the caps lock is OFF and re-enter.";
    }
    var IPArray=domain.match(ipDomainPat);
    if (IPArray!=null) {
        for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) {
                return "There is a problem with your email. Please make sure the caps lock is OFF and re-enter.";
            }
        }
        return "";
    }
    var atomPat=new RegExp("^" + atom + "$");
    var domArr=domain.split(".");
    var len=domArr.length;
    for (i=0;i<len;i++) {
        if (domArr[i].search(atomPat)==-1) {
            return "There is a problem with your email. Please make sure the caps lock is OFF and re-enter.";
        }
    }
    if (checkTLD && domArr[domArr.length-1].length!=2 &&
        domArr[domArr.length-1].search(knownDomsPat)==-1) {
        return "There is a problem with your email. Please make sure the caps lock is OFF and re-enter.";
    }
    if (len<2) {
        return "There is a problem with your email. Please make sure the caps lock is OFF and re-enter.";
    }
    return "";
}

function ufDisableGuest() {
	var lObj				= document.frmAnua;
	var rdoAttendance		= lObj.rdoAttendance;
    var lbEventAttend		= lObj.lbEventAttend;

	if (rdoAttendance[0].checked) {
		lbEventAttend.disabled = false;
	} else {
		lbEventAttend.disabled = true;
	}
}

function ufGetEventCAttendance() {
	var lObj				= document.frmAnua;
    var rdoAttendance		= lObj.rdoAttendance;
    var lsEventCAttendance	= "";
    var liLength			= rdoAttendance.length;
    var liCounter

    for (liCounter = 0; liCounter < liLength; liCounter++) {
		if (rdoAttendance[liCounter].checked) {
			lsEventCAttendance = rdoAttendance[liCounter].value;
		}
    }
    return lsEventCAttendance
}
