window.onload = recalculateRefund;

var s = new Slider(document.getElementById("slider-1"), document.getElementById("slider-input-1"));

document.getElementById("salary").onchange = recalculateRefund;
document.getElementById("contracts").onchange = recalculateRefund;
document.getElementById("equipment").onchange = recalculateRefund;
document.getElementById("materials").onchange = recalculateRefund;

s.onchange = recalculateRefund;

function changeEmail() {

	mailSubject = escape("Question about my " + formatCurrency(myTotalRefund) + " SR&ED Refund");
	mailBody = "\n\n===\nEstimated Eligibility:\t\t"+myEligibility*100+"%\n\n";
	if (mySalary > 0) mailBody = mailBody + "Employee Salaries:\t\t"+formatCurrency(mySalary)+"\n";
	if (myContracts > 0) mailBody = mailBody + "Contract Fees:\t\t\t"+formatCurrency(myContracts)+"\n";
	if (myEquipment > 0) mailBody = mailBody + "Equipment Costs:\t\t"+formatCurrency(myEquipment)+"\n";
	if (myMaterials > 0) mailBody = mailBody + "Material Costs:\t\t\t"+formatCurrency(myMaterials)+"\n";
	if (myTotalRefund > 0) mailBody = mailBody + "\rEstimated Refund:\t\t"+formatCurrency(myTotalRefund)+"\n";
	mailBody = mailBody + "===\n\n";

	mailBody = escape(mailBody);
	
	location.href=this.href='mailto:refundestimate@resonantconsulting.ca?subject='+mailSubject+'&body=' + mailBody;
	return false;
	
}

function recalculateRefund() {

	document.getElementById("percentEligibility").value = (s.getValue() + "%");
	
	myEligibility = (s.getValue() / 100);
	mySalary = parseFloat(document.getElementById("salary").value.replace(/\$|\,/g,''));
	if(isNaN(mySalary)) {mySalary = 0;}
	myContracts = parseFloat(document.getElementById("contracts").value.replace(/\$|\,/g,''));
	if(isNaN(myContracts)) {myContracts = 0;}
	myEquipment = parseFloat(document.getElementById("equipment").value.replace(/\$|\,/g,''));
	if(isNaN(myEquipment)) {myEquipment = 0;}
	myMaterials= parseFloat(document.getElementById("materials").value.replace(/\$|\,/g,''));
	if(isNaN(myMaterials)) {myMaterials = 0;}

	myEligibleSalary = (myEligibility * mySalary);
	document.getElementById("eligibleSalary").innerHTML = formatCurrency(myEligibleSalary);
	
	myRefundSalary = (myEligibleSalary * 0.68475);
	document.getElementById("refundSalary").innerHTML  = formatCurrency(myRefundSalary);
	
	myEligibleContracts = (myEligibility * myContracts);
	document.getElementById("eligibleContracts").innerHTML = formatCurrency(myEligibleContracts);
	
	myRefundContracts = (myEligibleContracts * 0.415);
	document.getElementById("refundContracts").innerHTML = formatCurrency(myRefundContracts);
	
	myEligibleEquipment = (myEligibility * myEquipment);
	document.getElementById("eligibleEquipment").innerHTML = formatCurrency(myEligibleEquipment);
	
	myRefundEquipment = (myEligibleEquipment * 0.226);
	document.getElementById("refundEquipment").innerHTML = formatCurrency(myRefundEquipment);
	
	myEligibleMaterials = (myEligibility * myMaterials);
	document.getElementById("eligibleMaterials").innerHTML = formatCurrency(myEligibleMaterials);
	
	myRefundMaterials = (myEligibleMaterials * 0.415);
	document.getElementById("refundMaterials").innerHTML = formatCurrency(myRefundMaterials);
	
	myTotalRefund = (myRefundSalary + myRefundContracts + myRefundEquipment + myRefundMaterials);
	document.getElementById("totalRefund").innerHTML = formatCurrency(myTotalRefund);
	
	document.getElementById("emailRefund").innerHTML = " "+formatCurrency(myTotalRefund)+" ";
	if(myTotalRefund == 0) {document.getElementById("emailRefund").innerHTML = " ";}
	
	myTotalCosts = (mySalary + myContracts + myEquipment + myMaterials);
	/*myPercentRefund = (myTotalRefund / myTotalCosts * 100);
	if(isNaN(myPercentRefund)) {myPercentRefund = 0;}
	document.getElementById("percentRefund").innerHTML = myPercentRefund.toFixed(1) + "%";*/
}

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 = (num/100).toFixed(0).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);
}

s.setValue(50);