// JavaScript Document

if (document.images)
{
  image1on = new Image();
  image1on.src = "images/home_on1.jpg";

  image2on = new Image();
  image2on.src = "images/biz_on1.jpg";

  image3on = new Image();
  image3on.src = "images/marine_on1.jpg";

  image1off = new Image();
  image1off.src = "images/home_off1.jpg";

  image2off = new Image();
  image2off.src = "images/biz_off1.jpg";

  image3off = new Image();
  image3off.src = "images/marine_off1.jpg";

  otherImageDefault = new Image();
  otherImageDefault.src = "images/side_blank.jpg";

  otherImage1 = new Image();
  otherImage1.src = "images/side_marine.jpg";

  otherImage2 = new Image();
  otherImage2.src = "images/side_biz.jpg";

  otherImage3 = new Image();
  otherImage3.src = "images/side_home.jpg";
}

function changeImages() 
{
  if (document.images) 
  {
    for (var i=0; i<changeImages.arguments.length; i+=2) 
	{
      document[changeImages.arguments[i]].src = eval(changeImages.arguments[i+1] + ".src");
    }
  }
}

function showtext(e,obj)
{
	var gettext = document.getElementById(obj);
	if(e.checked == true)
	{
		gettext.style.display = "block";
	}
	else
	gettext.style.display = "none";
}

function cleartext(e)
{
	e.value = "";
}

function expandingWindow(website) 
{
	var windowprops='width=100,height=100,scrollbars=no,status=no,resizable=no'
	var heightspeed = 2;
	var widthspeed = 7;
	var leftdist = 250;
	var topdist = 357;
	if (window.resizeTo&&navigator.userAgent.indexOf("Opera")==-1) 
	{
		var sizer = window.open("","","left=" + leftdist + ",top=" + topdist +","+ windowprops);
		for (sizeheight = 1; sizeheight < 345; sizeheight += heightspeed)
		sizer.resizeTo("1", sizeheight);
		for (sizewidth = 1; sizewidth < 500; sizewidth += widthspeed)
		sizer.resizeTo(sizewidth, sizeheight);
		sizer.location = website;
	}
	else
	window.open(website,'mywindow');
}


//Mortgage Calculation
function calculate(amount,years,rate)
{
	var getamount = document.getElementById(amount);
	var getyears = document.getElementById(years);
	var getrate = document.getElementById(rate);
	var getmontrate = document.getElementById("monthpay");
	var getonlyrate = document.getElementById("onlyintrest");
	var getamt = getamount.value;
	var getyer = getyears.value;
	var getrat = getrate.value;
	var getmonth = getmontrate.value;
	var getonly = getonlyrate.value;
	var rateperyear = getrat / 100;
	var si = getamt * rateperyear * getyer;
	var numofmonth = getyer * 12;
	var onlyintrest = si / numofmonth;
	getonlyrate.value = onlyintrest;
	
		var R = getrat / 100;
		var p = ((getamt*R)/12) * (1/(1-(Math.pow(1/(1+R),getyer))));
		getmontrate.value = p;
}


// Quick Health Calculation
        function calc() 
            {
	            with (Math) 
	            {
		            var weight = 1*document.forms.f.weightfield.value;
		            var height = 12*document.forms.f.feetfield.value + 1*document.forms.f.inchfield.value;
		            var bmi = weight/2.2/(pow((height*0.0254),2));
		            bmi = round(10*bmi)/10;
		            
			            document.forms.f.bmifield.value=bmi.toString();
		            var waist = 1*document.forms.f.waistfield.value;
		            var wthr = waist/height*100;
		            wthr = round(10*wthr)/10;
		            
			            document.forms.f.whtrfield.value=wthr.toString();
		            var sex = 1*document.forms.f.sexbutton.value;
		            var fat = (sex==1) * 100*(-98.42 + 4.15*waist - 0.082*weight)/weight + 
		            (sex==0) * 100*(-76.76 + 4.15*waist - 0.082*weight)/weight;
		            fat = round(fat*10)/10;
		            fat = fat - 35;
		            
			            document.forms.f.fatfield.value=fat.toString();
		            var area = pow(height * weight/3131, 0.50);
		            area = round(area*100)/100;
		            
			            document.forms.f.areafield.value=area.toString();
		            var age = 1*document.forms.f.agefield.value;
		            var bmr = (sex==1)*(13.75*weight/2.2 + 5.003*height*2.54 - 6.775*age + 66.5) + (sex==0)*(9.563*weight/2.2 + 1.850*height*2.54 - 4.676*age + 655.1);
		            bmr = round(bmr);
			        
			            document.forms.f.bmrfield.value=bmr.toString();
		            var willwt = pow(height,3)/1906;
		            willwt = round(willwt);
     
			            document.forms.f.willwtfield.value=willwt.toString();
		            var willwaist = height*0.4584;
		            willwaist = round(willwaist*10)/10;
			        
			            document.forms.f.willwaistfield.value=willwaist.toString();
	            } 
            }



// UK Tax Calculator
function PayslipCalc()
{
	var cGrossMonthlyPay = document.frmPayslipCalc.txtGrossMonthlyPay;
	var grossMonthlyPay = cGrossMonthlyPay.value;
	
	if (grossMonthlyPay == "")
	{
	
		grossMonthlyPay = 0;
		cGrossMonthlyPay.value = PreserveZeros(grossMonthlyPay);
	}
	else
	{
	
		grossMonthlyPay = parseFloat(grossMonthlyPay);
		
		if (isNaN(grossMonthlyPay) || grossMonthlyPay <= 0)
		{
		
			cGrossMonthlyPay.focus();
			alert("Invalid Gross Monthly Pay value");
			return;
		}
		else
		cGrossMonthlyPay.value = PreserveZeros(grossMonthlyPay);
	}
	var cTaxCodeLetters = document.frmPayslipCalc.selTaxCode;
	var taxCodeLetters = cTaxCodeLetters.value;
	var cTaxCodeNumber = document.frmPayslipCalc.txtTaxCode;
	var taxCodeNumber = cTaxCodeNumber.value;
	
	if (taxCodeNumber == "")
	{
		taxCodeNumber = 474;
		cTaxCodeNumber = taxCodeNumber.toString();
		
	}
	else
	{
		taxCodeNumber = parseFloat(taxCodeNumber);
		if (isNaN(taxCodeNumber) || taxCodeNumber < 0)
		{
			if (taxCodeLetters != "BR" && taxCodeLetters != "DO" && taxCodeLetters != "NT")
			{
				cTaxCodeNumber.focus();
				alert("Invalid Tax Code Number");
				return;
			}
			else
			
			cTaxCodeNumber.value = taxCodeNumber.toString();
		}
		else
		
		cTaxCodeNumber.value = taxCodeNumber.toString();
	}
	var monthlyTaxCode = (((10 * taxCodeNumber) + 9) / 12);
	var employersNIRate = 12.8;	
	var lowerTaxBracket = 10;	
	var middleTaxBracket = 22;
	var higherTaxBracket = 40;
	var lowerTaxLimit = 168;
	var middleTaxLimit = 2449;
	var lowerTaxSum = ((lowerTaxLimit / 100) * lowerTaxBracket);
	var middleTaxSum = ((middleTaxLimit / 100) * middleTaxBracket);
	var jointTaxLimit = lowerTaxLimit + middleTaxLimit;
	var lowerMonthlyGrossPayBracket = 11;
	var lowerMonthlyGrossPayLimit = 394;
	var higherMonthlyGrossPayLimit = 2643;
	var kCodeRegulatoryLimit = 0;
	var kCodeRegulatoryLimitMultiplier = 50;
	var payeTax = 0;
	var employeeNI = 0;
	var employerNI = 0;

// PAYE Tax
	
	if (taxCodeLetters == "BR") 
	{
		payeTax = ((grossMonthlyPay / 100) * middleTaxBracket);
	}
	else 	if (taxCodeLetters == "DO")
	{
		payeTax = ((grossMonthlyPay / 100) * higherTaxBracket);
	}
	else 	if (taxCodeLetters == "NT")
	{
		payeTax = 0;
	}
	else if (taxCodeLetters == "K")
	{			
	    var p = (((grossMonthlyPay - 1) + 1) + monthlyTaxCode);
		kCodeRegulatoryLimit = ((grossMonthlyPay / 100) * kCodeRegulatoryLimitMultiplier);
		if (p <= lowerTaxLimit)	
		{
			payeTax = (p / 100) * lowerTaxBracket;
		}
		else 
		if (p <= jointTaxLimit)
		{
			payeTax = (((p - lowerTaxLimit) / 100) * middleTaxBracket) + lowerTaxSum;
		}
		else
		{
			payeTax = (((p - jointTaxLimit) / 100) * higherTaxBracket) + middleTaxSum + lowerTaxSum;
		}
		if (payeTax > kCodeRegulatoryLimit)
		{
			payeTax = kCodeRegulatoryLimit;
		}
	}
	else
	
	{
var p = grossMonthlyPay;
	if (p <= monthlyTaxCode)
	{
		payeTax = 0;
	}
	else 
	if (p <= (monthlyTaxCode + lowerTaxLimit))
	{			
		payeTax = ((p - monthlyTaxCode) / 100) * lowerTaxBracket;
	}
	else 	if (p <= (monthlyTaxCode + jointTaxLimit)) 
	{
		payeTax = (((p - monthlyTaxCode - lowerTaxLimit) / 100) * middleTaxBracket) + lowerTaxSum;
	}
	else
	{
		payeTax = (((p - monthlyTaxCode - jointTaxLimit) / 100) * higherTaxBracket) + middleTaxSum + lowerTaxSum;
	}
  }

// Employee NI
	

	if (grossMonthlyPay <= lowerMonthlyGrossPayLimit)
	{				employeeNI = 0;
	}
	else 
	if (grossMonthlyPay <= higherMonthlyGrossPayLimit)
	{
		employeeNI = ((grossMonthlyPay - lowerMonthlyGrossPayLimit) / 100) * lowerMonthlyGrossPayBracket;
	}
	else
    {		
        employeeNI = (((higherMonthlyGrossPayLimit - lowerMonthlyGrossPayLimit) / 100) * lowerMonthlyGrossPayBracket) + 	((grossMonthlyPay - higherMonthlyGrossPayLimit) / 100);
	}
// Employer NI
	

	if (grossMonthlyPay <= lowerMonthlyGrossPayLimit)
	{
		employerNI = 0;
	}
	else
	{
	employerNI = ((grossMonthlyPay - lowerMonthlyGrossPayLimit) / 100) * employersNIRate;

	}	
	
	var cPAYETax = document.frmPayslipCalc.txtPAYETax;
	payeTax = Round2SD(payeTax);
	cPAYETax.value = PreserveZeros(payeTax);
	var cEmployeeNI = document.frmPayslipCalc.txtEmployeeNI;
	employeeNI = Round2SD(employeeNI);
	cEmployeeNI.value = PreserveZeros(employeeNI);
	var cNetPay = document.frmPayslipCalc.txtNetPay;
	var netPay = grossMonthlyPay - payeTax - employeeNI;
	netPay = Round2SD(netPay);
	cNetPay.value = PreserveZeros(netPay);
	var cEmployerNI = document.frmPayslipCalc.txtEmployerNI;
	employerNI = Round2SD(employerNI);
	cEmployerNI.value = PreserveZeros(employerNI);
	var cTotalPayment = document.frmPayslipCalc.txtTotalPayment;
	var totalPayment = grossMonthlyPay + employerNI;
	totalPayment = Round2SD(totalPayment);
	cTotalPayment.value = PreserveZeros(totalPayment);    
}



function PreserveZeros(v)
{
if (typeof(v) != "string") 
v = v.toString();
var decimalPos = v.indexOf(".");		
    if (decimalPos == -1)
	{
		v += ".";
		for (i = 0; i < 2; i++)
		{
			v += "0";
		}
	}
	else
	{
		var actualDecimals = (v.length - 1) - decimalPos;
		var difference = 2 - actualDecimals;
		for (i = 0; i < difference; i++)
		{
			v += "0";
		}
	}
	return v;
}


function Round2SD(v)
{
return Math.round(v * 100) / 100;
}

// UK Tax Calculator Ends Here ////////////////////////////
