
function formatPrice(price){
  var sep=' ';
  var place = 3;
  
  var originalPrice = price;
  
  var ar = new Array();
  var i = 0;
  while (price > 0 && i<10){
     var oldPrice = price;
     price = Math.round(price / 1000 -0.5);
     ar[i++] = (oldPrice-price*1000);
     oldPrice = price;
  }
    
  var formatedPrice = "";  
  for (var i=ar.length-1; i>=0; i--)
  {
    var addStr = ""+ar[i]; 
    if (i != ar.length-1){
      if ( addStr.length == 0 ) addStr = "000";
      if ( addStr.length == 1 ) addStr = "00"+addStr;
      if ( addStr.length == 2 ) addStr = "0"+addStr;
    }
    formatedPrice += " " + addStr;
  }
  
  return formatedPrice;
  
}

var PenzijniKalkulator = {

  recount : function (){
    var increaseYear = 0.03; // procenta / 100
    var curr = " Kč";
    
    
    var elDeposit = document.getElementById('penzijni_deposit');
    var elAgeStart = document.getElementById('penzijni_age_start');
    var elAgeStop = document.getElementById('penzijni_age_stop');
    
    var elSavedCost = document.getElementById('penzijni_saved_cost');
    var elBenefit = document.getElementById('penzijni_benefit');
    var elBenefitInfo = document.getElementById('benefit_info');    
    
    var deposit = parseInt(elDeposit.value);
    var ageStart = parseInt(elAgeStart.value);
    var ageStop = parseInt(elAgeStop.value);
    
    var yearsLength = ageStop - ageStart;
    
    if (yearsLength<5) {
      yearsLength = 0;
      alert("Zadali jste délku pojištění méně než minimální dobu 5 let!");
    }
    
    monthBenefit = this.getMonthBenefit(deposit);
    
    elBenefit.value = monthBenefit + curr;
    
    var tmp = ( Math.pow( (1 + increaseYear), yearsLength) - 1 ) / increaseYear;
    
    var savedTotal = (12 * (deposit+monthBenefit) ) * (1 + increaseYear) * tmp ;

    elSavedCost.value = formatPrice(Math.round(savedTotal)) + curr; 
    
    var myTotal = 12 * deposit * yearsLength;
    
    elBenefitInfo.innerHTML = "Do spoření jste vložili <strong>"+formatPrice(Math.round(myTotal))+" Kč</strong>, obdrželi jste navíc <strong>"+formatPrice(Math.round(savedTotal-myTotal))+" Kč</strong>. ";

  },
  
  
  getMonthBenefit : function (savings){
    if ( savings < 100 ) return 0;
    else if ( savings < 150 ) return 50;
    else if ( savings < 200 ) return 70;
    else if ( savings < 250 ) return 90;
    else if ( savings < 300 ) return 105;
    else if ( savings < 350 ) return 120;
    else if ( savings < 400 ) return 130;
    else if ( savings < 450 ) return 140;
    else if ( savings < 500 ) return 145;
    else if ( savings >=500 ) return 150;
  
  }
  
}

// JavaScript Document
document.getElementsByClassName = function (classname) {
   var node = document.getElementsByTagName("body")[0];
   var a = [];
   var re = new RegExp('\\b' + classname + '\\b');
   var els = node.getElementsByTagName("*");
   for(var i=0,j=els.length; i<j; i++)
      if(re.test(els[i].className))a.push(els[i]);
   return a;
}


function toogleVisibilityByName(classToToogle, elemCaller, showState){

  var els = document.getElementsByClassName(classToToogle);
  for (var i=0; i<els.length; i++){
    el = els[i];
    if (elemCaller.checked == showState )
      setDisplayVisible(el);
    else
      el.style.display='none';    
     
  } 
  
}

function setDisplayVisible(el){
    try {
        el.style.display='table-row';
    } catch(e) { el.style.display = 'block'; }
}

function getDisplayProp(el){
  /***** IE Opera *****/
  if(el.currentStyle) {  
    return el.currentStyle.display;  
  }
  else {  
    /*****Firefox *****/  
    return getComputedStyle(el,'').getPropertyValue('display');  
  }
}


function addNextPersonPenz(elemCaller){
    var elP1 = document.getElementById('opravnena_osoba_1');
    var elP2 = document.getElementById('opravnena_osoba_2');
    var elP3 = document.getElementById('opravnena_osoba_3');
    
    
    if ( getDisplayProp(elP2)=="none" ){
      setDisplayVisible(elP2);
      return false;
      
    }
    if ( getDisplayProp(elP3)=="none" ){
      setDisplayVisible(elP3);     
    }
    
    elemCaller.style.display = "none";
    
    return false;
}


function penzijniPrevalidateStep2(){
    var elPjm1 = document.getElementById('penzijni_opravneni_prijmeni_1');
    
    var elPp1 = document.getElementById('penzijni_opravneni_podil_1');
    var elPp2 = document.getElementById('penzijni_opravneni_podil_2');
    var elPp3 = document.getElementById('penzijni_opravneni_podil_3');    
    
    if ( elPjm1.value != "" && (parseInt(elPp1.value)+parseInt(elPp2.value)+parseInt(elPp3.value) != 100) ){
      alert("Součet podílů oprávněných osob není 100%!");
      return false;      
    }

    return true;
}


function penzijniPrevalidateStep3(){
    var elAgree = document.getElementById('penzijni_souhlas');

    if ( elAgree.checked != true ){
      alert("Nelze dokončit bez souhlasu se zpracováním Vašich osobních dat!");
      return false;      
    }

    return true;
}

function stavebniPrevalidateStep3(){
    var elAgree = document.getElementById('stavebni_souhlas');

    if ( elAgree.checked != true ){
      alert("Nelze dokončit bez souhlasu se zpracováním Vašich osobních dat!");
      return false;      
    }

    return true;
}


function changeInputValueAndSubmit(formName, elementName, newValue){
   document.getElementById(elementName).value = newValue;
   document.getElementById(formName).submit();
}



var StavebniKalkulator = {

  chngDeposit : function (){

    var elDeposit = document.getElementById('stavebni_deposit');
    var elStavebniFinalCash = document.getElementById('stavebni_final_cash');
    var deposit = parseInt(elDeposit.value);
    var finalCash =  parseInt(elStavebniFinalCash.value);
    elStavebniFinalCash.value = deposit*200; //0.5%
  } ,
  chngFinalCash : function (){

    var elDeposit = document.getElementById('stavebni_deposit');
    var elStavebniFinalCash = document.getElementById('stavebni_final_cash');
    var deposit = parseInt(elDeposit.value);
    var finalCash =  parseInt(elStavebniFinalCash.value);
    elDeposit.value = finalCash/200; //0.5%    
  }  ,

  recount : function (){
    var increaseYear = 0.02; // procenta / 100
    var curr = " Kč";
    
    
    var elDeposit = document.getElementById('stavebni_deposit');
    var elStavebniFinalCash = document.getElementById('stavebni_final_cash');

    
    var elSavedCost = document.getElementById('stavebni_saved_cost');
    var elBenefits = document.getElementById('stavebni_benefits');
    var elTotal = document.getElementById('stavebni_total');    
    
    var deposit = parseInt(elDeposit.value);
    var finalCash =  parseInt(elStavebniFinalCash.value);
    var yearsLength = 6;
    
    if (deposit!=finalCash/1000*5) {
      //alert("Minimální měsíční vklad musí být 0.5% z cílové částky!");
    }
    
    depositYear  = deposit * 12;
    
    elSavedCost.value = formatPrice( depositYear * yearsLength) + curr; 
    
    yearBenefit = this.getYearBenefit(depositYear);
    

    
    var tmp = ( Math.pow( (1 + increaseYear), yearsLength) - 1 ) / increaseYear;    
    var savedTotal = (  depositYear+yearBenefit ) * (1 + increaseYear) * tmp ;

    elTotal.value = formatPrice(Math.round(savedTotal)) + curr; 
 
    elBenefits.value = formatPrice(Math.round(savedTotal-(depositYear * yearsLength))) + curr;

  },
  
  
  getYearBenefit : function (yearSaving){
    var benefitMax = 3000;
    var benefit = yearSaving * 0.15;
    return Math.min(benefitMax, benefit);
  
  }
  
}
