var sLeadImgStop='images/ico_error_stop_sm_w.png';
var sLeadImgWarn='images/ico_exclamation_sm_w.png';
var sLeadImgNone='images/space.gif';

function Trim(inputString) {
  if (typeof inputString != "string") { return inputString; }
  return inputString.replace(/^\s*(\b.*\b|)\s*$/, "$1");
}

function MakeNumeric(strField) {
	var myString = Trim(strField.value);
	strField.value = myString;
	var myGoodString='';
	var bDot=false;
	for (var iCount = 0;iCount<myString.length;iCount++) {
		sChar = myString.substr(iCount,1);
		if (iCount==0) {
			if ( ((sChar>='0') && (sChar<='9')) || (sChar=='-') ) {
				myGoodString+=sChar;
			} else if ((sChar=='.') && (!bDot)) {
				myGoodString+=sChar;
				bDot=true;
			}
		} else {
			if ((sChar>='0') && (sChar<='9')) {
				myGoodString+=sChar;
			} else if ((sChar=='.') && (!bDot)) {
				myGoodString+=sChar;
				bDot=true;
			}
		}
	}
	strField.value=myGoodString;
}

function isPasswd(strValue) {
	// checks that the string is not emtpy and contains no spaces
	// or special characters except  0-9, a-z, A-Z, or !@#$%&*-+?
	var myGoodString='';
	// extract the numeric digits
	for (var iCount = 0;iCount<strValue.length;iCount++) {
		sChar = strValue.substr(iCount,1);
		if ( ((sChar>='0') && (sChar<='9')) ||
			((sChar>='A') && (sChar<='Z')) ||
			((sChar>='a') && (sChar<='z')) || 
			(sChar=='!') || (sChar=='-') ||
			((sChar>='#') && (sChar<='&')) ||
			((sChar>='-') && (sChar<='+')) ||
			((sChar>='?') && (sChar<='@')) ) {
			myGoodString+=sChar;
		}
	}
	if (strValue==myGoodString) {
		return true;
	} else {
		return false;
	}
}

function CheckPasswdField(strField) {
	// checks that password field is valid
	var myString = Trim(strField.value);
	strField.value = myString;
    if (isPasswd(myString)) {
        return true;
    } else {
        return false;
    }
}    

function AlertPasswdField(strField,inAlertName) {
	var myString = Trim(strField.value);
	strField.value = myString;
	if (! isPasswd(myString)) {
		eval("document." + strField.name + "Req.src=\""+sLeadImgStop+"\";");
		strField.className="valuetext_err";
		window.alert('The ' + inAlertName + ' is not a valid format.  Valid entries can be a-z, A-Z, 0-9, or  or !@#$%&*-+? ');
		return false;
	} else {
		strField.className="valuetext";
		eval("document." + strField.name + "Req.src=\""+sLeadImgNone+"\";");
		return true;
	}
}

function isUserid(strValue) {
	// checks that the string is not emtpy and contains no spaces
	// or special characters except 0-9, a-z, or A-Z
	var myGoodString='';
	// extract the numeric digits
	if (strValue.length>0) {
		for (var iCount = 0;iCount<strValue.length;iCount++) {
			sChar = strValue.substr(iCount,1);
			if ( ((sChar>='0') && (sChar<='9')) ||
				((sChar>='A') && (sChar<='Z')) || 
				((sChar>='a') && (sChar<='z')) ) {
				myGoodString+=sChar;
			}
		}
		if (strValue==myGoodString) {
			return true;
		} else {
			return false;
		}
	} else {
		return false;
	}
}

function CheckUseridField(strField) {
	// checks that email field is valid
	var myString = Trim(strField.value);
	strField.value = myString;
    if (isUserid(myString)) {
        return true;
    } else {
        return false;
    }
}    

function AlertUseridField(strField,inAlertName) {
	var myString = Trim(strField.value);
	strField.value = myString;
	if (! isUserid(myString)) {
		eval("document." + strField.name + "Req.src=\""+sLeadImgStop+"\";");
		strField.className="valuetext_err";
		window.alert('The ' + inAlertName + ' is not a valid format.  Valid entries can be a-z, A-Z, and/or 0-9.');
		return false;
	} else {
		eval("document." + strField.name + "Req.src=\""+sLeadImgNone+"\";");
		strField.className="valuetext";
		return true;
	}
}

function isEmail(strEmail) {
    if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) {
        return true;
    } else {
        return false;
    }
}

function MultiEmailCheck(email) {
	var string = Trim(email.value);
	string = string.toLowerCase();
	// replace all spaces and commas with semicolons
	var pattern = /\s/g;
	string = string.replace(pattern,';');
	pattern = /,/g;
	string = string.replace(pattern,';');
	// write correct format back to form
	email.value = string;
	
	var arremail = string.split(';');
	//alert(arremail.length);
	for (var i=0;i<arremail.length;i++) {
		
		if (! isEmail(arremail[i])) {
			window.alert(arremail[i]+' is not a valid email address.');
			email.focus();
		}
	}
}

function CheckEmailField(email) {
	// checks that email field is valid
	var string = Trim(email.value);
	email.value = string;
    if (isEmail(string)) {
        return true;
    } else {
        return false;
    }
}    

function AlertEmailField(strField) {
	// checks that email field is valid
	var myString = Trim(strField.value);
	strField.value = myString;
    if (isEmail(myString)) {
		eval("document." + strField.name + "Req.src=\""+sLeadImgNone+"\";");
		strField.className="valuetext";
        return true;
    } else {
		eval("document." + strField.name + "Req.src=\""+sLeadImgStop+"\";");
		strField.className="valuetext_err";
    	window.alert('That is not a valid email address.');
        return false;
    }
}    

function isNullString(strValue) {
	// checks that the string is empty
	if (strValue=='') {
		return true;
	} else {
		return false;
	}
}

function CheckNullField(strField) {
	// checks that the string is empty
	var myString = strField.value;
	myString = Trim(myString);
	strField.value = myString;
	if (myString=='') {
		return true;
	} else {
		return false;
	}
}

function AlertNullField(strField,inAlertName) {
	var myString = strField.value;
	myString = Trim(myString);
	strField.value = myString;
	if (isNullString(myString)) {
		eval("document." + strField.name + "Req.src=\""+sLeadImgStop+"\";");
		strField.className="valuetext_err";
		window.alert('The ' + inAlertName + ' cannot be an empty value.  You must enter a value for this.');
		return false;
	} else {
		eval("document." + strField.name + "Req.src=\""+sLeadImgNone+"\";");
		strField.className="valuetext";
		return true;
	}
}

var iPhoneType=0;

function FormatPhone(strField,iType,strFName) {
	/* formats a given numeric string into a valid phone mumber
		types: 0 - # (###) ###-####  Ext ####
		types: 1 - #-###-###-####  Ext ####
		types: 2 - #.###.###.####  Ext ####
	*/
	var myString = strField.value;
	myString = Trim(myString.toUpperCase());
	strField.value = myString;
	var myNumeric='';
	// extract the numeric digits
	for (var iCount = 0;iCount<myString.length;iCount++) {
		sChar = myString.substr(iCount,1);
		if ( ((sChar>='0') && (sChar<='9')) ||
			((sChar>='A') && (sChar<='Z')) ) {
			myNumeric+=sChar;
		}
	}
	var bPErr=false;
	if (myNumeric.substr(0,1)=='1') {
		if (myNumeric.length<=10) {
			bPErr=true;
		}
	} else if ((myNumeric.length==7) ||
		(myNumeric.length>=10)) {
		bPErr=false;
	} else {
		bPErr=true;
	}
	if (bPErr) { 
		window.alert('Please double check the ' + strFName + ' value for accuracy.  It may not be an actual phone number.'); 
		strField.className="valuetext_err";
		eval('document.' + strField.name + 'Req.src="'+sLeadImgWarn+'";');
	} else {
		strField.className="valuetext";
		eval('document.' + strField.name + 'Req.src="'+sLeadImgNone+'";');
	}
	var myPhone='';
	if (iType==1) {
		if (myNumeric.length>7) {
			if (myNumeric.substr(0,1)=='1') {
				myPhone+=myNumeric.substr(0,1)+'-';
				myNumeric=myNumeric.substr(1,myNumeric.length-1);
			}
			for (iCount = 0;iCount<myNumeric.length;iCount++) {
				if ((iCount==2) || (iCount==5)) {
					myPhone+=myNumeric.substr(iCount,1)+'-';
				} else if (iCount==10) {
					myPhone+=' '+myNumeric.substr(iCount,1);			
				} else {
					myPhone+=myNumeric.substr(iCount,1);
				}
			}			
		} else {
			for (iCount = 0;iCount<myNumeric.length;iCount++) {
				if ((iCount==2)) {
					myPhone+=myNumeric.substr(iCount,1)+'-';
				} else {
					myPhone+=myNumeric.substr(iCount,1);
				}
			}			
		}
	} else if (iType==2) {
		if (myNumeric.length>7) {
			if (myNumeric.substr(0,1)=='1') {
				myPhone+=myNumeric.substr(0,1)+'.';
				myNumeric=myNumeric.substr(1,myNumeric.length-1);
			}
			for (iCount = 0;iCount<myNumeric.length;iCount++) {
				if ((iCount==2) || (iCount==5)) {
					myPhone+=myNumeric.substr(iCount,1)+'.';
				} else if (iCount==10) {
					myPhone+=' '+myNumeric.substr(iCount,1);			
				} else {
					myPhone+=myNumeric.substr(iCount,1);
				}
			}			
		} else {
			for (iCount = 0;iCount<myNumeric.length;iCount++) {
				if ((iCount==2)) {
					myPhone+=myNumeric.substr(iCount,1)+'.';
				} else {
					myPhone+=myNumeric.substr(iCount,1);
				}
			}			
		}
	} else {
		if (myNumeric.length>7) {
			if (myNumeric.substr(0,1)=='1') {
				myPhone+=myNumeric.substr(0,1)+' ';
				myNumeric=myNumeric.substr(1,myNumeric.length-1);
			}
			for (iCount = 0;iCount<myNumeric.length;iCount++) {
				if (iCount==0) {
					myPhone+='('+myNumeric.substr(iCount,1);
				} else if (iCount==2) {
					myPhone+=myNumeric.substr(iCount,1)+') ';
				} else if (iCount==5) {					
					myPhone+=myNumeric.substr(iCount,1)+'-';
				} else if (iCount==10) {
					myPhone+=' '+myNumeric.substr(iCount,1);			
				} else {
					myPhone+=myNumeric.substr(iCount,1);
				}
			}			
		} else {
			for (iCount = 0;iCount<myNumeric.length;iCount++) {
				if ((iCount==2)) {
					myPhone+=myNumeric.substr(iCount,1)+'-';
				} else {
					myPhone+=myNumeric.substr(iCount,1);
				}
			}			
		}
	}
	strField.value = myPhone;
	return true;
}
