/* ********************* BEGIN FORM VALIDATION FUNCTION ****************************** */
	function valForm(oForm){
		var bRequired = false;
		var sRadioName = "";
		
		// Determine If Various Fields Are Set To Required
		for (var i=0; i < oForm.length; i++){
			bRequired = false;

			//alert(oForm.elements[i].type)

			// Check To See If The Field Is Required
			if(oForm.elements[i].type == "radio"){
				var sTempName = oForm.elements[i].name;
				var oRadioButton = eval("oForm."+sTempName)
				if(sRadioName != oForm.elements[i].name){
					if(oRadioButton.required == true){
						bRequired = true;
					}
				}
				sRadioName = oForm.elements[i].name;
			}else if(oForm.elements[i].required == true){
				bRequired = true;
			}
			
			if(bRequired == true){
				// Validate Required Password Fields
				if(oForm.elements[i].type == "password"){
					var sTextValue = oForm.elements[i].value;
					if(sTextValue.length == 0){
						alert(oForm.elements[i].realname + " Required");
						oForm.elements[i].focus();
						oForm.elements[i].select();
						return false;
					}
				// Validate Required Checkbox Fields
				}else if(oForm.elements[i].type == "checkbox"){
					var bIsChecked = oForm.elements[i].checked;
					if(bIsChecked == false){
						alert(oForm.elements[i].realname + " Required");
						oForm.elements[i].focus();
						oForm.elements[i].select();
						return false;
					}
				// Validate Required Text Fields
				}else if(oForm.elements[i].type == "text"){
					var sTextValue = oForm.elements[i].value;
					if(sTextValue.length == 0){
						alert(oForm.elements[i].realname + " Required");
						oForm.elements[i].focus();
						oForm.elements[i].select();
						return false;
					}
				// Validate Required Text Areas
				}else if(oForm.elements[i].type == "textarea"){
					var sTextAreaValue = oForm.elements[i].value;
					if(sTextAreaValue.length == 0){
						alert(oForm.elements[i].realname + " Required");
						oForm.elements[i].focus();
						oForm.elements[i].select();
						return false;
					}
				// Validate Required Radio Buttons
				}else if(oForm.elements[i].type == "radio"){
					if(valRadioButton(oForm,oForm.elements[i].name) == false){
						var sTempName = oForm.elements[i].name;
						var oRadioButton = eval("oForm."+sTempName)
						alert(oRadioButton.realname + " Required");
						return false;
					}
				// Validate Required Drop Down Boxes
				}else if(oForm.elements[i].type == "select-one"){
					if(valSelectOne(oForm,oForm.elements[i].name) == false){
						alert(oForm.elements[i].realname + " Required");
						oForm.elements[i].focus();
						return false;
					}
				}

			}

			// Do Field Level Type Validations
			// Validate Money Fields
			if(oForm.elements[i].validation == "money"){
				if(valMoney(oForm.elements[i],oForm.elements[i].realname) == false){
					return false;
				}
			// Validate Phone Numbers
			}else if(oForm.elements[i].validation == "phone"){
				if(valPhone(oForm.elements[i],oForm.elements[i].realname) == false){
					return false;
				}
			// Validate Email Addresses
			}else if(oForm.elements[i].validation == "email"){
				if(valEmail(oForm.elements[i],oForm.elements[i].realname) == false){
					return false;
				}
			}
		}
		return true;
	}

	// Function For Validating Required Radio Buttons
	function valRadioButton(oForm,sRadioButton){
		var oRadioButton = eval("oForm."+sRadioButton)

		var bChecked = false;
	    for (var r=0 ; r < oRadioButton.length ; r++){
			if (oRadioButton[r].checked){
      			bChecked = true;
        		var sRadioValue = oRadioButton[r].value;
				break;
      		}
    	}

		if (bChecked == false){
			return false;
		}else{
			return true;
		}
	}

	// Function For Validating Required Drop Down Lists
	function valSelectOne(oForm,sSelectOne){
		var oSelectOne = eval("oForm."+sSelectOne)
	
		var bSelected = false;
	    for (var s=0 ; s < oSelectOne.length ; s++){
			if (oSelectOne[s].selected){
      			var sSelectValue = oSelectOne[s].value;
				if(sSelectValue.length > 0){
					bSelected = true;
				}
				break;
      		}
    	}

		if (bSelected == false){
			return false;
		}else{
			return true;
		}
	}

/* ******** Use The Code Below In The Javascript Of The Submit Function ****** */
//	oForm.fieldname.required = true;
//	oForm.fieldname.realname = "Name Of Field To Display";

/* ********************* END FORM VALIDATION FUNCTION ****************************** */
/* ********************* BEGIN MONEY VALIDATION FUNCTION ****************************** */
	// Function For Validating Money
	function valMoney(oThis,sRealName){
		if(oThis.value.length > 0){
			oThis.realname = sRealName;
			var sValue = oThis.value;
			var sTemp = "";
			var iLength = sValue.length;
			var bValid = false;
			var bPeriod = false;
			var bNegative = false;
			
			// Create A String Of Only Numbers
			for (var i=0 ; i < iLength ; i++){
				var sChar = sValue.substring(i,(i+1));
	
				if(i<3){
					if(sChar == "-"){
						bNegative = true;
					}
				}

				if(isNaN(sChar)){
					if(sChar == "."){
						bPeriod = true;
					}
				}else{
					sTemp = sTemp + sChar;
				}
			}
					
			// If Numbers Are Left Validate That A Value Is Present
			if(sTemp.length > 0){
				bValid = true;
	
				// Format Money For Display
				var sFormatted = "";
				var iLength = sTemp.length;
				var iCount = 1;
				var iCurrentCount = 1;
				var aValue = new Array();
				var aValueNew = new Array();
				
				// Create An Array Of The String
				for (var i=0 ; i < iLength ; i++){
					if(sTemp.substring(i,(i+1)) == " "){
					}else{
						aValue.push(sTemp.substring(i,(i+1)));
					}
				}
				
				var aValue = aValue.reverse();
				var sKey;
				var sTemp = "";
				
				// Add The Decimal If One Doesn't Exist
				if(bPeriod == false){
					aValueNew.push(".00");
				}
	
	   			for(sKey in aValue){
					// Add The Decimal Point
					if(bPeriod == true){
						if(iCount == 3){
							aValueNew.push(".");
							bPeriod = false;
							iCount = 1;
						}
					}
				
					if(iCount == iCurrentCount + 3){
						var iCurrentCount = iCount;
						aValueNew.push(",");
					}
	
					aValueNew.push(aValue[sKey]);
					iCount = iCount + 1;
	   			}
	
				aValueNew.push("$");
				
				if(bNegative == true){
					aValueNew.push("-");
				}

				var aValue = aValueNew.reverse();
	
	   			for(sKey in aValue){
					sTemp = sTemp + aValue[sKey];
				}
				
				oThis.value = sTemp;
			}
		}else{
			bValid = true;
		}

		// Return The Results Of The Test
		if(bValid == true){
			return true;
		}else{
			alert("Unable To Determine Money Value For " + oThis.realname);
			oThis.focus();
			oThis.select();
			return false;
		}
	}
	
// onblur="javascript:valMoney(this,'Display Name Of Field Being Validated');"

/* ********************* END MONEY VALIDATION FUNCTION ****************************** */
/* ********************* BEGIN NUMERIC FIELD FUNCTION ****************************** */

	function valNum(oThis){
		if(oThis.value.length > 0){
			if(isNaN(oThis.value)){
				alert("Numeric Value Required");

				oThis.focus();
				oThis.select();
				return(false);
			}else{
				return(true);
			}
		}
	}

/* ********************* END NUMERIC FIELD FUNCTION ****************************** */
/* ********************* BEGIN ALPHANUMERIC FIELD FUNCTION ****************************** */

	function valAlphaNum(oThis,sName){
		sValue = oThis.value;
		
		// Create Array Of Value String
		arrValue = new Array();
		iLength = sValue.length;

		var x=0;
		for(x=0 ; x < iLength; x++){
			arrValue[x] = sValue.charAt(x);
		}

		// Create Array Of Possible Matches
		arrCheck = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0');
			
		// Compare The Values In Each Array To See If The Match
		var key1;
		var key2;
		var iCharCount = 0
		var iIsChar = 0
	
		for (key1 in arrValue){ // Loop Through All Values Entered
			for (key2 in arrCheck){ // Loop Through All Correct Matches
				if(arrCheck[key2].charCodeAt(0) == arrValue[key1].charCodeAt(0)){
					iCharCount = iCharCount + 1;
				}
			}
		}

		// Determine If All The Characters Were OK And Act Accordingly
		if(iCharCount == iLength){
			return true;
		}else{
			alert(sName + " Allows Alphanumeric Characters Only");
			oThis.focus();
			oThis.select();
		}
	}

/* ********************* END ALPHANUMERIC FIELD FUNCTION ****************************** */
/* ********************* BEGIN SELECT FIELD FUNCTION ****************************** */

	function valSelectRequired(oField,sName){

		// Check Select Statements
		if (oField.selectedIndex == 0){
			alert(sName + " Required")
					
			// Set Focus To Proper Field
			oField.focus();
			return false;
		}else{
			return true;
		}
	}

/* ********************* END SELECT FIELD FUNCTION ****************************** */
/* ********************* BEGIN PASSWORD MATCH FUNCTION ****************************** */

	function valPasswordsMatch(oField1,oField2){
		
		if(oField1.value != oField2.value){
			alert("Password Fields Do Not Match")
			oField1.focus();
			oField1.select();

			return false;
		}else{
			return true;
		}
	
	}

/* ********************* END PASSWORD MATCH FUNCTION ****************************** */
/* ********************* BEGIN EMAIL FUNCTION ****************************** */

	function valEmail(oThis,sName){
		oThis.realname = sName;

		if(oThis.value.length > 0){
			var sValue = oThis.value;
			var sTemp = "";
			var iLength = sValue.length;
			var iValid = 0;
		
			for (i=0;i < iLength;i++){
				var sChar = sValue.substring(i,(i+1));

				if (sChar == '@'){
					iValid = iValid + 1;
				}

				if (sChar == '.'){
					iValid = iValid + 1;
				}
			}

			if(iValid < 2){
				alert('Cannot Determine Valid Email Address For ' + oThis.realname);
				oThis.select();
				oThis.focus();
				return false;
			}else{
				return true;
			}
		}
	}

	// onblur="javascript:valEmail(this,'Display Name Of Field')"

/* ********************* END EMAIL FUNCTION ****************************** */

/* ********************* BEGIN FIELD LENGTH FUNCTION ****************************** */

	function valFieldLength(oField,iMin,iMax,sName){
		var iLength = oField.value.length
		
		if(iLength > 0)
		{
			if(iLength < iMin){
				alert(sName + " Requires At Least " + iMin + " Characters");
				oField.focus();
				oField.select();
				return false;
			}

			if(iLength > iMax){
				alert(sName + " Can Be A Maximum Of " + iMax + " Characters");
				oField.focus();
				oField.select();
				return false;
			}

			return true;
		}
	}

/* ********************* END FIELD LENGTH FUNCTION ****************************** */	
/* ********************* BEGIN CREDIT CARD FUNCTION ****************************** */	

	arrVisa = new Array('4');
	arrMcrd	= new Array('51', '52', '53', '54', '55');
	arrAmEx	= new Array('34', '37');
	arrDisc	= new Array('6011');
	arrDinr = new Array('300', '305', '36', '38')

	var sCardNumber = "1234";
	var iTempNum = 0;
	var sCardType = "";
	var isCard = "false"
	
	function doLUHN(){
	
		// Get The Length Of The Card Number
		var iCardLen = sCardNumber.length;

		// Create An Array Of Credit Card Numbers
		arrCard = new Array();	

		// Populate The Array With The New Card Numbers
		var x=0;
		for(x=0 ; x < iCardLen; x++){
			arrCard.push(sCardNumber.charAt(x)); // Create An Array Of Card Numbers
		}
		
		arrCard.reverse();
		
		var sTemp = "";

		// Calculate LUHN (Mod 10) Step One
		var x=0;
		var y=0
		
		for(x=0 ; x < iCardLen; x++){
			if(y==0){
				y = 1;
			}else{
				iTempNum = arrCard[x];
				arrCard[x] = (iTempNum * 2);
				y = 0;
			}
			sTemp = sTemp + arrCard[x];
		}
		
		// Calculate LUHN (Mod 10) Step Two
		iTempNum = 0;
		var x=0;
		
		// Create New Array For Adding Function
		arrNewCard = new Array();
		iNewLength = sTemp.length; 		

		var x=0;
		for(x=0 ; x < iNewLength; x++){
			arrNewCard.push(sTemp.charAt(x)); // Create An Array Of Card Numbers
		}

		// Loop Through The Numbers Adding Them Together
		var x=0;
 		for(x=0 ; x < iNewLength; x++){
			iTempNum = parseInt(iTempNum) + parseInt(arrNewCard[x]);
		}
		
		// Calculate LUHN (Mod 10) Step Three
		iTempNum = parseInt(iTempNum)/10
		sTempNum = iTempNum.toString();

		isWhole = sTempNum.search(/\W/);

		if(isWhole == -1){
			return(true);
		}else{
			return(false);
		}
	}

	function valCredit(oThis){
		if(sCardType == ""){
			alert("Please Choose Card Type");
			return false;
		}

		sCardNumber = oThis.value;

		// Take Extra Characters Out Of Card Number
		iCardLen = sCardNumber.length;

		if(iCardLen == 0){
			return false;
		}

		sTemp = "";

		// Create An Array Of Credit Card Numbers
		arrCard = new Array();	

		// Populate The Array With The New Card Numbers
		var x=0;

		for(x=0 ; x < iCardLen; x++){
			arrCard.push(sCardNumber.charAt(x)); // Create An Array Of Card Numbers
		}

		x = 0;
		
		// Clean The Card Number
		for(x=0 ; x < iCardLen; x++){
			iTempNum = arrCard[x];
			if(isNaN(iTempNum)){
			}else{
				if(iTempNum == " "){
				}else{
					sTemp = sTemp + arrCard[x];
				}
			}
		}

		sCardNumber = sTemp;
		iCardLen = sCardNumber.length;

// BEGIN VISA		
		if(sCardType == "visa"){
		
			// Get The Prefix
			sPrefix = sCardNumber.slice(0,1);

			// Test for card length
			if(iCardLen != 13){
				if(iCardLen != 16){
					alert("Not A Valid Visa Number");
					return(false);
				}
			}

			// Check The Prefix
			isCard = "false";
			for(sTempPrefix in arrVisa){
				if(arrVisa[sTempPrefix] == sPrefix){
					isCard = "true";
				}
			}

// BEGIN MASTERCARD			
		}else if(sCardType == "mastercard"){
			// Get The Prefix
			sPrefix = sCardNumber.slice(0,2);

			// Test for card length
			if(iCardLen != 16){
				alert("Not A Valid Master Card");
				return(false);
			}

			// Check The Prefix
			isCard = "false";
			for(sTempPrefix in arrMcrd){
				if(arrMcrd[sTempPrefix] == sPrefix){
					isCard = "true";
				}
			}
			
// BEGIN AMERICAN EXPRESS
		}else if(sCardType == "amex"){
		
			// Get The Prefix
			sPrefix = sCardNumber.slice(0,2);

			// Test for card length
			if(iCardLen != 15){
				alert("Not A Valid American Express");
				return(false);
			}

			// Check The Prefix
			isCard = "false";
			for(sTempPrefix in arrAmEx){
				if(arrAmEx[sTempPrefix] == sPrefix){
					isCard = "true";
				}
			}

// BEGIN DISCOVER
		}else if(sCardType == "discover"){
		
			// Get The Prefix
			sPrefix = sCardNumber.slice(0,4);

			// Test for card length
			if(iCardLen != 16){
				alert("Not A Valid Discover Card Number");
				return(false);
			}

			// Check The Prefix
			isCard = "false";
			for(sTempPrefix in arrDisc){
				if(arrDisc[sTempPrefix] == sPrefix){
					isCard = "true";
				}
			}

// BEGIN DINERS
		}else if(sCardType == "diners"){
		
			// Get The Prefix
			sPrefix1 = sCardNumber.slice(0,2);
			sPrefix2 = sCardNumber.slice(0,3);

			// Test for card length
			if(iCardLen != 14){
				alert("Not A Valid Diners Club Number");
				return(false);
			}

			// Check The Prefix
			isCard = "false";
			for(sTempPrefix in arrDinr){
				if(arrDinr[sTempPrefix] == sPrefix2){
					isCard = "true";
				}else if(arrDinr[sTempPrefix] == sPrefix1){
					isCard = "true";
				}else{
					isCard = "false";
				}
			}

		}else{
			alert("Invalid Credit Card Number");
			return(false);
		}

		// Run The Validate Algorithm
		if(isCard == "true"){
			if(doLUHN()){
				return(true);
			}else{
				alert("Invalid Credit Card Number");
				return(false);
			}
		}else{
			alert("Invalid Credit Card Number");
			return(false);
		}
	}
	
	// ***** FORMAT CARD FOR SAVING *****
	function doCardFormat(){

		// Get Length Of Card Number
		iCardLen = sCardNumber.length;

		var sTemp = "";

		// Create An Array Of Credit Card Numbers
		arrCard = new Array();	

		// Populate The Array With The New Card Numbers
		var x=0;

		for(x=0 ; x < iCardLen; x++){
			arrCard.push(sCardNumber.charAt(x)); // Create An Array Of Card Numbers
		}

		// Clean The Card Number
		for(x=0 ; x < iCardLen; x++){
			iTempNum = arrCard[x];
			if(isNaN(iTempNum)){
			}else{
				if(iTempNum == " "){
				}else{
					sTemp = sTemp + arrCard[x];
				}
			}
		}

		// Format Card Number For Saving

		// Get Length Of Card Number
		iCardLen = sTemp.length;

		// Create An Array Of Credit Card Numbers
		arrCard = new Array();	

		// Populate The Array With The New Card Numbers
		var x=0;

		for(x=0 ; x < iCardLen; x++){
			arrCard.push(sTemp.charAt(x)); // Create An Array Of Card Numbers
		}

		// Reset Counter Variables
		var x=0;
		var y=0;
		var sTemp = "";
		
		for(x=0 ; x < iCardLen; x++){
			if(y < 4){
				sTemp = sTemp + arrCard[x];
				y = y + 1;
			}else{
				sTemp = sTemp + '-' + arrCard[x];
				var y=1;
			}
		}

		eval(doc+".frmMain.sFullCardNumber.value = '" + sTemp + "'");
	}

	// Get The Credit Card Type
	function valUpdateCardType(oThis){
		iIndex = oThis.selectedIndex

		if(iIndex == 0){
			sCardType = '';
		}else if(iIndex == 1){
			sCardType = 'amex';
		}else if(iIndex == 2){
			sCardType = 'mastercard';
		}else if(iIndex == 3){
			sCardType = 'visa';
		}
	}

	/*
	Add This Script To The Button That Runs The Validation
		onClick="javascript:valCredit();"
	
	Add This Script To The Drop Down List With The Card Types
		onChange="javascript:valUpdateCardType(this);"
	*/

/* ********************* END CREDIT CARD FUNCTION ****************************** */	
/* ********************* BEGIN DELETE FUNCTION ****************************** */	

	function doDelete(){
		bDelete = window.confirm("This Action Cannot Be Undone,\nContinue?");

		if(bDelete){
			return(true);
		}else{
			return(false);
		}
	}

/* ********************* END DELETE FUNCTION ****************************** */	
/* ********************* BEGIN TIME VALIDATION FUNCTION ****************************** */	

	function valTime(oThis){
		var dTime = oThis.value;
		var aTest = dTime.split(":");
		
		var iHours = aTest[0];
		var iMinutes = aTest[1];
		var iSeconds = aTest[2];

		if (iHours < 1 || iHours > 12){
			alert("Not a Valid Hour");
			
			oThis.select();
			oThis.focus();

			return(false);
		}		
	
		if (iMinutes < 0 || iMinutes > 60){
			alert("Not a Valid Minute");
			
			oThis.select();
			oThis.focus();

			return(false);
		}		
	}

/* ********************* END TIME VALIDATION FUNCTION ****************************** */	
/* ********************* DATE VALIDATION FUNCTION ****************************** */	

function valDate(oThis,UseCentury){
	var	strValue = oThis.value;
	
	if (strValue.length > 0)
	{
		var iLength = strValue.length;
		var sTemp = "";

		// Remove Anything But Numbers
		for (i=0;i < iLength;i++){
			var sChar = strValue.substring(i,(i+1));
			if (isNaN(sChar)){
				sTemp = sTemp;
			}else{
				if(sChar == ' '){
					sTemp = sTemp;
				}else{
					sTemp = sTemp + sChar;
				}
			}
		}

		// Check to see if there are enough numbers to create a date
		if (sTemp.length < 6 || sTemp.length > 8 || sTemp.length == 7)
		{
			alert("Please enter the proper number of characters for a true date");
			oThis.focus();
			oThis.select();
			return false;
		}
		
		// Format the date
		var iLength = sTemp.length;

		// Add the century if necessary
		if (sTemp.length < 8)
		{
			iTempLength = iLength - 2;
			sTempYear = sTemp.slice(iTempLength,iLength);
			sTempRest = sTemp.slice(0,iTempLength);
			sTemp = sTempRest + UseCentury + sTempYear;
		}

		iLength = sTemp.length;

		// Get the year
		iTempLength = iLength - 4;
		sTempYear	= sTemp.slice(iTempLength,iLength);
		sTemp		= sTemp.slice(0,iTempLength);
		iLength		= iTempLength;

		// Get the day
		iTempLength = iLength - 2;
		sTempDay	= sTemp.slice(iTempLength,iLength);
		sTemp		= sTemp.slice(0,iTempLength);
		iLength		= iTempLength;

		// Get the month
		iTempLength = iLength - 2;
		sTempMonth	= sTemp.slice(iTempLength,iLength);
		sTemp		= sTemp.slice(0,iTempLength);

		strValue = sTempMonth + '/' + sTempDay + '/' + sTempYear;
		
		var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;

		//check to see if in correct format
		if(!objRegExp.test(strValue))
		{
			alert("The Date Format Incorrect");
			oThis.select();
			oThis.focus();
			return false; //doesn't match pattern, bad date
		}
		else
		{
			var strSeparator = strValue.substring(2,3) //find date separator
			var arrayDate = strValue.split(strSeparator); //split date into month, day, year

			//create a lookup for months not equal to Feb.
			var arrayLookup = {'01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31,'08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
			var intDay = parseInt(arrayDate[1]);

			//check if month value and day value agree
			if(arrayLookup[arrayDate[0]] != null)
			{
				if(intDay <= arrayLookup[arrayDate[0]] && intDay != 0)
				{
					oThis.value = strValue;
					return true; //found in lookup table, good date
				}
			}
	
			//check for February
			var intYear = parseInt(arrayDate[2]);
			var intMonth = parseInt(arrayDate[0]);
			if( ((intYear %4 == 0 && intDay <= 29) || (intYear %4 != 0 && intDay <=28)) && intDay !=0)
			{
				oThis.value = strValue;
				return true; //Feb. had valid number of days
			}
		}

		alert("Date Does Not Exist");
		oThis.select();
		oThis.focus();
		return false; //any other values, bad date
	}
}

/* ********************* END DATE VALIDATION FUNCTION ****************************** */	
/* ********************* BEGIN PHONE FUNCTION ****************************** */

	function valPhone(oThis,sName){
	
		oThis.realname = sName;
		var sValue = oThis.value;
		var sTemp = "";
		var sTemp1 = "";
		var sTemp2 = "";
		var sTemp3 = "";
		var iLength = sValue.length;
	
		if(iLength > 0){ // A Phone Number Has Been Entered

			// Remove Anything But Numbers
			for (i=0;i < iLength;i++){
				var sChar = sValue.substring(i,(i+1));
				if (isNaN(sChar)){
					sTemp = sTemp;
				}else{
					if(sChar == ' '){
						sTemp = sTemp;
					}else{
						sTemp = sTemp + sChar;
					}
				}
			}
			
			var iTempLength = 0;
			var iLength = 0;
		
			iLength = sTemp.length;
			
			// If Not Enough Numbers To Be A Phone Number
			if (iLength < 7){
				alert("Not Enough Numbers Provided For A Phone Number");
				oThis.focus();
				oThis.select();
				return false;
			}
			
			// Get Last 4 Digits Of Phone Number
			if (iLength > 3){
				iTempLength = iLength - 4;
				sTemp4 = sTemp.slice(iTempLength,iLength);
				sTemp = sTemp.slice(0,iTempLength);
			}else{
				sTemp = ""
			}
			
			// Get Prefix Of Phone Number
			iLength = sTemp.length;
			if (iLength > 2){
				iTempLength = iLength - 3;
				sTemp3 = sTemp.slice(iTempLength,iLength);
				sTemp = sTemp.slice(0,iTempLength);
			}else{
				sTemp = ""
			}
			
			// Get Area Code Of Phone Number
			iLength = sTemp.length;
			if (iLength > 2){
				iTempLength = iLength - 3;
				sTemp2 = sTemp.slice(iTempLength,iLength);
				sTemp = sTemp.slice(0,iTempLength);
			}else{
				sTemp = "";
			}
			
			// Get Country Code Of Phone Number
//			iLength = sTemp.length;
//			if (iLength > 0){
//				iTempLength = iLength - 1;
//				sTemp1 = sTemp.slice(iTempLength,iLength);
//				sTemp = sTemp.slice(0,iTempLength);
//			}else{
//				sTemp = "";
//			}
//			
			sValue = "";

			// Format The Phone Number For Display
			if (sTemp1.length == 1){
				sValue = sValue + "1 ";
			}
		
			if (sTemp2.length == 3){
				sValue = sValue + "(" + sTemp2 + ") ";
			}
			else
			{
				alert("Area Code is Missing");
				oThis.focus();
				oThis.select();
				return false;
			}
			
			if (sTemp3.length == 3){
				sValue = sValue +sTemp3 + "-";
			}
		
			if (sTemp4.length == 4){
				sValue = sValue + sTemp4;
			}
			
			var objRegExp  = /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/;
		
			if(!objRegExp.test(sValue))
			{
				alert("Unable To Format Phone Number");
				oThis.focus();
				oThis.select();
				return false;
			}
			else
			{
				oThis.value = sValue;
				return true;
			}
		}
	}

	// onBlur="javascript:valPhone(this);"

/* ********************* END PHONE FUNCTION ****************************** */


