// Used for field validation.
var dirtyField = new String("true")
var tempFieldVal = new String("")

if(!micrositeParam) var micrositeParam=false;

function convertPopUp(){
  with (document.LoanLeaseResultForm){
    // alert ('convertPopup: ' + storage.termLease)
    
         if (storage.termLease == "12") termLease.options[0].selected = true;
    else if (storage.termLease == "18") termLease.options[1].selected = true;
    else if (storage.termLease == "24") termLease.options[2].selected = true;
    else if (storage.termLease == "30") termLease.options[3].selected = true;
    else if (storage.termLease == "36") termLease.options[4].selected = true;
    else if (storage.termLease == "42") termLease.options[5].selected = true;
    else if (storage.termLease == "48") termLease.options[6].selected = true;
    else if (storage.termLease == "54") termLease.options[7].selected = true;
    else if (storage.termLease == "60") termLease.options[8].selected = true;
    else if (storage.termLease == "66") termLease.options[9].selected = true;
    else if (storage.termLease == "72") termLease.options[10].selected = true;
    //else { termLease.options[0].selected = true; }
  }
  return true;
}

function initCalcResults(){

   // Initialize loan calculator form fields.

  with (document.LoanLeaseResultForm){
    // Intialize with params from the URL
    fillZeros(document.LoanLeaseResultForm);
    vpLoan.value = storage.vpLoan;
		tvLoan.value = storage.tvLoan;
		stPerLoan.value = storage.stPerLoan;
    vpLease.value = storage.vpLease;
		tvLease.value = storage.tvLease;
		stPerLease.value = storage.stPerLease;

    vpLoan.value = storage.vpLoan;
    dpLoan.value = storage.dpLoan;
    tvLoan.value = storage.tvLoan;
    stPerLoan.value = storage.stPerLoan;
    stDolLoan.value = storage.stDolLoan;
    rateLoan.value = storage.rateLoan;
    termLoan.value = storage.termLoan;
    afLoan.value = Math.round(storage.afLoan);
    mpLoan.value = storage.mpLoan;
    
    tsLoan.value = Math.round(storage.tsLoan);
    cctoLoan.value = Math.round(storage.cctoLoan);
    
    vpLoan.defaultValue = storage.vpLoan;
    dpLoan.defaultValue = storage.dpLoan;
    tvLoan.defaultValue = storage.tvLoan;
    stPerLoan.defaultValue = storage.stPerLoan;
    stDolLoan.defaultValue = storage.stDolLoan;
    rateLoan.defaultValue = storage.rateLoan;
    termLoan.defaultValue = storage.termLoan;
    afLoan.defaultValue = storage.afLoan;
    mpLoan.defaultValue = storage.mpLoan;
    tsLoan.defaultValue = storage.tsLoan;
    cctoLoan.defaultValue = storage.cctoLoan;

    // Initialize lease calculator input.
    vpLease.value = storage.vpLease;
    dpLease.value = storage.dpLease;
    tvLease.value = storage.tvLease;
    stPerLease.value = storage.stPerLease;
    stDolLease.value = storage.stDolLease;
    rateLease.value = storage.rateLease;
    termLease.value = storage.termLease;
    rvLease.value = storage.rvLease;
    lpLease.value = Math.round(storage.lpLease);
    mpLease.value = storage.mpLease;
    tsLease.value = Math.round(storage.tsLease);
    acLease.value = Math.round(storage.rvLease);
    cctoLease.value = Math.round(storage.cctoLease);
    vpLease.defaultValue = storage.vpLease;
    dpLease.defaultValue = storage.dpLease;
    tvLease.defaultValue = storage.tvLease;
    stPerLease.defaultValue = storage.stPerLease;
    stDolLease.defaultValue = storage.stDolLease;
    rateLease.defaultValue = storage.rateLease;
    termLease.defaultValue = storage.termLease;
    rvLease.defaultValue = storage.rvLease;
    lpLease.defaultValue = storage.lpLease;
    mpLease.defaultValue = storage.mpLease;
    tsLease.defaultValue = storage.tsLease;
    acLease.defaultValue = storage.rvLease;
    cctoLease.defaultValue = storage.cctoLease;
    
    fillZeros(document.LoanLeaseResultForm);

    with (document.LoanLeaseResultForm){
      
      storage.dpLeaseMax = parseFloat(vpLease.value) - parseFloat(storage.tvLeaseMax);
      storage.tvLeaseMax = parseFloat(vpLease.value) - parseFloat(storage.dpLeaseMax);
      storage.vpLease = vpLease.value;
      storage.stPerLease = stPerLease.value;
      storage.termLease = termLeaseParam;
      storage.rateLease = rateLease.value;
      storage.rvLease = rvLease.value;
      convertPopUp();

    }

    // Now, recalculate values based on new fields.
    
    if((mpLoan.value == "NaN") || (tsLoan.value == "NaN") || (cctoLoan.value == "NaN")) {
      recalculate(vpLoan);
    }
    convertPopUp();
    recalculate (vpLease);
    
          // Set focus and select first input field.
    var convertRVData = rvflagParam;
    
    if (convertRVData == "false"){
      recalculate (vpLease);
    		}
    
    if((mpLoan.value == "0")&&(vpLoan.value != "0")) recalculate(vpLoan);
    
    vpLoan.select();
    vpLoan.focus();
   }
}

function changedField(){
   dirtyField = "true";
}

function recalculate(field){
   // Recalculate fields.
   // LOAN:  change in top input fields
  if (field.name == "vpLoan" || field.name == "dpLoan" || field.name == "tvLoan" || field.name == "stPerLoan" || field.name == "rateLoan" || field.name == "termLoan" || field.name == "stDolLoan" || field.name == "mpLoan"){
      // Recalc. mp, stDol, af, ts, and ccto.
    if (field.name == "vpLoan") storage.vpLoan = field.value;
    if (field.name == "stPerLoan") storage.stPerLoan = field.value;
    if (field.name == "mpLoan"){ // Calculate VP from MP
      storage.mpLoan = field.value;
      if (storage.rateLoan == 0) { // Avoid divide-by-zero error with IR = 0%
        storage.vpLoan = eval(parseFloat(storage.mpLoan) * parseFloat(storage.termLoan));
      } else {
        var tempRate = eval(storage.rateLoan / 1200);
        var tempMpDenom = 1 - Math.pow(eval(1 + parseFloat(tempRate)), eval(-1 * storage.termLoan));
        storage.vpLoan = eval(parseFloat(storage.mpLoan) * tempMpDenom / tempRate).toString();
      }
      storage.vpLoan = eval((parseFloat(storage.vpLoan) + parseFloat(storage.dpLoan) + parseFloat(storage.tvLoan)) / ( 1 + ( storage.stPerLoan / 100 ) ) ).toString();
    }

    if(field.name == "stDolLoan"){
      storage.stPerLoan = eval(parseFloat(field.value) * 100 / parseFloat(storage.vpLoan)).toString();
      storage.vpLoan = document.LoanLeaseResultForm.vpLoan.value;
      storage.stDolLoan = field.value;
    } else {
       storage.stDolLoan = eval(storage.vpLoan * storage.stPerLoan/100).toString();
    }

    storage.dpLoan = document.LoanLeaseResultForm.dpLoan.value;
    storage.tvLoan = document.LoanLeaseResultForm.tvLoan.value;
    storage.rateLoan = document.LoanLeaseResultForm.rateLoan.value;
    storage.termLoan = document.LoanLeaseResultForm.termLoan.value;

    // Calculate new fields for output.
    storage.afLoan = eval(parseFloat(storage.stDolLoan) + (parseFloat(storage.vpLoan) - parseFloat(storage.dpLoan) - parseFloat(storage.tvLoan))).toString();

    if (field.name != "mpLoan"){ // Calculate MP from VP
      var tempRate = eval(storage.rateLoan / 1200).toString();
      var tempMpDenom = 1 - Math.pow(eval(1 + parseFloat(tempRate)), eval(-1 * storage.termLoan));
      if (storage.rateLoan == 0) { // Avoid divide-by-zero with IR = 0%
        storage.mpLoan = parseFloat(storage.afLoan) / parseFloat(storage.termLoan);
      } else {
        storage.mpLoan = eval(parseFloat(storage.afLoan) * parseFloat(tempRate) / tempMpDenom).toString();
      }
    }
    storage.tsLoan = eval((parseFloat(storage.mpLoan) * parseFloat(storage.termLoan)) + parseFloat(storage.dpLoan) + parseFloat(storage.tvLoan)).toString();
    storage.cctoLoan = storage.tsLoan;

    storage.vpLoan = setDecPlaces(storage.vpLoan, 0);
    storage.dpLoan = setDecPlaces(storage.dpLoan, 0);
    storage.tvLoan = setDecPlaces(storage.tvLoan, 0);
    storage.stPerLoan = setDecPlaces(storage.stPerLoan, 3);
    storage.stDolLoan = setDecPlaces(storage.stDolLoan, 3);
    storage.mpLoan = setDecPlaces(storage.mpLoan, 2, true);
    storage.afLoan = setDecPlaces(storage.afLoan, 2);
    storage.tsLoan = setDecPlaces(storage.tsLoan, 2);
    storage.cctoLoan = setDecPlaces(storage.cctoLoan, 2);

    // Place new values in Loan fields.
    with (document.LoanLeaseResultForm){
      vpLoan.value = storage.vpLoan;
      dpLoan.value = storage.dpLoan;
      tvLoan.value = storage.tvLoan;
      stPerLoan.value = storage.stPerLoan;
      stDolLoan.value = storage.stDolLoan;
      rateLoan.value = storage.rateLoan;
      termLoan.value = storage.termLoan;
      afLoan.value = storage.afLoan;
      mpLoan.value = storage.mpLoan;
      tsLoan.value = storage.tsLoan;
      cctoLoan.value = storage.cctoLoan;

			if( (tempRate == 0) && (mpLoan.value == "NaN") ){
				mpLoan.value = setDecPlaces(parseFloat(eval(parseFloat(storage.afLoan) / storage.termLoan)).toString(), 2, true);
				storage.mpLoan = mpLoan.value;
				tsLoan.value = eval((parseFloat(mpLoan.value) * parseFloat(storage.termLoan)) + parseFloat(storage.dpLoan) + parseFloat(storage.tvLoan)).toString();
				cctoLoan.value = tsLoan.value;
				storage.tsLoan = tsLoan.value;
				storage.cctoLoan = tsLoan.value;
			}
		}
	}

	// LEASE:  change in top input fields
  if (field.name == "vpLease" || field.name == "dpLease" || field.name == "tvLease" || field.name == "stPerLease" || field.name == "rateLease" || field.name == "termLease" || field.name == "stDolLease" || field.name == "mpLease" || field.name == "rvLease"){
	  // Recalc. mp, stDol, af, ts, and ccto.

		if(field.name == "mpLease"){
			storage.mpLease = field.value;
      var term = parseFloat(storage.termLease);
      var a = (parseFloat(storage.rvLease) - parseFloat(storage.dpLease) - parseFloat(storage.tvLease)) * parseFloat(storage.rateLease);
      var b = (parseFloat(storage.dpLease) + parseFloat(storage.tvLease) + parseFloat(storage.rvLease)) / term;
      var c = parseFloat(storage.mpLease) * term / (1 + parseFloat(storage.stPerLease) / 100);
      storage.vpLease = eval((c - a * term + b * term) / (parseFloat(storage.rateLease) * term + 1));
		}

		if(field.name == "rvLease") storage.rvLease = field.value;
		if(field.name == "vpLease"){
			storage.vpLease = field.value;
			storage.rvLeaseMax = field.value;
		}

		if(field.name == "stPerLease") storage.stPerLease = field.value;

		if(field.name == "stDolLease"){
			var templpLease = eval((parseFloat(storage.vpLease) - parseFloat(storage.dpLease) - parseFloat(storage.tvLease))).toString();
			var depreciationLease = eval((templpLease - storage.rvLease) / storage.termLease).toString();
			var leaseChargeLease = eval((parseFloat(storage.rvLease) + parseFloat(templpLease)) * (storage.rateLease)).toString();
			var noTaxMP = eval(parseFloat(leaseChargeLease) + parseFloat(depreciationLease));
			storage.stPerLease = eval((parseFloat(field.value) / parseFloat(noTaxMP)) * 100).toString();
			storage.stDolLease = field.value;
		} else {
			storage.stDolLease = eval(storage.mpLease * storage.stPerLease/100).toString();
		}

		storage.dpLease = document.LoanLeaseResultForm.dpLease.value;
		storage.tvLease = document.LoanLeaseResultForm.tvLease.value;
		storage.rateLease = document.LoanLeaseResultForm.rateLease.value;
//		storage.termLease = document.LoanLeaseResultForm.termLease.options.value;
    if (document.LoanLeaseResultForm.termLease.selectedIndex < 0) {
      document.LoanLeaseResultForm.termLease.selectedIndex = 4; // default to 36 mo
    }
		storage.termLease = document.LoanLeaseResultForm.termLease.options[document.LoanLeaseResultForm.termLease.selectedIndex].value;
		//workaround for NS browsers that don't recognize that you've selected the first item in the drop-down menu for leaseTerm. This basically overrides what it thinks is the current selected value.
		if (document.LoanLeaseResultForm.termLease.selectedIndex == 0) storage.termLease = 12;
		// Calculate new fields for output.
		storage.afLease = eval(parseFloat(storage.vpLease) - parseFloat(storage.dpLease) - parseFloat(storage.tvLease)).toString();
		if (field.name != "mpLease"){
			var templpLease = storage.afLease;
			var depreciationLease = eval((templpLease - storage.rvLease) / storage.termLease).toString();
			var leaseChargeLease = eval((parseFloat(storage.rvLease) + parseFloat(templpLease)) * (storage.rateLease)).toString();
			storage.mpLease = eval(parseFloat(leaseChargeLease) + parseFloat(depreciationLease)).toString();
			var streamTax = (storage.mpLease * (storage.stPerLease / 100));
			var newMP = eval(parseFloat(storage.mpLease) + streamTax);
			storage.mpLease = eval(parseFloat(storage.mpLease) + streamTax).toString();
		}
		storage.tsLease = eval((parseFloat(storage.mpLease) * storage.termLease) + parseFloat(storage.dpLease) + parseFloat(storage.tvLease)).toString();
		storage.cctoLease = eval(parseFloat(storage.tsLease) + parseFloat(storage.rvLease)).toString();

		storage.lpLease = eval(parseFloat(storage.mpLease) * storage.termLease).toString();
		storage.vpLease = setDecPlaces(storage.vpLease, 0);
		storage.dpLease = setDecPlaces(storage.dpLease, 0);
		storage.tvLease = setDecPlaces(storage.tvLease, 0);
		storage.stPerLease = setDecPlaces(storage.stPerLease, 3);
		storage.stDolLease = setDecPlaces(storage.stDolLease, 3);
		storage.lpLease = setDecPlaces(storage.lpLease, 2);
		storage.afLease = setDecPlaces(storage.afLease, 2);
		storage.mpLease = setDecPlaces(storage.mpLease, 2, true);
		storage.tsLease = setDecPlaces(storage.tsLease, 2);
		storage.rvLease = setDecPlaces(storage.rvLease, 0);
		storage.cctoLease = setDecPlaces(storage.cctoLease, 2);
		storage.acLease = storage.rvLease;

		with(document.LoanLeaseResultForm) {
			// Place new values in Lease fields.
			vpLease.value = storage.vpLease
			dpLease.value = storage.dpLease
			tvLease.value = storage.tvLease
			stPerLease.value = storage.stPerLease
			stDolLease.value = storage.stDolLease
			rateLease.value = storage.rateLease
			termLease.value = storage.termLease
			rvLease.value = storage.rvLease
			lpLease.value = storage.lpLease
			mpLease.value = storage.mpLease
			tsLease.value = storage.tsLease
			acLease.value = storage.rvLease
			cctoLease.value = storage.cctoLease

			convertPopUp();
		}
	}

	with(document.LoanLeaseResultForm) {
		afLoan.value = numberFormat(Math.round(afLoan.value.replace(/,/g,"")));
		tsLoan.value = numberFormat(Math.round(tsLoan.value.replace(/,/g,"")));
		cctoLoan.value = numberFormat(Math.round(cctoLoan.value.replace(/,/g,"")));

		lpLease.value = numberFormat(Math.round(lpLease.value.replace(/,/g,"")));
		tsLease.value = numberFormat(Math.round(tsLease.value.replace(/,/g,"")));
		acLease.value = numberFormat(Math.round(acLease.value.replace(/,/g,"")));
		cctoLease.value = numberFormat(Math.round(cctoLease.value.replace(/,/g,"")));
	}
}

function validRange(field){

  var strMin = "Min";
  var strMax = "Max";
  var tempName = "storage." + field.name;
  var fieldMin = eval(tempName + "Min");
  var fieldMax = eval(tempName + "Max");

  if ( (field.name == "dpLease") && (fieldMin == "0") && (fieldMax == "0") ) {
		storage.dpLeaseMax = parseFloat(storage.vpLease) - parseFloat(storage.tvLease);
		fieldMax = eval(tempName + "Max");
	} else if  ( (field.name == "tvLease") && (fieldMin == "0") && (fieldMax == "0") ) {
		storage.tvLeaseMax = parseFloat(storage.vpLease) - parseFloat(storage.dpLease);
		fieldMax = eval(tempName + "Max");
	}
     
	if (field.value.valueOf() < parseFloat(fieldMin) || field.value.valueOf() > parseFloat(fieldMax)){
		return false;
	} else {
		return true;
	}
}

function validateField(field){
	//clean up first
  cleanUpField(field);
	field.value = field.value.replace(/,/g,"");
	field.value = field.value.replace(/ /g,"");
	if(field.name != "rateLease"){
	if(field.value<.6) field.value = 0;
		else if((field.value>=.6)&&(field.value < 1)) field.value = 1;
	}
  var numErrFlag = false;
  var rangeErrFlag = false;
  var fieldErrMsg = eval("storage." + field.name + "ErrMsg");
  var tempField = 'storage.' + field.name;

  if (!isNumeric(field)){
    alert(fieldErrMsg);
    field.value = eval("storage." + field.name);
    field.select();
    field.focus();
  } else {
    if(!validRange(field)) {
      alert(fieldErrMsg);
      if (field.name == "rateLease") {
        storage.rateLease = eval(document.LoanLeaseResultForm.rateLease.value / 2400).toString();
        field.value = eval("storage." + field.name);
        field.value = setDecPlaces(field.value, eval("storage." + field.name + "DecPlaces"));
        recalculate(field);
      }
      field.value = eval("storage." + field.name);
      field.select();
      field.focus();
    } else {
      // Input is valid...now set any related fields for future validation.
      eval(tempField = field.value);
      field.defaultValue = field.value;

      with (document.LoanLeaseResultForm) {
        if (field.name == "vpLoan"){
           storage.dpLoanMax = eval(parseFloat(field.value) - parseFloat(tvLoan.value)).toString();
           storage.tvLoanMax = eval(parseFloat(field.value) - parseFloat(dpLoan.value)).toString();
           }
        if (field.name == "vpLease"){
           storage.dpLeaseMax = eval(parseFloat(field.value) - parseFloat(tvLease.value)).toString();
           storage.tvLeaseMax = eval(parseFloat(field.value) - parseFloat(dpLease.value)).toString();
           storage.rvLeaseMax = field.value;
           }
        if (field.name == "dpLoan"){
           storage.vpLoanMin = eval(parseFloat(field.value) + parseFloat(tvLoan.value)).toString();
           storage.tvLoanMax = eval(parseFloat(vpLoan.value) - parseFloat(dpLoan.value)).toString();
           }
        if (field.name == "dpLease"){
           storage.vpLeaseMin = eval(parseFloat(field.value) + parseFloat(tvLease.value)).toString();
           storage.tvLeaseMax = eval(parseFloat(vpLease.value) - parseFloat(dpLease.value)).toString();
           }
        if (field.name == "tvLoan"){
           storage.vpLoanMin = eval(parseFloat(field.value) + parseFloat(dpLoan.value)).toString();
           storage.dpLoanMax = eval(parseFloat(vpLoan.value) - parseFloat(tvLoan.value)).toString();
           }
        if (field.name == "tvLease"){
           storage.vpLeaseMin = eval(parseFloat(field.value) + parseFloat(dpLease.value)).toString();
           storage.dpLeaseMax = eval(parseFloat(vpLease.value) - parseFloat(tvLease.value)).toString();
           }
       }
      recalculate(field);
    }
  }
}

function isNumeric(field){
   // Check if input field is numeric.

   var floatValue = new Number(parseFloat(field.value,10))
   var isNumber = true;
   var chr = 0;
   var decPlaces = 0;
   var errorMsg = "";

//   alert('In validateField()')

   dirtyField = true
   if (dirtyField){
         // Check for digits '0'-'9' and '.'
         for ( var i = 0; i < field.value.length; i++ ){
            chr = field.value.charAt(i);

            // verify that the number is in fact numeric
            if ((chr >= "0" && chr <= "9") || chr == "."){
               if ( chr == "." ){
                  decPlaces += 1;
                  //  Checks to make sure that there's at most one decimal point.
                  if ( decPlaces > 1 ){
                     isNumber = false ;
                     errorMsg = "You can only have one decimal point in your number.";
                     i = field.value.length;
                  }
               }
            } else {
               isNumber = false;
               errorMsg = "The only values allowed are numbers (0 through 9) and a decimal point.";
               i = field.value.length;
            }
         }
      }
      if (isNumber){
         dirtyField = false;
         field.value = setDecPlaces(field.value, eval("storage." + field.name + "DecPlaces"));
         return true;
      } else {
         return false;
	}
}

function processLeaseTerm(){

  fillZeros(document.LoanLeaseResultForm);
  with (document.LoanLeaseResultForm){
   
    var selectedIndex = termLease.selectedIndex;
    var selectedTerm = termLease.options[selectedIndex].value;
    
    // Netscape workaround
    if (selectedTerm != "12" && selectedIndex == 0){
      selectedTerm = "12";
      storage.termLease = 12;
    }
    
    if (selectedTerm == "24" || selectedTerm == "36" || selectedTerm == "48" || selectedTerm == "60"){
      if (fltParam != "rval") {
        termLease.value = selectedTerm;
        recalculate(termLease);
        return true;
      }
    } else {
      alert ("Cars.com provides valid residual-value data for Terms of 24, 36, 48 and 60 months. If you choose another Term for your lease, the Residual Value and Money Factor shown may no longer be valid.")
      recalculate(termLease);
      return true;
    }
    
    if (fltParam != "rval") {
      recalculate(termLease);
      return true;
    }
	}
}

function showGlossary(url){
	glosWin = window.open(url,'glossary','width=500,height=400,left=50,top=50,resizable,scrollbars');
	glosWin.focus();
}

function loadResidual(url){
	resvalWin = window.open(url,'residualValues','width=550,height=500,left=50,top=50,resizable,scrollbars');
	resvalWin.focus();
}


function numberFormat(number){
	var decimal = "";
	var number = number.toString();
	if (number.indexOf(".") != -1){
	var from = number.indexOf(".");
	decimal = number.substring(from);
	number = number.substring(0,from);
	}

	number = '' + number;
	if (number.length > 3) {
	var mod = number.length%3;
	var output = (mod > 0 ? (number.substring(0,mod)) : '');
	for (i = 0 ; i < Math.floor(number.length/3) ; i++) {
	if ((mod ==0) && (i ==0)) output+= number.substring(mod + 3*i,mod + 3*i + 3);
	else output+= ',' + number.substring(mod + 3*i,mod + 3*i + 3);
		}
	return (output + decimal);
    } else return number + decimal;
}

// Set the VP from the URL and select it
function initPage() {
  with (document.LoanLeaseResultForm) {
    vpLoan.select();
    vpLoan.focus();
  }
}

// Returns URL with calc values as params
function makeURL(path) {
  with (document.LoanLeaseResultForm) {
    path += "?vpLoan=" + vpLoan.value + "&tvLoan=" + tvLoan.value + "&stLoan=" + stPerLoan.value;
  }
try {
        if(opener.micrositeParam) {
        path += "&microsite=" + opener.micrositeParam
        }
    }
    catch (exception){
        path += "&microsite=" + micrositeParam;
    } 
  return path;
}

function resetAll() {
  with (document.LoanLeaseResultForm) {
    var prefixes = new Array("vp", "dp", "tv", "stPer", "rate", "term");
    var limit = prefixes.length;
    for (var i = 0; i < limit; i++) {
      eval(prefixes[i]+"Loan.value = storage." + prefixes[i] +
           "Loan = storage." + prefixes[i] + "LoanDefault");
      eval(prefixes[i]+"Lease.value = storage." + prefixes[i] +
           "Lease = storage." + prefixes[i] + "LeaseDefault");
    }
    rvLease.value = storage.rvLease = storage.rvLeaseDefault;
    recalculate(vpLoan);
    recalculate(vpLease);
    vpLoan.select();
    vpLoan.focus();
  }
  return false; // prevents onClick="return resetAll()" from reloading page
}
