var arrCurse = new Array;
var arrPhrase = new Array;
	
arrCurse[0] = "FUCK";
arrCurse[1] = "MOTHER";
arrCurse[2] =  "SHIT";
arrCurse[4] =  "ASS";
arrCurse[5] = "HOLE"; 
arrCurse[6] = "COCK"; 
arrCurse[7] = "BITCH"; 
arrCurse[8] = "WHORE";
arrCurse[9] = "SLUT"; 
arrCurse[10] = "BUTT";
arrCurse[11] = "PUSSY";
arrCurse[12] = "BADASS"; 
arrCurse[13] = "GODDAMN"; 
arrCurse[14] = "PHUCK"; 
arrCurse[15] =  "DUMB"; 
arrCurse[16] =  "BULL";
arrCurse[17] =  "LICK";
arrCurse[18] = "DARN";
arrCurse[19] =  "SCREW";
arrCurse[20] = "HELL";

arrPhrase[0] = "MORTGAGE";
arrPhrase[1] = "REFINANCE";
arrPhrase[2] = "PURCHASE";
arrPhrase[4] = "EMAIL";
arrPhrase[5] = "ALREADY";

/*--------------------------------------------------------*/
/* ---------------------- CREDIT CARD --------------------*/
/*--------------------------------------------------------*/
function validateCCNum(cardType,cardNum){
	var result = false;
	cardType = cardType.toUpperCase();
	
	var cardLen = cardNum.length;
	var firstdig = cardNum.substring(0,1);
	var seconddig = cardNum.substring(1,2);
	var first4digs = cardNum.substring(0,4);

	switch (cardType)
	{
		case "VISA":
			result = ((cardLen == 16 || cardLen >= 13) || (cardLen == 13)) && (firstdig == "4");
			break;
		case "AMEX":
			var validNums = "47";
			result = (cardLen == 15 || cardLen >= 13) && (firstdig == "3") && (validNums.indexOf(seconddig)>=0);
			break;
		case "MASTERCARD":
			var validNums = "12345";
			result = (cardLen == 16 || cardLen >= 13) && (firstdig == "5" || firstdig == "4") && (validNums.indexOf(seconddig)>=0);
			break;
		case "DISCOVER":
			result = (cardLen == 16 || cardLen >= 13) && (first4digs == "6011");
			break;
	}
	return result;
}

function validRequired(formField,fieldLabel){
	var result = true;	
	if (formField.value == ""){
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	return result;
}

function LuhnCheck(str) {
	var result = true;	
	var sum = 0; 
	var mul = 1; 
	var strLen = str.length;	
	for (i = 0; i < strLen; i++) {
		var digit = str.substring(strLen-i-1,strLen-i);
		var tproduct = parseInt(digit ,10)*mul;
		if (tproduct >= 10)
			sum += (tproduct % 10) + 1;
		else
		  sum += tproduct;
		if (mul == 1)
		  mul++;
		else
		  mul--;
	}
	if ((sum % 10) != 0)
	result = false;
	
	return result;
}

function inValidCharSet(str,charset){
	var result = true;	
	for (var i=0;i<str.length;i++){
		if (charset.indexOf(str.substr(i,1))<0)	{
			result = false;
			break;
		}	
	}
	return result;
}

function allDigits(str){
	return inValidCharSet(str,"0123456789");
}

function isValidExpDate(formField,fieldLabel,required){
	var result = true;
	var formValue = formField.value;
	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result && (formField.value.length>0)){
 		var elems = formValue.split("/");		
 		result = (elems.length == 2); 
 		var expired = false; 		
 		if (result)	{
 			var month = parseInt(elems[0],10);
 			var year = parseInt(elems[1],10);			
 			if (elems[1].length == 2) year += 2000;			
 			var now = new Date();			
 			var nowMonth = now.getMonth() + 1;
 			var nowYear = now.getFullYear();			
 			expired = (nowYear > year) || ((nowYear == year ) && (nowMonth > month));			
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && ((elems[1].length == 2) || (elems[1].length == 4));
 		}		
  		if (!result){
 			alert('Please enter a date in the format MM/YY for the "' + fieldLabel +'" field.');
			formField.focus();
		}
		else if (expired){
 			result = false;
 			alert('The date for "' + fieldLabel +'" has expired.');
			formField.focus();
		}
	} 	
	return result;
}

/*--------------------------------------------------------*/
/* ---------------------- GENERAL ------------------------*/
/*--------------------------------------------------------*/

function trim(temp) {
	temp = temp.replace(/^\s+/,'');
	temp = temp.replace(/\s+$/,'');
	return temp;
}

function highlightTextField(field) {
		field.style.borderColor = 'red';
		field.style.borderStyle = 'solid';
		field.style.borderWidth = '2px;';
}

function highlightSelectField(field) {
		field.style.backgroundColor = 'red';
		field.style.color = 'white';
}

function disabling() {
	if (document.myform.BillingInfo.checked) {
		MM_setTextOfTextfield('BillingAddress1','',GetTextValue('Address1'));
		MM_setTextOfTextfield('BillingCity','',GetTextValue('City'));
		var obj = MM_findObj('BillingStateID');
		var state = GetTextValue('StateID');
		for(i=1;i<obj.length;i++){
			if(obj[i].value==state){
				MM_changeProp('BillingStateID','','selectedIndex',i,'SELECT')
			}
		}
		MM_setTextOfTextfield('BillingZip','',GetTextValue('Zip'));				
	}else{
		MM_setTextOfTextfield('BillingAddress1','','');
		MM_setTextOfTextfield('BillingCity','','');
		MM_changeProp('BillingStateID','','selectedIndex',0,'SELECT')
		MM_setTextOfTextfield('BillingZip','','');								
	}
}

function confirmation(){
	if(confirm("Are you sure you want to decline the Terms & Conditions of Service? Click Cancel to continue with registration.")){
		MM_goToURL('parent','index.asp');
	}
}

function GetTextValue(pTextName){
  var obj = MM_findObj(pTextName); if (obj) return obj.value;
  return '';
}

function GetTextIndex(pTextName){
  var obj = MM_findObj(pTextName); if (obj) return obj.selectedIndex;
  return 0;
}

function CheckAvailability(){
	if(document.myform.UserName.value==''){
		alert('Please type UserName');
	}else{
		window.open('checkavail.asp?user='+document.myform.UserName.value,'','width=500,height=166');
	}
}


/************************************************/
/* **********INFORMATION VALIDATION *************/
/************************************************/	
function validateFormApplication1(myform) {

	var ErrorMsg = '';
	var FirstErrorField = '';
	var contentCurse = "";
	var formCurse = "";	
	var emptyFN = false;
	var emptyLN = false;	

	if(myform.ContactFirstName.value == '') {
		emptyFN = true;
		ErrorMsg = ErrorMsg + '- First Name\n';
		highlightTextField(myform.ContactFirstName);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.ContactFirstName';
		}
	}	
	if (!emptyFN) {
		for(i=0; i<arrCurse.length; i++)  {   
			contentCurse = myform.ContactFirstName.value.toUpperCase();
			if ( contentCurse == arrCurse[i]) {
				ErrorMsg = ErrorMsg + '- Invalid First Name\n';
				highlightTextField(myform.ContactFirstName);
				if(FirstErrorField == '') {
					FirstErrorField = 'myform.ContactFirstName';
				}
			} // End if
		} // End for loop		
		for(i=0; i<arrPhrase.length; i++)  {   
			contentCurse = myform.ContactFirstName.value.toUpperCase();
			if ( contentCurse == arrPhrase[i]) {
				ErrorMsg = ErrorMsg + '- Invalid First Name\n';
				highlightTextField(myform.ContactFirstName);
				if(FirstErrorField == '') {
					FirstErrorField = 'myform.ContactFirstName';
				}
			} // End if
		} // End for loop				
	} // End for loop
	if (myform.ContactLastName.value == '') {
		emptyLN = true;
		ErrorMsg = ErrorMsg + '- Last Name\n';
		highlightTextField(myform.ContactLastName);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.ContactLastName';
		}
	}	
	if (!emptyLN) {
		for(i=0; i<arrCurse.length; i++)  {   
			contentCurse = myform.ContactLastName.value.toUpperCase();
			if ( contentCurse == arrCurse[i]) {
				ErrorMsg = ErrorMsg + '- Invalid Last Name\n';
				highlightTextField(myform.ContactLastName);
				if(FirstErrorField == '') {
					FirstErrorField = 'myform.ContactLastName';
				}
			} // End if
		} // End for loop		
		for(i=0; i<arrPhrase.length; i++)  {   
			contentCurse = myform.ContactLastName.value.toUpperCase();
			if ( contentCurse == arrPhrase[i]) {
				ErrorMsg = ErrorMsg + '- Invalid Last Name\n';
				highlightTextField(myform.ContactLastName);
				if(FirstErrorField == '') {
					FirstErrorField = 'myform.ContactLastName';
				}
			} // End if
		} // End for loop		
	} // End for loop
		
	if(myform.Address1.value == '') {
		ErrorMsg = ErrorMsg + '- Address 1\n';
		highlightTextField(myform.Address1);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.Address1';
		}
	}
	if(myform.City.value == '') {
		ErrorMsg = ErrorMsg + '- City\n';
		highlightTextField(myform.City);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.City';
		}
	}
	if(myform.StateID.selectedIndex == 0) {
		ErrorMsg = ErrorMsg + '- State\n';
		highlightSelectField(myform.StateID);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.StateID';
		}
	}
	if(myform.Zip.value == '') {
		ErrorMsg = ErrorMsg + '- Zip Code\n';
		highlightTextField(myform.Zip);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.Zip';
		}
	}
	if(myform.Email.value == '') {
		ErrorMsg = ErrorMsg + '- Email\n';
		highlightTextField(myform.Email);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.Email';
		}
	}
	else {
		var email;
		email = myform.Email.value;
			if (email.indexOf('.') == -1 || email.indexOf('@') == -1) {
				ErrorMsg = ErrorMsg + '- Invalid Email: It must be in the form x@y.z \n';
				highlightTextField(myform.Email);
				if(FirstErrorField == '') {
					FirstErrorField = 'myform.Email';
				}
			}
	}

	if ((trim(myform.PNArea.value).length != 3) || isNaN(myform.PNArea.value) ||
		 (trim(myform.PNPrefix.value).length != 3) || isNaN(myform.PNPrefix.value)  ||
		 (trim(myform.PNSufix.value).length != 4) || isNaN(myform.PNSufix.value) ) {
		ErrorMsg = ErrorMsg + '- Phone Number\n';

		if((trim(myform.PNArea.value).length != 3) || isNaN(myform.PNArea.value)) {
			highlightTextField(myform.PNArea);
			if(FirstErrorField == '') {
				FirstErrorField = 'myform.PNArea';
			}		
		}
		if((trim(myform.PNPrefix.value).length != 3) || isNaN(myform.PNPrefix.value)) {
			highlightTextField(myform.PNPrefix);
			if(FirstErrorField == '') {
				FirstErrorField = 'myform.PNPrefix';
			}				
		}
		if((trim(myform.PNSufix.value).length != 4) || isNaN(myform.PNSufix.value)) {
			highlightTextField(myform.PNSufix);
			if(FirstErrorField == '') {
				FirstErrorField = 'myform.PNSufix';
			}		
		}
	}			
	
	if (myform.Extension.value.length != 0) {
			if(isNaN(myform.Extension.value)) {
				ErrorMsg = ErrorMsg + '- Invalid Extension\n';
				highlightTextField(myform.Extension);
				if (FirstErrorField =='') {
					FirstErrorField = 'myform.Extension';
				}
			}
	}	
	if(myform.CompanyName.value == '') {
		ErrorMsg = ErrorMsg + '- Company Name\n';
		highlightTextField(myform.CompanyName);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.CompanyName';
		}
	}	
	if(ErrorMsg != '') {		
		eval(FirstErrorField + '.focus();');
		alert('Please complete/correct ALL the following fields to continue:\n' + ErrorMsg);
		return false;
	}else{
		return true;
	}

}

/************************************************/
/************USER/PASSWORD VALIDATION ***********/
/************************************************/		
function validateFormApplication2(myform) {

	var ErrorMsg = '';
	var FirstErrorField = '';
	var contentCurse = "";
	var formCurse = "";	
	var emptyFN = false;
	var emptyLN = false;	

	var u = myform.UserName.value;
	var p = myform.Password.value;
	var p2= myform.Password2.value;
	if(myform.UserName.value == '') {
		ErrorMsg = ErrorMsg + '- Login\n';
		highlightTextField(myform.UserName);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.UserName';
		}
	}else{
		if((myform.UserName.value == myform.ContactFirstName.value) || (myform.UserName.value == myform.ContactLastName.value)){
			ErrorMsg = ErrorMsg + '- Login cannot be your name nor your last name\n';
			highlightTextField(myform.UserName);
			if(FirstErrorField == '') {
				FirstErrorField = 'myform.UserName';
			}
		}else{
			if(u.length<6) {
				ErrorMsg = ErrorMsg + '- Login must be at least 6 characters length (12 chars. max)\n';
				highlightTextField(myform.UserName);
				if(FirstErrorField == '') {
					FirstErrorField = 'myform.UserName';
				}
			}			
		}
	}

	if(myform.Password.value == '') {
		ErrorMsg = ErrorMsg + '- Password\n';
		highlightTextField(myform.Password);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.Password';
		}
	}else{
		if((myform.Password.value == myform.ContactFirstName.value) || (myform.Password.value == myform.ContactLastName.value)) {
			ErrorMsg = ErrorMsg + '- Password cannot be your name nor your last name\n';
			highlightTextField(myform.UserName);
			if(FirstErrorField == '') {
				FirstErrorField = 'myform.UserName';
			}
		}else{
			if(p.length<6) {
				ErrorMsg = ErrorMsg + '- Password must be at least 6 characters length (12 chars. max)\n';
				highlightTextField(myform.UserName);
				if(FirstErrorField == '') {
					FirstErrorField = 'myform.UserName';
				}
			}else{
				if((p.length!=p2.length) || (myform.Password.value!=myform.Password2.value)) {
					ErrorMsg = ErrorMsg + '- Password and Re-type password must be equal.\n';
					highlightTextField(myform.Password2);
					if(FirstErrorField == '') {
						FirstErrorField = 'myform.Password2';
					}			
				}
			}			
		}
	}	

	if(myform.answer.value=='') {
		ErrorMsg = ErrorMsg + '- Answer to secret question\n';
		highlightTextField(myform.answer);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.answer';
		}
	}

	if(myform.SecretQ.selectedIndex == 0) {
		ErrorMsg = ErrorMsg + '- Secret question\n';
		highlightSelectField(myform.SecretQ);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.SecretQ';
		}
	}
	
	if(myform.DOBM.selectedIndex == 0) {
		ErrorMsg = ErrorMsg + '- DOB (Month)\n';
		highlightSelectField(myform.DOBM);
		if(FirstErrorField == '') {
			FirstErrorField = 'myform.DOBM';
		}
	}	
	
	if (myform.DOBD.value.length != 0) {
		if(isNaN(myform.DOBD.value)) {
			ErrorMsg = ErrorMsg + '- Invalid Extension for DOB (day)\n';
			highlightTextField(myform.DOBD);
			if (FirstErrorField =='') {
				FirstErrorField = 'myform.DOBD';
			}
		}
	}	

	if (myform.DOBY.value.length != 0) {
		if(isNaN(myform.DOBY.value)) {
			ErrorMsg = ErrorMsg + '- Invalid Extension for DOB (year)\n';
			highlightTextField(myform.DOBY);
			if (FirstErrorField =='') {
				FirstErrorField = 'myform.DOBY';
			}
		}
	}			

	if(ErrorMsg != '') {		
		eval(FirstErrorField + '.focus();');
		alert('Please complete/correct ALL the following fields to continue:\n' + ErrorMsg);
		return false;
	}else{
		return true;
	}

}

/************************************************/
/************ BILLING  VALIDATION ***********/
/************************************************/
function validateFormApplication3(myform) {

	var ErrorMsg = '';
	var FirstErrorField = '';
	var contentCurse = "";
	var formCurse = "";	
	var emptyFN = false;
	var emptyLN = false;

	/************************************************/
	/* **********CREDIT CARD VALIDATION *************/
	/************************************************/	
	var required = true;
	var result = true;
	var fieldLabel = "Credit Card"
	 
 	var ccNum = myform.CCNumber.value;
	var ccType = myform.CCType.value;
	var ccExp = myform.CCExp.value;
	
	if ((myform.CCNumber.value!='') && (myform.CCSec.value!='') && (myform.CCExp.value!='') && (myform.CCType.value!='')) {
	
		if (!allDigits(ccNum)) {
			ErrorMsg = ErrorMsg + '- Invalid Credit Card Number\n';
			highlightTextField(myform.CCNumber);
			if(FirstErrorField == '') {
				FirstErrorField = 'myform.CCNumber';
			}
		}else {				
			if (!LuhnCheck(ccNum) || !validateCCNum(ccType, ccNum)) {
				ErrorMsg = ErrorMsg + '- Invalid Credit Card Number\n';
				highlightTextField(myform.CCNumber);
				if(FirstErrorField == '') {
					FirstErrorField = 'myform.CCNumber';
				}	
			}
		}
	
		if (myform.CCSec.value!='') {
			if (isNaN(myform.CCSec.value)) {
				ErrorMsg = ErrorMsg + '- Credit Card Security Code must be numeric\n';
				highlightTextField(myform.CCSec);
				if(FirstErrorField == '') {
					FirstErrorField = 'myform.CCSec';
				}
			}	
		}
		
		if (myform.CCExp.value!='') {		
			if (myform.CCExp.value.length  != 7) {
				ErrorMsg = ErrorMsg + '- Invalid Credit Card Expiration Date\n';
				highlightTextField(myform.CCExp);
				if(FirstErrorField == '') {
					FirstErrorField = 'myform.CCExp';
				}
			}else {
				var elems = myform.CCExp.value.split("/");
				result = (elems.length == 2); // should be two components
				var expired = false;
				var month = parseInt(elems[0],10);
				var year = parseInt(elems[1],10);
				var now = new Date();			
				var nowMonth = now.getMonth() + 1;
				var nowYear = now.getFullYear();			
				expired = (nowYear > year) || ((nowYear == year ) && (nowMonth > month));			
				result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
						 allDigits(elems[1]) && (elems[1].length == 4);			
				if (!result)  {
					ErrorMsg = ErrorMsg + '- Invalid Credit Card Expiration Date (apply mm/yyyy format)\n';
					highlightTextField(myform.CCExp);
					if(FirstErrorField == '') {
						FirstErrorField = 'myform.CCExp';
					}
				}
				else{ 
					if (expired)  {
						ErrorMsg = ErrorMsg + '- Expired Credit Card Date\n';
						highlightTextField(myform.CCExp);
						if(FirstErrorField == '') {
							FirstErrorField = 'myform.CCExp';
						}
					}
				}			
			}	
		}
	}		
	if(ErrorMsg != '') {
		eval(FirstErrorField + '.focus();');
		return false;
	} else return true;
}