function LoadErrorImageArray(gImgs) {
	gImgs['REQUIRED'] = new Image(100,17);
	gImgs['COVER'] = new Image(100,17);
	gImgs['INVALID_TELEPHONE_FORMAT'] = new Image(100,17);
	gImgs['ALPHA_ONLY'] = new Image(100,17);
	gImgs['NUMERIC_ONLY'] = new Image(100,17);
	gImgs['ALPHANUMERIC_ONLY'] = new Image(100,17);
	gImgs['INVALID_EMAIL_FORMAT'] = new Image(100,17);
	gImgs['INVALID_SSN_FORMAT'] = new Image(100,17);
	gImgs['INVALID_ZIP_FORMAT'] = new Image(100,17);
	gImgs['INVALID_ADDRESS_FORMAT'] = new Image(100,17);			
	gImgs['INVALID_ACCOUNT_NUM_FORMAT'] = new Image(100,17);
	gImgs['INVALID_DATE'] = new Image(100,17);
	
	gImgs['REQUIRED'].src = '../images/req_arrow_left.gif';
	gImgs['COVER'].src = '../images/image_cover.gif';
	gImgs['INVALID_TELEPHONE_FORMAT'].src = '../images/invalid_tele_format.gif';
	gImgs['ALPHA_ONLY'].src = '../images/alpha_only.gif';
	gImgs['NUMERIC_ONLY'].src = '../images/numeric_only.gif';
	gImgs['ALPHANUMERIC_ONLY'].src = '../images/alphanumeric_only.gif';
	gImgs['INVALID_EMAIL_FORMAT'].src = '../images/invalid_email_format.gif';
	gImgs['INVALID_SSN_FORMAT'].src = '../images/invalid_ssn_format.gif';
	gImgs['INVALID_ZIP_FORMAT'].src = '../images/invalid_zip_format.gif';
	gImgs['INVALID_ADDRESS_FORMAT'].src = '../images/invalid_address_format.gif';			
	gImgs['INVALID_ACCOUNT_NUM_FORMAT'].src = '../images/invalid_account_num.gif';			
	gImgs['INVALID_DATE'].src = '../images/invalid_date.gif';			
}

function CreateNewFormObj(sIndex) {
	var 
		oFrm=null;
	if (sIndex) {
		if (sIndex.toString().indexOf("object")!=-1) {
			oFrm=sIndex;
		} else {
			sIndex = sIndex;	
		}				
	} else {
		sIndex = 0;
	}
	if (oFrm==null) {
		oFrm = document.forms[sIndex];
	}
	for (var i = 0; i < oFrm.length;i++) {
		switch (oFrm[i].type) {
			case ('select-one' || 'select-muti'):
				if(oFrm[i].name != "genre" && oFrm[i].name != "marital_status"  && oFrm[i].name != "home_status")
				{
					oFrm[i].field_type = "SELECTION";
					oFrm[i].required = true;				
					oFrm[i].validation_status = "NOT_VALIDATED";
					oFrm[i].ErrorType = "";						
					oFrm[i].selected = false;
				}
			break;
			case 'radio':
				oFrm[i].field_type = "OPTION_GROUP";
				oFrm[i].required = true;				
				oFrm[i].validation_status = "NOT_VALIDATED";
				oFrm[i].ErrorType = "";						
				oFrm[i].selected = false;
			break;
			case 'text':
				if(oFrm[i].name != "dependents" && oFrm[i].name != "account_number")
				{
					oFrm[i].field_type = getAttribute(oFrm[i].name);
					oFrm[i].required = true;				
					oFrm[i].validation_status = "NOT_VALIDATED";
					oFrm[i].ErrorType = "";
				}
			break;
			case 'textarea':
				oFrm[i].field_type = getAttribute(oFrm[i].name);	
				oFrm[i].required = true;				
				oFrm[i].validation_status = "NOT_VALIDATED";
				oFrm[i].ErrorType = "";
			break;							
			case 'hidden':
				oFrm[i].field_type = "HIDDEN";	
				oFrm[i].required = false;				
				oFrm[i].validation_status = "VALIDATED";
				oFrm[i].ErrorType = "";	
			break;
			case 'button':
				oFrm[i].field_type = "BUTTON";	
				oFrm[i].required = false;				
				oFrm[i].validation_status = "VALIDATED";
				oFrm[i].ErrorType = "";							
			break;
			case 'image':
				oFrm[i].field_type = "IMAGE";	
				oFrm[i].required = false;				
				oFrm[i].validation_status = "VALIDATED";
				oFrm[i].ErrorType = "";	
			break;						
			case 'password':
				oFrm[i].field_type = "PASSWORD";	
				oFrm[i].required = true;				
				oFrm[i].validation_status = "NOT_VALIDATED";
				oFrm[i].ErrorType = "";							
			break;
			case 'reset':
				oFrm[i].field_type = "RESET";	
				oFrm[i].required = false;				
				oFrm[i].validation_status = "VALIDATED";
				oFrm[i].ErrorType = "";	
			break;						
			case 'submit':
				oFrm[i].field_type = "SUBMIT";	
				oFrm[i].required = false;				
				oFrm[i].validation_status = "VALIDATED";
				oFrm[i].ErrorType = "";	
			break;																								
			case 'checkbox':
				oFrm[i].field_type = "CHECKBOX";	
				oFrm[i].required = true;				
				oFrm[i].validation_status = "NOT_VALIDATED";
				oFrm[i].ErrorType = "REQUIRED";							
			break;																								
			case 'file':
				oFrm[i].field_type = "FILE";	
				oFrm[i].required = true;				
				oFrm[i].validation_status = "NOT_VALIDATED";
				oFrm[i].ErrorType = "REQUIRED";							
			break;					
		} 			
	} 
	oFrm.form_errors = 0;
	return oFrm;
} 

function LoadImageSlots(oDefFrm) {
	for (var ndx = 0; ndx < oDefFrm.length; ndx++) {
		if (eval('oDefFrm.' + 'img_' + oDefFrm[ndx].name) == null) {
			oDefFrm[ndx].image_slot = imgErrorTypes['COVER'];						
		} else {
			oDefFrm[ndx].image_slot = eval('oDefFrm.' + 'img_' + oDefFrm[ndx].name);
		}
	} 
}

function trim(sItem) {
	sItem=""+sItem;
	while (sItem.charAt(0)==" ") {
		sItem=sItem.substring(1,sItem.length);
	}
	while (sItem.charAt(sItem.length - 1)==" ") {
		sItem=sItem.substring(0,sItem.length-1);
	}
	return sItem;
}		
											
function getFront(mainStr,searchStr) {
	var foundOffset = mainStr.indexOf(searchStr);
	if (foundOffset == -1) {
		return null;
	}
	return mainStr.substring(0,foundOffset);
}

function getEnd(mainStr,searchStr) {
	var foundOffset = mainStr.indexOf(searchStr);
	if (foundOffset == -1) {
		return null;
	}
	return mainStr.substring(foundOffset+searchStr.length,mainStr.length);
}

function replaceString(mainStr,searchStr,replaceStr) {
	var front = getFront(mainStr,searchStr);
	var end = getEnd(mainStr,searchStr);
	if (front != null && end != null) {
		return front + replaceStr + end;
	}		
	return null;
}

function isDate(oFld) { 
	var inputStr = oFld.value;
	while (inputStr.indexOf("-") != -1) { 
		inputStr = replaceString(inputStr,"-","/"); 
	} 
	var delim1 = inputStr.indexOf("/"); 
	var delim2 = inputStr.lastIndexOf("/"); 
	if ((delim1 != -1) && (delim1 == delim2)) { 
		return false; 
	} 
	if (delim1 != -1) { 
		var mm = parseInt(inputStr.substring(0,delim1),10); 
		var dd = parseInt(inputStr.substring(delim1 + 1,delim2),10); 
		var yyyy = parseInt(inputStr.substring(delim2 + 1, inputStr.length),10); 
	} else { 
		var mm = parseInt(inputStr.substring(0,2),10); 
		var dd = parseInt(inputStr.substring(2,4),10); 
		var yyyy = parseInt(inputStr.substring(4,inputStr.length),10); 
	} 
	if (isNaN(mm) || isNaN(dd) || isNaN(yyyy)) { 
		return false; 
	} 
	if (mm < 1 || mm > 12) { 
		return false;
	} 
	if (dd < 1 || dd > 31) { 
		return false; 
	} 
	var year=parseInt(new Date().getFullYear());
	if (yyyy < 100) { 
		if (((parseInt(yyyy)+2000)-year)>2) {
			yyyy=yyyy+1900;
		} else {
			yyyy=yyyy+2000;
		}
	}
	if ((yyyy < (year-125)) || (yyyy > (year+25))) {
		return false;
	}
	if (!checkMonthLength(mm,dd)) { 
		return false; 
	} 
	if (mm == 2) { 
		if (!checkLeapMonth(mm,dd,yyyy)) { 
			return false; 
		} 
	}			
	oFld.value = mm + "/" + dd + "/" + yyyy; 
	return true; 
} 
			
function checkMonthLength(mm,dd) { 
	var months = new Array("","January","February","March","April","May","June","July","August","September","October","November","December");
	if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30) { 
		return false 
	} else if (dd > 31) { 
		return false 
	} 
	return true 
} 

function checkLeapMonth(mm,dd,yyyy) { 
	if (yyyy % 4 > 0 && dd > 28) { 
		return false 
	} else if (dd > 29) { 
		return false 
	} 
	return true 
} 			
		
function FormatNumber (expr, decplaces) {
	var str = "" + Math.round (eval(expr) * Math.pow(10,decplaces));
	while(str.length <= decplaces) {
		str = "0" + str;
	}
	var decpoint = str.length - decplaces;
	return str.substring(0,decpoint) + (decplaces == 2 ? "." : "") + str.substring(decpoint,str.length);
}
			
function StripCurrencyChars(strValue,strCurrencySymbol) {
	var RegEx = eval('/[,' + '\\' + strCurrencySymbol + ']/g');
	return strValue.replace(RegEx,"");
}
			
function StripAllNonNumericChars(strValue,strCurrencySymbol) {
	var RegEx = eval('/[\,' + '\\' + strCurrencySymbol + '\.]/g');
	return strValue.replace(RegEx,"");			
}

function AddCurrencyChars(objTextObject,strCurrencySymbol) {
	var strNumber = objTextObject.value;
	var fltNumber = parseFloat(strNumber);
	if (isNaN(fltNumber))
		return false;
	var decplaces;
	strNumber.indexOf(".") == -1 ? decplaces = 0 : decplaces = 2;
	strNumber = StripCurrencyChars(strNumber,strCurrencySymbol); 
	if (isNaN(strNumber)) {
		return false;
	} else {
		strNumber = FormatNumber(strNumber,decplaces);
		var RegEx = /(-?\d+)(\d{3})/;
		while (RegEx.test(strNumber)) {
			strNumber = strNumber.replace(RegEx,"$1,$2");
		}
		if (strCurrencySymbol != null) {
			objTextObject.value = strCurrencySymbol + strNumber;  
			return true;
		} else {
			objTextObject.value = strNumber;
			return true;
		} 
	} 
} 
					
function IsSelected(SelectionObj) {
	if (SelectionObj.selectedIndex == 0) {
		return false;
	}
	return true;
}
			
function IsPosNumericOnly(sValue) {
	var sNumericChars = "0123456789";
	if (trim(sValue) == "") {
		return false;
	}
	for (var i = 0;  i < sValue.length;  i++) {
		ch = sValue.charAt(i);
		for (var j = 0;  j < sNumericChars.length;  j++) {
			if (ch == sNumericChars.charAt(j)) {
				break;
			}	
		}
		if (j == sNumericChars.length) {
			return false;
		}
	}
	return true;
}

function IsZipCode(sValue) {
	for (var i = 0;  i < sValue.length;  i++) {
		ch = sValue.charAt(i);
		if ((i<5)|| (i>5)) {
			if (!IsPosNumericOnly(ch.toString())) {
				return false;
			}
		} else {
			if (ch!="-") {
				return false;
			}
		}
	}
	if ((sValue.length<5) || ((sValue.length>5)  && (sValue.length<10))) {
		return false;
	}
	return true;
}
			
function IsAlphaOnly(sValue) {
	var sAlphaChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ,.'&!-?#;()";
	for (var i = 0;  i < sValue.length;  i++) {
		ch = sValue.charAt(i);
		for (var j = 0;  j < sAlphaChars.length;  j++) {
			if (ch == sAlphaChars.charAt(j)) {
				break;
			}	
		}
		if (j == sAlphaChars.length) {
			return false;
		}
	}
	return true;
}

function IsAlphaNumericOnly(sValue) {
	var sAlphaChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ,.'&!-?0123456789*#@_;:/<>[]{}+=^%$()";
	for (var i = 0;  i < sValue.length;  i++) {
		ch = sValue.charAt(i);
		for (var j = 0;  j < sAlphaChars.length;  j++) {
			if (ch == sAlphaChars.charAt(j)) {
				break;
			}	
		}
		if (j == sAlphaChars.length) {
			return false;
		}
	}
	return true;
}

function IsValidAccountNum(sValue) {
	var sAcctNumChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-";
	for (var i = 0;  i < sValue.length;  i++) {
		ch = sValue.charAt(i);
		for (var j = 0;  j < sAcctNumChars.length;  j++) {
			if (ch == sAcctNumChars.charAt(j)) {
				break;
			}	
		}
		if (j == sAcctNumChars.length) {
			return false;
		}
	}
	return true;
}
			
function IsValidAddress(sValue) {
	sValue = trim(sValue);
	var CARRAGE_RETURN = 10;
	var LINEFEED = 13;
	var sAddressChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 .-#/()&,';" + String.fromCharCode(CARRAGE_RETURN) + String.fromCharCode(LINEFEED);
	var bCharDataTypeKnown = false;
	var strCrlf = String.fromCharCode(CARRAGE_RETURN) + String.fromCharCode(LINEFEED);
	Array.prototype.numeric = false;
	Array.prototype.alpha = false;
	Array.prototype.space = false;
	var udtHasDataType = new Array(1);
	for (var i = 0;  i < sValue.length;  i++) {
		ch = sValue.charAt(i);
		for (var j = 0;  j < sAddressChars.length && ! bCharDataTypeKnown == true;  j++) {
			if (ch == sAddressChars.charAt(j)) {
				if (IsAlphaOnly(ch)) {
					if (ch == " ") {
						udtHasDataType.space = true;									
					} else {
						udtHasDataType.alpha = true;
					}
					bCharDataTypeKnown = true;
				} else if (IsPosNumericOnly(ch)) {
					udtHasDataType.numeric = true;
					bCharDataTypeKnown = true;
				} else if ((ch == String.fromCharCode(CARRAGE_RETURN)) || (ch == String.fromCharCode(LINEFEED))) {
					bCharDataTypeKnown = true;	
				} else {
					bCharDataTypeKnown = false;
				}
			}
			if (bCharDataTypeKnown) {break;}
		} 
		if (bCharDataTypeKnown == false) {					     
		     return false;
		}
		bCharDataTypeKnown = false;
	} 
	return true;
} 

function ValidEmailFormat(sEmail) {
	sEmail = trim(sEmail);
	if (((sEmail!="") && ((sEmail.indexOf('@')== -1) ||	((sEmail.charAt(sEmail.length-4)!= '.') && (sEmail.charAt(sEmail.length-3)!= '.'))))) {
		return false;
	} else {
		return true;
	}
}

function IsFieldBlank(strFieldValue) {
	if (trim(strFieldValue) == "") {
		return true;
	} else {
		return false;
	}
}
			
function AddHyphens(strFieldName) {
	var strFormElement = "GlobalFormObject." + strFieldName;
	var objField = eval(strFormElement);
	var sObj = objField.value;
	if ((sObj == "" ) || 
		((sObj.indexOf("-") != -1) && (objField.field_type == "SSN") && (sObj.length != 11)) ||
		((sObj.indexOf("-") == -1) && (objField.field_type == "SSN") && (sObj.length != 9)) ||
		((sObj.indexOf("-") != -1) && (objField.field_type == "TELEPHONE_NUMBER") && (sObj.length != 12)) ||
		((sObj.indexOf("-") == -1) && (objField.field_type == "TELEPHONE_NUMBER") && (sObj.length != 10)) ||
		(sObj.indexOf("-") != -1))
	{ return; }	
	if (objField.field_type == "SSN") {
		objField.value = sObj.substring(0,3) + "-" + sObj.substring(3,5) + "-" + sObj.substring(5,9);
	} else {
		objField.value = sObj.substring(0,3) + "-" + sObj.substring(3,6) + "-" + sObj.substring(6,10);
	}	
}
			
function ValidPhoneNumberFormat(sPhone) {
	if ((sPhone.substring(0,1)=='0')|| (sPhone.substring(0,1)=='1')) {
		return false;
	}
	var sSect = sPhone.substring(0,sPhone.indexOf("-"));
	if (sSect.length != 3) {return false;} 
	//if ((sSect.substring(0,1)=='1')|| (sSect.substring(0,1)=='1')) {return false;} 
	if (IsPosNumericOnly(sSect)) {
		sSect = sPhone.substring(sPhone.indexOf("-") + 1, sPhone.lastIndexOf("-"));
		if (sSect.length != 3) {return false;} 
		if (IsPosNumericOnly(sSect)) {
			sSect = sPhone.substring(sPhone.lastIndexOf("-") + 1, sPhone.lastIndexOf("-") + 5);
			if (sSect.length != 4) {return false;} 
			if (IsPosNumericOnly(sSect)) {
				return true;
			}
		}
	}
	return false;
}
			
function ValidSSNFormat(sSSN) {
	if (sSSN.indexOf("-") == -1) {
		return false;
	}
	var sSect = sSSN.substring(0,sSSN.indexOf("-"));
	if (sSect.length != 3) {return false;} 
	if (IsPosNumericOnly(sSect)) {
		sSect = sSSN.substring(sSSN.indexOf("-") + 1, sSSN.lastIndexOf("-"));
		if (sSect.length != 2) {return false;} 
		if (IsPosNumericOnly(sSect)) {
			sSect = sSSN.substring(sSSN.lastIndexOf("-") + 1, sSSN.lastIndexOf("-") + 5);
			if (sSect.length != 4) {return false;} 
			if (IsPosNumericOnly(sSect)) {
				return true;
			}
		}
	}
	return false;
}
			
function GroupItemSelected(strGroupName,sIndex) {
	var strGroup;
	var objGroup;
	var objForm=null;
	if (sIndex) {
		if (sIndex.toString().indexOf("object")!=-1) {
			objForm=sIndex;
		} else {
			sIndex = sIndex;	
		}				
	} else {
		sIndex = 0;
	}
	if (objForm==null) {
		objForm = document.forms[sIndex];
	}
	strGroup = 'objForm.' + strGroupName;
	objGroup = eval(strGroup);
	for (var i = 0; i < objGroup.length; i++) {
		if (objGroup[i].checked) {
			return true;
		}
	}
	return false;
}
			
function IsFormCorrect(oDefFrm) {
	for (var ndx = 0; ndx < oDefFrm.length; ndx++) {
		var chk = "";
		if(oDefFrm[ndx].name == "home_phone")
		{
			if (oDefFrm[ndx].validation_status == "NOT_VALIDATED") 
			{
				if (oDefFrm[ndx + 1].validation_status != "NOT_VALIDATED") 
				{
					oDefFrm[ndx].validation_status = "VALIDATED";
				}
			}
		}
		if(oDefFrm[ndx].name == "work_phone")
		{
			if (oDefFrm[ndx].validation_status == "NOT_VALIDATED") 
			{
				if (oDefFrm[ndx - 1].validation_status != "NOT_VALIDATED") 
				{
					oDefFrm[ndx].validation_status = "VALIDATED";
				}
			}
		}
		if(document.getElementById("country") != null)
		{
			if(document.getElementById("country").value == "USA")
			{
				document.getElementById("province").validation_status = "VALIDATED";
			}
			else if(document.getElementById("country").value == "Canada")
			{
				document.getElementById("state").validation_status = "VALIDATED";
			}
			else
			{
				document.getElementById("province").validation_status = "VALIDATED";	
			}
		}
		if (oDefFrm[ndx].validation_status == "NOT_VALIDATED") {
			//alert(oDefFrm[ndx].name);
			//alert(document.getElementById("country").validation_status);
			return false;
		}
	}
	return true;
}

function ValidateForm(oElems,sIndex)  {
	if (sIndex) {
		sIndex = sIndex;					
	} else {
		sIndex = 0;
	}
	for (var i = 0; i < oElems.length; i++) {
		if ((oElems[i].type == 'text') || (oElems[i].type == 'password') || (oElems[i].type == 'textarea')) {							
			switch (oElems[i].field_type) {
				case "ADDRESS":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((IsValidAddress(oElems[i].value)) || ((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "INVALID_ADDRESS_FORMAT";
						}
					}
				break;
				case "ACCOUNT_NUM":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((IsValidAccountNum(oElems[i].value)) || ((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "INVALID_ACCOUNT_NUM_FORMAT";
						}
					}
				break;
				case "PASSWORD":
					if ((IsFieldBlank(oElems[i].value) == true) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else if ((IsFieldBlank(oElems[i].value) == false) &&  (IsFieldBlank(oElems[i].required) == true)) {
						oElems[i].validation_status = "VALIDATED";
						oElems[i].ErrorType = "";
					} else {
						oElems[i].validation_status = "VALIDATED";
						oElems[i].ErrorType = "";
					}
				break;
				case "COMMENT":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						oElems[i].validation_status = "VALIDATED";
						oElems[i].ErrorType = "";
					}
				break;
				case "CURRENCY":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((IsPosNumericOnly(StripAllNonNumericChars(oElems[i].value,"$"))) || 
							((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "NUMERIC_ONLY";
						}
					}
				break;
				case "DATE":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((isDate(oElems[i])) || ((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "INVALID_DATE";
						}
					}
				break;
				case "EMAIL_ADDRESS":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((ValidEmailFormat(oElems[i].value)) || ((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "INVALID_EMAIL_FORMAT";
						}
					}
				break;
				case "TELEPHONE_NUMBER":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((ValidPhoneNumberFormat(oElems[i].value)) || ((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "INVALID_TELEPHONE_FORMAT";
						}
					}
				break;
				case "SSN":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((ValidSSNFormat(oElems[i].value)) || ((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "INVALID_SSN_FORMAT";
						}
					}
				break;
				case "ALPHA_ONLY":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((IsAlphaOnly(oElems[i].value)) || ((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "ALPHA_ONLY";
						}
					}
				break;
				case "NUMERIC_ONLY":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((IsPosNumericOnly(trim(oElems[i].value))) || ((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "NUMERIC_ONLY";
						}
					}
				break;
				case "CURRENCY":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((IsValidCurrency(oElems[i].value)) || ((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "NUMERIC_ONLY";
						}
					}
				break; 				
				case "ALPHANUMERIC_ONLY":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((IsAlphaNumericOnly(oElems[i].value)) || ((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "ALPHANUMERIC_ONLY";
						}
					}
				break;
				case "US_ZIP_CODE":
					if ((IsFieldBlank(oElems[i].value)) && (oElems[i].required == true)) {
						oElems[i].validation_status = "NOT_VALIDATED";
						oElems[i].ErrorType = "REQUIRED";
					} else {
						if ((IsZipCode(oElems[i].value)) || ((oElems[i].required == false) && IsFieldBlank(oElems[i].value))) {
							oElems[i].validation_status = "VALIDATED";
							oElems[i].ErrorType = "";										
						} else {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "INVALID_ZIP_FORMAT";
						}
					}
				break;
			} 
		} else {
			switch (oElems[i].type) {
				case "select-multi":
				break;
				case "select-one":
					if (IsSelected(oElems[i]) || !oElems[i].required) {
						oElems[i].validation_status = "VALIDATED";
						oElems[i].ErrorType = "";					
					} else {
						if (oElems[i].required == true) {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "REQUIRED";										
						}
					}
				break;
				case 'radio':
					if ((GroupItemSelected(oElems[i].name,sIndex)) || (oElems[i].required == false)) {
						oElems[i].validation_status = "VALIDATED";
						oElems[i].ErrorType = "";					
					} else {
						if (oElems[i].required == true) {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "REQUIRED";										
						}
					}								
				break;
				case 'checkbox':
					if ((GroupItemSelected(oElems[i].name,sIndex)) || (oElems[i].required == false)) {
						oElems[i].validation_status = "VALIDATED";
						oElems[i].ErrorType = "";					
					} else {
						if (oElems[i].required == true) {
							oElems[i].validation_status = "NOT_VALIDATED";
							oElems[i].ErrorType = "REQUIRED";										
						}
					}								
				break;
			} 
		} 
	} 
} 

function HighlightErrorRows(oDefFrm) {
	var strImgCover = imgErrorTypes['COVER'].src;
	for (var i = 0; i < oDefFrm.length; i++) {
		switch (oDefFrm[i].ErrorType) {
			case "REQUIRED":
				oDefFrm[i].image_slot.src = imgErrorTypes["REQUIRED"].src;
			break;
			case "ALPHA_ONLY":
				oDefFrm[i].image_slot.src = imgErrorTypes["ALPHA_ONLY"].src;								
			break;
			case "INVALID_ADDRESS_FORMAT":
				oDefFrm[i].image_slot.src = imgErrorTypes["INVALID_ADDRESS_FORMAT"].src;								
			break;
			case "NUMERIC_ONLY":
				oDefFrm[i].image_slot.src = imgErrorTypes["NUMERIC_ONLY"].src;																
			break;
			case "ALPHANUMERIC_ONLY":
				oDefFrm[i].image_slot.src = imgErrorTypes["ALPHANUMERIC_ONLY"].src;																								
			break;
			case "INVALID_EMAIL_FORMAT":
				oDefFrm[i].image_slot.src = imgErrorTypes["INVALID_EMAIL_FORMAT"].src;																																
			break;
			case "INVALID_ACCOUNT_NUM_FORMAT":
				oDefFrm[i].image_slot.src = imgErrorTypes["INVALID_ACCOUNT_NUM_FORMAT"].src;																																
			break;
			case "INVALID_TELEPHONE_FORMAT":
				oDefFrm[i].image_slot.src = imgErrorTypes["INVALID_TELEPHONE_FORMAT"].src;																																								
			break;
			case "INVALID_SSN_FORMAT":
				oDefFrm[i].image_slot.src = imgErrorTypes["INVALID_SSN_FORMAT"].src;																																																
			break;
			case "INVALID_ZIP_FORMAT":
				oDefFrm[i].image_slot.src = imgErrorTypes["INVALID_ZIP_FORMAT"].src;																																																
			break;
			case "INVALID_DATE":
				oDefFrm[i].image_slot.src = imgErrorTypes["INVALID_DATE"].src;																																																
			break;
			case "IMPROPER_FIELD_LENGTH":
			break;
			default:
				oDefFrm[i].image_slot.src = strImgCover;
		} 
	} 
	for (var ndx = 0; ndx < oDefFrm.length; ndx++) {
		if (oDefFrm[ndx].ErrorType != "") {
			alert("There are possible errors in the data you entered.  \n\nPlease fix and continue.");
			oDefFrm[ndx].focus();
			return;							
		}
	}
} 
function Changestateprovince()
{
	if(document.getElementById("country").value == "USA")
	{
		document.getElementById("trstate").style.display = "";
		document.getElementById("trprovince").style.display = "none";
	}
	else if(document.getElementById("country").value == "Canada")
	{
		document.getElementById("trstate").style.display = "none";
		document.getElementById("trprovince").style.display = "";
	}
}