function dollarfy(show) {
	if ((isNaN(show)) || (show < 0)) return "";
	if (show == 0) return "0.00";
	show = " " + (Math.round(show * 100));
	if (show.indexOf(".") >= 0) show = show.substring(0, show.indexOf("."));
	show = show.substring(1, show.length - 2) + "." + show.substring(show.length - 2, show.length);
	return show;
}
				
function calculate(form) {
	
 	var province = form.province.value;
	var price = form.amount.value;
 
	var tax = 0;
	var gstRate = 0.05;
	var pstRate = 0;
	var hstRate = 0;
	
	if (province == "") { gstRate = 0; }
	if (province == "United States") { gstRate = 0; }
	if (province == "Alberta") { pstRate = 0; }
	if (province == "British Columbia") { pstRate = .07; }
	if (province == "Manitoba") { pstRate = .07; }
	if (province == "New Brunswick") { hstRate = .13; gstRate = 0; }
	if (province == "Newfoundland and Labrador") { hstRate = .13; gstRate = 0; }
	if (province == "Nova Scotia") { hstRate = .13; gstRate = 0; }
	if (province == "Ontario") { pstRate = .08; }
	if (province == "Prince Edward Island") { pstRate = .10; }
	if (province == "Quebec") { pstRate = .075; }
	if (province == "Saskatchewan") { pstRate = .05; }
	if (province == "Northwest Territories") { pstRate = 0; }
	if (province == "Nunavut") { pstRate = 0; }
	if (province == "Yukon") { pstRate = 0; }
	
	province == "Quebec" ? tax = ((((price*gstRate) + (1*price)) * pstRate) + (price*gstRate)) : tax = (price * (gstRate + hstRate +  pstRate));

	form.tax.value = dollarfy(tax);
	var jstotal = eval(form.amount.value) + eval(form.tax.value);
	form.total.value =  Math.round(jstotal*100)/100;
	if (province == "") { form.tax.value = "----"; form.total.value = "----"; }
}

function validate(form) {
	
	var valid = true;
	msg = "";
	
	if (form.province.value == "") {
		msg += "Please select your province.\n";
		valid = false;
	}

	if (valid) {	
		calculate(form);
	}
	
	if (!valid)	alert(msg);
	return valid;
}