// JavaScript Document


function ValidateForm() {

	field=document._mktf._PRE;
	if (field.value == "T"){
		var retValue = preProcess();
		if (retValue == false) return false;
	}
	field = document._mktf.PRIMARY_EMAIL_ADDR;
	if (isBlank(field, "Email")) return false;
	if (!isEmail(field, "Email")) return false;

	field = document._mktf.community_id;
	if (isBlank(field, "Community ID")) return false;

	field = document._mktf.disp_state;
	if (!isSelected(field, "Displayed State", 52)) return false;

	field=document._mktf._POST;
	if (field.value == "T"){
		retValue = postProcess();
		if (retValue == false) return false;
	}
	field=document._mktf._JS;
	field.value="T";

	return true;
}


function trimLeft(s) {
	var whitespaces = " \t\n\r";
	for(n = 0; n < s.length; n++) { if (whitespaces.indexOf(s.charAt(n)) == -1) return (n > 0) ? s.substring(n, s.length) : s; }
	return("");
}

function trimRight(s){
	var whitespaces = " \t\n\r";
	for(n = s.length - 1; n  > -1; n--) { if (whitespaces.indexOf(s.charAt(n)) == -1) return (n < (s.length - 1)) ? s.substring(0, n+1) : s; }
	return("");
}

function trim(s) {return ((s == null) ? "" : trimRight(trimLeft(s))); }

function isBlank(field, strBodyHeader) {
	strTrimmed = trim(field.value);
	if (strTrimmed.length > 0) return false;
	var strMsg = "\"%%\" is a required field. Please type a value.";
	var strArr = strMsg.split("%%");
	if(strArr.length > 1)
		strMsg = strArr[0] + strBodyHeader + strArr[1];
	alert(strMsg);
	field.focus();
	return true;
}

function checkRadioOther(strField){
	var form = document._mktf;
	for (var i = 0; i < form.elements.length; i++){
	var field = form.elements[i];
	if ((field.type == "radio" || field.type == "checkbox")  && field.name == strField && field.value == "Other")
	field.checked = 1;}
}
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^" + specialChars + "\]";
var quotedString="(\"[^\"]*\")";
var ipDomainPat=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedString + ")";
var atomPat=new RegExp("^" + atom + "$");
var localPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var complexPat=/^(.+)<(.+)>$/;
var commentPat=/(.*)\((.*)\)(.*)$/;
function simpleEmailCheck (emailStr) {
	if(emailStr == "") return false;
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) return false;
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) return false;
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) return false;
	}
	if( !checkUser(user)) return false;
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) return false;
		}
		return true;
	}
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if( !checkDomain(domArr[i]) ) return false;
	}
	return true;
}
function checkDomain(domain){
	var validDomain = true;
	var domainArray = domain.match(commentPat);
	if( domainArray == null ) {
		if( domain.match(atomPat)==-1) validDomain = false;
	}
	else {
		for(var i=1; i<domainArray.length; i++){
			if( domainArray[i] != "" && !checkDomain(domainArray[i]) ) validDomain = false;
		}
	}
	return validDomain;
}
function checkUser(user){
	var validUser = true;
	var userArray = user.match(commentPat);
	if( userArray == null ){
		if (user.match(localPat)==null)  validUser = false;
	}
	else {
		for(var i=1; i<userArray.length; i++) {
			if( userArray[i] != "" && !checkUser(userArray[i]) ) validUser = false;
		}
	}
	return validUser;
}
function isEmail(field, strBodyHeader){
	emailStr = field.value;
	if(emailStr.length == 0) return true;
	if(!complexEmailCheck(emailStr)) {
		var strMsg = "Error: Invalid email address. Please type a valid email address for field \"%%\".";
		var strArr = strMsg.split("%%");
		if(strArr.length > 1)
		strMsg = strArr[0] + strBodyHeader + strArr[1];
		alert(strMsg);
		field.focus();
		return false;
	}
	return true;
}
function complexEmailCheck(emailStr){
	if(emailStr == null) return false;
	emailStr=trim(emailStr);
	if(emailStr == "") return false;
	if(emailStr.indexOf("@")==-1) return false;
	if(emailStr.indexOf(" ")!=-1) return false;
	if(emailStr.indexOf(",")!=-1) return false;
	var matchArray=emailStr.match(complexPat);
	if (matchArray==null) {
		if( simpleEmailCheck(emailStr) ) return true;
		else return false;
	}
	var phrase=matchArray[1];
	var routeAddr=matchArray[2];
	if( !simpleEmailCheck(routeAddr) ) return false;
	else return true;
}
function isSelected(field, strBodyHeader) {
	for(i=0; i < field.length; i++) { if (field[i].selected && (trim(field[i].value).length > 0)) return true; }
	var strMsg = "\"%%\" is a required field. Please choose a selection.";
	var strArr = strMsg.split("%%");
	if(strArr.length > 1)
		strMsg = strArr[0] + strBodyHeader + strArr[1];
	alert(strMsg);
	field.focus();
	return false;
}


function CheckStateSelected() {
//alert ("checking states")
   var sn;
   var state_abbrev;
   sn = document._mktf.disp_state.selectedIndex;
   switch(sn) {
        case 1:  //Non US Resident;
	state_abbrev = "NR";
    	break;
  
        case 2:	// Alabama;
	state_abbrev = "AL";
    	break;
        case 3:	// Alaska;
	state_abbrev = "AK";
	break;
        case 4:	// Arizona;
	state_abbrev = "AZ";
	break;
case 5:  //Arkansas;
	state_abbrev = "AR";
    	break;
case 6:  //California;
	state_abbrev = "CA";
    	break;
case 7:  //Colorado;
	state_abbrev = "CO";
    	break;
case 8:  //Connecticut;
	state_abbrev = "CT";
    	break;
case 9:  //Delaware;
	state_abbrev = "DE";
    	break;
case 10:  //Florida;
	state_abbrev = "FL";
    	break;
case 11:  //Georgia;
	state_abbrev = "GA";
    	break;
case 12:  //Hawaii;
	state_abbrev = "HI";
    	break;
case 13:  //Idaho;
	state_abbrev = "ID";
    	break;
case 14:  //Illinois;
	state_abbrev = "IL";
    	break;
case 15:  //Indiana;
	state_abbrev = "IN";
    	break;
case 16:  //Iowa;
	state_abbrev = "IA";
    	break;
case 17:  //Kansas;
	state_abbrev = "KS";
    	break;
case 18:  //Kentucky;
	state_abbrev = "KY";
    	break;
case 19:  //Louisiana;
	state_abbrev = "LA";
    	break;
case 20:  //Maine;
	state_abbrev = "ME";
    	break;
case 21:  //Maryland;
	state_abbrev = "MD";
    	break;
case 22:  //Massachusetts;
	state_abbrev = "MA";
    	break;
case 23:  //Michigan;
	state_abbrev = "MI";
    	break;
case 24:  //Minnesota;
	state_abbrev = "MN";
    	break;
case 25:  //Mississippi;
	state_abbrev = "MS";
    	break;
case 26:  //Missouri;
	state_abbrev = "MO";
    	break;
case 27:  //Montana;
	state_abbrev = "MT";
    	break;
case 28:  //Nebraska;
	state_abbrev = "NE";
    	break;
case 29:  //Nevada;
	state_abbrev = "NV";
    	break;
case 30:  //New Hampshire;
	state_abbrev = "NH";
    	break;
case 31:  //New Jersey;
	state_abbrev = "NJ";
    	break;
case 32:  //New Mexico;
	state_abbrev = "NM";
    	break;
case 33:  //New York;
	state_abbrev = "NY";
    	break;
case 34:  //North Carolina;
	state_abbrev = "NC";
    	break;
case 35:  //North Dakota;
	state_abbrev = "ND";
    	break;
case 36:  //Ohio;
	state_abbrev = "OH";
    	break;
case 37:  //Oklahoma;
	state_abbrev = "OK";
    	break;
case 38:  //Oregon;
	state_abbrev = "OR";
    	break;
case 39:  //Pennsylvania;
	state_abbrev = "PA";
    	break;
case 40:  //Rhode Island;
	state_abbrev = "RI";
    	break;
case 41:  //South Carolina;
	state_abbrev = "SC";
    	break;
case 42:  //South Dakota;
	state_abbrev = "SD";
    	break;
case 43:  //Tennessee;
	state_abbrev = "TN";
    	break;
case 44:  //Texas;
	state_abbrev = "TX";
    	break;
case 45:  //Utah;
	state_abbrev = "UT";
    	break;
case 46:  //Vermont;
	state_abbrev = "VT";
    	break;
case 47:  //Virginia;
	state_abbrev = "VA";
    	break;
case 48:  //Washington;
	state_abbrev = "WA";
    	break;
case 49:  //Washington D.C.;
	state_abbrev = "DC";
    	break;
case 50:  //West Virginia;
	state_abbrev = "WV";
    	break;
case 51:  //Wisconsin;
	state_abbrev = "WI";
    	break;
case 52:  //Wyoming;
	state_abbrev = "WY";
    	break;
   }
   document._mktf.STATE.value = state_abbrev;
   //return true;
}


       field=document._mktf._PRE; 
       field.value="T"; 


function preProcess() { 

  if (CheckStateSelected(document._mktf) == false) {
   	return false;
  }

var fullname = document._mktf.full_name.value;
var namesplit = fullname.split(" "); 
var fname = namesplit[0]; 
var lname = namesplit[1]; 

document._mktf.FIRST_NAME.value = fname;
document._mktf.LAST_NAME.value = lname;

	return true;
}