﻿// JScript File

///Function takes number as string and returns rounded value upto 2 decimal
function roundDecimal(number)
{
var chk = 0, len = 0;
var newno="", newval="", result="", decval="";
if(number.length > 0)
{
len = number.length; 
	for(var i=len-1; i>=0; i--)
	{
        if(number.charAt(i)==".")
		{
		    chk = 1;
		}
		else
		{
		    if(chk == 0)
		        newval = number.charAt(i) + newval; // decimal value
		     
		    if(chk == 1)
    		    newno = number.charAt(i) + newno; //value previous to decimal
		}
	}
	if(chk == 1) // checks value have decimal point
	{
	    if(newval.length > 2) // as value should be rounded upto 2 digits
	    {
	        for(var i=0; i <= newval.length; i++)
	        {
	      	    decval =  decval + newval.charAt(i) ;
	            if( i == 1 && newval.charAt(2) >= 5)
	            {
                   decval = (parseInt(decval) + 1);
                   break;
	            }
	            else if(i == 1 && newval.charAt(2) < 5)
	            {
	                break;
	            }
            }
	        result = newno + "." + decval;
	    }
	    else
	        result = newno + "." + newval;
	}
	else
	    result = newval + ".00";
}
else
    result = "0.0";
    
return result;
}


// This function calculates the value of
// ((1+r)^n - 1)/r
// where:
//      n = Number of months for which the investments are made
//         (n=n*12 in case of n=years)  
//      r = Rate of return desired
function calcRate(dR, dN)
{
var dNumarator = 0.0, dDenominator = 0.0, dResult = 0.0;
    dNumarator = Math.pow((1 + dR), dN) - 1;
    dDenominator = dR;
    dResult = (dNumarator / dDenominator);
return dResult;
}


// This method calculates Premium
//Current savings X
//Total amount expected :  A  
//Premium P = ? 
//Rate of return r : given
//Period: N  Given 
//No of periods n = N* 12 .
//C=  x (1 + r)n 
//A= A – C
//P= ?
//A = [(1+r)n  -1 ] / r * P
function calcLSPPremium(strCurrSaving, strAmtExpected, strRate, strPeriod)
{
var n = 0;
var CurrentSaving = 0.0, AmtExpected = 0.0, C = 0.0, r = 0.0, dTemp = 0.0;
var result="";

        r = parseFloat(strRate) / 1200;    // r= r/1200
        AmtExpected = parseFloat(strAmtExpected);
        n = parseInt(strPeriod) * 12;      //n * 12 months
        CurrentSaving = parseFloat(strCurrSaving);//X

        C = CurrentSaving * Math.pow((1 + r), n);   // C=X * (1+r)^n
        AmtExpected = AmtExpected - C;              // A= A -C

        dTemp = calcRate(r, n);                //[(1+r)n  -1 ] / r
        result = "" + eval(AmtExpected / dTemp);
        
return result;
}

