

var credit_types = new Array();

credit_types[1] = "Рассрочка";
credit_types[2] = "Nissan Finance стандарт";
credit_types[3] = "Nissan Finance - без первого взноса";
credit_types[4] = "Nissan Finance - простые документы";
credit_types[5] = "Nissan Finance спецпредложение 2.9%";

var years = new Array();


// rassrochka
years[1]  = new Array();

years[1][1] = new Array();
years[1][1][1] = 1;
years[1][1][2] = '1 год';

years[1][2] = new Array();
years[1][2][1] = 2;
years[1][2][2] = '2 года';

years[1][3] = new Array();
years[1][3][1] = 3;
years[1][3][2] = '3 года';


// classic
years[2] = new Array();

years[2][1] = new Array();
years[2][1][1] = 1;
years[2][1][2] = '1 год';

years[2][2] = new Array();
years[2][2][1] = 2;
years[2][2][2] = '2 года';

years[2][3] = new Array();
years[2][3][1] = 3;
years[2][3][2] = '3 года';

years[2][4] = new Array();
years[2][4][1] = 4;
years[2][4][2] = '4 года';

years[2][5] = new Array();
years[2][5][1] = 5;
years[2][5][2] = '5 лет';


// no first payment
years[3] = new Array();

years[3][1] = new Array();
years[3][1][1] = 1;
years[3][1][2] = '1 год';

years[3][2] = new Array();
years[3][2][1] = 2;
years[3][2][2] = '2 года';

years[3][3] = new Array();
years[3][3][1] = 3;
years[3][3][2] = '3 года';


// simple docs
years[4] = new Array();

years[4][1] = new Array();
years[4][1][1] = 1;
years[4][1][2] = '1 год';

years[4][2] = new Array();
years[4][2][1] = 2;
years[4][2][2] = '2 года';

years[4][3] = new Array();
years[4][3][1] = 3;
years[4][3][2] = '3 года';


// special offer
years[5]  = new Array();

years[5][1] = new Array();
years[5][1][1] = 2;
years[5][1][2] = '2 года';

years[5][2] = new Array();
years[5][2][1] = 3;
years[5][2][2] = '3 года';

years[5][3] = new Array();
years[5][3][1] = 4;
years[5][3][2] = '4 года';



var first_pay = new Array();

first_pay[1] = new Array(30, 40, 50);

first_pay[2] = new Array(10, 15, 20, 25, 30, 35, 40, 45, 50);

first_pay[3] = new Array();
first_pay[3][0] = 0;

first_pay[4] = new Array(20, 25, 30, 35, 40, 45, 50);

first_pay[5] = new Array(20, 30, 40, 50);


var insurance = new Array();
insurance[1] = 9.99;
insurance[2] = 8.40;
insurance[3] = 8.40;
insurance[4] = 8.40;
insurance[5] = 8.40;


var rates = new Array();

rates[1] = new Array();
rates[1][1] = 0;

rates[2] = new Array();
rates[2][1] = 7.9;
rates[2][2] = 8.4;

rates[3] = new Array();
rates[3][1] = 10.5;

rates[4] = new Array();
rates[4][1] = 10.4;

rates[5] = new Array();
rates[5][1] = 2.9;
rates[5][2] = 4.4;
rates[5][3] = 6.9;


var ctype = 0;
var cbank = 0;


var OneChoice = true;

////////////////////////////////////////////////////////


/* 
 * Cross-browser event handling, by Scott Andrew
 */

function addEvent(element, eventType, lamdaFunction, useCapture) 
{
    if (element)
    {
        if (element.addEventListener) 
        {
            element.addEventListener(eventType, lamdaFunction, useCapture);
            return true;
        } 
        else if (element.attachEvent) 
        {
            var r = element.attachEvent('on' + eventType, lamdaFunction);
            return r;
        } 
        else 
        {
            return false;
        }
    }
}

function drawOneChoice(value)
{
    // <span id="first_pay" class="leadred" style="padding-left:5pt">0</span><span  class="leadred">%</span>

    var d = document.createElement("span");
    d.setAttribute("id", "first_pay");
    d.setAttribute("class", "leadred");
    d.setAttribute("style", "");
//    d.appendChild(document.createTextNode(value));
    d.innerHTML = value;

    var p = document.createElement("span");
    p.setAttribute("class", "leadred");
    p.appendChild(document.createTextNode("%"));

    var c = document.getElementById("firstpay_container");
    c.innerHTML = '';
    c.appendChild(d);
    c.appendChild(p);

    OneChoice = true;
    first_pay_one_value = value;
}



function drawMultiChoice(value, start)
{              

    // <select name="first_pay" id="first_pay" style="width:220px; border:0px" onChange="calcResult();">
    //     <option value="...">...</option>
    //     ......
    //     <option value="...">...</option>
    // </select>
    // <span  class="leadred">%</span>


    var d = document.createElement("select");
    d.setAttribute("id", "first_pay");
    d.setAttribute("name", "first_pay");
    d.setAttribute("class", "leadred");
    d.setAttribute("style", "width: 62px;");
    for (i = start; i < value.length; i++) 
    {
        var o = document.createElement("option");
        o.setAttribute("value", value[i]);
        o.appendChild(document.createTextNode(value[i] + " %"));
        d.appendChild(o);
    }

    addEvent(d, 'change', setFirstPay, false);
    

    var c = document.getElementById("firstpay_container");
    c.innerHTML = '';
    c.appendChild(d);

    OneChoice = false;
}



function clearAll()
{

    clearOptions(document.getElementById("credit_lasting"));
    document.getElementById("credit_lasting").options[0] = new Option('Выберите срок кредита', 0);

    document.getElementById("firstpay_container").innerHTML = '';
    
    if (document.getElementById("first_pay"))
    {
        document.getElementById("first_pay").innerHTML = "0";
    }

    document.getElementById("insurance_rate").innerHTML = "0";
    document.getElementById("insurance_price").innerHTML = "0";

    document.getElementById("firstpay_price").innerHTML = "0";

    document.getElementById("month_payment").innerHTML = "0";
    document.getElementById("entire_summ").innerHTML = "0";
}



function clearOptions(cb)
{
  if (cb.options.length > 0)
  {
    for (i = cb.options.length-1; i >= 0; i--)
    {
      cb.options[i] = null;
    }
  }
}



function loadCreditTypesList()
{
  var cb_types = document.getElementById("credit_type");

  for (i = 1; i < credit_types.length; i++) cb_types.options[i] = new Option(credit_types[i], i);
  clearAll();

  findObj("base_price").focus();
}



function setLasting()
{

    var ctype = document.getElementById("credit_type").value;
    var cb_lasting = document.getElementById("credit_lasting");
    var baseprice = parseInt(document.getElementById("base_price").value);

    clearAll();

    var counter = 1;

    for (i = 1; i < years[ctype].length; i++) 
    {
      cb_lasting.options[counter] = new Option(years[ctype][i][2], years[ctype][i][1]);
      counter++;
    }

    var ins_price = (Math.round(baseprice * insurance[ctype])) / 100;

    var r1 = (ins_price * 100) % 10;
    if (!r1 && (ins_price % 1)) ins_price = String(ins_price) + "0";
    
    document.getElementById("insurance_rate").innerHTML = insurance[ctype];
    document.getElementById("insurance_price").innerHTML = ins_price;


    setFirstPayIndirect(); 
}



function setFirstPayIndirect()
{

    var ctype = document.getElementById("credit_type").value;

    if (parseInt(ctype))
    {
        if (first_pay[ctype].length > 1)
        {
            drawMultiChoice(first_pay[ctype], 0);
        }
        else
        {
            drawOneChoice(first_pay[ctype][0]);
        }

        setFirstPay();
    }
}



function setFirstPay()
{

  var ctype = document.getElementById("credit_type").value;

  var baseprice = parseInt(document.getElementById("base_price").value);

/* debugmans code begin */  
  
  if (parseInt(ctype) == 1)
  {
  	var cl = document.getElementById("credit_lasting").value;
  	if (cl == 3) drawOneChoice(first_pay[ctype][0]);
  	if (cl == 2) drawMultiChoice(first_pay[ctype], 1);
  	if (cl == 1) drawMultiChoice(first_pay[ctype], 0);
  }
  
  if (parseInt(ctype) == 5)
  {
  	var cl = document.getElementById("credit_lasting").value;
  	if (cl == 4) drawOneChoice(first_pay[ctype][0]);
  	if (cl == 3) drawOneChoice(first_pay[ctype][1]);
  	if (cl == 2) drawMultiChoice(first_pay[ctype], 2);
  }
  
/*  debugmans code end  */  
  
  if (isNaN(baseprice)) return;

  if (OneChoice)
  {

      if (parseInt(ctype))
      {
          var fpy_price = (Math.round(baseprice * first_pay_one_value)) / 100;

          var r2 = (fpy_price * 100) % 10;
          if (!r2 && (fpy_price % 1)) fpy_price = String(fpy_price) + "0";
			//alert(cl);
          document.getElementById("first_pay").innerHTML = first_pay_one_value;
          document.getElementById("firstpay_price").innerHTML = fpy_price;
			//alert(cl);
          calcResult();
      }
      else
      {
          clearAll();
      }
  }
  else
  {
      if (parseInt(ctype))
      {

          var fpy_price = (Math.round(baseprice * document.getElementById("first_pay").value)) / 100;

          var r2 = (fpy_price * 100) % 10;
          if (!r2 && (fpy_price % 1)) fpy_price = String(fpy_price) + "0";

          document.getElementById("firstpay_price").innerHTML = fpy_price;

          calcResult();
      }
  }
  
}



function calcResult()
{

  var ctype       = document.getElementById("credit_type").value;
  var baseprice   = parseInt(document.getElementById("base_price").value);


  
  var credit_long = document.getElementById("credit_lasting").value * 12; //months
  var credit_rate;
  
  if (!(!!rates[ctype])) return;
  
  if (parseInt(ctype) == 1)
  {
      if (credit_long <= 36)
      credit_rate = rates[ctype][1];
      else
      credit_rate = rates[ctype][2];
  }
  else if (parseInt(ctype) == 5)
  {
      if (credit_long <= 24)
      credit_rate = rates[ctype][1];
      else if (credit_long == 36)
      credit_rate = rates[ctype][2];
      else
      credit_rate = rates[ctype][3];
      
      //alert(credit_rate);
  }
  else
  {
      credit_rate = rates[ctype][1];
  }

  if (!(ctype > 0) || isNaN(baseprice) || (credit_long == 0))
  {
      document.getElementById("month_payment").innerHTML = '0';
      document.getElementById("entire_summ").innerHTML = '0';
      return;
  }


  
  if (OneChoice)
  {
      var firstpay    = baseprice * first_pay_one_value / 100;
  }
  else
  {
      var firstpay    = baseprice * document.getElementById("first_pay").value / 100;
  }

  
  
  var credit_summ = baseprice - firstpay;

  if (credit_rate > 0)
  {
    var a1 = Math.pow(1 + credit_rate /12 /100, credit_long);
    var a2 = 1 - 1 /a1;                                      
    var a3 = credit_rate /12 /100 /a2;                       
    var a4 = Math.round(credit_summ * a3 * 100) / 100;       
  }
  else
  {
    var a4 = Math.round(credit_summ /credit_long * 100) / 100;
  }

  var r = (a4 * 100) % 10;
  if (!r && (a4 % 1))
  {
    a4 = String(a4) + "0";
  }
  
  document.getElementById("month_payment").innerHTML = a4;
  document.getElementById("entire_summ").innerHTML = Math.round(a4 * credit_long + firstpay);

}

