var TERMS_PER_YEAR=2;var TERM_FEE=0;var SETUP_FEE=0;var INSURANCE_PERCENTAGE=0.00;var TAX_DEDUCTION_FACTOR=0.00;var DEFAULT_SUM=50000000;var DEFAULT_INTEREST=5.95/100;var DEFAULT_PAYMENT_YEARS=25;var DEFAULT_INSTALMENT_FREE_YEARS=0;var DEFAULT_IS_ANNUITY=false;var Loan={calc:function(sum,interest,paymentYears,instalmentFreeYears,termsPerYear,isAnnuity){this.sum=sum;this.interest=interest;this.paymentYears=paymentYears;this.instalmentFreeYears=instalmentFreeYears;this.termsPerYear=termsPerYear;this.isAnnuity=isAnnuity;this._calc();this._effect();},_effect:function(){this.effectiveInterest=Math.pow((1+(((this.sum*this.interest)+(this.termFee*this.termsPerYear))/(this.sum*this.termsPerYear))),this.termsPerYear)-1;this.effectiveInterest*=10000;this.effectiveInterest=Math.round(this.effectiveInterest)/100;if(this.effectiveInterest.toString()!="Infinity")$("#effektivRente").text(this.effectiveInterest.toString());else $("#effektivRente").text(" - ");},_calc:function(){this.termFee=TERM_FEE;this.partInterest=this.interest-INSURANCE_PERCENTAGE;this.numberOfTerms=(this.paymentYears+this.instalmentFreeYears)*this.termsPerYear;this.paymentTerms=this.paymentYears*this.termsPerYear;this.instalmentFreeTerms=this.instalmentFreeYears*this.termsPerYear;this.termInterest=this.interest/this.termsPerYear;this.partTermInterest=this.partInterest/this.termsPerYear;this.plan={interest:[0],insurance:[0],instalment:[0],fee:[SETUP_FEE],payment:[SETUP_FEE],taxDeduction:[0],balance:[this.sum]};this._buildPlan();this._buildAxis();},_buildPlan:function(){var payment=this.sum/this.paymentTerms;if(this.isAnnuity)payment=this.sum*annuityFactor(this.termInterest,this.paymentTerms);var i=1;var n=this.instalmentFreeTerms;while(i<=this.numberOfTerms){this.plan["interest"][i]=Math.ceil((this.plan["balance"][i-1]*this.partTermInterest));this.plan["fee"][i]=this.termFee;this.plan["insurance"][i]=0;this.plan["taxDeduction"][i]=Math.ceil((this.plan["interest"][i]*TAX_DEDUCTION_FACTOR));if(n>0){this.plan["instalment"][i]=0;this.plan["balance"][i]=this.plan["balance"][i-1];this.plan["payment"][i]=this.plan["interest"][i]+this.plan["fee"][i]+this.plan["insurance"][i];n--;}else{if(this.isAnnuity){this.plan["instalment"][i]=Math.ceil(payment-this.plan["interest"][i]-this.plan["insurance"][i]);this.plan["payment"][i]=Math.ceil(payment+this.plan["fee"][i]);}else{this.plan["instalment"][i]=Math.ceil(payment);this.plan["payment"][i]=Math.ceil(payment+this.plan["interest"][i]+this.plan["insurance"][i]+this.plan["fee"][i]);}this.plan["balance"][i]=Math.ceil(this.plan["balance"][i-1]-this.plan["instalment"][i]);if(this.plan["balance"][i]<payment/10){this.plan["instalment"][i]=this.plan["balance"][i-1];this.plan["balance"][i]=0;this.plan["payment"][i]=Math.ceil(this.plan["instalment"][i]+this.plan["interest"][i]+this.plan["insurance"][i]+this.plan["fee"][i]);}}i++;}},_buildAxis:function(){this.axis=new Array(12);for(i=0;i<12;i++)this.axis[i]=new Array(6);this.axis[0][0]="";var x=-250000;for(i=1;i<12;i++){this.axis[i][0]=this.sum+x;x+=50000;}var y=-0.015;for(j=1;j<6;j++){this.axis[0][j]=this.interest+y;y+=0.0075;}for(i=1;i<12;i++){for(j=1;j<6;j++){var aSum=this.axis[i][0];var aTermInterest=this.axis[0][j]/this.termsPerYear;var aPayment=0;if(this.isAnnuity&&this.instalmentFreeYears==0){aPayment+=(aSum*annuityFactor(aTermInterest,this.paymentTerms));}else{aPayment+=aSum*aTermInterest;if(!this.isAnnuity&&this.instalmentFreeYears==0){aPayment+=aSum/this.paymentTerms;}}aPayment+=this.termFee;this.axis[i][j]=Math.round(aPayment);}}},replaceWithAxis:function(fieldToReplace){var html='<table id="calculatorResultsTable" class="calculatorResults"><thead><tr><th></th>';for(j=1;j<6;j++)if(j==3)html+='<th class="chosenCol">'+numberToPercent(this.axis[0][j])+'</th>';else html+='<th>'+numberToPercent(this.axis[0][j])+'</th>';html+='<tr></thead><tbody>';odd=true;var tooMuch=false;for(i=1;i<12;i++){if(i==6){html+='<tr class="even chosenRow">';}else{if(odd)html+='<tr class="odd">';else html+='<tr class="even">';}for(j=0;j<6;j++){if(i==0){html+='<th>'+numberToReadableString(this.axis[i][j])+'</th>';continue;}if(j==3){html+='<td class="chosenCol">'+numberToReadableString(this.axis[i][j])+'</td>';continue;}if(j==0){html+='<th>'+numberToReadableString(this.axis[i][j])+'</th>';continue;}html+='<td>'+numberToReadableString(this.axis[i][j])+'</td>';}odd=odd?false:true;html+='</tr>';}html+='</tbody></table>';$(fieldToReplace).empty().append(html);},replaceWithPlan:function(fieldToReplace){var html="";html+="<table class=\"payPlanSummary\"><tbody>";html+="<tr><th colspan=\"2\"><h3>L&aring;nesum "+numberToReadableString(this.sum)+" (detaljer)</h3></th></tr>";html+="<tr><th>Nominell&nbsp;rente</td><td>"+Math.round(this.interest*10000)/100+"%</td></tr>";html+="<tr><th>Effektiv&nbsp;rente</th><td>"+this.effectiveInterest+"%</td></tr>";html+="<tr><th>Antall&nbsp;&aring;r</th><td>"+this.paymentYears+"</td></tr>";html+="<tr><th colspan=\"2\"><h3>Totalkostnader</h3></th></tr>";html+="<tr><th>Renter</th><td>"+numberToReadableString(summarize(this.numberOfTerms+1,this.plan["interest"]))+"</td></tr>";html+="<tr><th>L&aring;n</th><td>"+numberToReadableString(summarize(this.numberOfTerms+1,this.plan["payment"]))+"</td></tr>";html+="</tbody></table>";html+="<table class=\"payPlanResults\"><thead>";html+="<tr><td colspan=\"6\"><h3>F&oslash;rste &aring;r</h3></td></tr>";html+="<tr><th class=\"short\">#</th><th>Rente</th><th>Avdrag</th><th>Betales</th><th>Saldo</th></tr></thead><tbody>";var odd=true;for(i=0;i<=this.termsPerYear;i++){if(odd)html+="<tr class=\"odd\">";else html+="<tr class=\"even\">";html+="<td>"+i+"</td>"+"<td>"+numberToReadableString(this.plan["interest"][i])+"</td>";html+="<td>"+numberToReadableString(this.plan["instalment"][i])+"</td>";html+="<td>"+numberToReadableString(this.plan["payment"][i])+"</td>";html+="<td>"+numberToReadableString(this.plan["balance"][i])+"</td>";html+="</tr>";odd=odd?false:true;}html+="</tbody></table>";html+="<table class=\"payPlanResults\"><thead>";html+="<tr><td colspan=\"6\"><h3>&Aring;rlig plan</h3></td></tr>";html+="<tr><th class=\"short\">&Aring;r</th><th>Rente</th><th>Avdrag</th><th>Betales</th><th>Saldo</th></tr></thead><tbody>";odd=true;var termStep=this.termsPerYear;var year=1;var term=1;var next=term+termStep;while(next<=this.numberOfTerms+1){if(odd)html+="<tr class=\"odd\">";else html+="<tr class=\"even\">";html+="<td>"+year+"</td>";html+="<td>"+numberToReadableString(summarizeBetween(term,next,this.plan["interest"]))+"</td>";html+="<td>"+numberToReadableString(summarizeBetween(term,next,this.plan["instalment"]))+"</td>";html+="<td>"+numberToReadableString(summarizeBetween(term,next,this.plan["payment"]))+"</td>";html+="<td>"+numberToReadableString(this.plan["balance"][next-1])+"</td>";html+="</tr>";term=next;next+=termStep;year++;odd=odd?false:true;}html+="</tbody></table>";var print=html.toString();html+='<a href="#" class="printPlanButton"><img src="http://www.klp.no/web/klpno.nsf/mediaresources/print_ikon.gif/$file/print_ikon.gif" alt="Skriv ut"></a>';$(fieldToReplace).empty().append(html);var style="body { font-family: Verdana; font-size: 12px; }\n";style+="table.payPlanSummary { width: 50%; }\n";style+="table.payPlanResults { width: 100%; }\n";style+="h2, h3 { font-family: Verdana; padding-top:15px; text-align: left;}\n";style+="td { text-align: right; font-size: 12px; }\n";style+="th { font-size: 12px; }\n";style+="th.short { width: 75px; }\n";style+=".odd { background: #eee; }\n";style+="table.payPlanSummary th { text-align: left; }\n";style+="table.payPlanResults th { text-align: right; }\n";$(".printPlanButton").click(function(){printWindow=window.open("","","width=800,height=600,toolbar=0,status=1,scrollbars=1");printWindow.document.write('<html><head><title>Betalingsplan</title><style type="text/css">'+style+'</style></head><body>'+print+'</body></html>');printWindow.document.close();printWindow.print();});},toJSON:function(){var json='{"years":[';var termStep=this.termsPerYear;var year=1;var term=1;var next=term+termStep;while(next<=this.numberOfTerms+1){json+='{';json+='"interest":'+summarizeBetween(term,next,this.plan["interest"])+',';json+='"total":'+summarizeBetween(term,next,this.plan["payment"])+',';json+='"tax":'+'0';json+='}';term=next;next+=termStep;year++;if(next<=this.numberOfTerms+1){json+=',';}}json+=']}';return json;},updateFlash:function(isSet){if(isSet){getMovieElement("nedbetalingsPlan").update(this.toJSON());}}}
function annuityFactor(termInterest,terms){return termInterest/(Math.pow((1+termInterest),terms)-1)+termInterest;}
function numberToPercent(number){var str=Math.round(number*100*100)/100.00;str+="";if(str.length==1)str+=".00%";else if(str.length==3)str+="0%";else str+="%";return str;}
function summarizeBetween(from,to,array){var sum=0.0;for(i=from;i<to;i++){sum=sum+array[i];}return Math.ceil(sum);}
function summarize(num,array){return summarizeBetween(0,num,array);}
function numberToReadableString(nr){var str=nr.toString();switch(str.length){case 4:str=str.substr(0,1)+"&nbsp;"+str.substr(1,3);break;case 5:str=str.substr(0,2)+"&nbsp;"+str.substr(2,3);break;case 6:str=str.substr(0,3)+"&nbsp;"+str.substr(3,3);break;case 7:str=str.substr(0,1)+"&nbsp;"+str.substr(1,3)+"&nbsp;"+str.substr(4,3);break;case 8:str=str.substr(0,2)+"&nbsp;"+str.substr(2,3)+"&nbsp;"+str.substr(4,3);break;case 9:str=str.substr(0,3)+"&nbsp;"+str.substr(3,3)+"&nbsp;"+str.substr(4,3);}return str;}
function getInput(jQueryAccessor,fieldIsNumber){var v=$(jQueryAccessor).val();if(fieldIsNumber){v=v.replace(/\s/g,"");v=v.replace(",",".");return parseFloat(v);}return v;}
function getMovieElement(movieName){if(navigator.appName.indexOf("Microsoft")!=-1){return window[movieName];}return document[movieName];}$(document).ready(
function(){Loan.calc(getInput("#lanesum",true),getInput("#rente",true)/100,getInput("#nedbetalingstid",true),getInput("#avdragsfrihet",true),getInput("#terminer",true),(getInput("[@name='type']:checked",false)=="annuitet"));var tabAxisSelected=true;var tabPlanSelected=false;var tabFlashSelected=false;Loan.replaceWithAxis("#loanOutput");$("#flashLegend").hide();$("#kalkulatorButton").click(function(){Loan.calc(getInput("#lanesum",true),getInput("#rente",true)/100,getInput("#nedbetalingstid",true),getInput("#avdragsfrihet",true),getInput("#terminer",true),(getInput("[@name='type']:checked",false)=="annuitet"));if(tabAxisSelected){Loan.replaceWithAxis("#loanOutput");return;}if(tabPlanSelected){Loan.replaceWithPlan("#loanOutput");return;}var obj=getMovieElement("nedbetalingsPlan");if(obj){obj.update(Loan.toJSON());}});$("input.updateCalculator").keyup(function(e){var code=e.charCode||e.keyCode;if(code==13){Loan.calc(getInput("#lanesum",true),getInput("#rente",true)/100,getInput("#nedbetalingstid",true),getInput("#avdragsfrihet",true),getInput("#terminer",true),(getInput("[@name='type']:checked",false)=="annuitet"));if(tabAxisSelected){Loan.replaceWithAxis("#loanOutput");return;}if(tabPlanSelected){Loan.replaceWithPlan("#loanOutput");return;}var obj=getMovieElement("nedbetalingsPlan");if(obj){obj.update(Loan.toJSON());}}});$("#tabPlan").click(function(){$("#tabAxis img").attr("src","/web/klpmm.nsf/lupgraphics/terminutgifter_inactive.gif/$file/terminutgifter_inactive.gif");$("#tabPlan img").attr("src","/web/klpmm.nsf/lupgraphics/active_betalingsplan.gif/$file/active_betalingsplan.gif");$("#tabFlash img").attr("src","/web/klpmm.nsf/lupgraphics/inactive_grafiskvisning.gif/$file/inactive_grafiskvisning.gif");tabFlashSelected=false;tabAxisSelected=false;tabPlanSelected=true;$("#loanOutput").show();$("#flashOutput").hide();$("#flashLegend").hide();currentTab="plan";Loan.replaceWithPlan("#loanOutput");});$("#tabAxis").click(function(){$("#tabAxis img").attr("src","/web/klpmm.nsf/lupgraphics/terminutgifter_active.gif/$file/terminutgifter_active.gif");$("#tabPlan img").attr("src","/web/klpmm.nsf/lupgraphics/inactive_betalingsplan.gif/$file/inactive_betalingsplan.gif");$("#tabFlash img").attr("src","/web/klpmm.nsf/lupgraphics/inactive_grafiskvisning.gif/$file/inactive_grafiskvisning.gif");tabFlashSelected=false;tabAxisSelected=true;tabPlanSelected=false;$("#loanOutput").show();$("#flashOutput").hide();$("#flashLegend").hide();currentTab="axis";Loan.replaceWithAxis("#loanOutput");});$(".flashCalculator").keyup(function(){if(tabFlashSelected){Loan.updateFlash(true);}});$("#tabFlash").click(function(){$("#tabAxis img").attr("src","/web/klpmm.nsf/lupgraphics/terminutgifter_inactive.gif/$file/terminutgifter_inactive.gif");$("#tabPlan img").attr("src","/web/klpmm.nsf/lupgraphics/inactive_betalingsplan.gif/$file/inactive_betalingsplan.gif");$("#tabFlash img").attr("src","/web/klpmm.nsf/lupgraphics/active_grafiskvisning.gif/$file/active_grafiskvisning.gif");tabFlashSelected=true;tabAxisSelected=false;tabPlanSelected=false;var fob=new SWFObject("/web/klpmm.nsf/lupgraphics/nedbetalingPlan.swf/$file/nedbetalingPlan.swf","nedbetalingsPlan","400","460","8");fob.addParam("allowScriptAccess","always");fob.addParam("menu","false");if(fob){$("flashDiv").empty();}$("#loanOutput").hide();$("#flashOutput").show();$("#flashLegend").show();fob.write("flashOutput");setTimeout("$(\".flashCalculator\").trigger(\"keyup\")",200);});$(".flashCalculator").trigger("keyup");});

