// Jumlah Tahun sebelum pensiun

function Step1() {
	this.name = "TahunPensiun";
}

Step1.prototype.getTotal = function() {
	
	this.total = 0;
	
	this.total = parseInt(GetValueById("txtUsiaPensiun")) - parseInt(GetValueById("txtUsiaSekarang"));
		
	SetDocText("tot" + this.name, (this.total)) ;
}

// Jumlah Tahun sejak pensiun s/d meninggal

function Step2() {
	this.name = "TahunSejak";
}

Step2.prototype.getTotal = function() {
	
	this.total = 0;
	
	this.total = parseInt(GetValueById("txtLifeExpectancy")) - parseInt(GetValueById("txtUsiaPensiun"));
		
	SetDocText("tot" + this.name, (this.total)) ;
}

// Expense Ratio

function Step3() {
	this.name = "BiayaHidupNanti";
}

Step3.prototype.getTotal = function() {
	
	this.total = 0;
	
	this.total = (parseInt(GetValueById("txtBiayaHidup")) * (parseInt(GetValueById("txtExpenseRatio"))) / 100);
		
	SetDocText("tot" + this.name, DecimalAsString(this.total)) ;
}

// Biaya hidup saat pensiun DAN Jumlah dana saat pensiun

function StepTotal() {

}

StepTotal.prototype.getTotal = function() {

	Step_1.getTotal();
	Step_2.getTotal();
	Step_3.getTotal();
	
	this.total1 = 0;
	this.total2 = 0;
	
	presentValue = Step_3.total;
	tahunPensiun = Step_1.total;
	rateInflasi = parseInt(GetValueById("txtRateInflasi"));
	
	netRateInvestasi = parseInt(GetValueById("txtNetRateInvestasi"));
	tahunSejakPensiun = Step_2.total;
	
	this.futureValue = presentValue * Math.pow((1 + (rateInflasi/100)), tahunPensiun);
	this.total = calculatePV(this.futureValue, (netRateInvestasi/100)/12, tahunSejakPensiun*12);
		
	SetDocText("totBiayaPensiun", DecimalAsString(this.futureValue)) ;
	SetDocText("totPenghasilanBulanan", DecimalAsString(this.total)) ;
}

// The real calculation

var Step_1 = new Step1; // Jumlah Tahun sebelum pensiun
var Step_2 = new Step2; // Jumlah Tahun sejak pensiun s/d meninggal
var Step_3 = new Step3; // Expense Ratio
var Step_Total = new StepTotal; // Biaya hidup pensiun + Jumlah dana + x tahun

function CalculateStep(step) {
	if(step == 1)
		Step_1.getTotal();
		
	if(step == 2)
		Step_2.getTotal();
		
	if(step == 3)
		Step_3.getTotal();	
}

function CalculateTotal() {
	Step_Total.getTotal();
}