function InquiryPage(params)
{
	this.Initializing = false;

	this.CategoryElement = $('#profile_categories');
	this.ProgramElement = $('#p');
	this.FirstNameElement = $('#sFirstName');
	this.LastNameElement = $('#sLastName');
	this.DateOfBirthElement = $('#dtDateOfBirth');
	this.SexElement = $('#sSex');
	this.AddressElement = $('#sAddress');
	this.CityElement = $('#sCity');
	this.StateProvinceElement = $('#sStateProvince');
	this.PostalCodeElement = $('#sPostalCode');
	this.CountryElement = $('#sCountry');
	this.EmailElement = $('#sEmail');
	this.HomePhoneElement = $('#sHomePhone');
	this.CellPhoneElement = $('#sCellPhone');
	this.NationalityElement = $('#sNationality');
	this.StartYearElement = $('#iStartYear');
	this.StartSessionElement = $('#sStartSession');
	this.StudyLevelElement = $('#sStudyLevel');
	this.StudyPreferenceElement = $('#sStudyPreference');
	this.TuitionElement = $('#iTuition');
	this.ToeflScoreElement = $('#iToeflScore');
	this.ToeflTestTakenElement = $('#dtToeflTestTaken');
	this.CommentElement = $('#txtComment');
	this.RequestToeflTestInfoElement = $('#sRequestToeflTestInfo');
	this.RequestStudyUsaInfoElement = $('#sRequestStudyUsaInfo');

	this.Handler = params.Handler;
}

InquiryPage.prototype.Initialize = function()
{
	this.Initializing = true;
	this.CheckBrowser();
	this.RegisterEvents();
	//this.SetProgramStartOptions();
	this.SetDefaultStartSession();
	this.Initializing = false;
};

InquiryPage.prototype.SetDefaultStartSession = function()
{
	var dt = new Date();
	var y = dt.getFullYear();
	var m = (dt.getMonth() + 1);
	
	var SelectedQ = "";	
	
	m = parseInt(m);
	if((m == 3) || (m == 4) || (m == 5))
	{
		SelectedQ = "Fall";
	}
	else if((m == 6) || (m == 7) || (m == 8))
	{
		SelectedQ = "Winter";
	}
	else if((m == 9) || (m == 10) || (m == 11))
	{
		SelectedQ = "Spring";
		y = (y + 1);		
	}
	else if((m == 12) || (m == 1) || (m == 2))
	{
		SelectedQ = "Summer";
	}
	else
	{
		SelectedQ = "Fall";
	}
	
	var SelectedY = y.toString();
	
	$("select#iStartYear option").each(function()
	{
		if($(this).attr("value") == SelectedY)
		{
			$(this).attr("selected","true");
		}
	});
		
	$("select#sStartSession option").each(function()
	{
		if($(this).attr("value") == SelectedQ)
		{
			$(this).attr("selected","true");
		}	
	});
};

InquiryPage.prototype.CheckBrowser = function()
{
	if($.browser.msie)
	{
		$("link#InforeqStylesheet").attr("href","css/inforeq_ie.css");
	}
};

InquiryPage.prototype.RegisterEvents = function()
{
	var _this = this;	 	
	
	$('#sStartSession, #iStartYear').change(function()
	{
		var DaysToStart = _this.CheckStartTime();
		if(DaysToStart < 40)
		{
			alert("Program must start at least 40 days from now.");
		}
	});

	$('#dtDateOfBirthDisplay').datepicker(
	{
		dateFormat: 'mm/dd/yy',
		altField: '#dtDateOfBirth',
		altFormat: 'yy-mm-dd',
		changeYear:true,
		yearRange: '1950:2000',
		defaultDate: new Date(2000, 1 - 1, 1),
		onClose: function(){}
	}).blur(function()
	{
		$(this).val($('#dtDateOfBirth').val());
	});

	$('#dtToeflTestTakenDisplay').datepicker(
	{
		dateFormat: 'mm/dd/yy',
		altField: '#dtToeflTestTaken',
		altFormat: 'yy-mm-dd',
		changeYear:true,
		onClose: function(){}
	}).blur(function()
	{
		$(this).val($('#dtToeflTestTaken').val());
	});

	$('input#SubmitFormButton').click(function()
	{				
		var ProgramChoiceRequired = true;
		if(_this.ValidateForm(ProgramChoiceRequired))
		{
			$("img.FormProcessingImage").css("display","block");	
			var FormValues = $("form").serialize();									
			_this.SendForm(FormValues);
		}
	});
};

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

					if(result._Success)
					{
						$("img.FormProcessingImage").css("display","none");	
                        var LocationUrl = result._txtSuccessText;
                        window.location = LocationUrl;
					}
                    else if(result._Error)
                    {
                    	$("img.FormProcessingImage").css("display","none");	
                        var LocationUrl = result._txtErrorText;
                        window.location = LocationUrl;
                    }
				}
			}
		  );
};

InquiryPage.prototype.CheckStartTime = function()
{
	var StartYear = $('#iStartYear').val();
	var StartSession = $('#sStartSession').val();
	var month = 0;
	switch(StartSession)
	{
		case "Fall":
		month = 7; //August
		break;
		
		case "Winter":
		month = 10; //November
		break;
		
		case "Spring":
		month = 1; //February
		break;
		
		case "Summer":
		month = 4; //May
		break;
	}
	
	StartYear = parseInt(StartYear);
	
	var today = new Date();
	
	var dt = new Date();
	
	dt.setFullYear(StartYear, month, 1);
	var one_day = 1000 * 60 * 60 * 24;
	var days = Math.ceil((dt.getTime()-today.getTime())/(one_day));
	
	return days;
};

InquiryPage.prototype.ValidateForm = function(ProgramChoiceRequired)
{
	var _this = this;
	
	$("img.FormProcessingImage").css("display","none");	
	var errors = 0;

	$(".validation").remove();

/*	var Category = $('#profile_categories').val();
	if((Category == "") || (Category == "0"))
	{
		_this.CategoryElement.before("<span class='validation'>*Please choose a category.</span><br class='validation' />");
		errors += 1;
	}
*/
	
	if(ProgramChoiceRequired)
	{
	    var Program = $('#p').val();
		if((Program == "") || (Program == "0") || (Program == null) || (Program == "null"))
		{
			_this.ProgramElement.before("<span class='validation'>*Please choose a program.</span><br class='validation' />");
			errors += 1;
		}
	}

	var sFirstName = $('#sFirstName').val();
	if(sFirstName == "")
	{
		_this.FirstNameElement.after("<br class='validation' /><span class='validation'><b>*Required.</b></span>");
		errors += 1;
	}

	var sLastName = $('#sLastName').val();
	if(sLastName == "")
	{
		_this.LastNameElement.after("<br class='validation' /><span class='validation'><b>*Required.</b></span>");
		errors += 1;
	}

	var dtDateOfBirth = $('#dtDateOfBirth').val();
	if(dtDateOfBirth == "")
	{
		_this.DateOfBirthElement.after("<br class='validation' /><span class='validation'><b>*Required.</b></span>");
		errors += 1;
	}

	var sCountry = $('#sCountry').val();
	if(sCountry == "")
	{
		_this.CountryElement.after("<br class='validation' /><span class='validation'><b>*Required.</b></span>");
		errors += 1;
	}

	var sEmail = $('#sEmail').val();
	if(sEmail == "")
	{
		_this.EmailElement.after("<br class='validation' /><span class='validation'><b>*Required.</b></span>");
		errors += 1;
	}

	var Email2 = $('#Email2').val();
	if(sEmail !== Email2)
	{
		_this.EmailElement.after("<br class='validation' /><span class='validation'><b>*The two email addresses you provided must match.</b></span>");
		errors += 1;
	}

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

	var sNationality = $('#sNationality').val();
	if(sNationality == "")
	{
		_this.NationalityElement.after("<br class='validation' /><span class='validation'><b>*Required.</b></span>");
		errors += 1;
	}

	var DaysToStart = _this.CheckStartTime();
	
	if(DaysToStart < 40)
	{
		_this.StartSessionElement.after("<br class='validation' /><span class='validation'><b>*Program must start at least 40 days from now.</b></span>");
		errors += 1;
	}

	if(errors > 0)
	{
        alert("Some required fields are not filled\nPlease check.");
		return false;
	}
	else
	{
		return true;
	}
}