// Preload images

function preload() {
	for (var index = 0; index < preload.arguments.length; index++) {
		images[index] = new Image();
		images[index].src = preload.arguments[index];
	}
}

var images = new Array();
			
preload(
	base_url + "images/page_background.png",
	base_url + "images/doc_background.png",
	base_url + "images/menu_background.png",
	base_url + "images/menu_about.png",
	base_url + "images/menu_about_on.png",
	base_url + "images/menu_contact.png",
	base_url + "images/menu_contact_on.png",
	base_url + "images/menu_guestbook.png",
	base_url + "images/menu_guestbook_on.png",
	base_url + "images/menu_login.png",
	base_url + "images/menu_login_on.png",
	base_url + "images/menu_music.png",
	base_url + "images/menu_music_on.png",
	base_url + "images/menu_news.png",
	base_url + "images/menu_news_on.png",
	base_url + "images/ruler_bottom.png"
);

function swapMenuOption(menuid, on) {
	var state = "";
	if (on) {
		state = "_on";
	}
	var imagename = "menu_";
	switch (menuid) {
		case 1:
			imagename += "news" + state + ".png";
			break;
		case 2:
			imagename += "about" + state + ".png";
			break;
		case 3:
			imagename += "music" + state + ".png";
			break;
		case 4:
			imagename += "guestbook" + state + ".png";
			break;
		case 5:
			imagename += "contact" + state + ".png";
			break;
		case 6:
			imagename += "login" + state + ".png";
			break;
	}
	document.getElementById("menu_option_" + menuid).src = base_url + "images/" + imagename;
}

function swapButton(buttonid, on) {
	var state = "";
	if (on) {
		state = "_on";
	}
	var imagename = "subscribers_";
	switch (buttonid) {
		case 1:
			imagename += "playmusic" + state + ".jpg";
			break;
		case 2:
			imagename += "downloadmusic" + state + ".jpg";
			break;
		case 3:
			imagename += "downloadimages" + state + ".jpg";
			break;
	}
	document.getElementById("subscriberbutton_" + buttonid).src = base_url + "images/" + imagename;
}

function retrieveNews(yearselect) {
	document.getElementById("newscontainer").innerHTML = "Loading. Please wait...";
	var year = yearselect.value;
	document.location.href = base_url + "news/archive/" + year;
}

function isValidEmail(email) {
	return /^([\w]+)(\.[\w]+)*@([\w\-]+)(\.[\w]{2,7})(\.[a-z]{2})?$/i.test(email);
}

function validateContactSubmission(aform) {
	var button = document.getElementById("submit");
	button.disabled = true;
	button.blur();
	button.value = "Sending...";
	var retval = false;
	var msg = "";
	if (aform.name.value != "") {
		if (isValidEmail(aform.email.value)) {
			if (aform.subject.value != "") {
				if (aform.message.value != "") {
					if (aform.securitycode.value != "") {
						retval = true;
					} else {
						msg = "Please enter the word enclosed within the image\ninto the Security Code box and try again.";
					}
				} else {
					msg = "Please enter a message and try again.";
				}
			} else {
				msg = "Please enter a subject and try again.";
			}
		} else {
			msg = "Please enter a valid email address and try again.";
		}
	} else {
		msg = "Please enter your name and try again.";
	}
	if (!retval) {
		alert(msg);
		button.value = "Send your message";
		button.disabled = false;
	}
	return retval;
}

function validateGuestbookSubmission(aform) {
	var button = document.getElementById("submit");
	button.disabled = true;
	button.blur();
	button.value = "Submitting...";
	var retval = false;
	var msg = "";
	if (aform.name.value != "") {
		if (isValidEmail(aform.email.value)) {
			if (aform.city.value != "") {
				if (aform.message.value != "") {
					if (aform.securitycode.value != "") {
						retval = true;
					} else {
						msg = "Please enter the word enclosed within the image\ninto the Security Code box and try again.";
					}
				} else {
					msg = "Please enter a message and try again.";
				}
			} else {
				msg = "Please enter your hometown and try again.";
			}
		} else {
			msg = "Please enter a valid email address and try again.";
		}
	} else {
		msg = "Please enter your name and try again.";
	}
	if (!retval) {
		alert(msg);
		button.value = "Submit your comment";
		button.disabled = false;
	}
	return retval;
}

function validateSubcriptionSubmission(aform) {
	var button = document.getElementById("submit");
	button.disabled = true;
	button.blur();
	button.value = "Subscribing...";
	var retval = false;
	var msg = "";
	if (isValidEmail(aform.email.value)) {
		retval = true;
	} else {
		msg = "Please enter a valid email address and try again.";
	}
	if (!retval) {
		alert(msg);
		button.value = "Subscribe";
		button.disabled = false;
	}
	return retval;
}

function validateSubscriberLogin(aform) {
	var button = document.getElementById("submitbutton");
	button.disabled = true;
	button.blur();
	button.value = "Entering...";
	var retval = false;
	var msg = "";
	if (isValidEmail(aform.email.value)) {
		if (aform.password.value != "") {
			retval = true;
		} else {
			msg = "Please enter your password and try again.";
		}
	} else {
		msg = "Please enter a valid email address and try again.";
	}	
	if (!retval) {
		alert(msg);
		button.value = "Login";
		button.disabled = false;
	}
	return retval;
}

function forgotPassword() {
	var button = document.getElementById("submitbutton");
	button.disabled = true;
	button.blur();
	button.value = "Recovering...";
	var email = document.getElementById("subscriberloginemail").value;
	var aform = document.getElementById("subscriberlogin");
	if (isValidEmail(email)) {
		aform.action = base_url + "login/forgot_password";
		aform.submit();
	} else {
		alert("Please enter a valid email address above and click \"forgot password\" again.");
	}
}

function validatePasswordUpdate(aform) {
	var button = document.getElementById("submit");
	button.disabled = true;
	button.blur();
	button.value = "Updating...";
	var retval = false;
	var msg = "";
	if (aform.currentpassword.value != "") {
		if (aform.newpassword.value != "") {
			if (aform.currentpassword.value != aform.newpassword.value) {
				retval = true;
			} else {
				msg = "Please make sure your new password is different\nthan the current one, and try again.";
			}
		} else {
			msg = "Please enter your new password and try again.";
		}
	} else {
		msg = "Please enter your current password and try again.";
	}	
	if (!retval) {
		alert(msg);
		button.value = "Update password";
		button.disabled = false;
	}
	return retval;
}

function isPosInteger(inputStr) {
	var retval = false;
	var re = /^\d*$/;
	inputStr = inputStr.toString();
	if (inputStr.match(re)) {
		retval = true;
	}
	return retval;
}

function validateAddToCart(aform) {
	var button = document.getElementById("submit");
	button.disabled = true;
	button.blur();
	button.value = "Adding to cart...";
	var retval = false;
	var msg = "";
	if (aform.quantity.value != "" && isPosInteger(aform.quantity.value)) {
		retval = true;
	} else {
		msg = "Please enter a valid quantity and try again.";
	}	
	if (!retval) {
		alert(msg);
		button.value = "Add to cart";
		button.disabled = false;
	}
	return retval;
}

function updateCartProductQuantity(pid, qty) {
	var msg = "Please enter a new quantity below.\nTo remove this item, enter zero.";
	var newqty = prompt(msg, qty);
	if (newqty != "") {
		if (isPosInteger(newqty)) {
			var proceed = false;
			if (parseInt(newqty) == 0) {
				msg = "You are about to remove this item from your cart.\nAre you sure you want to proceed?";
				if (confirm(msg)) {
					proceed = true;
				}
			} else {
				proceed = true;
			}
			if (proceed) {
				var buttons = document.getElementsByName("btnupdatequantity");
				var count = buttons.length;
				for (var index = 0; index < count; index++) {
					buttons[index].disabled = true;
				}
				var aform = document.getElementById("updatequantity");
				aform.productid.value = pid;
				aform.quantity.value = newqty;
				aform.submit();
			}
		} else {
			alert("The quantity entered is not valid. Please try again.");
		}
	} else {
		alert("The quantity entered is not valid. Please try again.");
	}
}

function emptyCart() {
	var msg = "You are about to empty your cart.\nAre you sure you want to proceed?";
	if (confirm(msg)) {
		document.location.href = base_url + "cart/emptycart";
	}
}

function checkout(button) {
	button.disabled = true;
	button.blur();
	button.value = "Starting checkout...";
	document.location.href = base_url + "cart/checkout"
}

function validatePurchase(aform) {
	var button = document.getElementById("submit");
	button.disabled = true;
	button.blur();
	button.value = "Processing purchase...";
	var retval = false;
	var msg = "";
	if (aform.addressee.value != "") {
		if (aform.shipping_country.value == "US") {
			if (aform.shipping_usstate.value != "") {
				retval = true;
			} else {
				msg = "Please select a State and try again.";
			}
		} else {
			if (aform.shipping_province.value != "") {
				retval = true;
			} else {
				msg = "Please enter a Province and try again.";
			}
		}
	} else {
		msg = "Please enter the name of the person / organization receiving your order and try again.";
	}
	if (retval) {
		retval = false;
		if (aform.shipping_postalcode.value != "") {
			if (aform.shipping_city.value != "") {
				if (aform.shipping_address.value != "") {
					if (isValidEmail(aform.payment_email.value)) {
						if (aform.payment_nameoncard.value != "") {
							if (aform.payment_cardnumber.value != "") {
								if (aform.payment_cvc.value != "") {
									if (aform.payment_expmonth.value != "") {
										if (aform.payment_expyear.value != "") {
											retval = true;
										} else {
											msg = "Please enter your card's expiration date and try again.";
										}
									} else {
										msg = "Please enter your card's expiration date and try again.";
									}
								} else {
									msg = "Please enter your card's verification number and try again.";
								}
							} else {
								msg = "Please enter your card's number and try again.";
							}
						} else {
							msg = "Please enter the card holder's name as it appears on the card and try again.";
						}
					} else {
						msg = "Please enter a valid Email Address and try again.";
					}
				} else {
					msg = "Please enter a valid Address and try again.";
				}
			} else {
				msg = "Please enter a City and try again.";
			}
		} else {
			msg = "Please enter a valid Postal Code and try again.";
		}
		if (!retval) {
			alert(msg);
		}
	} else {
		alert(msg);
	}
	if (!retval) {
		button.value = "Click to purchase";
		button.disabled = false;
	}
	return retval;
}

