//=======================================================================================
// Copyright (c) 2006 Module One India Ltd. All rights reserved.
//
// This software is the confidential and proprietary information
// of Module One India Ltd. (www.moduleone.com)
//=======================================================================================
/***************************************************************/
/* Function : Handles The onClick event for Tabbed Navigation  */
/*            and displays the Data in the DIV                 */
/***************************************************************/
function tabNav_Click()
{
	// Get The TabID of the Clicked Item
	var tabName = this.id.substring(3);
	objElement = document.getElementById("pnlCalculatorTabs");
	if (objElement)
	{
		// Highlight the Current Tab 
		var objLI = objElement.getElementsByTagName("li");
		var alink = objElement.getElementsByTagName("a");
		for (var i=0; i<objLI.length; i++)
		{
			if (objLI[i].title == tabName)
			{
				alink[i].className = "current";
			}
			else
			{
				alink[i].className = "";
			}
		}
		this.blur();
	}
	var objElement = document.getElementById("pnlCalculatorContent");
	if (objElement)
	{
		// Display the contents of the Current Tab
		var objDIV = objElement.getElementsByTagName("div");
		for (var i=0; i<objDIV.length; i++)
		{
			if (objDIV[i].className == "content") 
			{
				objDIV[i].style.display = "none";
				if (objDIV[i].id.substring(3) == tabName) 
					objDIV[i].style.display = "";
			}
		}
	}
	return false;
}

/***************************************************************/
/* Function : Javascript Trigger - Handles The onClick event   */
/*            for all Anchor Elements. Sets the onClick enent  */
/*            handler for Tabbed Navigation                    */
/***************************************************************/
function LoadTabs()
{
	// Setting the onCLick event handler for Tabbed Navigation
	objElement = document.getElementById("pnlCalculatorTabs");
	if (objElement)
	{
		var objAnchors = objElement.getElementsByTagName("a");
		for (var i=0; i<objAnchors.length; i++)
			if (objAnchors[i].className != "lnkBlack") objAnchors[i].onclick = tabNav_Click;
	}
	objElement = document.getElementById("tabEMICalculator");
	objElement.onclick();
}

/*********************  EMI CALCULATOR CALCULATION ******************************/
var g_fRateStep = 0.05;     // The smallest amount the interest rate can be modified by
var g_nRateMultipleEMI = 120;
var g_nTermMultipleEMI = 5;
var g_strMonthlyEMI = 0;
var g_nRateMultiple = 120;
var g_nTermMultiple = 5;
var g_strMonthly = 0;
var g_fPurchasePrice = 0;

function FormatCurrency(strValue)
{
	var strDecimalSeparator = '.';
	var strThousandSeparator = ',';
	var nPos = strValue.indexOf('.');
	var nLen = parseInt(strValue, 10).toString().length;

	if (nPos > 0)
			strValue = strValue.substr(0, nPos) + strDecimalSeparator + strValue.substr(nPos + 1, strValue.length - nPos);
	else
			nPos = strValue.length;

	while (nLen > 3)
	{
		nPos -= 3;
		strValue = strValue.substr(0, nPos) + strThousandSeparator + strValue.substr(nPos, strValue.length - nPos + 1);
		nLen -= 3;
	}
	return strValue;
}


function UpdateMonthly()
{
  UpdateRateEMI();
  UpdateTermEMI();
    
  var fRate = g_nRateMultipleEMI * g_fRateStep;
  var nTerm = g_nTermMultipleEMI * 12;
  var txtVehiclePriceEMI = document.getElementById("txtVehiclePriceEMI")
	var txtDownPaymentEMI = document.getElementById("txtDownPaymentEMI")
	var txtMonthlyPaymentEMI = document.getElementById("txtMonthlyPaymentEMI")
	
  var nDownPayment = isNaN(parseInt(txtDownPaymentEMI.value, 10)) ? 0 : parseInt(txtDownPaymentEMI.value, 10);
  var nPrice = isNaN(parseInt(txtVehiclePriceEMI.value, 10)) ? 0 : parseInt(txtVehiclePriceEMI.value, 10);
  
  if (nDownPayment > nPrice) nDownPayment = nPrice;
  
  var fMonthlyRate = (fRate * 0.01) / 12.0;
  var fPower = Math.pow(1.0 + fMonthlyRate, -nTerm);
	var fMonthly = (fPower == 1.0 ? (nPrice - nDownPayment) / nTerm : (nPrice - nDownPayment) * (fMonthlyRate / (1.0 - fPower)));

  if(fMonthly.toString().substr(0, 1) == '.')
      fMonthly = '0' + fMonthly.toString();
  
	g_strMonthlyEMI = parseInt(fMonthly, 10).toString() + (Math.round((fMonthly - parseInt(fMonthly, 10)) * 100) / 100).toString().substr(1, 3);
	if ((g_strMonthlyEMI.toString().indexOf('.', 0) > 0) && (g_strMonthlyEMI.toString().length - g_strMonthlyEMI.toString().indexOf('.', 0) == 2))
		g_strMonthlyEMI = g_strMonthlyEMI.toString() + '0';
	if (isNaN(g_strMonthlyEMI))
		txtMonthlyPaymentEMI.value = "0";
	else
		txtMonthlyPaymentEMI.value = FormatCurrency(g_strMonthlyEMI);
}

function UpdateRateEMI()
{
	var txtInterestEMI = document.getElementById("txtInterestEMI");
	with (txtInterestEMI)
	{
		if (parseFloat(value) > 100) 
		{
			alert("Interest Rate cannot be greater than 100%.")
			value = 0;
		}
		var fTemp = value / 0.05;
		g_nRateMultipleEMI = fTemp;
		if (g_nRateMultipleEMI - parseInt(fTemp) > 0) 
				g_nRateMultipleEMI = parseInt(g_nRateMultipleEMI) + 1;
	}
}

function UpdateTermEMI()
{
	var txtTermEMI = document.getElementById("txtTermEMI");
	with (txtTermEMI)
	{
		if (parseFloat(value) > 480) 
		{
			alert("Loan Term (months) cannot be greater than 480 months (20 years).")
			value = 0;
		}	
		var fTemp = value / 12;
		g_nTermMultipleEMI = fTemp;
		/*if (g_nTermMultipleEMI - parseInt(fTemp) > 0) 
				g_nTermMultipleEMI = parseInt(g_nTermMultipleEMI) + 1;*/
	}
}

/****************** AFFORDABILITY CALCULATOR *******************************/

function UpdatePrice()
{
	UpdateRate();
	UpdateTerm();
	var fRate = g_nRateMultiple * g_fRateStep;
	var nTerm = g_nTermMultiple * 12;
  var txtMonthlyPayment = document.getElementById("txtMonthlyPayment")
	var txtDownPayment = document.getElementById("txtDownPayment")
	var txtVehiclePrice = document.getElementById("txtVehiclePrice")

	var nDownPayment = isNaN(parseInt(txtDownPayment.value, 10)) ? 0 : parseInt(txtDownPayment.value, 10);
	var nPayment = isNaN(parseInt(txtMonthlyPayment.value, 10)) ? 0 : parseInt(txtMonthlyPayment.value, 10);

	var fMonthlyRate = (fRate * 0.01) / 12.0;
	var fPower = Math.pow(1.0 + fMonthlyRate, -nTerm);
	var fPrice = parseInt((fMonthlyRate == 0 ? ((nPayment * nTerm) + nDownPayment) : ((nPayment * ((1.0 - fPower) / fMonthlyRate)) + nDownPayment)), 10);

	if (isNaN(g_strMonthlyEMI))
		txtVehiclePrice.value = "0";
	else
		txtVehiclePrice.value = FormatCurrency(parseInt(fPrice, 10).toString());
}

function UpdateRate()
{
	var txtInterest = document.getElementById("txtInterest");
	with (txtInterest)
	{
		if (parseFloat(value) > 100) 
		{
			alert("Interest Rate cannot be greater than 100%.")
			value = 0;
		}	
		var fTemp = value / 0.05;
		g_nRateMultiple = fTemp;
		if (g_nRateMultiple - parseInt(fTemp) > 0) 
				g_nRateMultiple = parseInt(g_nRateMultiple) + 1;
	}
}

function UpdateTerm()
{
	var txtTerm = document.getElementById("txtTerm");
	with (txtTerm)
	{
		if (parseFloat(value) > 480) 
		{
			alert("Loan Term (months) cannot be greater than 480 months (20 years).")
			value = 0;
		}	
		var fTemp = value / 12;
		g_nTermMultiple = fTemp;
		/*if (g_nTermMultiple - parseInt(fTemp) > 0) 
				g_nTermMultiple = parseInt(g_nTermMultiple) + 1;*/
	}
}