function SignupPage(params)
{
	this.Initializing = false;
	this.ValidationMessageDiv = $("div#ValidationMessages");
	this.Handler = params.Handler;
}

SignupPage.prototype.Initialize = function()
{
	this.Initializing = true;
	this.RegisterEvents();
	this.Initializing = false;
};

SignupPage.prototype.RegisterEvents = function()
{
	var _this = this;
	$('input#submit').click(function()
	{
		if(_this.ValidateForm())
		{
			var FormValues = $("form#SignupForm").serialize();									
			_this.SendForm(FormValues);
		}
		else
		{
			window.location = '#SeeValidation';
		}
	});	
};

SignupPage.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);                        
                    }
				}
			}
		  );
};

SignupPage.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 sMiddleName = $('#sMiddleName').val();
	if(sMiddleName == "")
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Middle 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 sGender = $('#sGender').val();
	if((sGender == "") || (sGender == "--"))
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Gender required.</span>");
		errors += 1;
	}		

	var TotalBoxesChecked = 0;
	$(":checkbox").each(function()
	{
		if($(this).attr("checked") == true)
		{
			TotalBoxesChecked += 1;
		}
	});
	
	if(TotalBoxesChecked == 0)
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Please make at least one choice about study interest.</span>");
		errors += 1;
	}
	
	var sAddress1 = $('#sAddress1').val();
	if(sAddress1 == "")
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Address is required.</span>");
		errors += 1;
	}	
	
	var sCity = $('#sCity').val();
	if(sCity == "")
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*City required.</span>");
		errors += 1;
	}		

	var sState = $('#sState').val();
	if((sState == "") || (sState == "--"))
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*State required.</span>");
		errors += 1;
	}	
	
	var sZip = $('#sZip').val();
	if(sZip == "")
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Zip code required.</span>");
		errors += 1;
	}	

	var sPhoneDaytime1 = $('#sPhoneDaytime1').val();
	var sPhoneDaytime2 = $('#sPhoneDaytime2').val();
	var sPhoneDaytime3 = $('#sPhoneDaytime3').val();
	if((sPhoneDaytime1 == "") || (sPhoneDaytime2 == "") || (sPhoneDaytime3 == ""))
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Daytime phone required.</span>");
		errors += 1;	
	}		
	
	var sPhoneEvening1 = $('#sPhoneEvening1').val();
	var sPhoneEvening2 = $('#sPhoneEvening2').val();
	var sPhoneEvening3 = $('#sPhoneEvening3').val();
	if((sPhoneEvening1 == "") || (sPhoneEvening2 == "") || (sPhoneEvening3 == ""))
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Evening phone required.</span>");
		errors += 1;	
	}	

	var sCityWork = $('#sCityWork').val();
	if(sCityWork == "")
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*City where you work required.</span>");
		errors += 1;
	}	

	var sCityLive = $('#sCityLive').val();
	if(sCityLive == "")
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*City of residence 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 sHome = $('#sHome').val();
	if((sHome == "") || (sHome == "--"))
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Information about your home is required.</span>");
		errors += 1;
	}		
		
	var sEmploymentStatus = $('#sEmploymentStatus').val();
	if((sEmploymentStatus == "") || (sEmploymentStatus == "--"))
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Information about your employment status is required.</span>");
		errors += 1;
	}	
					
	var sOccupation = $('#sOccupation').val();
	var sOtherProfession = $('#sOtherProfession').val();
	if(((sOccupation == "") || (sOccupation == "--")) && (sOtherProfession == ""))
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Information about your profession is required.</span>");
		errors += 1;
	}		

	var sHouseholdIncome = $('#sHouseholdIncome').val();
	if((sHouseholdIncome == "") || (sHouseholdIncome == "--"))
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Information about your household income is required.</span>");
		errors += 1;
	}

	var sAboutFamily = $('#sAboutFamily').val();
	if((sAboutFamily == "") || (sAboutFamily == "--"))
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Information about your family is required.</span>");
		errors += 1;
	}

	var sChildren = $('#sChildren').val();
	if((sChildren == "") || (sChildren == "--"))
	{
		_this.ValidationMessageDiv.append("<br class='validation' /><span class='validation'>*Information about possible children is required.</span>");
		errors += 1;
	}

		if(errors > 0)
		{
			return false;
		}
		else
		{
			return true;
		}
};