$(document).ready(function(){
    
	$.validator.setDefaults({
		submitHandler: function(form) { 
			
			$('form textarea').each(function() {
				var t = this.value
				var nreg = /<br \/>\n/g; t = t.replace(nreg, '\n');
				nreg = /\n/g; t = t.replace(nreg, '<br />\n');
				this.value = t;
			});

			if(form.name == "frmOffer") {
				if (($('#promocode').val()).toLowerCase() == "en1456" || 
					($('#promocode').val()).toLowerCase() == "mt2334" ||
					($('#promocode').val()).toLowerCase() == "sip201") {
					submitForm(form.name);
				} else {
					alert("Please enter a valid promotional code");
				}
			} else if (form.name == "frmSipsmith") {
				if ($('#promocode').val() == "SC1004" || $('#promocode').val() == "SIP205") {
					submitForm(form.name);
				} else {
					alert("Please enter a valid promotional code");
				}
			} else {
				submitForm(form.name);
			}
		}
	});

	// validate signup form on keyup and submit
	$("#frmNews").validate({
		rules: {
			
			firstname: {required: true},
			lastname: {required: true},
			address: {required: true},
			town: {required: true},
			postcode: {required: true},
			reservationdate: {required: true},
			country: {required: false},
			telephone: {required: false},
			email: {required: true, email: true},
			
			//notes: {required: true}
			

		},
		messages: {
			
			firstname: "Please enter your first name",
			lastname: "Please enter your last name",
			address1: "Please enter your address",
			//address2: "",
			town: "Please enter your town",
			postcode: "Please enter your postcode",
			reservationdate : "Please enter your reservation date",
			//country: "",
			//telephone: "",
			email: "Please enter a valid email address",
			
			//notes: {required: true},

		}
	});
	
	$("#frmOffer").validate({
		rules:	{
			firstname: {required: true},
			lastname: {required: true},
			email: {required: true, email: true},
			promocode: {required: true},
			mobile: {required: true}	
		},
		messages:	{
			firstname: "Please enter your first name",
			lastname: "Please enter your last name",
			email: "Please enter a valid email address",
			promocode: "Please enter a promotional code",
			mobile: "Please enter your mobile number",
		}
	});

	$("#frmSipsmith").validate({
		rules:	{
			firstname: {required: true},
			lastname: {required: true},
			email: {required: true, email: true},
			promocode: {required: true}
			
		},
		messages:	{
			firstname: "Please enter your first name",
			lastname: "Please enter your last name",
			email: "Please enter a valid email address",
			promocode: "Please enter a promotional code",
		}
	});
	
	
	$("#frmChampQstn").validate({
		rules:	{
			email: {required: true, email: true},
		},
		messages:	{
			email: "Please enter a valid email address",
		}
	});
	
 });

function submitForm(frm){
// requires jquery 

	var myForm = $("#" + frm);
	if($("#axname").val() == "NewsSub")
	{
	   if($("#c").attr('checked') == true)
	   {
	   	 $("#chkwine").val("yes");
	   }
	   else
	   {
	   	 $("#chkwine").val("no");
	   }
	   $("#c").val("");
	}
	
	if($("#axname").val() == "ChampagneSub")
	{
	   if($("#e").attr('checked') == true)
	   {
	   	 $("#sendemail").val("no");
	   }
	   else
	   {
	   	 $("#sendemail").val("yes");
	   }
	   
	   if($("#t").attr('checked') == true)
	   {
	   	 $("#sendtext").val("no");
	   }
	   else
	   {
	   	 $("#sendtext").val("yes");
	   }
	   $("#e").val("");
	   $("#t").val("");
	}
	
	if($("#axname").val() == "SipsmithSub")
	{	/* May need some further writes, but should be ok */
	   if($("#e").attr('checked') == true)
	   {
	   	 $("#sendemail").val("no");
	   }
	   else
	   {
	   	 $("#sendemail").val("yes");
	   }
	   
	   if($("#t").attr('checked') == true)
	   {
	   	 $("#sendtext").val("no");
	   }
	   else
	   {
	   	 $("#sendtext").val("yes");
	   }
	   $("#e").val("");
	   $("#t").val("");
	}
	
	
	var frmParams = myForm.serialize();
	//alert(frmParams);
	$('#workinprogress').show();
		
	$.ajax({
		type: "POST",
		url: "include/email.relay.asp", 
		dataType: "xml",
		data: frmParams,
		success: function(xml){
		
			var errCode = $("errorcode", xml).text();
			var errMsg = $("errormsg", xml).text();
			var resTxt = $("responsetext", xml).text();
			
			if (errCode == 0){
				if (frm == "frmOffer") {
				 	$('#responsemsg').html("The form has been filled in successfully, we will be in touch shortly to confirm your reservation");
				} else if (frm == "frmSipsmith") {
					$('#responsemsg').html("The form has been filled in successfully, we will be in touch shortly to confirm your tasting attendance / reservation.");
				} else if (frm == "frmChampQstn") {
					$('#responsemsg').html("Email code sent successfully.");
				} else {
					$('#responsemsg').html("Thank you for signing up.");
				}
				//$('#responsemsg').append('\n<br> > ' + resTxt + '');	
				$("#" + frm)[0].reset();		
			   
			}else{
				$('#responsemsg').html('\n<br> > ' + resTxt + '');
				$('#responsemsg').append(' [' + errCode + ' ' +  errMsg + ']');
				
			}
			
			$('#workinprogress').hide();

		}
	});

}

function checkBDate()
{
	var BDate = $("#birthday").val();
	
	if(BDate == "dd/mm"){
		alert("Please enter your birthday");
		return false;
	}
	
	if(BDate.length > 5||BDate.length < 5){
		alert("Please enter your birthday in the correct format 'dd/mm'");
		return false;
	}
	
	/* split it on / make sure both sides are numeric - one side greater than 0 and less than 31 - other side greater than 0 and less than 12*/
	
	var BDateChunks = BDate.split("/");
		
	if(BDateChunks.length != 2){
		alert("Please enter your birthday in the correct format 'dd/mm'");
		return false;
	}
	
	var BDay	 =	parseInt(BDateChunks[0]);
	var BMonth	 =	parseInt(BDateChunks[1]);
	
	if(BDay > 31||BDay < 1){
		alert("Please enter a valid date for your birthday");
		return false
	}
	
	if(BMonth > 12||BMonth < 1){
		alert("Please enter a valid date for your birthday");
		return false
	}	
	
	if((BMonth == 2) && (BDay > 29)){
		alert("Please enter a valid date for your birthday");
		return false
	}
	
	if((BMonth == 9||BMonth == 4||BMonth == 6||BMonth == 11)&&(BDay > 30)){
		alert("Please enter a valid date for your birthday");
		return false
	}
	
	return true;	
}
