$(document).ready(function()
{
	AllstreamLP.setupFormValidation();
	AllstreamLP.handleLPProcessorError();
	AllstreamLP.toggleThankyouMsg();
});

var AllstreamLP = {
	setupFormValidation : function()
	{
		//borrowed from http://docs.jquery.com/Plugins/Validation/CustomMethods/phoneUS
		jQuery.validator.addMethod("phone",
			function(phone_number, element)
			{
		    	phone_number = phone_number.replace(/\s+/g, ""); 
				return this.optional(element) || phone_number.length > 9 &&
						phone_number.match(/^(1[-.]?)?(\([2-9]\d{2}\)|[2-9]\d{2})[-\.]?[2-9]\d{2}[-.]?\d{4}$/);
			}, "Please specify a valid phone number");
	
		jQuery.validator.addMethod("postalCode",
			function(postalCode, element)
			{
				return this.optional(element) ||
						postalCode.match(/^\w\d\w\-? ?\d\w\d$/i);
			}, "Please specify a valid Postal Code"); 
		
		$("#userInfoForm").validate(
		{
			rules:
			{
				companyName: { required: true },
				firstName: { required: true },
				lastName: {	required: true },
				lastName: {	required: true },
				city: {	required: true },
				province: {	required: true },
				postalCode: { required: true, postalCode: true },
				companyEmail: {	required: true, email: true },
				companyPhone: { required: true/*, phone: true*/ }
			}
		});
	},

	handleLPProcessorError : function()
	{
		//check if redirected back from form processor
		var params = window.location.search;
		if (params == '')
			return;
		
		//get rid of the leading question mark
		params = params.slice(1);
	
		if (!/error=/.test(params))
			return; 
	
		var pairs = params.split('&');
	
		for (var i=0; i < pairs.length; ++i)
		{
			var pair = pairs[i].split('=');
	
			if (pair.length != 2)
				continue;
	
			//Display message from the server.
			if (pair[0] == 'error')
			{
				$('#serverError').each(function(i)
				{
					this.innerHTML = decodeURIComponent(pair[1]);
					$(this).css('display', 'block');
				});
				continue;
			}
			
			$('#'+pair[0]).each(function(i, ele)
			{
				this.value = decodeURIComponent(pair[1]);
			});
		}
	
		$("#userInfoForm").validate().form();
	},
	
	toggleThankyouMsg : function()
	{
		//check if redirected back from form processor
		var params = window.location.search;
		if (params == '')
			return;
		
		//get rid of the leading question mark
		params = params.slice(1);
		var pairs = params.split('&');
		
		for (var i=0; i < pairs.length; ++i)
		{
			var pair = pairs[i].split('=');
	
			if (pair.length != 2)
				continue;
			
			if (pair[0] == 'el')
			{
				if (pair[1] == '0')
					$("#unqualified").css('display', 'block');
				else if (pair[1] == '1')
					$("#qualified").css('display', 'block');
				
				return;
			}
		}
	}
}