// Kort form för document ready. Dvs kör functionen när sidan laddat klart
$(function(){
  // alert('ok');
});

    $(document).ready(function(){
       
        //Hide div w/id extra
       $(".medsokande").css("display","none");
       $(".spalt_rubrik").css("display","none");
	   $("#rsstojs a").removeAttr("href");	   

		$(".spalt_cost").keypress(function (e)
			{
	  		if( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57))
  				{
    			return false;
  			}
		});
			        
		$('#cost_form').submit(function() {
			lanebelopp_org = $("input[name=kostnad_belopp]").val();
		  	lanebelopp = lanebelopp_org;
		  	if(lanebelopp<10000 || lanebelopp > 200000)
		  		{
		  		alert('Lånebeloppet måste ligga mellan 10 000 kr och 200 000 kr');
		  		return false;
		  		}
		  	totallanebelopp = lanebelopp;		  
		  	antalar = $("input[name=kostnad_avbetalningstid]").val();
		  	if(antalar<1 || antalar>12)
		  		{
		  		alert('Avbetalningstiden måste vara mellan 1 år och 12 år');
		  		return false;
		  		}
			typ_amortering = $("select[name=typ_amortering]").val();
		  		
		  $(".spalt_cost").css("display","none");
		  $(".berakna_kostnad").css("display","none");
		  $(".typ_amortering").css("display","none");		 
		  $(".cost h2").css("margin-bottom","12px");		  		   
		  $(".spalt_cost2").css("display","inline");
		  $(".cost_back a").css("display","inline");
		  $(".cost").css("height","412px");
		  $(".cost").css("background-image","url(wp-content/themes/Interago/bilder/Cost_background2.png)");
		  $("input[name=belopp]").val(lanebelopp_org);
		  $("input[name=belopp]").css("color","#000000");
		  $("select[name=tid]").val(antalar + " år");		  
		  		  
		  effektivranta = 0;
		  Gr = 21.0;
		  
		  ranta = 6.95;
		  var manatlig_ranta = ranta * 0.01/12;
		  aviavgift = 40;
		  engangsavgift =350;		
		  upplaggningsavg =  engangsavgift;		   
		  
		  antalmanader = antalar * 12;
		  antaldagar = antalmanader * 30;
		  
		  belopp = lanebelopp/antalmanader;

		  var akvar = new Array(antalmanader);
		  var alanebelopp = new Array(antalmanader);
		  totalrantekostnad = 0;
		  totalavgift = 0;
		  kvar = 0;
		  
		  
	 
		  /* Annuitetsberäkning */
		  
		  var ranta_plus_ett_upphojt_i_antal_manader = (1 + manatlig_ranta);
		  var upphojd_ratehallare = (1 + manatlig_ranta);		  		 
				  
		  for (var i=0; i<antalmanader-1; i++){
			  ranta_plus_ett_upphojt_i_antal_manader = ranta_plus_ett_upphojt_i_antal_manader * upphojd_ratehallare;
		  }
		  
		  var annuitet_utan_extrakostnader = lanebelopp * manatlig_ranta * ranta_plus_ett_upphojt_i_antal_manader / (ranta_plus_ett_upphojt_i_antal_manader - 1);
		  
		  var annuitet_med_aviavgift = parseInt(annuitet_utan_extrakostnader + aviavgift);

		  /* Rak amorteringsberäkning */
 		  
		  for (var i=0; i<=antalmanader-1; i++){
				manadsranta = parseInt(lanebelopp* ((ranta / 100) / 12));
				totalrantekostnad = totalrantekostnad + manadsranta;
				totalavgift = totalavgift + engangsavgift + aviavgift;
				lanebelopp2 = belopp + manadsranta + engangsavgift + aviavgift;
				alanebelopp[i] = parseInt(lanebelopp2);				
            	lanebelopp = lanebelopp - belopp;
            	engangsavgift = 0;				
		  }
	
	  	  medelbelopp = 0;
	  	  
	  	  	for (i = 0; i < antalmanader; i++) {	  	  
        		medelbelopp += alanebelopp[i];
    		}
    		
    		medelbelopp = parseInt(medelbelopp / antalmanader);    		
									
		  /* Effektivränta */		
		  	
			var dblBeviljadKredit = lanebelopp_org;
			var dblAviseringAvg = aviavgift;
			var dblUpplaggAvg = upplaggningsavg;
			var intLoptid = antalmanader;
			var intPeriodicitet = 12;//number of payments per year
			var ranta = ranta;
	
			var arr=new Array();
			var paymentArr=new Array();	
			var interestAmountArr=new Array();	
			var periodArr=new Array();	
			var balanceArr=new Array();	
			var amortizationArr=new Array();	
	
			var periodInterest = ranta/intPeriodicitet/100;
			
			if(typ_amortering == "1"){
				var loan = dblBeviljadKredit;
				var amort = dblBeviljadKredit / intLoptid;
				paymentArr[0] = dblUpplaggAvg;
				paymentArr[intLoptid-1] = 0;
				for (var p = 0; p < intLoptid; p++) {
					periodArr[p] = p+1;
					if(!paymentArr[p]){						
						paymentArr[p] = interestAmountArr[p] = loan * periodInterest;
					}
					else{
						paymentArr[p] += interestAmountArr[p] = loan * periodInterest;
					}
					paymentArr[p] += amortizationArr[p] = amort;
					paymentArr[p] += dblAviseringAvg;					
					balanceArr[p] = loan -= amort;
				}			
			}			
			else{
				var loan = dblBeviljadKredit;
				var annuityAmount = dblBeviljadKredit*periodInterest/(1-Math.pow((1+periodInterest), (-intLoptid)));
				paymentArr[0] = dblUpplaggAvg;
				paymentArr[intLoptid-1] = 0;
				for (var p = 0; p < intLoptid; p++) {
					periodArr[p] = p+1;
					if(!paymentArr[p]){
						paymentArr[p] = annuityAmount + dblAviseringAvg;	
					}
					else{
						paymentArr[p] += annuityAmount + dblAviseringAvg;
					}
					interestAmountArr[p] = loan * periodInterest;
					amortizationArr[p] = annuityAmount - interestAmountArr[p];					
					balanceArr[p] = loan -= amortizationArr[p];
				}		
			}
			
			var paymentValue = 0.0;
			var irr = 1.0;
			var irrHi = 2.0;
			var irrLo = 0.0;
			var iter = 0;
			
			while (dblBeviljadKredit != paymentValue) {
				iter += 1;

				for (var p = 0; p < paymentArr.length; p++) {
					paymentValue += paymentArr[p] / Math.pow(1.0 + irr, (p + 1));					
				}
			paymentValue = Math.round(paymentValue*1000000)/1000000;
			
			
			if (paymentValue == dblBeviljadKredit)
				break;

		if (paymentValue > dblBeviljadKredit) {			
				irrLo = irr;
				irr = (irr + irrHi) / 2; 
			} else {
				irrHi = irr;
				irr = (irrLo + irr) / 2; 
			}

			paymentValue = 0.0;

			if (iter > 10000){
				alert("Loop stalling identified, exiting!");
				break;
			}
		}

		result = Math.round(irr*1000000)/1000000;

		var effectiveIR =  result;
		
		var realEffInt = Math.round((Math.pow(1 + effectiveIR, intPeriodicitet) - 1) * 10000)/100;		
			
		/* Slut effektivränta */			
											
									
									
			$("#display_1").html(lanebelopp_org + " kr");
			$("#display_2").html(antalar + " år");
			$("#display_3").html(ranta + " %");
			if(typ_amortering == "1"){
		        $(".annuitet").css("display","none");				
				$("#display_4").html(medelbelopp + " kr");
				$("#display_5").html(alanebelopp[0] + " kr & " + alanebelopp[antalmanader-1] + " kr");			
			}
			if(typ_amortering == "2"){
		        $(".rak").css("display","none");								
				$("#display_6").html(annuitet_med_aviavgift  + " kr");
			}
			$("#display_7").html(realEffInt + " %");										
		  
		  return false;
		});

        // Add onclick handler to checkbox w/id checkme
       $("#extra_sokande_id").click(function(){
       
        // If checked
        if ($("#extra_sokande_id").is(":checked"))
        {
            //show the hidden div
            $(".medsokande").show();
            $(".spalt_rubrik").show("fast");
        }

      });
      
         $("a.rantefraga").click(function(){
          $(".spalt_cost").hide();
          $(".spalt_cost2").hide();
          $(".cost_back").hide();       
          $(".cost_back2 a").show();                   
          $(".rantespalt").show();          
		  return false;
      });
      
       $("a.snittfraga").click(function(){
       
          $(".spalt_cost").hide();
          $(".spalt_cost2").hide();      
          $(".cost_back").hide();       
          $(".cost_back2 a").show();                     
          $(".snittspalt").show();                   
		  return false;
      });      
      
       $(".cost_back2 a").click(function(){
       
          $(".spalt_cost2").show();  
          $(".cost_back").show();       
          $(".cost_back2 a").hide();               
          $(".snittspalt").hide();        
          $(".rantespalt").hide();    
   	   if(typ_amortering == "1"){         
          $(".annuitet").hide();    			  
	   }
   	   if(typ_amortering == "2"){         
          $(".rak").hide();    			  
	   }	   
		  return false;
      });    
          
      
      $("a.mottagarfraga").click(function(){
            
          $(".mottagarforklaring").css("visibility","visible");;                   
		  return false;
      });     
      

});
