<!--
/***************************************
|   JavaScript                          |
|   Copyright 2000                      |
|   Construct and Build Ltd.            |
|   Unauthorised Use Prohibited         |
|   http://www.constructandbuild.com    |
|   E-mail: info@constructandbuild.com  |
****************************************/

function validate_number(text,errMsg)
{
	if (isNaN(text.value))
	{
	  alert("Please enter a valid number for " + errMsg);
	  text.value="0";
	  text.focus;
	  text.select;
	  return false;
	}
	return true;
}

function format(str) {
index = str.indexOf(".");
if (index < 0) str = str + ".00";
else {
str = str.substring(0, index + 3);
if (str.length < (index + 3)) str += "0";
}
return str;
}

function clearForm(form,e)
{
	form.insulation1.value = "";
	form.unventedHotWater1.value = "";
	form.porch1.value = "";
	form.porch2.value = "";
	form.porch3.value = "";
	form.extension1.value = "";
	form.extension2.value = "";
	form.extension3.value = "";
	form.attachedGarage1.value = "";
	form.attachedGarage2.value = "";
	form.attachedGarage3.value = "";
	form.attachedCarport1.value = "";
	form.attachedCarport2.value = "";
	form.attachedCarport3.value = "";
	form.detachedGarage1.value = "";
	form.detachedGarage2.value = "";
	form.roofspace1.value = "";
	form.dwellings.value = "";
	form.planTypes.value = "";
	form.estimatedWorkCost.value = "";
	form.largeDwellingsNo.value = "";
	form.largeDwellingsCost.value = "";
	form.insulation1.value = "";
	


}

function calculateFee(form,e)
{
	//------ Fees Totals Initial Values  ------
	// (0:Plan, 1:Inspection, 2:Building Notice, 3:Regularisation)
	var feeInsulationT = new Array(0,0,0,0);	 // Fee Insulation
	var feeHotWaterT = new Array(0,0,0,0);       //Fee Unvented Hot Water
	var feePorch1T = new Array(0,0,0,0);
	var feePorch2T = new Array(0,0,0,0);
	var feePorch3T = new Array(0,0,0,0);
	var feeExtension1T = new Array(0,0,0,0);
	var feeExtension2T = new Array(0,0,0,0);
	var feeExtension3T = new Array(0,0,0,0);
	var feeRoofspace1T = new Array(0,0,0,0);
	var feeAttachedGarage1T = new Array(0,0,0,0);
	var feeAttachedGarage2T = new Array(0,0,0,0);
	var feeAttachedGarage3T = new Array(0,0,0,0);
	var feeAttachedCarport1T = new Array(0,0,0,0);
	var feeAttachedCarport2T = new Array(0,0,0,0);
	var feeAttachedCarport3T = new Array(0,0,0,0);
	var feeDetachedGarage1T = new Array(0,0,0,0);
	var feeDetachedGarage2T = new Array(0,0,0,0);

	var feeDwellings = new Array(0,0,0,0);		//Sub-total
	var feeOther = new Array(0,0,0,0);			//Sub-total
	var feeLargeDwelling = new Array(0,0,0,0);	//Sub-total
	var feeTotal = new Array(0,0,0,0);			//Grand total
	var feeVATTotal = new Array(0,0,0,0);

  	//------ Fees for Extensions and Alterations ------
	// (0:Plan, 1:Inspection, 2:Building Notice, 3:Regularisation)
	//
	//Installation of insulation
	var feeInsulation1 = new Array(0,0,0,0);
	//Installation of Unvented Hot Water System
	var feeHotWater1 = new Array(50,0,50,60);
	//Domestic Porches
	var feePorch1 = new Array(0,0,0,0);
	var feePorch2 = new Array(50,100,150,180);
	var feePorch3 = new Array(60,120,180,216);
	//Extensions to Domestic Buildings
	var feeExtension1 = new Array(100,0,100,120);
	var feeExtension2 = new Array(50,100,150,180);
	var feeExtension3 = new Array(60,120,180,216);
	//Roofspace Conversions
	var feeRoofspace1 = new Array(60,120,180,216);
	//Attached Garages
	var feeAttachedGarage1 = new Array(100,0,100,120);
	var feeAttachedGarage2 = new Array(50,100,150,180);
	var feeAttachedGarage3 = new Array(60,120,180,216);
	//Attached Carports
	var feeAttachedCarport1 = new Array(0,0,0,0);
	var feeAttachedCarport2 = new Array(50,100,150,180);
	var feeAttachedCarport3 = new Array(60,120,180,216);
	//Detached Carports and Garages
	var feeDetachedGarage1 = new Array(0,0,0,0);
	var feeDetachedGarage2 = new Array(70,0,70,84);

	//Dwelling type plan fee
	var feeDwellingType = new Array(75,140,205,270,335,400,465,530,595,660,725,790,855,920,985,1050,1115,1180,1245,1310);
	var feeDwellingType_additional = 65;	//Additional fee for additional plan types

	//Additional plan fee
	var feeAdditionalPlan = new Array(40,80,120,160,190,220,250,280,310,330,350,370,390,410,430,450,470,490,510);
	var feeAdditionalPlan_additional = 10;	//Additional plan fee for each additional dwelling in excess of 20

	//Dwelling inspection fee
	var feeDwellingInspection1 = 175;		//Inspection fee for 1 dwelling
	var feeDwellingInspection = new Array(340,505,670,835,985,1135,1285,1435,1585,1710,1835,1960,2085,2210,2335,2460,2585,2710,2835);
	var feeDwellingInspection_additional = 100;		//Additional fee for each additional dwelling in excess of 20

	//Dwelling building notice fee for 1 dwelling
	var feeDwellingBuildingNotice1 = 250;

	//Dwelling regularisation fee for 1 dwelling
	var feeDwellingRegularisation1 = 300;

	//------ Fees for works not included in preceding categories ------
	//(0:Plan, 1:Inspection, 2:Building Notice, 3:Regularisation)
	var feeOther1 = new Array(60,0,60,72);						// > £2000
	var feeOther2 = new Array(150,0,150,180);					// £2000 - £5000
	var feeOther3 = new Array(37.50,112.50,150,180);			//£5000 - £20,000
	var feeOther3_additional = new Array(2.50,7.50,10.00,12.00);//Additional fee per £1000 above £5000
	var feeOther4 = new Array(75,225,300,360);					//£20,000 - £100,000
	var feeOther4_additional = new Array(2.00,6.00,8.00,9.60);	//Additional fee per £1000 above £20,000
	var feeOther5 = new Array(235,705,940,1128);				//£100,000 - £1,000,000
	var feeOther5_additional = new Array(1.25,3.75,5.00,6.00);	//Additional fee per £1000 above £100,000
	var feeOther6 = new Array(1360,4080,5440,6528);				//£1,000,000 - £10,000,000
	var feeOther6_additional = new Array(0.875,2.625,3.50,4.20);	//Additional fee per £1000 above £1,000,000
	var feeOther7 = new Array(9235,27705,36940,44238);			//over £10,000,000
	var feeOther7_additional = new Array(0.75,2.25,3.00,3.60);	//Additional fee per £1000 above £10,000,000

	var i = 0;
	var n = 0;

	var nDwellings = 0;
	var nPlanTypes = 0;
	var estimatedCost = 0
	var estimatedLDCost = 0;
	var VATrate = 1.175;

	//Validate the input values
	if (!validate_number(form.insulation1,"the number of insulation installations")) {return false};
	if (!validate_number(form.unventedHotWater1,"the number of hot water systems")) {return false};
	if (!validate_number(form.porch1,"the number of porches")) {return false};
	if (!validate_number(form.porch2,"the number of porches")) {return false};
	if (!validate_number(form.porch3,"the number of porches")) {return false};
	if (!validate_number(form.extension1,"the number of extensions")) {return false};
	if (!validate_number(form.extension2,"the number of extensions")) {return false};
	if (!validate_number(form.extension3,"the number of extensions")) {return false};
	if (!validate_number(form.roofspace1,"the number of roofspaces")) {return false};
	if (!validate_number(form.attachedGarage1,"the number of attached garages")) {return false};
	if (!validate_number(form.attachedGarage2,"the number of attached garages")) {return false};
	if (!validate_number(form.attachedGarage3,"the number of attached garages")) {return false};
	if (!validate_number(form.attachedCarport1,"the number of attached carports")) {return false};
	if (!validate_number(form.attachedCarport2,"the number of attached carports")) {return false};
	if (!validate_number(form.attachedCarport3,"the number of attached carports")) {return false};
	if (!validate_number(form.detachedGarage1,"the number of detached garages")) {return false};
	if (!validate_number(form.detachedGarage2,"the number of detached garages")) {return false};
	if (!validate_number(form.dwellings,"the number of dwellings")) {return false};
	if (!validate_number(form.planTypes,"the number of plan types")) {return false};
	if (!validate_number(form.estimatedWorkCost,"the estimated work cost")) {return false};
	if (!validate_number(form.largeDwellingsCost,"the estimated work cost")) {return false};


	//------ Calculate the fees ------
	//Insulation
	n = parseInt(form.insulation1.value);	if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeInsulationT[i] += feeInsulation1[i] * n};
	//--- Sub-totals for "Unvented Hot Water Systems" ---

	form.insulationP.value = String(feeInsulationT[0]);
  //setLabel('insulationP',String(feeInsulationT[0]));
	form.insulationI.value = String(feeInsulationT[1]);
	form.insulationN.value = String(feeInsulationT[2]);
	form.insulationR.value = String(feeInsulationT[3]);

	//Unvented hot water systems
	n = parseInt(form.unventedHotWater1.value);	if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeHotWaterT[i] += feeHotWater1[i] * n};
	//--- Sub-totals for "Unvented Hot Water Systems" ---
	form.unventedHotWaterP.value = String(feeHotWaterT[0]);
	form.unventedHotWaterI.value = String(feeHotWaterT[1]);
	form.unventedHotWaterN.value = String(feeHotWaterT[2]);
	form.unventedHotWaterR.value = String(feeHotWaterT[3]);

	//Domestic porches
	n = parseInt(form.porch1.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feePorch1T[i] += feePorch1[i] * n};
	form.porch1P.value = String(feePorch1T[0]);
	form.porch1I.value = String(feePorch1T[1]);
	form.porch1N.value = String(feePorch1T[2]);
	form.porch1R.value = String(feePorch1T[3]);

	n = parseInt(form.porch2.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feePorch2T[i] += feePorch2[i] * n};
	form.porch2P.value = String(feePorch2T[0]);
	form.porch2I.value = String(feePorch2T[1]);
	form.porch2N.value = String(feePorch2T[2]);
	form.porch2R.value = String(feePorch2T[3]);

	n = parseInt(form.porch3.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feePorch3T[i] += feePorch3[i] * n};
	form.porch3P.value = String(feePorch3T[0]);
	form.porch3I.value = String(feePorch3T[1]);
	form.porch3N.value = String(feePorch3T[2]);
	form.porch3R.value = String(feePorch3T[3]);

	//Extensions to domestic buildings
	n = parseInt(form.extension1.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeExtension1T[i] += feeExtension1[i] * n};
	form.extension1P.value = String(feeExtension1T[0]);
	form.extension1I.value = String(feeExtension1T[1]);
	form.extension1N.value = String(feeExtension1T[2]);
	form.extension1R.value = String(feeExtension1T[3]);

	n = parseInt(form.extension2.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeExtension2T[i] += feeExtension2[i] * n};
	form.extension2P.value = String(feeExtension2T[0]);
	form.extension2I.value = String(feeExtension2T[1]);
	form.extension2N.value = String(feeExtension2T[2]);
	form.extension2R.value = String(feeExtension2T[3]);

	n = parseInt(form.extension3.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeExtension3T[i] += feeExtension3[i] * n};
	form.extension3P.value = String(feeExtension3T[0]);
	form.extension3I.value = String(feeExtension3T[1]);
	form.extension3N.value = String(feeExtension3T[2]);
	form.extension3R.value = String(feeExtension3T[3]);

	//Roofspace conversions
	n = parseInt(form.roofspace1.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeRoofspace1T[i] += feeRoofspace1[i] * n};
	form.roofspace1P.value = String(feeRoofspace1T[0]);
	form.roofspace1I.value = String(feeRoofspace1T[1]);
	form.roofspace1N.value = String(feeRoofspace1T[2]);
	form.roofspace1R.value = String(feeRoofspace1T[3]);

	//Attached garages
	n = parseInt(form.attachedGarage1.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeAttachedGarage1T[i] += feeAttachedGarage1[i] * n};
	form.attachedGarage1P.value = String(feeAttachedGarage1T[0]);
	form.attachedGarage1I.value = String(feeAttachedGarage1T[1]);
	form.attachedGarage1N.value = String(feeAttachedGarage1T[2]);
	form.attachedGarage1R.value = String(feeAttachedGarage1T[3]);

	n = parseInt(form.attachedGarage2.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeAttachedGarage2T[i] += feeAttachedGarage2[i] * n};
	form.attachedGarage2P.value = String(feeAttachedGarage2T[0]);
	form.attachedGarage2I.value = String(feeAttachedGarage2T[1]);
	form.attachedGarage2N.value = String(feeAttachedGarage2T[2]);
	form.attachedGarage2R.value = String(feeAttachedGarage2T[3]);

	n = parseInt(form.attachedGarage3.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeAttachedGarage3T[i] += feeAttachedGarage3[i] * n};
	form.attachedGarage3P.value = String(feeAttachedGarage3T[0]);
	form.attachedGarage3I.value = String(feeAttachedGarage3T[1]);
	form.attachedGarage3N.value = String(feeAttachedGarage3T[2]);
	form.attachedGarage3R.value = String(feeAttachedGarage3T[3]);

	//Attached carports
	n = parseInt(form.attachedCarport1.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeAttachedCarport1T[i] += feeAttachedCarport1[i] * n};
	form.attachedCarport1P.value = String(feeAttachedCarport1T[0]);
	form.attachedCarport1I.value = String(feeAttachedCarport1T[1]);
	form.attachedCarport1N.value = String(feeAttachedCarport1T[2]);
	form.attachedCarport1R.value = String(feeAttachedCarport1T[3]);

	n = parseInt(form.attachedCarport2.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeAttachedCarport2T[i] += feeAttachedCarport2[i] * n};
	form.attachedCarport2P.value = String(feeAttachedCarport2T[0]);
	form.attachedCarport2I.value = String(feeAttachedCarport2T[1]);
	form.attachedCarport2N.value = String(feeAttachedCarport2T[2]);
	form.attachedCarport2R.value = String(feeAttachedCarport2T[3]);

	n = parseInt(form.attachedCarport3.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeAttachedCarport3T[i] += feeAttachedCarport3[i] * n};
	form.attachedCarport3P.value = String(feeAttachedCarport3T[0]);
	form.attachedCarport3I.value = String(feeAttachedCarport3T[1]);
	form.attachedCarport3N.value = String(feeAttachedCarport3T[2]);
	form.attachedCarport3R.value = String(feeAttachedCarport3T[3]);

	//Detached carports and garages
	n = parseInt(form.detachedGarage1.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeDetachedGarage1T[i] += feeDetachedGarage1[i] * n};
	form.detachedGarage1P.value = String(feeDetachedGarage1T[0]);
	form.detachedGarage1I.value = String(feeDetachedGarage1T[1]);
	form.detachedGarage1N.value = String(feeDetachedGarage1T[2]);
	form.detachedGarage1R.value = String(feeDetachedGarage1T[3]);

	n = parseInt(form.detachedGarage2.value); if (isNaN(n)) n = 0;
	if (n > 0) for (i=0; i<4; i++) {feeDetachedGarage2T[i] += feeDetachedGarage2[i] * n};
	form.detachedGarage2P.value = String(feeDetachedGarage2T[0]);
	form.detachedGarage2I.value = String(feeDetachedGarage2T[1]);
	form.detachedGarage2N.value = String(feeDetachedGarage2T[2]);
	form.detachedGarage2R.value = String(feeDetachedGarage2T[3]);

	//--- Erection of domestic buildings ---

	//If number of dwellings is null, set number of plan types null
	if (form.dwellings.value == "") {form.planTypes.value = "";}

	//Determine number of dwellings
	if ((isNaN(form.dwellings.value)) || (form.dwellings.value==""))
		nDwellings = 0;
	else
		nDwellings = parseInt(form.dwellings.value);

	//Determine number of plan types
	if ((isNaN(form.planTypes.value)) || (form.planTypes.value==""))
		nPlanTypes = 0;
	else
		nPlanTypes = parseInt(form.planTypes.value);

	//Check number of plan types - must have at least 1 if any dwellings
	if ((nDwellings >= 1) && (nPlanTypes == 0))
	{
		if (document.all) {
			if(window.event.keyCode != 8){
				nPlanTypes = 1;
				form.planTypes.value = "1";
				form.planTypes.select;
			}
		}else{
			if(e.keyCode != 8){
				nPlanTypes = 1;
				form.planTypes.value = "1";
				form.planTypes.select;
			}
		}
	}


	//Set number of plan types to 0 if no dwellings
	if ((nDwellings == 0) && (nPlanTypes > 0))
	{
		nPlanTypes = 0;
		form.planTypes.value = "0";
		form.planTypes.select;
	}

	//Dwelling type plan fee
	if ((nPlanTypes >= 1) && (nPlanTypes <= 20))
	{
		i = nPlanTypes - 1;
		feeDwellings[0] = feeDwellingType[i];
	}
	if (nPlanTypes > 20)
	{
		feeDwellings[0] = (feeDwellingType[19] + feeDwellingType_additional * (nPlanTypes - 20));
	}

	//Additional plan fee
	if ((nDwellings >= 2) && (nDwellings <= 20))
	{
		feeDwellings[0] += feeAdditionalPlan[nDwellings-2];
	}
	if (nDwellings > 20)
	{
		feeDwellings[0] += (feeAdditionalPlan[18] + feeAdditionalPlan_additional * (nDwellings - 20));
	}

	//Dwelling inspection fee
	if (nDwellings == 1) feeDwellings[1] = feeDwellingInspection1;
	if ((nDwellings >= 2) && (nDwellings <= 20))
	{
		feeDwellings[1] = feeDwellingInspection[nDwellings-2];
	}
	if (nDwellings > 20)
	{
		feeDwellings[1] = (feeDwellingInspection[18] + feeDwellingInspection_additional * (nDwellings - 20));
	}

	//Dwelling building notice fee
	if (nDwellings == 1) feeDwellings[2] = feeDwellingBuildingNotice1;
	if (nDwellings >= 2)
	{
		feeDwellings[2] = feeDwellings[0] + feeDwellings[1];
	}

	//Dwelling regularisation fee
	if (nDwellings == 1) feeDwellings[3] = feeDwellingRegularisation1;
	if (nDwellings >= 2)
	{
		feeDwellings[3] = feeDwellings[2] * 1.2;
	}

	//--- Sub-totals for "Domestic dwellings" ---
	form.feeDwellings1.value = String(feeDwellings[0]);
	form.feeDwellings2.value = String(feeDwellings[1]);
	form.feeDwellings3.value = String(feeDwellings[2]);
	form.feeDwellings4.value = String(feeDwellings[3]);


	//------ Works not included in preceding categories ------
	estimatedCost = parseInt(form.estimatedWorkCost.value);
	if (isNaN(estimatedCost)) estimatedCost = 0;
	if (estimatedCost > 0)
	{
		// < 2000
		if (estimatedCost <= 2000)
		{
			for (i=0; i<4; i++) {feeOther[i] = feeOther1[i]};
		}
		//2000 - 5000
		else if (estimatedCost <= 5000)
		{
			for (i=0; i<4; i++) {feeOther[i] = feeOther2[i]};
		}
		//5000 - 20,000
		else if (estimatedCost <= 20000)
		{
			for (i=0; i<4; i++) {feeOther[i] = feeOther3[i]};
			if (estimatedCost > 5000)
			{
				n = ((estimatedCost - 5001) / 1000) + 1;
				n = n - (n % 1);
				for (i=0; i<4; i++) {feeOther[i] += feeOther3_additional[i] * n};
			}
		}
		//20,000 - 100,000
		else if (estimatedCost <= 100000)
		{
			for (i=0; i<4; i++) {feeOther[i] = feeOther4[i]};
			if (estimatedCost > 20000)
			{
				n = ((estimatedCost - 20001) / 1000) + 1;
				n = n - (n % 1);
				for (i=0; i<4; i++) {feeOther[i] += feeOther4_additional[i] * n};
			}
		}
		//100,000 - 1,000,000
		else if (estimatedCost <= 1000000)
		{
			for (i=0; i<4; i++) {feeOther[i] = feeOther5[i]};
			if (estimatedCost > 100000)
			{
				n = ((estimatedCost - 100001) / 1000) + 1;
				n = n - (n % 1);
				for (i=0; i<4; i++) {feeOther[i] += feeOther5_additional[i] * n};
			}
		}
		//1,000,000 - 10,000,000
		else if (estimatedCost <= 10000000)
		{
			for (i=0; i<4; i++) {feeOther[i] = feeOther6[i]};
			if (estimatedCost > 1000000)
			{
				n = ((estimatedCost - 1000001) / 1000) + 1;
				n = n - (n % 1);
				for (i=0; i<4; i++) {feeOther[i] += feeOther6_additional[i] * n};
			}
		}
		// > 10,000,000
		else
		{
			for (i=0; i<4; i++) {feeOther[i] = feeOther7[i]};
			if (estimatedCost > 10000000)
			{
				n = ((estimatedCost - 10000001) / 1000) + 1;
				n = n - (n % 1);
				for (i=0; i<4; i++) {feeOther[i] += feeOther7_additional[i] * n};
			}
		}
	}

	//--- Sub-totals for "Domestic dwellings" ---
	form.feeOther1.value = String(feeOther[0]);
	form.feeOther2.value = String(feeOther[1]);
	form.feeOther3.value = String(feeOther[2]);
	form.feeOther4.value = String(feeOther[3]);


	//------ Large Dwellings over 250 sqm  ------
	estimatedLDCost = parseInt(form.largeDwellingsCost.value);
	if (isNaN(estimatedLDCost)) estimatedLDCost = 0;
	if (estimatedLDCost > 0)
	{
		// < 2000
		if (estimatedLDCost <= 2000)
		{
			for (i=0; i<4; i++) {feeLargeDwelling[i] = feeOther1[i]};
		}
		//2000 - 5000
		else if (estimatedLDCost <= 5000)
		{
			for (i=0; i<4; i++) {feeLargeDwelling[i] = feeOther2[i]};
		}
		//5000 - 20,000
		else if (estimatedLDCost <= 20000)
		{
			for (i=0; i<4; i++) {feeLargeDwelling[i] = feeOther3[i]};
			if (estimatedLDCost > 5000)
			{
				n = ((estimatedLDCost - 5001) / 1000) + 1;
				n = n - (n % 1);
				for (i=0; i<4; i++) {feeLargeDwelling[i] += feeOther3_additional[i] * n};
			}
		}
		//20,000 - 100,000
		else if (estimatedLDCost <= 100000)
		{
			for (i=0; i<4; i++) {feeLargeDwelling[i] = feeOther4[i]};
			if (estimatedLDCost > 20000)
			{
				n = ((estimatedLDCost - 20001) / 1000) + 1;
				n = n - (n % 1);
				for (i=0; i<4; i++) {feeLargeDwelling[i] += feeOther4_additional[i] * n};
			}
		}
		//100,000 - 1,000,000
		else if (estimatedLDCost <= 1000000)
		{
			for (i=0; i<4; i++) {feeLargeDwelling[i] = feeOther5[i]};
			if (estimatedLDCost > 100000)
			{
				n = ((estimatedLDCost - 100001) / 1000) + 1;
				n = n - (n % 1);
				for (i=0; i<4; i++) {feeLargeDwelling[i] += feeOther5_additional[i] * n};
			}
		}
		//1,000,000 - 10,000,000
		else if (estimatedLDCost <= 10000000)
		{
			for (i=0; i<4; i++) {feeLargeDwelling[i] = feeOther6[i]};
			if (estimatedLDCost > 1000000)
			{
				n = ((estimatedLDCost - 1000001) / 1000) + 1;
				n = n - (n % 1);
				for (i=0; i<4; i++) {feeLargeDwelling[i] += feeOther6_additional[i] * n};
			}
		}
		// > 10,000,000
		else
		{
			for (i=0; i<4; i++) {feeLargeDwelling[i] = feeOther7[i]};
			if (estimatedLDCost > 10000000)
			{
				n = ((estimatedLDCost - 10000001) / 1000) + 1;
				n = n - (n % 1);
				for (i=0; i<4; i++) {feeLargeDwelling[i] += feeOther7_additional[i] * n};
			}
		}
	}

	//--- Sub-totals for "Large Dwellings" ---
	form.largeDwellings1.value = String(feeLargeDwelling[0]);
	form.largeDwellings2.value = String(feeLargeDwelling[1]);
	form.largeDwellings3.value = String(feeLargeDwelling[2]);
	form.largeDwellings4.value = String(feeLargeDwelling[3]);


	//------ Total fees  ------
	for (i=0; i<4; i++) {feeTotal[i] = feeInsulationT [i] + feeHotWaterT[i] + feePorch1T  [i] + feePorch2T [i] + feePorch3T [i] + feeExtension1T [i] + feeExtension2T [i] + feeExtension3T [i] + feeRoofspace1T [i] + feeAttachedGarage1T [i] + feeAttachedGarage2T [i] + feeAttachedGarage3T [i] + feeAttachedCarport1T [i] + feeAttachedCarport2T [i] + feeAttachedCarport3T [i] + feeDetachedGarage1T [i] + feeDetachedGarage2T [i] + feeDwellings[i] + feeOther[i] + feeLargeDwelling[i]};

	//--- Write total fees to form ---
	form.planFee.value=String(feeTotal[0]);
			if (form.planFee.value != "1")
			{
			form.planFee.value=eval(Math.round(form.planFee.value * 100)) / 100;
			form.planFee.value=format(form.planFee.value);
     	    }
	form.inspectionFee.value=String(feeTotal[1]);
			if (form.inspectionFee.value != "1")
			{
			form.inspectionFee.value=eval(Math.round(form.inspectionFee.value * 100)) / 100;
			form.inspectionFee.value=format(form.inspectionFee.value);
     	    }
	form.buildingnoticeFee.value=String(feeTotal[2]);
			if (form.buildingnoticeFee.value != "1")
			{
			form.buildingnoticeFee.value=eval(Math.round(form.buildingnoticeFee.value * 100)) / 100;
			form.buildingnoticeFee.value=format(form.buildingnoticeFee.value);
     	    }
	form.regularisationFee.value=String(feeTotal[3]);
			if (form.regularisationFee.value != "1")
			{
			form.regularisationFee.value=eval(Math.round(form.regularisationFee.value * 100)) / 100;
			form.regularisationFee.value=format(form.regularisationFee.value);
     	    }




	return true;
}

// -->

