// dem 12/15/04


function Pop1(page) {
OpenWin = this.open(page, "Pop1", "width=450,height=350,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no");
}

function ServiceCoupons(page) {
OpenWin = this.open(page, "ServiceCoupons", "width=600,height=550,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no");
}

//check form for Locator function
function chkLocator(f) {
	if (f.VehiclePurchaseDate.selectedIndex == 0) {
		alert ("Please select - PUCRCHASE DATE");
		f.VehiclePurchaseDate.focus();
		return false;
	}		
	
	if  (!checkinteger(f.VehicleMinPrice.value)) {
    if  (!onError("Please enter [FROM Price] as a whole number!")) {
			f.VehicleMinPrice.focus();
			return false; 
		}
	}

	if  (!checkinteger(f.VehicleMaxPrice.value)) {
    if  (!onError("Please enter [TO Price] as a whole number!")) {
			f.VehicleMaxPrice.focus();
			return false; 
		}
	}

	if (f.FirstName.value == "") {
		alert ("Please enter - FIRST NAME");
		f.FirstName.focus();
		return false;
	}			

	if (f.LastName.value == "") {
		alert ("Please enter - LAST NAME");
		f.LastName.focus();
		return false;
	}			

	var itemchecked = false;
	for(var i = 0 ; i < f.ContactMethod.length ; ++i) {
		if(f.ContactMethod[i].checked) {
			itemchecked = true;
			break; }
	}
	if(!itemchecked) { 
		alert ("Please Select Contact Method");
		f.ContactMethod[0].focus();
		return false; }


	if(f.ContactMethod[0].checked) {
		if (f.HomePhone.value == "") {
			alert ("Please enter selected Contact Method - HOME PHONE");
			f.HomePhone.focus();
			return false;	}	
	}
	
	if(f.ContactMethod[1].checked) {
		if (f.WorkPhone.value == "") {
			alert ("Please enter selected Contact Method - WORK PHONE");
			f.WorkPhone.focus();
			return false;	}	
	}

	if(f.ContactMethod[2].checked) {
		if (f.CellPhone.value == "") {
			alert ("Please enter selected Contact Method - CELL PHONE");
			f.CellPhone.focus();
			return false;	}	
	}

	if(f.ContactMethod[3].checked) {
		if (f.Fax.value == "") {
			alert ("Please enter selected Contact Method - FAX");
			f.Fax.focus();
			return false;	}	
	}	

	if(f.ContactMethod[4].checked) {
		if (f.Email.value == "") {
			alert ("Please enter selected Contact Method - EMAIL ADDRESS");
			f.Email.focus();
			return false;	}	
			
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(f.Email.value)){
			return true
			}
		{
			alert("Please enter a valid - EMAIL ADDRESS");
			f.Email.focus();
			return false;
		}	
	}
}



//check form for Coupon function
function chkCoupon(f) {
	
	if (f.VehiclePurchaseDate.selectedIndex == 0) {
		alert ("Please select - PUCRCHASE DATE");
		f.VehiclePurchaseDate.focus();
		return false;
	}		
	
	if (f.FirstName.value == "") {
		alert ("Please enter - FIRST NAME");
		f.FirstName.focus();
		return false;
	}			

	if (f.LastName.value == "") {
		alert ("Please enter - LAST NAME");
		f.LastName.focus();
		return false;
	}
	
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(f.Email.value)){
		return true
		}
	{
		alert("Please enter a valid - EMAIL ADDRESS");
		f.Email.focus();
		return false;
	}
}


//check form for Request function
function chkRequest(f) {
	
	if (f.VehiclePurchaseDate.selectedIndex == 0) {
		alert ("Please select - PUCRCHASE DATE");
		f.VehiclePurchaseDate.focus();
		return false;
	}		
	
	if (f.FirstName.value == "") {
		alert ("Please enter - FIRST NAME");
		f.FirstName.focus();
		return false;
	}			

	if (f.LastName.value == "") {
		alert ("Please enter - LAST NAME");
		f.LastName.focus();
		return false;
	}
	
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(f.Email.value)){
		return true
		}
	{
		alert("Please enter a valid - EMAIL ADDRESS");
		f.Email.focus();
		return false;
	}	
}

//more photos function
function MorePhotos(page) {
OpenWin = this.open(page, "MorePhotos", "width=600,height=400,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no");
}




//integer validation for individual field
function validateinteger(field, message){
	if  (!checkinteger(field.value))
	{
    if  (!onError(message))
		{
		return false; 
		}
	}
}


//integer validation processing
function onError(error_message)
	{
	alert(error_message);
		return false;	
  }

function checkinteger(object_value) {
	//Returns true if value is a number or is NULL
	//otherwise returns false	
	
	if (object_value.length == 0)
	return true;
	
	//Returns true if value is an integer defined as
	//   having an optional leading + or -.
	//   otherwise containing only the characters 0-9.
	var decimal_format = ".";
	var check_char;

	//The first character can be + -  blank or a digit.
	check_char = object_value.indexOf(decimal_format)
	//Was it a decimal?
	if (check_char < 1)
		return checknumber(object_value);
	else
		return false;
}

function checknumber(object_value) {
	//Returns true if value is a number or is NULL
	//otherwise returns false	

	if (object_value.length == 0)
		return true;

	//Returns true if value is a number defined as
	//   having an optional leading + or -.
	//   having at most 1 decimal point.
	//   otherwise containing only the characters 0-9.
	var start_format = " .+-0123456789";
	var number_format = " ,.0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

	//The first character can be + - .  blank or a digit.
	check_char = start_format.indexOf(object_value.charAt(0))
	//Was it a decimal?
	if (check_char == 1)
		decimal = true;
	else if (check_char < 1)
		return false;

	//Remaining characters can be only . or a digit, but only one decimal.
	for (var i = 1; i < object_value.length; i++)
	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0)
			return false;
		else if (check_char == 2)
		{
			if (decimal)		// Second decimal.
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0)
		{
			if (decimal || digits)	
				trailing_blank = true;
		// ignore leading blanks

		}
	else if (trailing_blank)
			return false;
		else
			digits = true;
	}	
	//All tests passed, so...
	return true
}


//check form for Credit Application function
function chkForm5(f) {
	if (f.Name.value == "") {
		alert ("Please enter - NAME");
		f.Name.focus();
		return false;
	}
	
	if (f.Address.value == "") {
		alert ("Please enter - ADDRESS");
		f.Address.focus();
		return false;
	}
	
	if (f.City.value == "") {
		alert ("Please enter - CITY");
		f.City.focus();
		return false;
	}	
	
	if (f.State.value == "") {
		alert ("Please enter - STATE");
		f.State.focus();
		return false;
	}	
	
	if (f.Zip.value == "") {
		alert ("Please enter - ZIP CODE");
		f.Zip.focus();
		return false;
	}	
	
	if (f.HomePhone.value == "") {
		alert ("Please enter - HOME PHONE NUMBER");
		f.HomePhone.focus();
		return false;
	}
	
	if (f.EmployersName.value == "") {
		alert ("Please enter - EMPLOYERS NAME");
		f.EmployersName.focus();
		return false;
	}	
	
	if (f.WorkPhone.value == "") {
		alert ("Please enter - WORK PHONE NUMBER");
		f.WorkPhone.focus();
		return false;
	}	
	
	if (f.SocialSecurity.value == "") {
		alert ("Please enter - SOCIAL SECURITY NUMBER");
		f.SocialSecurity.focus();
		return false;
	}	
	
	if (f.BirthDate.value == "") {
		alert ("Please enter - BIRTH DATE");
		f.BirthDate.focus();
		return false;
	}
	
		if (f.MonthlyIncome.value == "") {
		alert ("Please enter - TOTAL MONTHLY INCOME");
		f.MonthlyIncome.focus();
		return false;
	}
	
	if (f.DownPayment.value == "") {
		alert ("Please enter - DOWN PAYMENT");
		f.DownPayment.focus();
		return false;
	}
	
	if (f.DesiredMonthlyPayment.value == "") {
		alert ("Please enter - DESIRED MONTHY PAYMENT");
		f.DesiredMonthlyPayment.focus();
		return false;
	}	
	
	if (f.CurrentRent.value == "") {
		alert ("Please enter - CURRENT RENT/MORTGAGE");
		f.CurrentRent.focus();
		return false;
	}				
				

	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(f.Email.value)){
		return true
		}
	{
		alert("Please enter a valid - EMAIL ADDRESS");
		f.Email.focus();
		return false;
	}
}



//payment calculator
function super_calc(daForm) {
  var resultStr = "Monthly Payments:\n";
  var yearlyResult;
  
  for(var years=1; years<=7; years++) { // do the results for 1-7 years
    yearlyResult = calc(daForm,years);
	if ( yearlyResult != -1) {
      resultStr = resultStr + (years * 12) + " mos - $" + format(calc(daForm,years),2) + "\n";
	}
	else {
	  daForm.result.value = "Please correct\nfields marked\n"+unescape("%22")+"ERROR"+unescape("%22")+".";
	  return;
	}
  }  
  daForm.result.value = resultStr;
}

function calc(info,years) {
  var exit = 0;
  var count = info.elements.length; // exclude submit button & textarea
  var p1 = validate(info.veh_price.value);
  var p2 = validate(info.tradein.value);
  var p3 = validate(info.payoff.value);
  var p4 = validate(info.down.value);     
  if(info.apr.value.length==0) { info.apr.value=0; }
  var i = validate(info.apr.value);   
  var y = years;
  for(var x=0; x<count; x++) { // first round of error checking
    if (info.elements[x].name != "result" && 
	    info.elements[x].name != "calculate" ){
      info.elements[x].value = validate(info.elements[x].value,1)
	}
  }
  for(var x=0,exit=0;x<count && !exit;x++) {
    exit = (info.elements[x].value == "ERROR") ? 1 : 0;
  }
  if(!exit) { // second round of error checking
    info.apr.value = (i<100) ? info.apr.value : "ERROR"
    for(var x=0,exit=0;x<count && !exit;x++) {
      exit = (info.elements[x].value == "ERROR") ? 1 : 0;
    }
  }
  if(!exit) {
    var p = p1 - p2 + p3 - p4;
    info.veh_price.value = p1;
    info.apr.value = i;
    if (i==0) { var pmt = p/(y*12); }
    else {
      i = (i/100)/12;
      var pmt = (p*i)/(1-Math.pow((1+i),(-1*(y*12)))); // perform calculation
    }
    return pmt;
  }
  else {
    return -1;
    
  }
}

function format(num,decimal) {
  var count = decimal;
  var result = "";
  if(decimal) { result = "."; }
  while(count--) { num = num*10; }
  num = Math.round(num) + "";
  var len = num.length;
  count = decimal;
  while(count--) { result = result + num.charAt(len-count-1); }
  for(var x=len-decimal-1,count=0;x>=0;x--) {
    result = num.charAt(x) + result;
    if(!(++count%3) && x > 0) { result = "," + result; } // add commas
  }
  return(result);
}

function validate(entry,errorchk) {
  var validlist = "1234567890";
  var number = "";
  var period = 1; // decimal point can only appear once
  if(errorchk && entry.length == 0) { return(0); }
  for(var x=0; x < entry.length; x++) {
    var datum = entry.charAt(x);
    if(validlist.indexOf(datum) != -1) { number += datum; }
    else if(datum == "." && period) {
      number += datum;
      period = 0;
    }
    else {
      if(errorchk) {
        if(datum == "," || datum == "%" || datum == unescape("%24")) {
          if((datum=="%" && x != entry.length-1) || (datum==unescape("%24") && x != 0)) return("ERROR");
        }
        else return("ERROR");
      }
    }
  }
  if(number == "") { return(0); }
  else if(errorchk) return(entry);
  else { return(parseFloat(number)); }
}





