var phone_error = "- Phone number format invalid - only use numbers and brackets and include your area code if not a mobile number\n";

function getPopupFeatures(wwidth, wheight){
	if ((wwidth == null) || (wwidth == "")){ wwidth = 300; }
	if ((wheight == null) || (wheight == "")){ wheight = 170; }
	
	if (screen){
		var leftpos = (screen.width / 2) - (wwidth/2);
		var toppos = (screen.height / 2) - (wheight/2);		
	}

	return 'width=' + wwidth + ', height=' + wheight + ', left=' + leftpos + ', top=' + toppos + ',resizable=yes, status=yes';  
}

function checkNewsletter(){
	var msg = "";
	var firstname = document.newsletter_sub.firstname.value.replace( /^\s+/g, "");
	firstname = firstname.replace( /\s+$/g, "");
	
	if(firstname == ""){
		msg += "- Please enter your first name\n";
	}		
	if(document.newsletter_sub.email.value == ""){
		msg += "- Please enter your email address\n";
	}	
	if(document.newsletter_sub.confirm_email.value == ""){
		msg += "- Please confirm your email address\n";
	}else if(document.newsletter_sub.email.value != document.newsletter_sub.confirm_email.value){
		msg += "- Your email addresses do not match\n";
	}
	if (!checkEmail(document.newsletter_sub.email.value)){
		msg += "- Email address format invalid\n";
	}
	if(document.newsletter_sub.postcode.value == ""){
		msg += "- Please enter your postcode\n";
	}	
	if (!checkPhone(document.newsletter_sub.phone.value)){
		msg += phone_error;
	}
	if(msg != ""){
		alert(msg);
		return false;
	}
}

function checkAddProdDetails(pid, qtyfield, prodformname){
	result = true;
	var msg = "";

	if((eval("document." + prodformname + "." + qtyfield + ".value") == '') || (eval("document." + prodformname + "." + qtyfield + ".value") == '0')){
		msg = 'Please enter the required quantity!';
	}else if((eval("document." + prodformname + "." + qtyfield + ".value") > eval("document." + prodformname + ".max_num_purchase_" +pid+".value")) && (eval("document." + prodformname + ".max_num_purchase_"+pid +".value") != '0')){
		msg = '"' + eval("document." + prodformname + ".name_"+pid+".value") + '" is limited to only ' + eval("document." + prodformname + ".max_num_purchase_"+pid+".value");
		msg += ' per customer!';
	}
	
	if (msg != ''){
		alert(msg);
		eval("document." + prodformname + "." + qtyfield + ".focus()");
		eval("document." + prodformname + "." + qtyfield + ".select()");
		return false;
	}else{
		return true;
	}
}

function checkCartForm(){
	for(i=0; i < document.cartform.elements.length; i++){
		if(document.cartform.elements[i].name.indexOf("ownmdqtys_") != -1){
			if((eval("document.cartform." + document.cartform.elements[i].name + ".value") == '') || (eval("document.cartform." + document.cartform.elements[i].name + ".value") == '0')){
				alert('Please enter the required quantity!');
				eval("document.cartform." + document.cartform.elements[i].name + ".focus()");
				eval("document.cartform." + document.cartform.elements[i].name + ".select()");
				return false;
			}
		}else if (document.cartform.elements[i].name.indexOf("qty") != -1){
			var pid = document.cartform.elements[i].name.substring(5);
			if(pid != ''){
				if(checkAddProdDetails(pid, 'qtys_'+pid, "cartform") == false){
					return false;
				}
			}
		}
	}
}


function checkWineSurvey(){
	var msg = "";
	
	if(document.wine_survey.q_1.value == ""){
		msg += "- Please enter your postcode (Question 1)\n";
	}
	if(document.wine_survey.email_address.value == ""){
		msg += "- Please enter your email address (Question 14)\n";
	}else if(document.wine_survey.confirm_email.value == ""){
		msg += "- Please confirm your email address (Question 14)\n";
	}else if(document.wine_survey.email_address.value != document.wine_survey.confirm_email.value){
		msg += "- Your email addresses do not match (Question 14)\n";
	}
	if (!checkEmail(document.wine_survey.email_address.value)){
		msg += "- Email address format invalid (Question 14)\n";
	}

	if(document.wine_survey.news_name.value == ""){
		msg += "- Please enter your first name (Question 14)\n";
	}
	
	if(msg != ""){
		alert(msg);
		return false;
	}
}

function checkNewsletterUnsubscribe(sitename){
	var msg = "";
	if(document.newsletter_unsub.email.value == ""){
		msg += "- Please enter your email address\n";
	} else if(document.newsletter_unsub.confirm_email.value == ""){
		msg += "- Please confirm your email address\n";
	} else if(document.newsletter_unsub.email.value != document.newsletter_unsub.confirm_email.value){
		msg += "- Your email addresses do not match\n";
	}
	if (!checkEmail(document.newsletter_unsub.email.value)){
		msg += "- Email address format invalid\n";
	}
	
	if(msg != ""){
		alert(msg);
		return false;
	}else if(! confirm("Are you sure you want to unsubscribe to the " + sitename + " Newsletter?")){
		return false;
	}
	return true;		
}

function checkContactForm(){
	var msg = "";
	
	if(document.contactform.name. value == ""){
		msg += " - Please enter your name\n";
	}
	if(document.contactform.email. value == ""){
		msg += " - Please enter your email address\n";
	}
	if (!checkEmail(document.contactform.email.value)){
		msg += " - Email address incorrect format\n";
	}
	if (!checkPhone(document.contactform.phone.value)){
		msg += phone_error;
	}
	if(document.contactform.comments. value == ""){
		msg += " - Please enter your comments\n";
	}
	
	if (msg != ""){
		msg = "Please fill in the following required fields:\n" + msg;
		alert(msg);
		return false;
	}
	return true;	
}


function checkTellAFriend(){
	msg = "";
	if(document.tellAFriend.name.value == ""){
		msg += " - Please enter your name\n";
	}
	if(document.tellAFriend.email.value == ""){
		msg += " - Please enter your email address\n";
	}
	if(document.tellAFriend.friends_email.value == ""){
		msg += " - Please enter your friend's email address\n";
	}	
	if (!checkEmail(document.tellAFriend.email.value)){
		msg += " - Email address incorrect format\n";
	}

	if (!checkEmail(document.tellAFriend.friends_email.value)){
		msg += " - Friend's email address incorrect format\n";
	}
	
	if (msg != ""){
		alert("Please enter the following missing details:\n" + msg);
		return false;
	}else{
		return true;
	}
}

function checkSendNewsToFriend(){
	msg = "";
	if(document.sendNewsToFriend.name.value == ""){
		msg += " - Please enter your name\n";
	}
	if(document.sendNewsToFriend.email.value == ""){
		msg += " - Please enter your email address\n";
	}
	if (!checkEmail(document.sendNewsToFriend.email.value)){
		msg += " - Email address incorrect format\n";
	}
	
	if(document.sendNewsToFriend.friends_name.value == ""){
		msg += " - Please enter your friend's name\n";
	}
	if(document.sendNewsToFriend.friends_email.value == ""){
		msg += " - Please enter your friend's email address\n";
	}	
	if (!checkEmail(document.sendNewsToFriend.friends_email.value)){
		msg += " - Friend's email address incorrect format\n";
	}
	
	if (msg != ""){
		alert("Please enter the following missing details:\n" + msg);
		return false;
	}else{
		return true;
	}
}

function checkLostPW(){
	msg = "";
	if(document.lostpw.email.value == ""){
		msg += " - Please enter your email address\n";
	}
	if (!checkEmail(document.lostpw.email.value)){
		msg += " - Email address incorrect format\n";
	}
	if(document.lostpw.username.value == ""){
		msg += " - Please enter your username\n";
	}
	
	if (msg != ""){
		alert("Please enter the following missing details:\n" + msg);
		return false;
	}else{
		return true;
	}
}

function checkChangePW(){
	msg = "";
	if(document.changepw.email.value == ""){
		msg += " - Please enter your email address\n";
	}
	if (!checkEmail(document.changepw.email.value)){
		msg += " - Email address incorrect format\n";
	}
	if(document.changepw.username.value == ""){
		msg += " - Please enter your username\n";
	}
	if(document.changepw.curr_pw.value == ""){
		msg += " - Please enter your current password\n";
	}
	if(document.changepw.new_pw.value == ""){
		msg += " - Please enter your new password\n";
	}else if((document.changepw.new_pw.value.length > 12) || (document.changepw.new_pw.value.length < 4)){
		msg += " - Your new password must be between 4 and 12 characters long\n";
	}else{
		var rep = /\W/;
		if(document.changepw.new_pw.value.search(rep) != -1){
			msg += ' - Password can only contain letters, numbers and underscores "_"\n';
		}
	}
		
	if(document.changepw.confirm_new_pw.value == ""){
		msg += " - Please confirm your new password\n";
	}else if(document.changepw.confirm_new_pw.value != document.changepw.new_pw.value){
		msg += " - New passwords do not match!\n";
	}	
		
	if (msg != ""){
		alert("Please enter the following missing details:\n" + msg);
		return false;
	}else{
		return true;
	}
}

function ownMDStep1(num){
	var combo_sel = false;
	for(i=0; i < num; i++){
		if(document.step1form.bottlecombo[i].checked == true){
			combo_sel = true;
		}
	}
	if(! combo_sel){
		alert("Please select a bottle combination");
	}
	return combo_sel;
}

function ownMDStep2(num){
	var combo_sel = 0;
	
	for(i=0; i < num; i++){
		if(eval("document.step2form.wine_" + i + ".options[document.step2form.wine_" + i + ".selectedIndex].value") != ""){
			combo_sel++;
		}
	}
	if(num != combo_sel){
		alert("Please select a wine for each of the " + num + " wine types or go back and choose a different bottle combination. Wine categories cannot be selected.");
		return false;
	}else{
		return true;
	}
}

function checkEmail(email){
	if(email.indexOf(" ") > -1){
		alert ("- Email address cannot contain spaces");
		return false;
	}
	
	var regex = RegExp(/^([a-zA-Z0-9_\-\.]{2,})@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);
	if ((email.search(regex) == -1) && (email != "")){
		return false;
	}else{
		return true;
	}
}

function checkPhone(phone){
	phone = phone.replace(/\(/gi, "");
	phone = phone.replace(/\)/gi, "");
	phone = phone.replace(/ /gi, "");
	regex = RegExp(/(^0[1-9]{1}[0-9]{8}$)|(^13\d{4}$)|(^04\d{2,3}\d{6}$)/);
	if ((phone.search(regex) == -1) && (phone != "")){
		return false;
	}else{
		return true;
	}
}

function checkNumField(evt){
	var chCode = (evt.which)?evt.which:evt.keyCode;
	if (typeof document.getElementById!="undefined" && typeof document.all=="undefined"){
		if ((34<evt.charCode && evt.charCode<41) || evt.charCode==46) return false;
		if ((34<chCode && chCode<41) || chCode==46) return true;
	}
	if((chCode<48 || 57<chCode) && chCode>31) return false;
	return true;
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
