var formUtilities = {

		emptyFieldChk: function(t) {

			var txt = t.toString();

			txt = $.trim(txt);

			if (txt.length < 1) {

				return true;

			}

		},

		validEmailChk: function(t) {
			var patern = /^([a-zA-Z0-9_\-\.]+)@((\[[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})(\]?)$/;
			return patern.test(t);
		},

		numericOnlyChk: function(t) {

			var patern = /^[+]?\d$/;

			if (!patern.test(t)) {
				return (t.replace(/[^\d]/g, ""));

			}

		}

};







$(function(){
			  
 
 	$(".numericOnly").keyup(function(){
		$(this).val((formUtilities.numericOnlyChk($(this).val())));											
	});
 
	$("#submitMsgBtn").click(function(){

		var statusMsg = "", validPhone = false; errorContainer = "<div id=\"status\" style=\"display:none;\"><p>All field is required.</p></div>";

		function showStatus(){

			if($("#status").length === 0)

				{
					$("#feedBackForm").before(errorContainer);
					$("#status").html(statusMsg);
					$("#status").fadeIn(); 
				}
			else
				{
					$("#status").html(statusMsg);
					$("#status").fadeIn(); 
				}

		};

		

		
		$(".required").each(function()

		{

			if(formUtilities.emptyFieldChk($(this).val()))

			{
				$(this).addClass("thisFieldIsNeeded");
				statusMsg = "All field is required.";
				showStatus();
				return false;
			}

			else

			{
				if($(this).hasClass("email"))
				{
						  if (formUtilities.validEmailChk($(this).val())) {
									$(this).removeClass("thisFieldIsNeeded");
						  }
						  else
						  {
							  $(this).addClass("thisFieldIsNeeded");
							  statusMsg = "Please enter a valid E-mail address";
						  	  showStatus();
						  	return false;
						  }
				}
				
				if($(this).hasClass("thisFieldIsNeeded"))

				{ 
					$(this).removeClass("thisFieldIsNeeded");
				}

			}
		});

		if($("#chkReservation").attr("checked"))
			{
				var reserveDate = new Date(), today = new Date(), reservationDate = $("#ddlMonth").val() +"-"+$("#ddlDay").val() +"-"+$("#ddlYear").val();
				reserveDate.setFullYear($("#ddlYear").val(),$("#ddlMonth").val() - 1,$("#ddlDay").val());
				
				if(reserveDate < today )
				{
					statusMsg += "<span> Please enter a valid date for reservation </span>";
					showStatus();
					return false;
				}
		}


		if($("form .thisFieldIsNeeded").length < 1)
		{
				
				if($("#chkReservation").attr("checked"))
				{
				$.post("sendMail.php", 
						{ name: $("#name").val(), email: $("#email").val(), message: $("#message").val(),isReservation:$("#chkReservation").attr("checked"), reservationDate:reservationDate, numOfPpl: $("#numOfPpl").val(),},
						function(data)
							{
										statusMsg = "Your email has been sent. Thank you.";
										showStatus();
										$("form :input").val(""); 
										window.setTimeout(function(){$("#status").fadeOut();},2000);
							});				
				}
				else
				{
				$.post("sendMail.php", 
						{ name: $("#name").val(), email: $("#email").val(), message: $("#message").val()},
						function(data)
							{
										statusMsg = "Your email has been sent. Thank you.";
										showStatus();
										$("form :input").val(""); 
										window.setTimeout(function(){$("#status").fadeOut();},2000);
							});
				}
		}

		return false;

	});

})

