function ContactPage(params)
{
	this.Initializing = false;
	
	this.FirstNameElement = $('#sFirstName');
	this.LastNameElement = $('#sLastName');
	this.CompanyElement = $('#sCompany');
	this.PhoneElement = $('#sPhone');
	this.EmailElement = $('#sEmail');
	this.DescriptionElement = $('#sDescription');
	this.ValidationMessageDiv = $("div#ValidationMessages");
	
	this.Handler = params.Handler;
}

ContactPage.prototype.Initialize = function()
{
	this.Initializing = true;
	this.RegisterEvents();
	this.Initializing = false;
};

ContactPage.prototype.RegisterEvents = function()
{
	var _this = this;
	
	$('input#submitButton').click(function()
	{
		if(_this.ValidateForm())
		{
			//var FormValues = $("form#ContactForm").serialize();									
			//_this.SendForm(FormValues);
			$("#ContactForm").submit();
		}
	});	
};

ContactPage.prototype.SendForm = function(FormValues)
{
	var _this = this;
	
	$.ajax(
			{
				type: "POST",
				url: _this.Handler,
				data: "action=SendForm&" + FormValues,
				success: function(output)
				{
					var result = eval('('+ output +')');

					if(result._Success)
					{
                        var LocationUrl = result._txtSuccessText;
                        window.location = LocationUrl;
					}
                    else if(result._Error)
                    {
                        alert(result._txtErrorText);                        
                    }
				}
			}
		  );
};

ContactPage.prototype.ValidateForm = function()
{
	var _this = this;
	$(".validation").remove();
	var errors = 0;

	var sFirstName = $('#sFirstName').val();
	if(sFirstName == "")
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*First name required.</span>");
		errors += 1;
	}

	var sLastName = $('#sLastName').val();
	if(sLastName == "")
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Last name required.</span>");
		errors += 1;
	}
	
	var sCompany = $('#sCompany').val();
	if(sCompany == "")
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Company name required.</span>");
		errors += 1;
	}	

	var sPhone1 = $('#sPhone1').val();
	var sPhone2 = $('#sPhone2').val();
	var sPhone3 = $('#sPhone3').val();
	if((sPhone1 == "") || (sPhone2 == "") || (sPhone3 == ""))
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Phone number required.</span>");
		errors += 1;	
	}

	var sEmail = $('#sEmail').val();
	if(sEmail == "")
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Email required.</span>");
		errors += 1;
	}

	if(sEmail !== "")
	{
		var validEmailPattern = /^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$/;
	    if(!sEmail.match(validEmailPattern))
	    {
			_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*The email address you provided is not valid. Please check for typos.</span>");
			errors += 1;
	    }
    }

	var sDescription = $('#sDescription').val();
	if(sDescription == "")
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Please provide a description.</span>");
		errors += 1;	
	}

		if(errors > 0)
		{
			return false;
		}
		else
		{
			return true;
		}
};