function calculate() {
	
	// cost per lead
	var costperlead = parseFloat(document.roicalc.costperlead.value);
	
	// monthly lead cost
	var monthlyleads = parseFloat(document.roicalc.monthlyleads.value);
	
	// avg commission
	var avgnetcommission = parseFloat(document.roicalc.avgnetcommission.value);
	
	// avg sales price
	var avgsalesprice = parseFloat(document.roicalc.avgsalesprice.value);

	// lead close rate
	var leadcloserate = parseFloat(document.roicalc.leadcloserate.value);


	document.getElementById('monthlyleadcost').innerHTML = formatCurrency(monthlyleads *  costperlead);
	document.getElementById('avgcommission').innerHTML = formatCurrency(avgsalesprice * avgnetcommission);
	document.getElementById('monthlytransactions').innerHTML = Math.round((leadcloserate * monthlyleads * 100) / 100) + ' *';
	document.getElementById('totalcommissions').innerHTML = formatCurrency((avgsalesprice * avgnetcommission) * (leadcloserate * monthlyleads));
	document.getElementById('actualmonthlyroi').innerHTML = formatCurrency(((avgsalesprice * avgnetcommission) * (leadcloserate * monthlyleads)) -  (monthlyleads *  costperlead));
	document.getElementById('roipercentage').innerHTML = formatNumber(((((avgsalesprice * avgnetcommission) * (leadcloserate * monthlyleads)) -  (monthlyleads *  costperlead)) / ( monthlyleads *  costperlead) ) * 100) + '%';
}

function formatCurrency(value) {
	value = value.toString().replace(/\$|\,/g,'');
	if(isNaN(value))
		value = "0";
	sign = (value == (value = Math.abs(value)));
	
	return ((sign)?'':'-') + '$' + formatNumber(value);
}

function formatNumber(value) {
	value = value.toString().replace(/\$|\,/g,'');
	sign = (value == (value = Math.abs(value)));
	value = Math.floor(value * 100 + 0.50000000001);
	cents = value % 100;
	value = Math.floor(value / 100).toString();

	if(isNaN(value))
		value = "0";

	if(cents < 10)
		cents = "0" + cents;

	for (var i = 0; i < Math.floor((value.length - (1 + i)) / 3); i++)
		value = value.substring(0, value.length-(4 * i + 3)) +','+

	value.substring(value.length-(4 * i + 3));
	return (value );
}
