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 clearCartMessages() {
	$("#cartmessages").fadeOut("slow");
}

function addItem(itemId, itemType) {
	$.ajax({
		url: "/instructor/cartcontroller.php",
		type: "POST",
		data: "action=additem&itemid=" + itemId + "&itemtype=" + itemType,
		success: function(xml) {
			$(xml).find("message").each(function() {
				$("#cartmessages").html($(this).text() + "<br><br>");
				$("#cartmessages").fadeIn("slow");
				var timeid = setTimeout("clearCartMessages()", 5000);
			});
		}
	});
}
	
function delItem(itemId) {
	$.ajax({
		url: "/instructor/cartcontroller.php",
		type: "POST",
 		data: "action=delitem&itemid=" + itemId,
		success: function(xml) {
			$(xml).find("message").each(function() {
				var msg = $(this).text();
				$("#item" + itemId).fadeOut("slow", function() {
					$("#item" + itemId).remove();
					$("#item" + itemId + "_hr").remove();
					$("#cartmessages").html(msg + "<br><br>");
					$("#cartmessages").fadeIn("slow");
					var timeid = setTimeout("clearCartMessages()", 5000);
				});
				$(xml).find("total").each(function() {
					updateSubTotal($(this).text());
				});
			});
		}
	});
}

function updateSubTotal(total) {
	$("#subtotal").html(formatCurrency(total));
	
	var nummonths = $("#nummonths").text();
	var monthtotal = total / parseInt(nummonths);
	$("#multipayment").html(formatCurrency(monthtotal));
}

function updateQuantities() {
	if ($("input[name^='itemqty_']").length > 0) {
		jQuery.each($("input[name^='itemqty_']"), function() {
			var idArray = this.name.split("_");
			itemId = idArray[1];
			$.ajax({
				url: "/instructor/cartcontroller.php",
				type: "POST",
				data: "action=updateqty&itemid=" + itemId + "&quantity=" + this.value,
				success: function(xml) {
					$("#cartmessages").html($(xml).find("message").text() + "<br><br>");
					$("#cartmessages").fadeIn("slow");
					var timeid = setTimeout("clearCartMessages()", 5000);
					$(xml).find("item").each(function() {
						var id = $(this).find("id").text();
						$("#itemprice_" + id).text(formatCurrency($(this).find("total").text()));
					});
					updateSubTotal($(xml).find("ctotal").text());
				}
			});
		});
	} else {
		$("#cartmessages").html("There are no quantities that can be updated.<br><br>");
		$("#cartmessages").fadeIn("slow");
		var timeid = setTimeout("clearCartMessages()", 5000);
	}
}

function validUsername(str) {
	var re_username = /^\w[\w\.\-_]*$/;
	return re_username.test(str);
}

function validHostname(str) {
	var re_hostname = /^(\w[\w\-]*\.)+[A-Za-z]{2,4}$/;
	return re_hostname.test(str);
}

function validEmail(str) {
	if (str == "") return false;
	var match = str.match(/^([^@]+)@([^@]+)$/);
	if (!match) return false;
	return validUsername(match[1]) && (validHostname(match[2]) || validIPAddress(match[2]));
}

function validate(formObj) {
	var canSubmit = true;
	var errors = "The following fields must be filled in:\n";

	if (formObj.fname.value == '') {
		errors += "Your first name.\n";
		canSubmit = false;
	}
	
	if (formObj.lname.value == '') {
		errors += "Your last name.\n";
		canSubmit = false;
	}
	
	if (formObj.address.value == '') {
		errors += "Your address.\n";
		canSubmit = false;
	}
	
	if (formObj.city.value == '') {
		errors += "Your city.\n";
		canSubmit = false;
	}
	
	if (formObj.state.value == '') {
		errors += "Your state.\n";
		canSubmit = false;
	}
	
	if (formObj.zipcode.value == '') {
		errors += "Your zipcode.\n";
		canSubmit = false;
	}
	
	if (!validEmail(formObj.cemail.value)) {
		errors += "Your email address.\n";
		canSubmit = false;
	}
	
	if (formObj.phone.value == '') {
		errors += "Your phone number.\n";
		canSubmit = false;
	}

	var foundChecked = false;

	for (var i = 0; i < formObj.payment.length; i++) {
		if (formObj.payment[i].checked) {
			foundChecked = true;
		}
	}

	if (!foundChecked) {
		errors += "Your payment option.\n";
		canSubmit = false;
	}

	if (canSubmit == false) {
		alert(errors);
		return false;
	} else {
		formObj.action.value = "purchase";
		formObj.submit();
	}
}

var popupStatus = 0;

function loadPopup(id) {
	var windowHeight = document.documentElement.clientHeight;

	$("#popupContact" + id).center({
	vertical: false // only horizontal
	});

	$("#backgroundPopup").css({
		"height": windowHeight
	});

	if (popupStatus == 0) {
		$("#backgroundPopup").css({
			"opacity": "0.7"
		});

		$("#backgroundPopup").fadeIn("slow");
		$("#popupContact" + id).fadeIn("slow");
		popupStatus = 1;

		//Click the x event!
		$("#popupContactClose" + id).click(function() {
			disablePopup(id);
		});

		//Click out event!
		$("#backgroundPopup").click(function() {
			disablePopup(id);
		});
	}
}

function disablePopup(id) {
	if (popupStatus == 1) {
		$("#backgroundPopup").fadeOut("slow");
		$("#popupContact" + id).fadeOut("slow");
		popupStatus = 0;
	}
}