 var timerID; // Global Timer ID
  //-------------------------------------------------------------------------
  //
  //  FUNCTION CalcInterestRate: FUNCTION CALCULATES INTEREST RATE OF THE LOAN BASED ON PERCENT DOWN
  //        IF PERCENT DOWN IS >= 25% THEN 6.05%
  //        IF < 25% THEN 6.3%
  //
  //-------------------------------------------------------------------------
  function CalcInterestRate()
  {
    if(document.getElementById(ctlPrefix +"_txtDownPercent").value >= "25")
    {
        document.getElementById(ctlPrefix + "_txtInterestRate").value = "6.05";
    }
    else
    {
        document.getElementById(ctlPrefix + "_txtInterestRate").value = "6.3";
    }
  }
  
  //-------------------------------------------------------------------------
  //
  //  FUNCTION CalcPayment: FUNCTION CALCULATES THE MONTHLY PAYMENT BASED ON THE REMAINING AMOUNT AFTER DOWN PAYMENT, INTEREST RATE, AND THE TERM IN MONTHS
  //
  //-------------------------------------------------------------------------
  function CalcPayment()
  {
    CalcInterestRate() //CALULATE THE INTEREST RATE
    var varInterestRate = document.getElementById(ctlPrefix + "_txtInterestRate").value;  //GET INTEREST RATE
    var varTerm = document.getElementById(ctlPrefix + "_txtMonths").value; //GET TERM IN MONTHS
    var varRemainingAmount = addCommas(document.getElementById(ctlPrefix + "_txtRemainingAmount").value.replace(",", "")); //GET REMAINING AMOUNT TO FINANCE
    var varMonthlyInterest = (varInterestRate/ 100 / 12); //CALCULATE MONTHLY INTEREST RATE
    var varMonthlyPayment = (varMonthlyInterest + (varMonthlyInterest /(Math.pow(1 + varMonthlyInterest, varTerm)-1))) * varRemainingAmount.replace(",", ""); // CALCULATE MONTHLY RATE
    document.getElementById(ctlPrefix + "_txtMonthlyPayment").value = addCommas(Math.round(varMonthlyPayment)); //POPULATE CONTROL WITH MONTHLY PAYMENT
  }
  
  function addCommas(nStr)
  {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
  }


  //-------------------------------------------------------------------------
  //
  //  FUNCTION GetPrice: FUNCTION CHECKS WHETHER THE PERSON WANTS TO USE A INPUT $ VALUE OR A BASE PRICE OF A PLANE THEN RETURNS THAT VALUE
  //
  //-------------------------------------------------------------------------
  function GetPrice()
  {
    var price;
    document.getElementById(ctlPrefix + "_txtSalesPrice").value = addCommas(document.getElementById(ctlPrefix + "_txtSalesPrice").value.replace(",", ""))
    price = document.getElementById(ctlPrefix + "_txtSalesPrice").value.replace(",", "");
    
    return price; //RETURNS THE PRICE
  }
  
  //-------------------------------------------------------------------------
  //
  //  FUNCTION CalcDownPercent: FUNCTION GATHERS THE $ ENTERED TO FINANCE OR MODEL BASE PRICE 
  //    THEN GENERATES THE CORRESPONDING DOWN PAYMENT BASED ON THE PRICE AND THE PERCENTAGE PAYMENT
  //
  //-------------------------------------------------------------------------
  function CalcDownPercent()
  {
    var price = GetPrice();  //CALLS FUNCTION TO GATHER FINANCING $ AMOUNT
    var txtDownPrice = document.getElementById(ctlPrefix + "_txtDownPayment").value.replace(",", ""); // GATHER THE INPUT DOWN PAYMENT $
    
    document.getElementById(ctlPrefix + "_txtDownPercent").value = Math.round(parseInt(txtDownPrice) / parseInt(price) * 100); //CALCULATE DOWN PAYMENT %
    document.getElementById(ctlPrefix + "_txtRemainingAmount").value = addCommas(Math.round(price - txtDownPrice));  // STORE REMAINING AMOUNT TO BE FINANCED AFTER DOWN PAYMENT
    
    // FOLLOWING IF STATEMENT RESETS DOWN PAYMENT % TO 15% IF <15% OR IF NOT A NUMBER OR DOWN PAYMENT IS < 0 OR DOWN PAYMENT IS MORE THAN THE PRICE
    if((document.getElementById(ctlPrefix + "_txtDownPercent").value < 15) || (isNaN(txtDownPrice)==true) || (txtDownPrice<0) || (parseInt(txtDownPrice) >= parseInt(price)))
    {
        document.getElementById(ctlPrefix + "_txtDownPercent").value = 255;
        CalcDownPayment()
    }
  }
  
  function CheckPrice()
  {
    if ((isNaN(document.getElementById(ctlPrefix + "_txtSalesPrice").value.replace(",", "")) == true) || (document.getElementById(ctlPrefix + "_txtSalesPrice").value.replace(",","") == ''))
    {
        document.getElementById(ctlPrefix + "_txtSalesPrice").value = 0;
    }
  }
  
  //-------------------------------------------------------------------------
  //
  //  FUNCTION CalcDownPayment: FUNCTION GATHERS THE $ ENTERED TO FINANCE OR MODEL BASE PRICE 
  //    THEN GENERATES THE CORRESPONDING DOWN PAYMENT BASED ON THE PRICE AND THE PERCENTAGE PAYMENT
  //
  //-------------------------------------------------------------------------
  function CalcDownPayment()
  {
    var price = GetPrice();  //CALLS FUNCTION TO GATHER FINANCING $ AMOUNT
    var txtDownPercent = document.getElementById(ctlPrefix + "_txtDownPercent").value.replace(",", ""); //GATHER THE INPUT DOWN PAYMENT %
    
    document.getElementById(ctlPrefix + "_txtDownPayment").value = addCommas(Math.round(parseInt(txtDownPercent) * parseInt(price) / 100)); //CALCULATE DOWN PAYMENT $
    document.getElementById(ctlPrefix + "_txtRemainingAmount").value = addCommas(Math.round((price - document.getElementById(ctlPrefix + "_txtDownPayment").value.replace(",", "")))); //CALCULATE REMAINING $ AFTER DOWN PAYMENT

    // FOLLOWING IF STATEMENT RESETS DOWN PAYMENT % TO 10% IF <10%
    if((txtDownPercent < 15) || (isNaN(txtDownPercent)==true) || (txtDownPercent >= 100) || (txtDownPercent < 0))
    {
        document.getElementById(ctlPrefix + "_txtDownPercent").value = 15;
        CalcDownPayment()
    }  
    if(isNaN(txtDownPercent)==true) //MAKE SURE A NUMBER EXISTS FOR A PRICE DOWN
    {
        document.getElementById(ctlPrefix + "_txtDownPercent").value = 15;
        CalcDownPayment()
    }  
  }