$(function() {
	if($("#frmTunnelRequest").length)
	{	
		$("#frmTunnelRequest").submit(function() {
			var isValid = true;
			$("input", $(this)).each(function() {		
				isValid &= isValidField($(this), false);
			});
		
			$("#datapicker").each(function() {
				isValid &= isValidDate($(this));
			});
		
			// validate min length
			$(".min", $(this)).each(function() {
				isValid &= isValidMinField($(this));
			});
			
			// validate email
			$(".validateEmail", $(this)).each(function() {
				isValid &= isValidEmail($(this));
			});
		
			if(isValid)
			{		
				var params = {};
				$("#frmTunnelRequest input[type!=submit]").each(function() {
					params[$(this).attr("name")] = $(this).val();
				});
				
				$("#frmTunnelRequest option:selected").each(function() {
					params[$(this).parent(0).attr("name")] = $(this).val();
				});
				
				$.post($(this).attr("action"), params, function(res) {
					if(res == "success")
					{
						$("#viewRequest").hide();
						$("#viewThankYou").show();
					}
				});
			}	
			return false;
		});
	
	
		$("#datepicker").datepicker({
			numberOfMonths: 2,
			dateFormat: 'mm/dd/yy',
			showButtonPanel: true,
			minDate: new Date()
		});
		
		$("#timeAmountHrs").autotab({ target: 'timeAmountMins' });
		$("#timeAmountMins").autotab({ target: 'groupSize', previous: 'timeAmountHrs' });
		$("#groupSize").autotab({ target: 'name', previous: 'timeAmountMins' });
		$("#phone1").autotab({ target: 'phone2' });
		$("#phone2").autotab({ target: 'phone3', previous: 'phone1' });
		$("#phone3").autotab({ previous: 'phone2' });
		
		$(".numOnly").keypress(function(evt) {
			var theEvent = evt || window.event;
			var key = theEvent.keyCode || theEvent.which;
			var keyCode = String.fromCharCode(key);
			var regex = /[0-9]/;
			// allow 0-9, left arrow (37), right arrow (39), tab (9), delete (8), and backspace (46)
			if( !regex.test(keyCode) && key != 37 && key !=39 && key != 9 && key != 8 && key != 46) {
				theEvent.returnValue = false;
				theEvent.preventDefault();
			}
		});
	}
});


function isValidEmail(field) 
{
	var isValid = true;
	
	if(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test($(field).val()))
	{
		$(field).removeClass("invalidField");
	}
	else
	{
		$(field).addClass("invalidField");
		isValid = false;
	}
	
	return isValid;
}

function isValidDate(field)
{
	var isValid = true;
	if(field.val().length > 0 && field.val().toLowerCase() != "mm/dd/yy")
	{
		$(field).removeClass("invalidField");
	}
	else
	{
		$(field).addClass("invalidField");
		isValid = false;
	}
	
	return isValid;
}

function isValidMinField(field) 
{
	var isValid = true;
	var minLen  = $(field).attr("maxlength");
	
	if($(field).val().length >= minLen)
	{
		$(field).removeClass("invalidField");
	}
	else
	{
		$(field).addClass("invalidField");
		isValid = false;
	}
	
	return isValid;
}

function isValidField(field, isMultiple)
 {
	var isValid = true;
		
	if((isMultiple && $(field).find("option:selected").val().length > 0) || (!isMultiple && $(field).val() != ""))
	{
		$(field).removeClass("invalidField");
	}
	else
	{
		$(field).addClass("invalidField");
		isValid = false;
	}
	
	return isValid;
}