function SubscriptionPage(params)
{
	this.Initializing = false;
	
	this.Name = "";
	this.EmailAddress = "";
	
	this.ValidateName = true;
	this.ValidateEmail = true;
	
	this.ValidationStyle = "font-size:x-small; font-weight:100; color:#00ff00; font-family:Arial, Helvetica, sans-serif;float:right;";
}

SubscriptionPage.prototype.Initialize = function()
{
	this.Initializing = true;
	this.RemoveValidationMessages();
	this.Initializing = false;
};

SubscriptionPage.prototype.ValidateForm = function()
{
	this.Name = $('#name').val();
	this.EmailAddress = $('#email_address').val();
	
	this.RemoveValidationMessages();
	var ValidationErrors = 0;
	
	if((this.Name == "") && (this.ValidateName))
	{
		var NameMissingMessage = "Please provide your name.";
		this.GenerateValidationElement($('#name'), NameMissingMessage);
		ValidationErrors += 1;
	}
	
	if(this.ValidateEmail)
	{
		var ValidEmailPattern = /^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$/;
		var EmailElement = $('#email_address');
		
		if(this.EmailAddress == "")
		{
			var EmailMissingMessage = "Please provide your email address.";
			this.GenerateValidationElement(EmailElement, EmailMissingMessage);
			ValidationErrors += 1;
		}
		else if(!this.EmailAddress.match(ValidEmailPattern))
		{
			var EmailInvalidMessage = "Please provide a valid email address.";
			this.GenerateValidationElement(EmailElement, EmailInvalidMessage);
			ValidationErrors += 1;			
		}
	}
	
	if(ValidationErrors > 0)
	{
		return false;
	}
	else
	{
		return true;
	}
};

SubscriptionPage.prototype.GenerateValidationElement = function(Element, ValidationMessage)
{
	var _this = this;
	$(Element).after("<span class='validation' style='"+ _this.ValidationStyle +"'>"+ ValidationMessage +"</span>");
};

SubscriptionPage.prototype.RemoveValidationMessages = function()
{
	$("span.validation").remove();
};