﻿$(document).ready(Calculator_Initialize);

function Calculator_Initialize() {
	Calculator_RunCalculations();
	var fieldContainer = $("#CalculatorContainer");

	var fieldList = fieldContainer.find(":input");

	for (iField = 0; iField < fieldList.length; iField++) {
		var formField = $(fieldList[iField]);
		formField.bind("blur", Calculator_RunCalculations);
		formField.bind("change", Calculator_RunCalculations);
	}
}

function Calculator_RunCalculations(e) {
	$("#DailyShredTime").val(formatNumber2(MakeDbl($("#NumEmployees").val()) * MakeDbl($("#ShredTimePerEmp").val())));

	$("#MonthlyShredTime").val(formatNumber2(MakeDbl($("#DailyShredTime").val()) * MakeDbl($("#NumWorkDays").val())));

	$("#MonthlyShredHours").val(formatNumber2(MakeDbl($("#MonthlyShredTime").val()) / MakeDbl($("#MinutesByMinutesPerHour").val())));

	$("#HourlyLaborCost").val(formatCurrency(MakeDbl($("#HourlyWage").val()) + MakeDbl($("#BenefitsCost").val())));

	$("#MonthlyLaborCost").val(formatCurrency(MakeDbl($("#MonthlyShredHours").val()) * MakeDbl($("#HourlyLaborCost").val())));

	$("#DepreciationCost").val(formatCurrency(MakeDbl($("#PurchasePrice").val()) / MakeDbl($("#LifeExpectancy").val())));

	$("#MonthlyEquipmentCost").val(formatCurrency(MakeDbl($("#DepreciationCost").val()) + MakeDbl($("#MaintenanceCost").val())));

	$("#TotalLaborCost").val($("#MonthlyLaborCost").val());

	$("#TotalEquipmentCost").val($("#MonthlyEquipmentCost").val());

	$("#TotalMonthlyCost").val(formatCurrency(MakeDbl($("#TotalLaborCost").val()) + MakeDbl($("#TotalEquipmentCost").val())));
}

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);
}

function formatNumber(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);
}

function formatNumber2(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));
	if (cents == "00") {
		return (((sign) ? '' : '-') + '' + num);
	}
	else {
		return (((sign) ? '' : '-') + '' + num + '.' + cents);
	}
}

function MakeDbl(iVal) {
	if (isNaN(iVal)) {
		iVal = iVal.replace("$", "");
		if (isNaN(iVal)) {
			iVal = 0;
		}
		else {
			iVal = iVal * 1;
		}
	}
	else {
		iVal = iVal * 1;
	}
	//iVal = Math.round(iVal * 100) / 100;
	return iVal;
}