
  $(function(){

 // Данные по кредитам ('id', 'срок кредита от', 'срок кредита до', 'мин. сумма', 'макс. сумм', '% ставка')
    appearance_value = new Array();

    appearance_value['1'] = new Array('2', '60', '10000', '500000', '17', '', '1');
appearance_value['2'] = new Array('2', '60', '10000', '500000', '19', '', '1');
appearance_value['3'] = new Array('2', '60', '10000', '500000', '20', '', '1');
appearance_value['4'] = new Array('2', '60', '10000', '350000', '16', '', '1');
appearance_value['5'] = new Array('2', '12', '10000', '60000', '17', '', '1');
appearance_value['6'] = new Array('2', '24', '10000', '80000', '17', '', '1');
appearance_value['7'] = new Array('2', '24', '10000', '100000', '17', '', '1');
appearance_value['8'] = new Array('2', '60', '10000', '500000', '18', '', '1');
appearance_value['9'] = new Array('2', '60', '10000', '350000', '18', '', '1');
appearance_value['10'] = new Array('36', '60', '10000', ' 2500000', '15.5', '20', '1');
appearance_value['11'] = new Array('1', '120', '200000', '15000000', '12.95', '20', '1');



    errors = new Array;
    errors['false_credit_summ'] = "Вы не указали сумму кредита.";
    errors['min_credit_summ'] = "Сумма кредита не может быть меньше <nobr>& руб.</nobr>";
    errors['max_credit_summ'] = "Сумма кредита не может быть больше <nobr>& руб.</nobr>";
    errors['flase_initial_instalment'] = "Вы не указали сумму первоначального взноса.";
    errors['min_initial_instalment'] = "Сумма пероначального взноса не может быть меньше 20% (<nobr>& руб.</nobr>) от суммы кредита";
    errors['max_initial_instalment'] = "Сумма пероначального взноса не может быть больше суммы кредита";

    errors['flase_credit_period'] = "Вы не указали срок кредита.";
    errors['min_credit_period'] = "Срок кредита не может быть меньше & мес.";
    errors['max_credit_period'] = "Срок кредита не может быть больше & мес.";


 // Глобальные значения
    var min_credit_period = 0;
    var max_credit_period = 0;
    var min_credit_summ = 0;
    var max_credit_summ = 0;
    var discount_rate = 0;

 // Разбиваем данные по кредиту 
    function split_array(cur_id) {
      min_credit_period = parseInt(appearance_value[cur_id][0]);
      max_credit_period = parseInt(appearance_value[cur_id][1]);
      min_credit_summ = parseInt(appearance_value[cur_id][2]);
      max_credit_summ = parseInt(appearance_value[cur_id][3]);
      discount_rate = appearance_value[cur_id][4];
      percent = parseInt(appearance_value[cur_id][5]);
      discount_rate_show = parseInt(appearance_value[cur_id][6]);
    }


    $(".opk .appearance select").change(function(){ 
      cur_id = $(this).val();
      a_list = $(".opk .appearance ul").get();
      for (var i = 0; i < a_list.length; i++) {
          cur_el = $(a_list[i]);
          if ($(cur_el).hasClass("g"+cur_id)) {
            $(cur_el).removeClass("none");
          } else {
            $(cur_el).addClass("none");
          }
      }

      $(".opk .appearance ul li input#i"+cur_id).attr("checked", "checked");

      split_array(cur_id);
      opk();
      return false;
    });

    $(".opk .appearance ul li input").click(function(){ 
      cur_id = $(this).val();
      split_array(cur_id);
      opk();



    });


    

    function opk() {
      $("div.opk .discount_rate span").html( discount_rate ); 
      opk_monthly_payment();
      opk_result();
      if (discount_rate_show) {
         $("div.opk .discount_rate").removeClass("none"); 
      } else {
         $("div.opk .discount_rate").addClass("none");
      }

    }

    $(".opk").submit(function(){
     opk_monthly_payment(1);
     return false;
    });

    $(".opk .credit_period input").keypress(function(){ opk_result();  return ((event.keyCode >= 48) && (event.keyCode <= 57)); });
    $(".opk .credit_summ input").keypress(function(){ opk_result();  return ((event.keyCode >= 48) && (event.keyCode <= 57)); });

    $(".opk .credit_summ input").keyup(function(){ 
      var credit_summ = parseInt( $(".opk .credit_summ input").val().replace(/ /g, "" )  );
      $(".opk .credit_summ input").attr("value", payment_format(credit_summ, 1));
    });



    function opk_result() {
      var credit_period		= parseInt( $(".opk .credit_period input").val() );
      var credit_summ		= parseInt( $(".opk .credit_summ input").val().replace(/ /g, "" ) );



      if (credit_summ && credit_period) {
         $(".opk .result input").attr("disabled", false) ; 
      } else {
         $(".opk .result input").attr("disabled", true); 
      }
      
    }


    function opk_monthly_payment(show) {
        var credit_period	= parseInt( $(".opk .credit_period input").val() );
        var credit_summ		= parseInt( $(".opk .credit_summ input").val().replace(/ /g, "" ) );
        var error 		= 0;


        if (!credit_period) {
           if (show) $(".opk .credit_period .name i").html( errors['false_credit_period']  );
           error = 1;
        } else if (credit_period < min_credit_period) {
           if (show) $(".opk .credit_period .name i").html( errors['min_credit_period'].replace(/&/g, min_credit_period )  );
           error = 1;
        } else if (credit_period > max_credit_period) {
           if (show) $(".opk .credit_period .name i").html( errors['max_credit_period'].replace(/&/g, max_credit_period )  );
           error = 1;
        } else {
           if (show) $(".opk .credit_period .name i").html("");
        }
        if (!error) {
           if (!credit_summ) {
              if (show) $(".opk .credit_summ .name i").html( errors['false_credit_summ']  );
              error = 1;
           } else if (credit_summ < min_credit_summ) {
              if (show) $(".opk .credit_summ .name i").html( errors['min_credit_summ'].replace(/&/g, payment_format(min_credit_summ) )  );
              error = 1;
           } else if (credit_summ > max_credit_summ) {
              if (show) $(".opk .credit_summ .name i").html( errors['max_credit_summ'].replace(/&/g, payment_format(max_credit_summ) )  );
              error = 1;
           } else {
              if (show) $(".opk .credit_summ .name i").html("");
           }
        }
        if (!error) {
           var ps = discount_rate/100/12;
           var monthly_payment =  credit_summ * (ps  / (1 -                  Math.pow(   ( 1 + ps)  ,    (-(credit_period-1))              )                 )  )  ;
           $(".opk .monthly_payment span").html( payment_format( monthly_payment ) );
           $(".opk .table-result").removeClass("none") ; 
        } else {
           $(".opk .table-result").addClass("none") ; 
        }

        return false;

    }




















    $(".nav a").click(function(){
      if ($(this).parent().attr('class') == "hover") return false;
      cur_id = $(this).attr('id');
      a_list = $(".nav a").get();
      for (var i = 0; i < a_list.length; i++) {
          cur_el = $(a_list[i]).parent();
          cur_class = $(a_list[i]).attr('class');
          if ($(cur_el).hasClass("hover")) {
            $(cur_el).removeClass("hover");
            $("div."+cur_class).addClass("none");
          } else if ( $(a_list[i])[0] == $(this)[0] ) {
            $(cur_el).addClass("hover");
            $("div."+cur_class).removeClass("none");
          }
      }

      a_list = $(".opk .appearance a").get().reverse();
      for (var i = 0; i < a_list.length; i++) {
          cur_el = $(a_list[i]).parent();
          if ($(cur_el).hasClass("hover")) {
            $(cur_el).removeClass("hover");
          } 
      }
      $(".opk .details").addClass("none");

      split_array(cur_id);

      avto();
      ipoteka();
      return false;
    });

    function payment_format(price, r) {
      if (!r) price = Math.round(price/50)*50;
      decimals = 0;
      dec_point = 0;
      thousands_sep = " ";

      number = price;
       var n = !isFinite(+number) ? 0 : +number, 
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;
        };
        // Fix for IE parseFloat(0.55).toFixed(0) = 0;
        s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
        if (s[0].length > 3) {
            s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
        }
        if ((s[1] || '').length < prec) {
            s[1] = s[1] || '';
            s[1] += new Array(prec - s[1].length + 1).join('0');
        }
        return s.join(dec);
    }








    function avto() {
      $("div.avto .discount_rate span").html( discount_rate ); 
      avto_result();

      if (discount_rate_show) {
         $("div.avto .discount_rate").removeClass("none"); 
      } else {
         $("div.avto .discount_rate").addClass("none");
      }

    }

    $(".avto").submit(function(){
     avto_monthly_payment(1);
     return false;
    });

    $(".avto .credit_period input").keypress(function(){ avto_result();  return ((event.keyCode >= 48) && (event.keyCode <= 57)); });
    $(".avto .credit_summ input").keypress(function(){ avto_result();  return ((event.keyCode >= 48) && (event.keyCode <= 57)); });
    $(".avto .initial_instalment input").keypress(function(){ avto_result();  return ((event.keyCode >= 48) && (event.keyCode <= 57)); });

    $(".avto .credit_summ input").keyup(function(){ 
      var credit_summ = parseInt( $(".avto .credit_summ input").val().replace(/ /g, "" )  );
      $(".avto .credit_summ input").attr("value", payment_format(credit_summ, 1));
    });

    $(".avto .initial_instalment input").keyup(function(){ 
      var initial_instalment = parseInt( $(".avto .initial_instalment input").val().replace(/ /g, "" )  );
      $(".avto .initial_instalment input").attr("value", payment_format(initial_instalment, 1));
    });



    function avto_result() {
      var credit_period		= parseInt( $(".avto .credit_period input").val() );
      var credit_summ		= parseInt( $(".avto .credit_summ input").val().replace(/ /g, "" ) );
      var initial_instalment	= parseInt( $(".avto .initial_instalment input").val().replace(/ /g, "" ) )  ;
      

      if (credit_period && credit_summ && initial_instalment) {
         $(".avto .result input").attr("disabled", false) ; 
      } else {
         $(".avto .result input").attr("disabled", true); 
      }
    }


    function avto_monthly_payment(show) {
        var credit_period	= parseInt( $(".avto .credit_period input").val() );
        var credit_summ		= parseInt( $(".avto .credit_summ input").val().replace(/ /g, "" ) );
        var credit_summ_percent = credit_summ*0.2;
        var initial_instalment	= parseInt( $(".avto .initial_instalment input").val().replace(/ /g, "" ) )  ;
        var error 		= 0;

        if (!credit_period) {
           if (show) $(".avto .credit_period .name i").html( errors['false_credit_period']  );
           error = 1;
        } else if (credit_period < min_credit_period) {
           if (show) $(".avto .credit_period .name i").html( errors['min_credit_period'].replace(/&/g, min_credit_period )  );
           error = 1;
        } else if (credit_period > max_credit_period) {
           if (show) $(".avto .credit_period .name i").html( errors['max_credit_period'].replace(/&/g, max_credit_period )  );
           error = 1;
        } else {
           if (show) $(".avto .credit_period .name i").html("");
        }


        if (!error) {
           if (!credit_summ) {
              if (show) $(".avto .credit_summ .name i").html( errors['false_credit_summ']  );
              error = 1;
           } else if (credit_summ < min_credit_summ) {
              if (show) $(".avto .credit_summ .name i").html( errors['min_credit_summ'].replace(/&/g, payment_format(min_credit_summ) )  );
              error = 1;
           } else if (credit_summ > max_credit_summ) {
              if (show) $(".avto .credit_summ .name i").html( errors['max_credit_summ'].replace(/&/g, payment_format(max_credit_summ) )  );
              error = 1;
           } else {
              if (show) $(".avto .credit_summ .name i").html("");
           }
        }
        if (!error) {
           if (!initial_instalment) {
              if (show) $(".avto .initial_instalment .name i").html( errors['flase_initial_instalment']  );
              error = 1;
           } else if (initial_instalment < credit_summ_percent) {
              if (show) $(".avto .initial_instalment .name i").html( errors['min_initial_instalment'].replace(/&/g, payment_format(credit_summ_percent) )  );
              error = 1;
           } else if (initial_instalment >= credit_summ) {
              if (show) $(".avto .initial_instalment .name i").html( errors['max_initial_instalment']  );
              error = 1;
           } else {
              if (show) $(".avto .initial_instalment .name i").html( "" );
           }
        }


        if (!error) {
           var ps = discount_rate/100/12;
           var s = credit_summ - initial_instalment;
           var monthly_payment =  s * (ps  / (1 -                  Math.pow(   ( 1 + ps)  ,    (-credit_period)              )                 )  )  ;
           $(".avto .credit_size span").html( payment_format( s ) );
           $(".avto .monthly_payment span").html( payment_format( monthly_payment ) );
           $(".avto .table-result").removeClass("none") ; 
        } else {
         $(".avto .table-result").addClass("none") ; 
        }
        return false;

    }




















    function ipoteka() {
      $("div.ipoteka .discount_rate span").html( discount_rate ); 
      ipoteka_write_credit_period( min_credit_period );
      ipoteka_result();

      if (discount_rate_show) {
         $("div.ipoteka .discount_rate").removeClass("none"); 
      } else {
         $("div.ipoteka .discount_rate").addClass("none");
      }

    }



    $(".ipoteka").submit(function(){
     ipoteka_monthly_payment(1);
     return false;
    });

    $(".ipoteka .credit_period input").keypress(function(){ avto_result();  return ((event.keyCode >= 48) && (event.keyCode <= 57)); });
    $(".ipoteka .credit_summ input").keypress(function(){ ipoteka_result(); return ((event.keyCode >= 48) && (event.keyCode <= 57)); });
    $(".ipoteka .initial_instalment input").keypress(function(){ ipoteka_result(); return ((event.keyCode >= 48) && (event.keyCode <= 57)); });


    $(".ipoteka .credit_summ input").keyup(function(){ 
      var credit_summ = parseInt( $(".ipoteka .credit_summ input").val().replace(/ /g, "" )  );
      $(".ipoteka .credit_summ input").attr("value", payment_format(credit_summ, 1));
    });

    $(".ipoteka .initial_instalment input").keyup(function(){ 
      var initial_instalment = parseInt( $(".ipoteka .initial_instalment input").val().replace(/ /g, "" )  );
      $(".ipoteka .initial_instalment input").attr("value", payment_format(initial_instalment, 1));
    });



    function ipoteka_result() {
      var credit_period		= parseInt( $(".ipoteka .credit_period input").val() );
      var credit_summ		= parseInt( $(".ipoteka .credit_summ input").val().replace(/ /g, "" ) );
      var initial_instalment	= parseInt( $(".ipoteka .initial_instalment input").val().replace(/ /g, "" ) )  ;

      if (credit_period && credit_summ && initial_instalment) {
         $(".ipoteka .result input").attr("disabled", false) ; 
      } else {
         $(".ipoteka .result input").attr("disabled", true); 
      }
    }


    function ipoteka_monthly_payment(show) {
        var credit_period	= parseInt( $(".ipoteka .credit_period input").val() );
        var credit_summ		= parseInt( $(".ipoteka .credit_summ input").val().replace(/ /g, "" ) );
        var credit_summ_percent = credit_summ*0.2;
        var initial_instalment	= parseInt( $(".ipoteka .initial_instalment input").val().replace(/ /g, "" ) )  ;
        var error 		= 0;
        if (!credit_period) {
           if (show) $(".ipoteka .credit_period .name i").html( errors['false_credit_period']  );
           error = 1;
        } else if (credit_period < min_credit_period) {
           if (show) $(".ipoteka .credit_period .name i").html( errors['min_credit_period'].replace(/&/g, min_credit_period )  );
           error = 1;
        } else if (credit_period > max_credit_period) {
           if (show) $(".ipoteka .credit_period .name i").html( errors['max_credit_period'].replace(/&/g, max_credit_period )  );
           error = 1;
        } else {
           if (show) $(".ipoteka .credit_period .name i").html("");
        }


        if (!error) {
           if (!credit_summ) {
              if (show) $(".ipoteka .credit_summ .name i").html( errors['false_credit_summ']  );
              error = 1;
           } else if (credit_summ < min_credit_summ) {
              if (show) $(".ipoteka .credit_summ .name i").html( errors['min_credit_summ'].replace(/&/g, payment_format(min_credit_summ) )  );
              error = 1;
           } else if (credit_summ > max_credit_summ) {
              if (show) $(".ipoteka .credit_summ .name i").html( errors['max_credit_summ'].replace(/&/g, payment_format(max_credit_summ) )  );
              error = 1;
           } else {
              if (show) $(".ipoteka .credit_summ .name i").html("");
           }
        }
        if (!error) {
           if (!initial_instalment) {
              if (show) $(".ipoteka .initial_instalment .name i").html( errors['flase_initial_instalment']  );
              error = 1;
           } else if (initial_instalment < credit_summ_percent) {
              if (show) $(".ipoteka .initial_instalment .name i").html( errors['min_initial_instalment'].replace(/&/g, payment_format(credit_summ_percent) )  );
              error = 1;
           } else if (initial_instalment >= credit_summ) {
              if (show) $(".ipoteka .initial_instalment .name i").html( errors['max_initial_instalment']  );
              error = 1;
           } else {
              if (show) $(".ipoteka .initial_instalment .name i").html( "" );
           }
        }


        if (!error) {
           var ps = discount_rate/100/12;
           var s = credit_summ - initial_instalment;
           var monthly_payment =  s * (ps  / (1 -                  Math.pow(   ( 1 + ps)  ,    (-credit_period)              )                 )  )  ;
           $(".ipoteka .credit_size span").html( payment_format( s ) );
           $(".ipoteka .monthly_payment span").html( payment_format( monthly_payment ) );
           $(".ipoteka .table-result").removeClass("none") ; 
        } else {
         $(".ipoteka .table-result").addClass("none") ; 
        }
        return false;

    }


    function ipoteka_write_credit_period(value) {
      $(".ipoteka .credit_period .name span").html(  value  );
      $(".ipoteka .credit_period .min span").html( min_credit_period );
      $(".ipoteka .credit_period .max span").html( max_credit_period );
    }



   split_array(1);
   opk();










  });



