/*
	repaymentCalculator coded (probably badly!) by Si Watts, SiWIS Ltd, April 2010
	This calculator is the intellectual property of SiWIS Ltd and may not be used without permission.
	http://www.siwis.co.uk
	simon@siwis.co.uk
*/



function runCalcs()	{
	var bikeValue = parseFloat(document.getElementById('bikeValue').value);
	var accessoriesValue = parseFloat(document.getElementById('accessoriesValue').value);
	var currentVATRate = 0.175;
	var taxRate = 0.20;
	var niRate = 0.11;
	var taxRateHigh = 0.40;
	var niRateHigh = 0.01;
	var niEmployerRate = 0.128;
	var niEmployerRateHigh = 0.128;
	var nominalResidualValue = 0.05;
	var maxSpend = 1000;
	goodsValue = bikeValue + accessoriesValue;
	document.getElementById('goodsValue').value = formatNumber22DP(goodsValue);
	goodsValueExVAT = goodsValue / (1 + currentVATRate);
	document.getElementById('goodsValueExVAT').value = formatNumber22DP(goodsValueExVAT);
	if (goodsValue > maxSpend)	{
		document.getElementById('goodsValueError').style.display = '';
		document.getElementById('grossSalarySacrifice').value = '0';
		document.getElementById('payeSaving').value = '0';
		document.getElementById('niSaving').value = '0';
		document.getElementById('netSalarySacrifice').value = '0';
		document.getElementById('totalSalarySacrifice').value = '0';
		document.getElementById('grossSavings').value = '0';
		document.getElementById('grossSavingsPercentage').value = '0%';
		document.getElementById('grossSalarySacrifice40').value = '0';
		document.getElementById('payeSaving40').value = '0';
		document.getElementById('niSaving40').value = '0';
		document.getElementById('netSalarySacrifice40').value = '0';
		document.getElementById('totalSalarySacrifice40').value = '0';
		document.getElementById('grossSavings40').value = '0';
		document.getElementById('grossSavingsPercentage40').value = '0%';
	}	else	{
		document.getElementById('goodsValueError').style.display = 'none';
		var repaymentQuantity = document.getElementById('repaymentQuantity').value;
		repaymentQuantity = parseInt(repaymentQuantity);
		if ((repaymentQuantity > 18) || (repaymentQuantity < 6))	{
			document.getElementById('repaymentQuantityError').style.display = '';
			document.getElementById('grossSalarySacrifice').value = '0';
			document.getElementById('payeSaving').value = '0';
			document.getElementById('niSaving').value = '0';
			document.getElementById('netSalarySacrifice').value = '0';
			document.getElementById('totalSalarySacrifice').value = '0';
			document.getElementById('grossSavings').value = '0';
			document.getElementById('grossSavingsPercentage').value = '0%';
			document.getElementById('grossSalarySacrifice40').value = '0';
			document.getElementById('payeSaving40').value = '0';
			document.getElementById('niSaving40').value = '0';
			document.getElementById('netSalarySacrifice40').value = '0';
			document.getElementById('totalSalarySacrifice40').value = '0';
			document.getElementById('grossSavings40').value = '0';
			document.getElementById('grossSavingsPercentage40').value = '0%';
		}	else	{
			document.getElementById('repaymentQuantityError').style.display = 'none';
			grossSalarySacrifice = goodsValueExVAT / repaymentQuantity;
			document.getElementById('grossSalarySacrifice').value = formatNumber22DP(grossSalarySacrifice);
			payeSaving = grossSalarySacrifice * taxRate;
			document.getElementById('payeSaving').value = formatNumber22DP(payeSaving);
			niSaving = grossSalarySacrifice * niRate;
			document.getElementById('niSaving').value = formatNumber22DP(niSaving);
			netSalarySacrifice = grossSalarySacrifice - payeSaving - niSaving;
			document.getElementById('netSalarySacrifice').value = formatNumber22DP(netSalarySacrifice);
			totalSalarySacrifice = netSalarySacrifice * repaymentQuantity;
			document.getElementById('totalSalarySacrifice').value = formatNumber22DP(totalSalarySacrifice);
			grossSavings = goodsValue - totalSalarySacrifice;
			document.getElementById('grossSavings').value = formatNumber22DP(grossSavings);
			grossSavingsPercentage = (grossSavings / goodsValue) * 100;
			document.getElementById('grossSavingsPercentage').value = (Math.round(grossSavingsPercentage)) + '%';
			grossSalarySacrifice40 = goodsValueExVAT / repaymentQuantity;
			document.getElementById('grossSalarySacrifice40').value = formatNumber22DP(grossSalarySacrifice40);
			payeSaving40 = grossSalarySacrifice * taxRateHigh;
			document.getElementById('payeSaving40').value = formatNumber22DP(payeSaving40);
			niSaving40 = grossSalarySacrifice * niRateHigh;
			document.getElementById('niSaving40').value = formatNumber22DP(niSaving40);
			netSalarySacrifice40 = grossSalarySacrifice - payeSaving40 - niSaving40;
			document.getElementById('netSalarySacrifice40').value = formatNumber22DP(netSalarySacrifice40);
			totalSalarySacrifice40 = netSalarySacrifice40 * repaymentQuantity;
			document.getElementById('totalSalarySacrifice40').value = formatNumber22DP(totalSalarySacrifice40);
			grossSavings40 = goodsValue - totalSalarySacrifice40;
			document.getElementById('grossSavings40').value = formatNumber22DP(grossSavings40);
			grossSavingsPercentage40 = (grossSavings40 / goodsValue) * 100;
			document.getElementById('grossSavingsPercentage40').value = (Math.round(grossSavingsPercentage40)) + '%';
		}
	}
}

function formatNumber22DP(mnt)	{
	mnt -= 0;
	mnt = (Math.round(mnt * 100)) / 100;
	return (mnt == Math.floor(mnt)) ? mnt + '.00' : ((mnt * 10 == Math.floor(mnt * 10)) ? mnt + '0' : mnt);
}

function formatNumber21DP(mnt)	{
	mnt -= 0;
	mnt = (Math.round(mnt * 10)) / 10;
	return (mnt == Math.floor(mnt)) ? mnt + '.0' : mnt;
}


