function calculateCoSolTax(input){
if(input==''){
	window.alert('Please enter a valid numeric value');
}
else{
	if(isFinite(input)){
		input = Math.round(input);
	
		//GLOBAL Variable Declarations

		var PER_ALLOWANCE = 4895;
		var NAT_INS01 = 4895;
		var NAT_INS02 = 32760;
		var CO_CONTRI = 1.128;
		var PAYE_RATE01 = 0.1;
		var PAYE_RATE02 = 0.22;
		var PAYE_RATE03 = 0.4;
		var PAYE_RATE04 = 0;
		var PAYE_RATE05 = 0.11;
		var PAYE_RATE05a = 0.08;
		var PAYE_RATE06 = 0.01;
		var PAYE_FIX01 = 2090;
		var PAYE_FIX02 = 30310;
		var PAYE_FIX03 = 0;
		
		var MCS_RATE02 = 0.05;
		var MCS_RATE03 = 0.045;
		var MCS_RATE04 = 0.2375;
		var MCS_RATE05 = 0.19;
		var MCS_FIX01 = 10000;
		
		var OEC_RATE01 = 0.05;
	
		//PAYE Calculations

		document.all.CoSolTaxPaye01.value = Math.round(input); //display PAYE Income
		
		var paye_taxable, paye_amt01, paye_tax01, paye_amt02, paye_tax02, paye_amt03, paye_tax03, paye_tax;
		var paye_insamt01, paye_natins01, paye_insamt02, paye_natins02, paye_insamt03, paye_natins03, paye_natins;
		var paye_cocontri, paye_indnatins, paye_totnatins;

		paye_taxable = input - PER_ALLOWANCE;
		
		paye_amt01 = paye_taxable < PAYE_FIX01 ? paye_taxable : PAYE_FIX01;
		paye_tax01 = paye_amt01 < 0 ? 0 : (paye_amt01 * PAYE_RATE01);
		
		paye_amt02 = (paye_taxable - paye_amt01) > PAYE_FIX02 ? PAYE_FIX02 : (paye_taxable - paye_amt01);
		paye_tax02 = paye_amt02 < 0 ? 0 : (paye_amt02 * PAYE_RATE02);
		
		paye_amt03 = (paye_taxable - paye_amt01 - paye_amt02) < PAYE_FIX03 ? PAYE_FIX03 : (paye_taxable - paye_amt01 - paye_amt02);
		paye_tax03 = paye_amt03 * PAYE_RATE03; 
		
		paye_tax = paye_tax01 + paye_tax02 + paye_tax03;
		
		paye_insamt01 = input > NAT_INS01 ? NAT_INS01 : input;
		paye_natins01 = paye_insamt01 * PAYE_RATE04;
		
		paye_insamt02 = (input > NAT_INS02) ? (NAT_INS02 - NAT_INS01) : (input - paye_insamt01);
		paye_natins02 = paye_insamt02 * PAYE_RATE05;
		
		paye_insamt03 = (paye_insamt02 == (NAT_INS02 - NAT_INS01)) ? (input - NAT_INS02) : 0;
		paye_natins03 = paye_insamt03 * PAYE_RATE06;
		
		paye_natins = paye_natins01 + paye_natins02 + paye_natins03;
		
		paye_cocontri = (paye_insamt02 + paye_insamt03) * CO_CONTRI;
		
		paye_indnatins = paye_natins02;
		
		paye_totnatins = paye_cocontri + paye_indnatins + paye_tax;
		
		document.all.CoSolTaxPaye02.value = Math.round(paye_tax + paye_natins); //display PAYE Expenses and Taxes
		
		document.all.CoSolTaxPaye03.value = Math.round(document.all.CoSolTaxPaye01.value - document.all.CoSolTaxPaye02.value);
		
		document.all.CoSolTaxPaye04.value = 0; //display PAYE Savings
		
		//MCS Calculations
		
		var mcs_grincome, mcs_expenses, msc_fee, mcs_deductions, mcs_taxable, mcs_cotax, mcs_divident;
		var mcs_dividenttax, mcs_companytax, mcs_netincome;
		var mcs_salary;
		
		document.all.MCS01.value = Math.round(input * CO_CONTRI); //display MCS Product Income
		
		mcs_grincome = input * CO_CONTRI;
		mcs_expenses = mcs_grincome * MCS_RATE02;
		mcs_fee = mcs_grincome * MCS_RATE03;
		mcs_salary = 4895;
		mcs_deductions = mcs_expenses + mcs_fee + mcs_salary;
		mcs_taxable = mcs_grincome - mcs_deductions;
		mcs_cotax = (mcs_taxable > 50000) ? (mcs_taxable * 0.19) : ((mcs_taxable - 10000) * 0.2375);
		mcs_divident = mcs_taxable - mcs_cotax;
		mcs_dividenttax = mcs_divident * MCS_RATE05;
		mcs_companytax = mcs_dividenttax > mcs_cotax ? mcs_dividenttax : mcs_cotax;
		mcs_netincome = mcs_grincome - mcs_fee - mcs_companytax;
		
		document.all.MCS02.value = Math.round(mcs_fee + mcs_companytax); //display MCS Product Expenses and Taxes
		
		document.all.MCS03.value = Math.round(mcs_netincome);
		
		document.all.MCS04.value = Math.round(document.all.MCS03.value - document.all.CoSolTaxPaye03.value);

		//OEC Calculations
		
		var oec_grincome, oec_paye_grsalary, oec_expenses, oec_fee, oec_deductions, oec_netincome;
		var oec_paye_grsalary, oec_peye_taxable, oec_paye_amt01, oec_paye_amt02, oec_paye_amt03;
		var oec_paye_tax01, oec_paye_tax02, oec_paye_tax03, oec_paye_tax;
		var oec_paye_insamt01, oec_paye_insamt02, oec_paye_insamt03;
		var oec_paye_natins01, oec_paye_natins02, oec_paye_natins03, oec_paye_natins;
		
		document.all.OEC01.value = Math.round(mcs_grincome); //display OEC Product Income
		
		oec_grincome = input * CO_CONTRI;
		
		oec_paye_grsalary = oec_grincome / 2;
		oec_paye_taxable = oec_paye_grsalary - PER_ALLOWANCE;
		
		oec_paye_amt01 = (oec_paye_taxable < PAYE_FIX01) ? oec_paye_taxable : PAYE_FIX01;
		oec_paye_tax01 = (oec_paye_amt01 < 0) ? 0 : (oec_paye_amt01 * PAYE_RATE01);
		
		oec_paye_amt02 = ((oec_paye_taxable - oec_paye_amt01) > PAYE_FIX02) ? PAYE_FIX02 : (oec_paye_taxable - oec_paye_amt01);
		oec_paye_tax02 = (oec_paye_amt02 < 0) ? 0 : (oec_paye_amt02 * PAYE_RATE02);
		
		oec_paye_amt03 = ((oec_paye_taxable - oec_paye_amt02 - oec_paye_amt01) < 0 ? 0 : (oec_paye_taxable - oec_paye_amt02 - oec_paye_amt01));
		oec_paye_tax03 = oec_paye_amt03 * PAYE_RATE03;
		
		oec_paye_tax = oec_paye_tax01 + oec_paye_tax02 + oec_paye_tax03;
		
		oec_paye_insamt01 = PER_ALLOWANCE;
		oec_paye_natins01 = oec_paye_insamt01 * PAYE_RATE04;
		
		oec_paye_insamt02 = (oec_paye_grsalary > NAT_INS02) ? (NAT_INS02 - NAT_INS01) : (oec_paye_grsalary - oec_paye_insamt01);
		oec_paye_natins02 = oec_paye_insamt02 * PAYE_RATE05a;
		
		oec_paye_insamt03 = (oec_paye_insamt02 == (NAT_INS02 - NAT_INS01)) ? (oec_paye_grsalary - NAT_INS02) : 0;
		oec_paye_natins03 = oec_paye_insamt03 * PAYE_RATE06;
		
		oec_paye_natins = oec_paye_natins01 + oec_paye_natins02 + oec_paye_natins03;
		
		oec_expenses = 300;
		oec_fee = oec_grincome * OEC_RATE01;
		oec_deductions = oec_expenses + oec_fee + oec_paye_tax + oec_paye_natins;
		
		oec_netincome = oec_grincome - oec_deductions;
		
		document.all.OEC02.value = Math.round(oec_deductions); //display OEC Product Expenses and Taxes
		
		document.all.OEC03.value = Math.round(document.all.OEC01.value - document.all.OEC02.value);
		
		document.all.OEC04.value = Math.round(document.all.OEC03.value - document.all.CoSolTaxPaye03.value);
	}
	else{

//If the input value is not a number

		alert('Please enter a numeric value');
	}
}
}

function resetCoSolTax(){
	document.all.CoSolTaxIncome.value = '';
	
	document.all.CoSolTaxPaye01.value = '';
	document.all.CoSolTaxPaye02.value = '';
	document.all.CoSolTaxPaye03.value = '';
	document.all.CoSolTaxPaye04.value = '';
	
	document.all.MCS01.value = '';
	document.all.MCS02.value = '';
	document.all.MCS03.value = '';
	document.all.MCS04.value = '';
	
	document.all.OEC01.value = '';
	document.all.OEC02.value = '';
	document.all.OEC03.value = '';
	document.all.OEC04.value = '';
}