function calculateIncome(){
	var frm = document.income;
	var monthly = annual = 0;
	
	monthly = Math.round((frm.households.value * ((frm.dining.value * .07) + (frm.groceries.value * .04) + (frm.clothes.value * .07) + (frm.homeImprovement.value * .02) + (frm.entertainment.value * .07))));
    annual = Math.round(12 * monthly);

	frm.monthly.value = monthly;
	frm.annual.value = annual;
}

function subscribeEmail() {
	var frm = document.forms[0];
	var emailFlag = flag = false;
	
	emailFlag = emailValidator(frm.email.value);
	
	if(emailFlag) {
		frm.submitForm.value = "yes";
		frm.submit();
	}
}

function changeMerchant(range) {
	location.href = "http://www.giftcents.com/merchant_list.php?" + range;
}

function changeMerchantListing(range) {
	document.forms[0].productLetter.value = range;
	
	document.forms[0].submit();
}

function changeMerchantLetter(letter) {
	document.forms[0].productLetter.value = letter;
	
	document.forms[0].submit();
}

function editProfile() {
	document.editProfile.formAction.value = "edit";
	document.editProfile.submit();
}

function viewInvoice(id) {
	
	if( document.myPurchases.invoiceID.value != id )
		document.myPurchases.invoiceID.value = id;
	else
		document.myPurchases.invoiceID.value = "";
		
	document.myPurchases.submit();
}

function addItem(id) {
	var qty = "";
	var flag = false;
	
	qty = eval("document.forms[0].quantity" + id + ".value");
	
	for(var i=0; i<qty.length; i++) {
		if( qty.charAt(i) < "0" || qty.charAt(i) > "9" )
			flag = true;
	}
	
	if( flag ) {
		alert("The quantity must be a number");
	}
	else {
		document.forms[0].itemID.value = id;
		document.forms[0].itemQuantity.value = qty;
		document.forms[0].cartAction.value = "updateCart";
	
		document.forms[0].action = "online_ordering_view_cart.php";
		document.forms[0].submit();
	}
}

function continueShopping() {
	document.forms[0].action = "online_ordering.php";
	document.forms[0].submit();
}

function removeItem(id) {
	document.forms[0].itemID.value = id;
	document.forms[0].itemQuantity.value = 0;
	document.forms[0].cartAction.value = "updateCart";
	
	document.forms[0].submit();
}

function checkout() {
	document.forms[0].cartAction.value = "checkout";
	document.forms[0].submit();
}

function sendContactForm() {
	var frm = document.forms[0];
	var emailFlag = flag = false;
	var errors = "Please check the following:\n\n";
	
	emailFlag = emailValidator(frm.contactEmail.value);
	
	if(emailFlag) {
		if(frm.contactName.value == "") {
			errors += "- You need to input your name\n";
			flag = true;
		}
		if(frm.contactMessage.value == "") {
			errors += "- You need to input a message\n";
			flag = true;
		}
	}
	else {
		flag = true;
	}
	
	if( flag ) {
		alert(errors);
	}
	else {
		frm.submit();
	}
}

function checkProfile() {
	var frm = document.forms[0];
	var emailFlag = flag = false;
	var errors = "Please check the following:\n\n";
	
	emailFlag = emailValidator(frm.customerEmail.value);
	
	if(emailFlag) {
		if(frm.customerFirstName.value == "") {
			errors += "- Your first name is required\n";
			flag = true;
		}
		if(frm.customerLastName.value == "") {
			errors += "- Your last name is required\n";
			flag = true;
		}
		if(frm.customerOrganization.value == "") {
			errors += "- Your organization is required\n";
			flag = true;
		}
		if(frm.customerAddress.value == "") {
			errors += "- Your street address is required\n";
			flag = true;
		}
		if(frm.customerCity.value == "") {
			errors += "- Your city is required\n";
			flag = true;
		}
		if(frm.customerZip.value == "") {
			errors += "- Your zip code is required\n";
			flag = true;
		}
		
		if(frm.customerPhone1.value.length == 3 && frm.customerPhone2.value.length == 3 && frm.customerPhone3.value.length == 4) {
			;
		}
		else {
			errors += "- Your full phone number is required\n";
			flag = true;
		}
		if( frm.changePassword.checked ) {
			if(frm.customerPassword.value.length < 3 ) {
				errors += "- Your password must be at least 3 characters long\n";
				flag = true;
			}
			else if(frm.customerPassword.value != frm.customerPassword2.value) {
				errors += "- Your passwords do not match\n";
				flag = true;
			}
		}
	}
	
	if( flag ) {
		alert(errors);
	}
	else if( !flag && emailFlag ) {
		frm.formAction.value = "update";
		frm.submit();
	}
}

function checkRegistration() {
	var frm = document.forms[0];
	var emailFlag = flag = false;
	var errors = "Please check the following:\n\n";
	
	emailFlag = emailValidator(frm.customerEmail.value);
	
	if(emailFlag) {
		if(frm.customerFirstName.value == "") {
			errors += "- Your first name is required\n";
			flag = true;
		}
		if(frm.customerLastName.value == "") {
			errors += "- Your last name is required\n";
			flag = true;
		}
		if(frm.customerOrganization.value == "") {
			errors += "- Your organization is required\n";
			flag = true;
		}
		if(frm.label.value == "") {
			errors += "- Your shipping address label is required\n";
			flag = true;
		}
		if(frm.customerAddress.value == "") {
			errors += "- Your street address is required\n";
			flag = true;
		}
		if(frm.customerCity.value == "") {
			errors += "- Your city is required\n";
			flag = true;
		}
		if(frm.customerZip.value == "") {
			errors += "- Your zip code is required\n";
			flag = true;
		}
		
		if(frm.customerPhone1.value.length == 3 && frm.customerPhone2.value.length == 3 && frm.customerPhone3.value.length == 4) {
			;
		}
		else {
			errors += "- Your full phone number is required\n";
			flag = true;
		}
		
		if(frm.customerLogin.value.length < 3 ) {
			errors += "- Your login name must be at least 3 characters long\n";
			flag = true;
		}
		if(frm.customerPassword.value.length < 3 ) {
			errors += "- Your password must be at least 3 characters long\n";
			flag = true;
		}
		else if(frm.customerPassword.value != frm.customerPassword2.value) {
			errors += "- Your passwords do not match\n";
			flag = true;
		}
	}
	
	if( flag ) {
		alert(errors);
	}
	else if( !flag && emailFlag ) {
		frm.submit();
	}
}

function unlockPassBox() {
	if( document.forms[0].passManagment.value == "" ) {
		document.forms[0].passManagment.value = "unlock";
		changePassword();
	}
	else {
		document.forms[0].customerPassword.value = "";
		document.forms[0].customerPassword2.value = "";
		document.forms[0].passManagment.value = "";
		keepPassword();
	}
}

function unlockPassBox2() {
	if( document.forms[0].passManagment.value == "" ) {
		document.forms[0].passManagment.value = "unlock";
		changePassword2();
	}
	else {
		document.forms[0].customerPassword.value = "";
		document.forms[0].passManagment.value = "";
		keepPassword2();
	}
}

function keepPassword() {
	if(!document.layers) {
		document.forms[0].customerPassword.disabled = true;
		document.forms[0].customerPassword.style.background = "#DFEFFF";
		document.forms[0].customerPassword2.disabled = true;
		document.forms[0].customerPassword2.style.background = "#DFEFFF";
	}
}

function keepPassword2() {
	if(!document.layers) {
		document.forms[0].customerPassword.disabled = true;
		document.forms[0].customerPassword.style.background = "#DFEFFF";
	}
}

function changePassword() {
	document.forms[0].customerPassword.disabled = false;
	document.forms[0].customerPassword.style.background = "#ffffff";
	document.forms[0].customerPassword2.disabled = false;
	document.forms[0].customerPassword2.style.background = "#ffffff";
}

function changePassword2() {
	document.forms[0].customerPassword.disabled = false;
	document.forms[0].customerPassword.style.background = "#ffffff";
}

function sendToolsForm() {
	var frm = document.forms[0];
	var flag = false;
	var errors = "Please check the following:\n\n";
	
	if(frm.toolsLogin.value == "") {
		errors += "- You need to input a login name\n";
		flag = true;
	}
	if(frm.toolsPassword.value == "") {
		errors += "- You need to input a password\n";
		flag = true;
	}
	
	if( flag ) {
		alert(errors);
	}
	else {
		frm.submit();
	}
}

function sendLoginForm() {
	var frm = document.forms[0];
	var flag = false;
	var errors = "Please check the following:\n\n";
	
	if(frm.userLogin.value == "") {
		errors += "- You need to input a login name\n";
		flag = true;
	}
	if(frm.userPassword.value == "") {
		errors += "- You need to input a password\n";
		flag = true;
	}
	
	if( flag ) {
		alert(errors);
	}
	else {
		frm.submit();
	}
}

function checkLoginForm() {
	var frm = document.customerAccess;
	var flag = false;
	var errors = "Please check the following:\n\n";
	
	if(frm.userLogin.value == "") {
		errors += "- You need to input a login name\n";
		flag = true;
	}
	if(frm.userPassword.value == "") {
		errors += "- You need to input a password\n";
		flag = true;
	}
	
	if( flag ) {
		alert(errors);
		return false;
	}
	else {
		return true;
	}
}

function checkAdminLoginForm() {
	var frm = document.adminAccess;
	var flag = false;
	var errors = "Please check the following:\n\n";
	
	if(frm.userLogin.value == "") {
		errors += "- You need to input a login name\n";
		flag = true;
	}
	if(frm.userPassword.value == "") {
		errors += "- You need to input a password\n";
		flag = true;
	}
	
	if( flag ) {
		alert(errors);
		return false;
	}
	else {
		return true;
	}
}

function checkWidgetLoginForm() {
	var frm = document.accountAccessWidget;
	var flag = false;
	var errors = "Please check the following:\n\n";
	
	if(frm.userLogin.value == "") {
		errors += "- You need to input a login name\n";
		flag = true;
	}
	if(frm.userPassword.value == "") {
		errors += "- You need to input a password\n";
		flag = true;
	}
	
	if( flag ) {
		alert(errors);
		return false;
	}
	else {
		return true;
	}
}

function emailValidator(data) {
	var flag = false;
	var message = "The format of this email address is invalid.\n\n";
	message += "Please use a fully qualified email address.\n\n";
	message += "example: jblack@company.com";

	var user, ending, suffix, j;
	
	//Checks format of email address
	if( data.indexOf("@") > 0  ) {
		parts1 = data.split("@");
		user = parts1[0];
		ending = parts1[1];
			
		if( ending.indexOf(".") > 0 ) {
			parts2 = ending.split(".");
			j = parts2.length - 1;
			suffix = parts2[j];
				
			//Suffix can only be 2 or 3 characters long		
			if( suffix.length > 1 && suffix.length < 4  ) {
				for(var k=0; k<j; k++) {
					//Domains must be at least 2 characters long
					if( parts2[k].length < 2 ) {
						flag = true;
					}
				}
			}
			else {
				flag = true;
			}
		}
		else {
			flag = true;
		}
	}
	else {
		flag = true;
	}

	if(flag) {
		alert(message);
		return false;
	}
	else {
		return true;
	}
}

function viewShippingRates() {
	var url = "view_shipping_rates.php";
	window.open(url,"viewShippingRates","width=400, height=500");
}

function sendOrderConfirmationEmail(orderID,customerID) {
	var url = "online_ordering_confirmation.php?orderID=" + orderID + "&customerID=" + customerID;
	window.open(url,"viewConfirmation","width=500, height=200");
}