//Validate data and Build Error Message
function validateData(ref) {
	var errorMsg = "";
	//Check Those Names
   if  (!/^.+$/i.test(ref.subject.value)) { errorMsg += "Please enter a Subject \n";}
   if  (ref.message.value.length < 10) { errorMsg += "Please enter a Message more than 10 letters/numbers \n";}
   if  (ref.firstName.value=="") { errorMsg += "Please enter a First Name (Letters only) \n";}
   if  (ref.lastName.value =="") { errorMsg += "Please enter a Last Name (Letters only) \n";}
	errorMsg += validate(ref.email.value);
	if  (!/^\d{5}$/.test(ref.zip.value)) { errorMsg += "Please enter a valid 5 digit Zip Code \n";}
	//Check The Phone Numbers
   if( !/^\d{3}$/.test(ref.dayPhoneAreaCode.value) || !/^\d{3}$/.test(ref.dayPhonePrefix.value) || !/^\d{4}$/.test(ref.dayPhoneSuffix.value))
      errorMsg += "Daytime phone number must be complete and digits \n"; 

	if(ref.nightPhoneAreaCode.value || ref.nightPhonePrefix.value || ref.nightPhoneSuffix.value) 
      if( !/^\d{3}$/.test(ref.nightPhoneAreaCode.value) || !/^\d{3}$/.test(ref.nightPhonePrefix.value) || !/^\d{4}$/.test(ref.nightPhoneSuffix.value)) 
         errorMsg += "Nightime phone number must be complete and digits \n"; 

	if(ref.faxAreaCode.value || ref.faxPrefix.value || ref.faxSuffix.value) 
      if( !/^\d{3}$/.test(ref.faxAreaCode.value) || !/^\d{3}$/.test(ref.faxPrefix.value) || !/^\d{4}$/.test(ref.faxSuffix.value))
         errorMsg += "Fax number must be complete and digits \n"; 

   if (errorMsg) 
   { 
      dispErrorMsg(errorMsg);
      return false;
   }  else { 
      return true; 
   }
}
function highLite(element){$('#'+ element ).css("background-color", "#ffcc33");}
function dispErrorMsg(errorMsg) {alert("We're Sorry - We could not send your data as submitted\n\n" + errorMsg);}
function closeError() {$('#error-message').SlideOutLeft(500);}
function validate(email){
	var errorMsg = "";
	if((email == '')||(email == null))
		{errorMsg += "Email cannot be empty, please type in your email address \n";}
	//CHECK @
	else if(email.indexOf('@')==-1)
		{errorMsg += "EMAIL ADDRESS MUST CONTAIN @!! \n";}
	else if (email.indexOf('@')!=email.lastIndexOf('@'))
		{errorMsg += "EMAIL ADDRESS CANNOT HAVE MORE THAN ONE @!! \n";}
	else if ((email.indexOf('@')==0)||(email.lastIndexOf('@')==email.length-1))
		{errorMsg += "EMAIL ADDRESS CANNOT START OR END WITH @!! \n";}
		
	//CHECK PERIOD
	else if(email.indexOf('.')==-1)
		{errorMsg += "EMAIL ADDRESS MUST CONTAIN PERIODS '.' !! \n";}
	else if ((email.indexOf('.')==0)||(email.lastIndexOf('.')==email.length-1))
		{errorMsg += "EMAIL ADDRESS CANNOT START OR END WITH A PERIOD!! \n";}
	else if (email.indexOf("..")!=-1)
		{errorMsg += "EMAIL ADDRESS CANNOT CONATIN CONSECUTIVE PERIODS!! \n";}
		
	//CHECK LOCAL PART AND DOMAIN PART SEPERATELY
	else{
		var local = email.substring(0,email.indexOf('@'));
		var domain = email.substring(email.indexOf('@')+1);
		var last = domain.substring(domain.lastIndexOf('.')+1);	
	
		//CHECK LENGTH
		if(local.length>64)
			{errorMsg += "LOCAL PART (THE PART BEFORE @) CANNOT BE LONGER THAN 64 CHARACTERS!! \n";}
		if(domain.length>255)
			{errorMsg += "DOMAIN PART (THE PART AFTER @) CANNOT BE LONGER THAN 255 CHARACTERS!! \n";}
		else{
			var sections = domain.split('.');
			for(i=0; i< sections.length; i++){
				if(sections[i].length>63)
					{errorMsg += "DOMAIN SECTIONS (SEPERATED BY PERIODS) CANNOT BE LONGER THAN 63 CHARACTERS!! \n";}
			}
		}
		//CHECK LOCAL PART ILLEGAL CHARACTERS
		var regex1 = /[^A-Za-z0-9\.\!\#\$\%\&\*\+\-\/\=\?\^\_\`\{\|\}\~]/g;
		var regex2 = /^[^A-Za-z0-9]/g;
		if(regex1.test(local))
			{errorMsg += "LOCAL PART (THE PART BEFORE @) CONTAINS ILLEGAL CHARACTERS SUCH AS SPACE, COMMA OR SEMICOLON!! \n";}
		else if(regex2.test(local))
			{errorMsg += "LOCAL PART (THE PART BEFORE @) CANNOT START WITH A NON WORD CHARACTER \n";}
		
		//CHECK DOMAIN PART ILLEGAL CHARACTERS
		var regex3 = /[^a-zA-Z0-9\-\.]/g;
		var regex4 = /^[^a-zA-Z0-9]/g;
		var regex5 = /[a-zA-Z]/g;		
		var regex6 = /[a-zA-Z]/g;	
		if(regex3.test(domain))
			{errorMsg += "DOMAIN PART (THE PART AFTER @) CONTAINS ILLEGAL CHARACTERS SUCH AS COMMA, SEMICOLON, etc. \n";}
		else{
			if(regex4.test(domain))
				{errorMsg += "DOMAIN PART (THE PART AFTER @) CANNOT START WITH A NONWORD CHARACTER \n";}
			else if(!regex5.test(domain))			
				{errorMsg += "DOMAIN PART (THE PART AFTER @) CANNOT BE NUMBERS ONLY \n";}
			else if(!regex6.test(last))
				{errorMsg += "THE LAST SECTION OF DOMAIN PART (THE PART AFTER @) CANNOT BE NUMBERS ONLY \n";}
		}
	}
	
	return errorMsg;
}
function change_model_year(modelYear, url){
	document.loanAppForm.selectedModelYear.value=modelYear;
	window.location.href = url;
}
function validate_loan_app(fer){
   	var errorMsg = "";
   	if (!/^[\d.]{2,11}$/.test(fer.amountRequested.value)){ errorMsg += "Amount must be between 2 and 11 numbers long\n"; }
   	if(fer.miles.value) {
      	if (!/^\d{1,6}$/.test(fer.miles.value)){ errorMsg += "Miles must be between 1 and 6 numbers long\n"; }
   	}
   	if (fer.employer.value == "" ){ errorMsg += "Employer must not be blank.\n"; }
   	if (fer.occupation.value ==""){ errorMsg += "Occupation must not be blank.\n"; }
   	if (!/^[\d.]{4,10}$/.test(fer.monthlyIncome.value)){ errorMsg += "Monthly Income must be between 4 and 10 numbers long\n"; }
	if (!/^\d{1,2}$/.test(fer.timeAtResidenceYears.value)){ errorMsg += "Time at Residence -Years must be between 0 and 2 numbers long\n"; }
   	if (!/^\d{1,2}$/.test(fer.timeAtResidenceMonths.value)){ errorMsg += "Time at Residence -Months must be between 0 and 2 numbers long\n"; }
   	if (!/^\d{1,2}$/.test(fer.timeOnJobYears.value)){ errorMsg += "Time on Job -Years must be between 0 and 2 numbers long\n"; }
   	if (!/^\d{1,2}$/.test(fer.timeOnJobMonths.value)){ errorMsg += "Time on Job -Months must be between 0 and 2 numbers long\n"; }
   	if( !/^\d{3}$/.test(fer.empPhoneAreaCode.value) || !/^\d{3}$/.test(fer.empPhonePrefix.value) || !/^\d{4}$/.test(fer.empPhoneSuffix.value)) { errorMsg += "Employee Phone Number must be filled with numbers\n"; }
   	if (!/^[^@]{5,50}$/i.test(fer.empAddress1.value)){ errorMsg += "Employer Address 1 must be between 5 and 50 letters long and not contain @\n"; }
   	if(fer.empAddress2.value) 
    {if (!/^[^@]{5,50}$/i.test(fer.empAddress2.value)){ errorMsg += "Employer Address 2 must be between 5 and 50 letters long and not contain @\n"; }}
   	if (!/^[a-z ]{2,50}$/i.test(fer.empCity.value)){ errorMsg += "Employer City must be between 2 and 50 letters long\n"; }
	if (!/^[a-z0-9]{2}$/i.test(fer.empState.value)){ errorMsg += "Please Select an employer State\n"; }
   	if (!/^\d{5}$/i.test(fer.empZip.value)){ errorMsg += "Employer ZIP must be 5 numbers long\n"; }
   	if(fer.otherIncomeSource.value) 
     {
      	if (!/^[a-z0-9 ]{2,50}$/i.test(fer.otherIncomeSource.value)){ errorMsg += "Other Monthly Income Source must be between 2 and 50 letters long\n"; }
       	if (!/^[\d.]{3,10}$/.test(fer.otherMonthlyIncome.value)){ errorMsg += "Other Monthly Income must be between 3 and 10 numbers long\n"; }
   	}
   	if (fer.firstName.value == ""){ errorMsg += "First Name must be between 1 and 40 letters long\n"; }
   	if(fer.middleName.value) { if (!/^[a-z]{1}$/i.test(fer.middleName.value)){ errorMsg += "Middile Initial must be a letter\n"; }}
   	if (fer.lastName.value == ""){ errorMsg += "Last Name must be between 1 and 40 letters long\n"; }
	errorMsg += validate(fer.email.value);
    if( !/^\d{3}$/.test(fer.dayPhoneAreaCode.value) || !/^\d{3}$/.test(fer.dayPhonePrefix.value) || !/^\d{4}$/.test(fer.dayPhoneSuffix.value)) { errorMsg += "Day Phone Number must be filled with numbers\n"; }
    if(fer.nightPhoneAreaCode.value || fer.nightPhonePrefix.value || fer.nightPhoneSuffix.value){
    	if( !/^\d{3}$/.test(fer.nightPhoneAreaCode.value) || !/^\d{3}$/.test(fer.nightPhonePrefix.value) || !/^\d{4}$/.test(fer.nightPhoneSuffix.value)) { errorMsg += "Evening Phone Number must be filled with numbers\n"; }
    }
    if(fer.faxAreaCode.value || fer.faxPrefix.value || fer.faxSuffix.value) 
    {if( !/^\d{3}$/.test(fer.faxAreaCode.value) || !/^\d{3}$/.test(fer.faxPrefix.value) || !/^\d{4}$/.test(fer.faxSuffix.value)) { errorMsg += "Fax Phone Number must be filled with numbers\n"; }}
    if (!/^[^@]{5,50}$/i.test(fer.address1.value)){ errorMsg += "Address must be between 5 and 50 letters long and not contain @\n"; }
    if (!/^[a-z ]{2,50}$/i.test(fer.city.value)){ errorMsg += "City must be between 2 and 50 letters long\n"; }
	if (!/^[a-z]{2}$/i.test(fer.state.value)){ errorMsg += "Please Select a State\n"; }
    if (!/^\d{5}$/i.test(fer.zip.value)){ errorMsg += "ZIP must be 5 numbers long\n"; }
    if (!/^\d{9}$/i.test(fer.ssn.value)){ errorMsg += "SSN must be 9 numbers long (should not include hyphens or spaces)\n"; }
    if (!/^\d{4}$/i.test(fer.dobYear.value)){ errorMsg += "Date Of Birth -Year must be 4 numbers long\n"; }
    else {
		var min_age = 18;
		var year = parseInt(fer.dobYear.value);
		var month = parseInt(fer.dobMonth.selectedIndex);
		var day = parseInt(fer.dobDay.value);
		var bday = new Date((year + min_age), month, day);
		var today = new Date;
    	if ( (today.getTime() - bday.getTime()) < 0) { errorMsg += "Date Of Birth -Year: You must be 18 or older to apply \n"; }
    }
    if (!/^[\d.]{3,6}$/.test(fer.monthlyPayment.value)){ errorMsg += "Monthly Payment must be between 3 and 6 numbers long\n"; }
    if (!/^\d{0,2}$/.test(fer.timeAtResidenceYears.value)){ errorMsg += "Time at Residence -Years must be between 0 and 2 numbers long\n"; }
    if (!/^\d{0,2}$/.test(fer.timeAtResidenceMonths.value)){ errorMsg += "Time at Residence -Months must be between 0 and 2 numbers long\n"; }
	if (fer.consent.checked != true) { errorMsg += "Please agree to the acknowledment and consent\n"; }
    if(errorMsg) {
      	alert(errorMsg);
       	return false;
    }
	return true;
}
function ElementToSelect( iElement ){
	var myform = document.loanapp;
	if (myform.manufacturer.value == "suzuki"){
		var elParent = myform.model.parentNode;
		var tmp = elParent.removeChild(myform.model);
		var sel = document.createElement("select");
		sel.setAttribute('id','model');
		sel.options[sel.options.length] = new Option("AERIO SEDAN", "AERIO SEDAN", false, true);
		sel.options[sel.options.length] = new Option("AERIO SX", "AERIO SX", false, false);
		sel.options[sel.options.length] = new Option("ESTEEM", "ESTEEM", false, false);
		sel.options[sel.options.length] = new Option("ESTEEM SEDAN", "ESTEEM SEDAN", false, false);
		sel.options[sel.options.length] = new Option("ESTEEM WAGON", "ESTEEM WAGON", false, false);
		sel.options[sel.options.length] = new Option("FORENZA", "FORENZA", false, false);
		sel.options[sel.options.length] = new Option("FORENZA WGN", "FORENZA WGN", false, false);
		sel.options[sel.options.length] = new Option("GRAND VITARA", "GRAND VITARA", false, false);
		sel.options[sel.options.length] = new Option("RENO", "RENO", false, false);
		sel.options[sel.options.length] = new Option("SIDEKICK", "SIDEKICK", false, false);
		sel.options[sel.options.length] = new Option("SIDEKICK SPORT", "SIDEKICK SPORT", false, false);
		sel.options[sel.options.length] = new Option("SWIFT", "SWIFT", false, false);
		sel.options[sel.options.length] = new Option("VERONA", "VERONA", false, false);
		sel.options[sel.options.length] = new Option("VITARA", "VITARA", false, false);
		sel.options[sel.options.length] = new Option("X90", "X90", false, false);
		sel.options[sel.options.length] = new Option("XL-7", "XL-7", false, false);
		sel.oldElement = tmp;
		elParent.appendChild(sel);
		sel.focus();
	}else if (myform.manufacturer.value == "preowned"){
		var elParent = myform.model.parentNode;
		var tmp = elParent.removeChild(myform.model);
		document.getElementById("modelbox").innerHTML ="<input type='text' name='model' class='commonMedWidth'>";
	}
}