function EventPage(params)
{
	this.Initializing = false;
	
	this.Name = "";
	this.EmailAddress = "";
	this.NumberAttending = "";
	this.Day = "";
	
	this.ValidateName = true;
	this.ValidateEmail = true;
	this.ValidateNumberAttending = true;
	this.ValidateDay = true;
	
	this.ValidationStyle = "font-size:x-small; font-weight:100; color:#00ff00; font-family:Arial, Helvetica, sans-serif;float:right;";
	
	this.ValidateRadioButton = params.ValidateRadioButton;
}

EventPage.prototype.Initialize = function()
{
	this.Initializing = true;
	this.RemoveValidationMessages();
	this.Initializing = false;
};

EventPage.prototype.GetDayValue = function()
{
	var _this = this;
	var result = "";
	$('input[name=day]:radio').each(function()
	{
		if($(this).attr("checked") == true)
		{
			result = $(this).val();
		}
	});
	
	return result;
};

EventPage.prototype.ValidateForm = function()
{
	this.Name = $('#name').val();
	this.EmailAddress = $('#email_address').val();
	this.NumberAttending = $('#number_attending').val();
	this.Day = this.GetDayValue();
	
	this.RemoveValidationMessages();
	var ValidationErrors = 0;
	
	if((this.Name == "") && (this.ValidateName))
	{
		var NameMissingMessage = "Please provide your name.";
		this.GenerateValidationElement($('#name'), NameMissingMessage);
		ValidationErrors += 1;
	}
	
	if((this.NumberAttending == "") && (this.ValidateNumberAttending))
	{
		var NumberAttendingMissingMessage = "Please provide the total number of people coming with you.";
		this.GenerateValidationElement($('#number_attending'), NumberAttendingMissingMessage);
		ValidationErrors += 1;	
	}
	
	if((this.NumberAttending != "") && (this.ValidateNumberAttending) && (isNaN(this.NumberAttending)))
	{
		var NumberAttendingNotANumberMessage = "Please give a numeric value for the number attending.";
		this.GenerateValidationElement($('#number_attending'), NumberAttendingNotANumberMessage);
		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(this.ValidateRadioButton)
	{
		if((this.Day == "") && (this.ValidateDay))
		{
			var NoDayChosenMessage = "Please choose the day you want to attend.";
			this.GenerateValidationElement($('#Thursday'), NoDayChosenMessage);
			ValidationErrors += 1;
		}	
	}
	
	if(ValidationErrors > 0)
	{
		return false;
	}
	else
	{
		return true;
	}
};

EventPage.prototype.GenerateValidationElement = function(Element, ValidationMessage)
{
	var _this = this;
	$(Element).after("<span class='validation' style='"+ _this.ValidationStyle +"'>"+ ValidationMessage +"</span>");
};

EventPage.prototype.RemoveValidationMessages = function()
{
	$("span.validation").remove();
};