﻿// Calculators JScript File
//Numeric Functiion chack Numeric Function
function isNumberKey(evt)
{
 var charCode = (evt.which) ? evt.which : event.keyCode
 if (charCode > 31 && (charCode < 48 || charCode > 57) )
	{
	  alert('Enter Number Only');
	  return false;
	}
 return true;
}

function isNumberKeyFloat(evt)
{
 var charCode = (evt.which) ? evt.which : event.keyCode
 
 
 if ((charCode > 47 && charCode < 57) || charCode == 46)
	{	
	}
	
	else
	{
	  alert('Enter Number Only');
	  return false;
	}
	
 return true;
}

function Compare(evt)
{
 alert(charCode);
 var charCode = document.getElementById('<%= txtverify.ClientID %>').value;
 

 if (evt!=charCode )
	{
	  alert('Enter Number Only');
	  return false;
	}
 return true;
}

function CalculateEMI(LoanAmt,Rate,Tenure)
{	
    var Interest = Rate/1200;
    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);
}

//Returns difference between date provided and current date in months
function GetDateDiffInMonths(dtDOB)
{
// Date format : dd/MM/yyyy

    var dt =new Date();
    var x1 = dt.getDate() +"/"+ (dt.getMonth()+1)+"/"+ dt.getFullYear();
    var x2 = dtDOB;
    var ssdate = new String(x1);
    var ssdatee = new String(x2);
			
    var SDate= new Array(3);
    SDate = ssdate.split("/");
    var ssdate1 =new String(SDate[1] + "/" +  SDate[0] + "/" + SDate[2]);
	
    var SDate1= new Array(3);
    SDate1 = ssdatee.split("/");
    var ssdate2 =new String(SDate1[1] + "/" +  SDate1[0] + "/" + SDate1[2]);
	
    var one_month=1000*60*60*24*30;
				
    var objDate1=new Date("" + ssdate1);
    var objDate2=new Date("" + ssdate2);
    
    var diff = (((objDate1.getTime() - objDate2.getTime())/one_month));
         
    return diff;
}


///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;
}



function CheckAmount(objID,strControlName)
	{	
		if (objID.value!="")
		{
			var num=/[0-9.0-9]+/
			numflag=objID.value.match(num);	
			if(numflag !=objID.value){
			alert(strControlName+ ": Should be Numeric only.")
			objID.focus();
 			objID.select();
			return false;
		}
	}
	return true;
}



//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
function CheckInteger(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;
		}
	}
	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 CheckMonthlyObligation(NetIncome,objID)
{
    if(NetIncome <= 0)
    {
        //alert("Income Considered (as per calculation), Should not be less than Monthly Obligation." + </br>)
        alert("Income Details or Monthly Obligation not proper.")
		objID.focus();
		objID.select();
        return false;
    }
    return true;
}

function CheckTenureMonths(AllowedMonths,objID,strControlName)
{
    if(AllowedMonths < objID.value)
    {
        alert(strControlName+ ": Should not be greater than " + AllowedMonths + " Months.")
		objID.focus();
		objID.select();
        return false;
    }
    return true;
}

function CheckEligibleMonths(Months)
{
    if(Months >= (60*12))
    {
        alert("Age as on date Should be less than 60.")
        return false;
    }
    return true;
}
