window.messages.MSG_LOGIN_EXISTS = "The specified login name '{0}' is already registered. Please choose another name.";

function Registration()
{
}

Registration.setup = function ()
{
	Registration.loginExists = null;
	Registration.type = 1;

	var reg = document.getElementById("registration");
	var login = document.getElementById("ctrl_Login");
	var company = document.getElementById("ctrl_CompanyName");
	var level1 = document.getElementById("ctrl_Level_1");
	var level2 = document.getElementById("ctrl_Level_2");
	var elems1 = reg.getElementsByTagName("INPUT");
	var elems2 = reg.getElementsByTagName("SELECT");
	var elems3 = reg.getElementsByTagName("TEXTAREA");

	for (var i = 0; i < elems1.length; i++)
	{
		evt.addHandler(elems1[i], "onfocus", Registration.control_onfocus);
		evt.addHandler(elems1[i], "onblur", Registration.control_onblur);
	}
	for (var i = 0; i < elems2.length; i++)
	{
		evt.addHandler(elems2[i], "onfocus", Registration.control_onfocus);
		evt.addHandler(elems2[i], "onblur", Registration.control_onblur);
	}
	for (var i = 0; i < elems3.length; i++)
	{
		evt.addHandler(elems3[i], "onfocus", Registration.control_onfocus);
		evt.addHandler(elems3[i], "onblur", Registration.control_onblur);
	}
	evt.addHandler(reg, "onsubmit", createCallback(Registration, "form_onsubmit"));
	evt.addHandler(login, "onchange", createCallback(Registration, "login_onchange"));
	evt.addHandler(login, "onblur", createCallback(Registration, "login_onchange"));

	if (document.location.href.match(/agent/))
		Registration.type = 2;

	if (level1 && level2)
	{
		evt.addHandler(level1, "onclick", createCallback(Registration, "setLevel", [1]));
		evt.addHandler(level2, "onclick", createCallback(Registration, "setLevel", [2]));
		if (level2.checked)
			Registration.setLevel(2);
	}

	var firstControl = company || login;

	firstControl.focus();
	Registration.control_onfocus.call(firstControl);
}

Registration.form_onsubmit = function (e)
{
	if (Registration.loginExists == true)
	{
		Registration.showLoginExists();
		ui.cancelSubmit();
		return false;
	}
	else
		return true;
}

Registration.setLevel = function (level)
{
	var reg = document.getElementById("registration");
	var elems = dom.getElementsByClassName(reg, "level2");
	for (var i = 0; i < elems.length; i++)
	{
		if (level == 2)
			css.display(elems[i]);
		else
			css.undisplay(elems[i]);
	}
}

Registration.control_onfocus = function ()
{
	var descriptionTarget = document.getElementById("descriptionTarget");
	var descriptionText = document.getElementById(this.id + "_Description");
	if (descriptionTarget && descriptionText)
		css.addClassName(descriptionText, "bold");
}

Registration.control_onblur = function ()
{
	var descriptionTarget = document.getElementById("descriptionTarget");
	if (descriptionTarget)
	{
		var paras = descriptionTarget.getElementsByTagName("p");
		for (var i = 0; i < paras.length; i++)
		{
			css.removeClassName(paras[i], "bold");
		}
	}
}

Registration.login_onchange = function ()
{
	var login = document.getElementById("ctrl_Login");

	__tooltip.hide();
	if (login.value != "")
		verifyLogin(Registration.type, login.value, createCallback(Registration, "login_oncheck"));
}

Registration.login_oncheck = function (loginExists)
{
	this.loginExists = loginExists;
	if (this.loginExists == true)
		this.showLoginExists();
}

Registration.showLoginExists = function ()
{
	var login = document.getElementById("ctrl_Login");

	var message = window.messages.MSG_LOGIN_EXISTS.format(login.value);
	__tooltip.show(message, login, Tooltip.alignTopLeft, null, true, 5000);
}


evt.addHandler(window, "onready", Registration.setup);

