
function otherSweeperTypes(iKeyId,iSweeperType,sSweeperTitle,iPrice,dFuelConsumption,iOilFilterChangeHrs,dOilAmount,dOilFilterCost,iChangeAirFilterHrs,dAirFilterCost,iChangeAntiFreeze,sChangeAntiFreezeDuration,dAntiFreezeCost,iChangeFuelFilterHrs,dFuelFilterCost,dMiscPartsCost,dNewStarterCost,dNewAlternatorCost,dNewWaterPumpCost,dLaborCost){
	this.KeyId = iKeyId
	this.SweeperType = iSweeperType
	this.SweeperTitle = sSweeperTitle
	this.Price = iPrice
	this.FuelConsumption = dFuelConsumption
	this.OilFilterChangeHrs = iOilFilterChangeHrs
	this.OilAmount = dOilAmount
	this.OilFilterCost = dOilFilterCost
	this.ChangeAirFilterHrs = iChangeAirFilterHrs
	this.AirFilterCost = dAirFilterCost
	this.ChangeAntiFreeze = iChangeAntiFreeze
	this.ChangeAntiFreezeDuration = sChangeAntiFreezeDuration
	this.AntiFreezeCost = dAntiFreezeCost
	this.ChangeFuelFilterHrs = iChangeFuelFilterHrs
	this.FuelFilterCost = dFuelFilterCost
	this.MiscPartsCost = dMiscPartsCost
	this.NewStarterCost = dNewStarterCost
	this.NewAlternatorCost = dNewAlternatorCost
	this.NewWaterPumpCost = dNewWaterPumpCost
	this.LaborCost = dLaborCost
}

var dblNHFuelComsumption
var arOtherSweeperChart = new Array()

var we_are_ready_to_calculate_values = false;

function cmbAverageSweepingOnChange(thisObject){
	var curChangeValue = thisObject[thisObject.selectedIndex].value
	
	document.thisForm.txtNHFuelHours.value = curChangeValue
	document.thisForm.txtOtherFuelHours.value = curChangeValue
	
	if (we_are_ready_to_calculate_values){
	    calculateValues()
    }
}
function cmbAverageFuelPriceOnChange(thisObject){
	var curChangeValue = thisObject[thisObject.selectedIndex].value
	
	document.thisForm.txtNHFuelPrice.value = formatCurrency(curChangeValue)
	document.thisForm.txtOtherFuelPrice.value = formatCurrency(curChangeValue)
	
	if (we_are_ready_to_calculate_values){
	    calculateValues()
    }
}
function cmbAverageLaborRateOnChange(thisObject){
	var curChangeValue = thisObject[thisObject.selectedIndex].value
	
	document.thisForm.txtNHLaborDollars.value = parseInt(curChangeValue)
	document.thisForm.txtOtherLaborCost.value = parseInt(curChangeValue)
	
	if (we_are_ready_to_calculate_values){
	    calculateValues()
    }
}
function cmbTireCostOnChange(thisObject){
	var curChangeValue = thisObject[thisObject.selectedIndex].value
	
	document.thisForm.txtNHTirePrice.value = parseInt(curChangeValue)
	document.thisForm.txtOtherTireCost.value = parseInt(curChangeValue)
	
	if (we_are_ready_to_calculate_values){
	    calculateValues()
    }
}
function calculateValues(){
	//Night Hawk fuel calculations
	dblNHFuelComsumption = (parseInt(document.thisForm.txtNHFuelHours.value)* Number(document.thisForm.txtNHFuelUsage.value)) * Number(document.thisForm.txtNHFuelPrice.value)
	document.thisForm.txtNHFuelComsumption.value = formatCurrency(dblNHFuelComsumption)
	document.thisForm.txtNHComsumptionPerMonthValue.value = document.thisForm.txtNHFuelComsumption.value
	
	document.thisForm.txtNHComsumptionPerMonthTotal.value = formatCurrency((dblNHFuelComsumption*365)/12)
	document.thisForm.txtNHComsumptionPerYearValue.value = document.thisForm.txtNHComsumptionPerMonthTotal.value
	
	document.thisForm.txtNHComsumptionPerYearTotal.value = formatCurrency(document.thisForm.txtNHComsumptionPerYearValue.value*12)
	
	//Night Hawk Maintenance Labor Calculations
	document.thisForm.txtNHLaborTotal.value = formatCurrency(document.thisForm.txtNHLaborDollars.value)
	
	//Nigh Hawk tire calculations
	document.thisForm.txtNHTirePriceTotal.value = formatCurrency((6*Number(document.thisForm.txtNHTirePrice.value))*3.4)
	
	//Night Hawk Estimated year costs
	var dblTireTotal = document.thisForm.txtNHTirePriceTotal.value.replace(",","")
	var dblFluidChange = document.thisForm.txtNHFluidChange.value
	var dblLaborTotal = document.thisForm.txtNHLaborTotal.value
	var dblComsumptionTotal = document.thisForm.txtNHComsumptionPerYearTotal.value.replace(",","")
	
	var dblTotals = parseFloat(dblTireTotal) + parseFloat(dblFluidChange) + parseFloat(dblLaborTotal) + parseFloat(dblComsumptionTotal)
	document.thisForm.txtEstimatedYearlyOpCost.value = "$" + formatCurrency(dblTotals)
	
	//Auxiliary Calculations
	var thisOtherSweeper = document.thisForm.cmbOtherSweepers
	var dblOtherFuelConsumption = 0
	
	document.thisForm.txtOtherFuelUsage.value = formatCurrency(arOtherSweeperChart[parseInt(thisOtherSweeper[thisOtherSweeper.selectedIndex].value)].FuelConsumption)
	document.thisForm.txtAux_Engine_Fuel_Usage.value = formatCurrency(arOtherSweeperChart[parseInt(thisOtherSweeper[thisOtherSweeper.selectedIndex].value)].FuelConsumption)
	
	dblOtherFuelConsumption = (parseInt(document.thisForm.txtOtherFuelHours.value)* Number(document.thisForm.txtOtherFuelUsage.value)) * Number(document.thisForm.txtOtherFuelPrice.value)
	document.thisForm.txtOtherFuelComsumption.value = formatCurrency(dblOtherFuelConsumption)
	document.thisForm.txtOtherComsumptionPerMonthValue.value = document.thisForm.txtOtherFuelComsumption.value
	
	document.thisForm.txtOtherComsumptionPerMonthTotal.value = formatCurrency((dblOtherFuelConsumption*365)/12)
	document.thisForm.txtOtherConsumptionPerYearValue.value = document.thisForm.txtOtherComsumptionPerMonthTotal.value
	
	document.thisForm.txtOtherConsumptionPerYearTotal.value = formatCurrency(document.thisForm.txtOtherConsumptionPerYearValue.value.replace(",","")*12)
	
	//Calculations for aux maintenance
	var iOtherSweeperPosition = thisOtherSweeper[thisOtherSweeper.selectedIndex].value
	var dblAnnualHoursWorked = parseFloat(document.thisForm.cmbAverageSweeping[document.thisForm.cmbAverageSweeping.selectedIndex].value) * 365
	var dblTotalAnnualAuxMaintCost = ((dblAnnualHoursWorked/arOtherSweeperChart[iOtherSweeperPosition].OilFilterChangeHrs)*arOtherSweeperChart[iOtherSweeperPosition].OilFilterCost)
	dblTotalAnnualAuxMaintCost += (dblAnnualHoursWorked/arOtherSweeperChart[iOtherSweeperPosition].OilFilterChangeHrs) * arOtherSweeperChart[iOtherSweeperPosition].OilAmount * (1.1)
	dblTotalAnnualAuxMaintCost += (dblAnnualHoursWorked/arOtherSweeperChart[iOtherSweeperPosition].ChangeAirFilterHrs) * arOtherSweeperChart[iOtherSweeperPosition].AirFilterCost
	dblTotalAnnualAuxMaintCost += arOtherSweeperChart[iOtherSweeperPosition].AntiFreezeCost
	dblTotalAnnualAuxMaintCost += (dblAnnualHoursWorked/arOtherSweeperChart[iOtherSweeperPosition].ChangeFuelFilterHrs) * arOtherSweeperChart[iOtherSweeperPosition].FuelFilterCost
	dblTotalAnnualAuxMaintCost += (arOtherSweeperChart[iOtherSweeperPosition].MiscPartsCost * 12)
	
	document.thisForm.txtOtherFluidCosts.value = formatCurrency(dblTotalAnnualAuxMaintCost/12)
	document.thisForm.txtOtherFluidCostsTotal.value = formatCurrency((dblTotalAnnualAuxMaintCost/12)*12)
	document.thisForm.txtOtherLaborCostTotal.value = formatCurrency(20*document.thisForm.txtOtherLaborCost.value)
	
	document.thisForm.txtOtherTireCostTotal.value = formatCurrency((6*document.thisForm.txtOtherTireCost.value)*4)
	
	//Calculate total Aux maintenance cost
	my_operatingCostPerUnit = formatCurrency((((dblTotalAnnualAuxMaintCost/12)*12) + (20*document.thisForm.txtOtherLaborCost.value) + ((6*document.thisForm.txtOtherTireCost.value)*4)) + (document.thisForm.txtOtherConsumptionPerYearValue.value.replace(",","")*12))
	
	document.thisForm.txtAux_Totals.value = "$" + my_operatingCostPerUnit;

/// update second form too (mfig)

	$("txtComAnnualOperatingCostPerUnit").value = my_operatingCostPerUnit;
	
	//Calculate yearly totals
	document.thisForm.txtYearly_Fuel_Maintenace.value = "$" + formatCurrency((((dblTotalAnnualAuxMaintCost/12)*12) + (20*document.thisForm.txtOtherLaborCost.value) + ((6*document.thisForm.txtOtherTireCost.value)*4)) + (document.thisForm.txtOtherConsumptionPerYearValue.value.replace(",","")*12) - dblTotals)
	
	//Calulate monthly totals
	document.thisForm.txtMonthly_Fuel_Maintenace.value = "$" + formatCurrency(((((dblTotalAnnualAuxMaintCost/12)*12) + (20*document.thisForm.txtOtherLaborCost.value) + ((6*document.thisForm.txtOtherTireCost.value)*4)) + (document.thisForm.txtOtherConsumptionPerYearValue.value.replace(",","")*12) - dblTotals) / 12)
	
}	
function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";

	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
		cents = "0" + cents;

	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
	
	return (((sign)?'':'-') + '' + num + '.' + cents);
}

//Analysis functions
function cmbNumberOfUnitsOnChange(thisObject){
	var curChangeValue = thisObject[thisObject.selectedIndex].value
	
	document.thisForm.txtComNumberOfUnits.value = curChangeValue
	document.thisForm.txtNHNumberOfUnits.value = curChangeValue
	
	calculateAnalysis()
}
function cmbCompetitorCostNewOnChange(thisObject){
	var curChangeValue = thisObject[thisObject.selectedIndex].value
	
	document.thisForm.txtCompetitorCostNew.value = formatCurrency(curChangeValue)
	
	calculateAnalysis()
}
function cmbNiteHawkSweeperNewOnChange(thisObject){
	var curChangeValue = thisObject[thisObject.selectedIndex].value
	
	document.thisForm.txtNiteHawkCostNew.value = formatCurrency(curChangeValue)
	
	calculateAnalysis()
}
function cmbYearsOnChange(thisObject){
	var curChangeValue = thisObject[thisObject.selectedIndex].value
	
	document.thisForm.txtComTerm.value = (curChangeValue*12)
	document.thisForm.txtNiteHawkTerm.value = (curChangeValue*12)
	
	calculateAnalysis()
}
function cmbInterestRateOnChange(thisObject){
	var curChangeValue = thisObject[thisObject.selectedIndex].value
	
	document.thisForm.txtComRate.value = curChangeValue
	document.thisForm.txtNiteHawkRate.value = curChangeValue
	
	calculateAnalysis()
}
function PaymentCalc(R,paymentPeriod,term,principal){
	var Z = ((R / 100) / paymentPeriod)
	var returnValue = 0
	
	if(R == 0){
		returnValue = (principal.replace(",","") / term)
	}else{
		returnValue = (principal.replace(",","")*Z) / (1 - (Math.pow((1+Z),-term)))
	}
	return returnValue
}
function calculateAnalysis(){
	var paymentPeriod = 12
	var dblComMonthlyPaymentPerUnit = 0
	var dblMonthlyPaymentPerUnit = 0
	
	//Competitors Monthly Payment per Unit
	dblComMonthlyPaymentPerUnit = PaymentCalc(document.thisForm.txtComRate.value,paymentPeriod,document.thisForm.txtComTerm.value,document.thisForm.txtCompetitorCostNew.value)
	dblComMonthlyPaymentPerUnit = (dblComMonthlyPaymentPerUnit=="Infinity") ? "0.00" : dblComMonthlyPaymentPerUnit
	document.thisForm.txtComMnthlyPaymentPerUnit.value = formatCurrency(dblComMonthlyPaymentPerUnit)
	
	//Nite Hawk Monthly Payment per Unit
	dblMonthlyPaymentPerUnit = PaymentCalc(document.thisForm.txtNiteHawkRate.value,paymentPeriod,document.thisForm.txtNiteHawkTerm.value,document.thisForm.txtNiteHawkCostNew.value)
	dblMonthlyPaymentPerUnit = (dblMonthlyPaymentPerUnit=="Infinity") ? "0.00" : dblMonthlyPaymentPerUnit
	document.thisForm.txtNHMnthlyPaymentPerUnit.value = formatCurrency(dblMonthlyPaymentPerUnit)
	
	//Competitors Monthly Payment Ext / Annual Payment
	document.thisForm.txtComMnthlyPaymentExt.value = formatCurrency((dblComMonthlyPaymentPerUnit * document.thisForm.txtComNumberOfUnits.value))
	document.thisForm.txtComAnnualPaymentTotal.value = formatCurrency((dblComMonthlyPaymentPerUnit * 12))
	
	//Nite Hawk Monthly Payment Ext / Annual Payment
	document.thisForm.txtNHMnthlyPaymentExt.value = formatCurrency((dblMonthlyPaymentPerUnit * document.thisForm.txtNHNumberOfUnits.value))
	document.thisForm.txtNHAnnualPaymentTotal.value = formatCurrency((dblMonthlyPaymentPerUnit * 12))
	
	//Annual Operating Costs Extened
	document.thisForm.txtComAnnualOperatingCostExt.value = formatCurrency((document.thisForm.txtComAnnualOperatingCostPerUnit.value.replace(",","") * document.thisForm.txtComNumberOfUnits.value))
	document.thisForm.txtNHAnnualOperatingCostExt.value = formatCurrency((document.thisForm.txtNHAnnualOperatingCostPerUnit.value.replace(",","") * document.thisForm.txtNHNumberOfUnits.value))
	
	//Annual Operating Costs Total
	document.thisForm.txtAnnualOperatingCostExtTotal.value = formatCurrency((document.thisForm.txtComAnnualOperatingCostExt.value.replace(",","") - document.thisForm.txtNHAnnualOperatingCostExt.value.replace(",","")))
	
	//Differences
	document.thisForm.txtMonthPaymentExtTotal.value = formatCurrency((document.thisForm.txtComMnthlyPaymentExt.value.replace(",","") - document.thisForm.txtNHMnthlyPaymentExt.value.replace(",","")))
	document.thisForm.txtAnnualPaymentTotal.value = formatCurrency((document.thisForm.txtComAnnualPaymentTotal.value.replace(",","") - document.thisForm.txtNHAnnualPaymentTotal.value.replace(",","")))
	document.thisForm.txtAnnualOperatingCostPerUnitTotal.value = formatCurrency((document.thisForm.txtComAnnualOperatingCostPerUnit.value.replace(",","") - document.thisForm.txtNHAnnualOperatingCostPerUnit.value.replace(",","")))
	
	//Annual Payment Difference Total
	document.thisForm.txtAnnualPaymentDifferenceTotal.value = document.thisForm.txtAnnualPaymentTotal.value
	
	//Annual Operating Cost Difference Total
	document.thisForm.txtAnnualOperatingCostDifferenceTotal.value = document.thisForm.txtAnnualOperatingCostExtTotal.value
	
	//Total Yearly Savings
	var dblAPDT = document.thisForm.txtAnnualPaymentDifferenceTotal.value.replace(",","")
	var dblAOCDT = document.thisForm.txtAnnualOperatingCostDifferenceTotal.value.replace(",","")
	
	var dblTotalYearlySavings = (parseFloat(dblAPDT) + parseFloat(dblAOCDT))
	document.thisForm.txtTotalYearlySavings.value = formatCurrency(dblTotalYearlySavings)
	
	//5 Year Savings
	document.thisForm.txtFiveYearTotalSavings.value = formatCurrency((dblTotalYearlySavings*5))
}
