﻿/* KALKULATOR KREDYTOWY */

function D(o){return document.getElementById(o);}

function kalkinit2(){
	if (D("ctl00_cntKalkulatory_kwotausera")){
	    if (D("ctl00_cntKalkulatory_kwotausera").value!=""){D("kwota").value=D("ctl00_cntKalkulatory_kwotausera").value}
	}
}

function WyliczRaty() {
	var kwota=D("kwota");
	var stopa=D("stopa");
	var okres=D("okres");
	kwota.value = kwota.value.replace(/,/,".");
	stopa.value = stopa.value.replace(/,/,".");
	okres.value = okres.value.replace(/,/,".");
	
	pattern=/^[0-9]+((\.|,)[0-9]+)?$/;
	
	if ( kwota.value==0 || pattern.test(kwota.value)==false) 
		alert("Wprowadź poprawną wartość kwoty kredytu!");    
	else {
		if ( stopa.value==0 || pattern.test(stopa.value)==false ) 
			alert("Wprowadź poprawną wartość oprocentowania nominalnego!");
		else {
			pattern=/^[0-9]+$/; 
			if ( okres.value==0 || pattern.test(okres.value)==false ) 
				alert("Wprowadź poprawną wartość okresu kredytowania!");
			else {
				if (D("raty_rowne").checked) {RatyRowne();} else {RatyMalejace();}
			}
		}
	}
}

  function RatyRowne() {
    var kwota=D("kwota");
    var stopa=D("stopa");
    var okres=D("okres");
    
    var kosztkredytu=D("kosztkredytu");
    var odsetki=D("odsetki");
    if (D("okres_rodzaj0").checked) {okres=okres.value;} else {okres=okres.value / 12;}

    if (D("kapitalizacja0").checked) {liczba_rat = 12;rps = okres * liczba_rat;}
    if (D("kapitalizacja1").checked) {liczba_rat = 4;rps = okres * liczba_rat;}
    if (D("kapitalizacja2").checked) {liczba_rat = 1;rps = okres * liczba_rat;}
    if (D("kapitalizacja3").checked) {liczba_rat = 1 / okres;rps = 1;}
    
    wyn1 = (1 - 1 / Math.pow(1 + ((stopa.value / 100) / liczba_rat), rps)) / ((stopa.value / 100) / liczba_rat);
    kosztkredytu.value = round((kwota.value / wyn1) * rps);
    odsetki.value = round(((kwota.value / wyn1) * rps) - kwota.value);

    htmlstr = "<TABLE  class='kalkulator'><thead><TR>";
    htmlstr += "  <TD>L.p.</TD>";
    htmlstr += "  <TD>Rata</TD>";
    htmlstr += "  <TD>Odsetki</TD>";
    htmlstr += "  <TD>Kapitał</TD>";
    htmlstr += "</TR></thead><tbody>"
    
    rsplata = kwota.value / wyn1;
    plat_total = 0;
    suma_ods = 0;
    kredyt = 0;
    for (i = 1 ; i <= rps ; i++) {
      if (i % 2) {
        htmlstr += "<TR>";
      } else {
        htmlstr += "<TR class='alter'>";
      }
      htmlstr += "<TD>" + i + ".</TD>";

      rata_kap = (1 / (Math.pow(1 + ((stopa.value / 100) / liczba_rat), (rps - i) + 1))) * rsplata;
      odsetki = rsplata-rata_kap;
      suma_ods += odsetki;
      plat_total += rsplata;
      kredyt += rata_kap;
      
      htmlstr += "<TD>" + round(rsplata) + "</TD>";
      htmlstr += "<TD>" + round(odsetki) + "</TD>";
      htmlstr += "<TD>" + round(rata_kap) + "</TD>";
      htmlstr += "</TR>";
    }
    htmlstr += "</tbody><tfoot><TR>";
    htmlstr += "<TD>Razem:</TD>";
    plat_total = Number(kredyt) + Number(suma_ods);
    htmlstr += "  <TD>" + round(plat_total) + "</TD>";
    htmlstr += "  <TD>" + round(suma_ods) + "</TD>";
    htmlstr += "  <TD>" + round(kredyt) + "</TD>";
    htmlstr += "</TR></tfoot></TABLE>";

    D("ctl00_cntKalkulatory_divKalkulatorKredytowy").style.height = 300 + (rps+3)*21 + 'px';
    D("tabela").style.height = (rps+3)*21 + 'px';
    D("tabela").innerHTML = htmlstr;
  }

  function RatyMalejace() {
	var kwota=D("kwota");
    var stopa=D("stopa");
    var okres=D("okres");
    var kosztkredytu=D("kosztkredytu");
    var odsetki=D("odsetki");

    stopa = stopa.value;
    if (D("okres_rodzaj0").checked) {okres = okres.value;} else {okres = okres.value / 12;}
    if (D("kapitalizacja0").checked) {lrat = 12;} else {lrat=4;}
    
    kredyt = kwota.value;

    if (D("kapitalizacja0").checked) {liczba_rat = 12; rps = okres * liczba_rat;}
    if (D("kapitalizacja1").checked) {liczba_rat = 4; rps = okres * liczba_rat;}
    if (D("kapitalizacja2").checked) {liczba_rat = 1; rps = okres * liczba_rat;}
    if (D("kapitalizacja3").checked) {liczba_rat = 1 / okres; rps = 1;}

    w_raty = kredyt / rps;
    suma_ods = 0;
    htmlstr = "<div>";
    htmlstr += "<TABLE class='kalkulator'>";
    htmlstr += "<thead><TR>";
    htmlstr += "  <TD>L.p.</TD>";
    htmlstr += "  <TD>Rata</TD>";
    htmlstr += "  <TD>Odestki</TD>";
    htmlstr += "  <TD>Kapitał</TD>";
    htmlstr += "</TR></thead><tbody>"
    for (i = 1 ; i <= rps ; i++) {
      if (i % 2) {
        htmlstr += "<TR>";
      } else {
        htmlstr += "<TR class='alter'>";
      }
      htmlstr += "<TD>" + i + ".</TD>";
      ods = ((stopa / 100) / lrat) * (kredyt - (w_raty * (i - 1)));
      suma_ods += ods;
      do_zaplaty = w_raty + ods;
      htmlstr += "<TD>" + round(do_zaplaty) + "</TD>";
      htmlstr += "<TD>" + round(ods) + "</TD>";
      htmlstr += "<TD>" + round(w_raty) + "</TD>";
      htmlstr += "</TR>"
    }
    htmlstr += "</tbody><tfoot><TR>";
    htmlstr += "<TD>Razem:</TD>";
    plat_total = Number(kredyt) + Number(suma_ods);
    htmlstr += "  <TD>" + round(plat_total) + "</TD>";
    htmlstr += "  <TD>" + round(suma_ods) + "</TD>";
    htmlstr += "  <TD>" + round(kredyt) + "</TD>";
    htmlstr += "</TR></tfoot>";
    htmlstr += "</TABLE>";
    htmlstr += "</div>";
    
    kosztkredytu.value = round(plat_total);
    odsetki.value = round(suma_ods);

    D("ctl00_cntKalkulatory_divKalkulatorKredytowy").style.height = 300 + (rps+3)*21 + 'px';
    D("tabela").style.height = (rps+3)*21 + 'px';
    D("tabela").innerHTML = htmlstr;
  }
  
          function round(num, mp) {
          if (mp == null)
            mp = 2;

          mpm = Math.pow(10, mp);
          if (num < 0) {
            num = -num;
            sign = "-";
          } else {
            sign = "";
          }
          pomnum = num * mpm;
          pomnum = Math.ceil(pomnum - 0.5);
          j = -1;
          retstring = "";
          while  ((pomnum > 0) || (mp > 0)) {
            cyfra = (pomnum % 10);
            retstring = cyfra + retstring;
            pomnum = pomnum / 10;
            pomnum = Math.floor(pomnum);
            if (j >= 0) {
              j++;
              if (((j % 3) == 0) && pomnum)
                retstring = " " + retstring;
            } else {
              mp--;
              if (mp == 0) {
                retstring = "." + retstring;
                j = 0;
              }
            }
          }
          if (retstring != 0)
            return sign + retstring;
          else
            return retstring;
        }
