<!--

// Cross-browser wrapper for getElementByID

function returnObjByID( id )
{
    if (document.getElementById)
        var returnVar = document.getElementById(id);
    else if (document.all)
        var returnVar = document.all[id];
    else if (document.layers)
        var returnVar = document.layers[id];
    return returnVar;
}

// Checking function for input.
function IsNumeric(sText)
{
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}
	return IsNumber;
	
}

// Rounding function

function roundDecimal(number, direction)
{
	var direction = (direction == null) ? 'up' : direction;
	
	if(direction=='up')	{
		result=Math.round(number*100)/100;
	}
	else	{
		result=Math.floor(number*100)/100;
	}
	return result;
}

// Savings calculator

function calculate(maxPrice, endCap, endPurchase, vatRate)	{
	if (vatRate == null)	{
		   vatRate = 0.175;
	}
	var initialPrice = document.calculator.calc_amount.value;
	
	if(!IsNumeric(initialPrice))	{
		alert('The amount you have entered is not valid.');
	}
	else if (initialPrice > maxPrice)	{
		alert('The amount you have entered exceeds the maximum of £'+maxPrice+' permitted under the Scheme.');
	}
	else	{
		var sacrificePeriod = document.calculator.calc_period.value-0;
		var taxPercentage = document.calculator.calc_tax.value-0;
		
		switch(taxPercentage)	{
			case 0.2:
				var NI = 0.11;
				break;
			case 0.4:
				var NI = 0.01;
				break;
		}
		
		var ourDiscount 		= roundDecimal(initialPrice*0.1);
		var newPrice 			= roundDecimal(initialPrice-ourDiscount);
		var employeePrice 		= roundDecimal((newPrice/(100+(100*vatRate)))*100);
		//alert(employeePrice + "    " + vatRate);
		var VAT 			= roundDecimal(newPrice-employeePrice);
		var totalDiscounts 		= roundDecimal(ourDiscount+VAT);
		var salarySacrifice 		= roundDecimal(employeePrice/sacrificePeriod,"down");
		var tax 			= roundDecimal(employeePrice*(taxPercentage+NI));
		if(endPurchase==true)	{
			var finalPayment 	= roundDecimal(newPrice*(endCap/100));
		} else	{
			var finalPayment	= 0;
		}
		var employeePays 		= roundDecimal(employeePrice+finalPayment);
		var employeeCost 		= roundDecimal(employeePrice-tax+finalPayment);
		var employeeSaving 		= roundDecimal(initialPrice-employeeCost);
		var employeeSavingPercent 	= roundDecimal(employeeSaving/initialPrice*100);
		
		returnObjByID('calc_rrp').innerHTML 		= "£"+roundDecimal(initialPrice).toFixed(2);
		returnObjByID('calc_disc').innerHTML 		= "£"+totalDiscounts.toFixed(2);
		returnObjByID('calc_bddisc').innerHTML 		= "£"+ourDiscount.toFixed(2);
		returnObjByID('calc_VAT').innerHTML 		= "£"+VAT.toFixed(2);
		returnObjByID('calc_subtotal').innerHTML 	= "£"+employeePrice.toFixed(2);
		returnObjByID('calc_divideby').innerHTML 	= sacrificePeriod.toFixed(0);
		returnObjByID('calc_save').innerHTML 		= "£"+employeeSaving.toFixed(2);
		returnObjByID('calc_finalcost').innerHTML 	= "£"+employeeCost.toFixed(2);
		returnObjByID('calc_owed').innerHTML 		= "£"+employeePays.toFixed(2);
		returnObjByID('calc_taxsaved').innerHTML 	= "£"+tax.toFixed(2);
		returnObjByID('calc_sal').innerHTML 		= "£"+salarySacrifice.toFixed(2);
		if(endPurchase==true)	{
			returnObjByID('calc_final').innerHTML 		= "£"+finalPayment.toFixed(2);
		}
		returnObjByID('calc_percent').innerHTML 	= "("+employeeSavingPercent.toFixed(2)+"%)";
	}
}

// toggler function

function toggle()	{
	if (returnObjByID('togglerow1').style.display=="none")	{
		var newAppearance = "";
		var newMessage = "<span>Hide details</span>";
	} else	{
		var newAppearance = "none";
		var newMessage = "<span>Show details</span>";
	}
	for(var i=1; i<9; i++)	{
		var target = 'togglerow'+i;
		//alert(target);
		returnObjByID(target).style.display = newAppearance;
	}
	returnObjByID('toggle').innerHTML = newMessage;
}
//-->
