﻿// Calculators JScript File


function CalculateEMI(LoanAmt,Rate,Tenure)
{	
var Interest = Rate/1200;
//alert(LoanAmt*Interest);
var emi=(LoanAmt*Interest)*((Math.pow(1+Interest,Tenure))/(Math.pow(1+Interest,Tenure)-1));
return roundDecimal(emi+'');
}

function CalculateAdvanceEMI(LoanAmt,Rate,Tenure) 
{
    var Interest = Rate/1200;
    var emi= LoanAmt * Math.pow(1+Interest,Tenure-1) * (Interest/(Math.pow(1+Interest,Tenure)-1))
    //return roundDecimal(emi+'');
    return Math.round(emi);
}

function CalculateInrestRate(LoanAmt,EMI,Tenure)
{
    return  roundDecimal('' + Math.random()*10);
}

//Check for Decimal Numbers
function CheckDecimal(objID,strControlName)
{	
	var iCount=0;
	Temp =objID.value;	
	if(Temp.length==0)
	{
		Temp = 0;
		return true;
	}
	var validchars = "1234567890.";
	for(var j=0;j<Temp.length && iCount < 2;j++)
	{
		if(validchars.indexOf(Temp.charAt(j)) == -1)
		{
		alert(strControlName+ ": Should have Decimal values only");
			objID.focus();
 			objID.select();		
			return false;
		}
		else if(Temp.charAt(j)==".")
			iCount++;
	}
	if(iCount > 1)
	{
		alert(strControlName+ ": Should have Decimal values only");
		objID.focus();
 		objID.select();	
		return false;
	}
	
	return true;
}

//This function will check for Integer values, '.' not accepted & greater than 0
function CheckIntegerNOZero(objID,strControlName)
	{	
		if (objID.value!="")
		{
		    var num=/[0-9]+/;
			numflag=objID.value.match(num);	
			
			if(numflag !=objID.value)
			{
			    alert(strControlName+ ": Should be Integer only.")
			    objID.focus();
 			    objID.select();
			    return false;
		    }
		    if(objID.value<=0)
		    {
		        alert(strControlName+ ": Should be greater than zero.")
			    objID.focus();
 			    objID.select();
			    return false;
		    }
	}
	return true;
}


//Check for percentage value. It should not be greater than 100%
function CheckPercentage(objID,strControlName)
{
    if(objID.value!="")
    {
        if(objID.value > 100)
        {
            alert(strControlName+ ": Should not be greater than 100%.")
			objID.focus();
 			objID.select();
            return false;
        }
        if(objID.value <= 0)
        {
            alert(strControlName+ ": Should be greater than 0%.")
			objID.focus();
 			objID.select();
            return false;
        }
    }
    return true;
}

///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;
}
