var DefaultInputText = [];
var enableRegister = false;

function init()
{
	var radios = document.forms["form_belepes"].radio_tema;
	for (var i = 0; i < radios.length; i++) if (radios[i].checked) addClass(document.getElementById(radios[i].value), "aktivtema");;
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) DefaultInputText[inputs[i].id] = inputs[i].title;
}

function showRegister()
{
	var registerInputFields = document.getElementById("regisztracio");
	var submitButton = document.getElementById("button_submit");
	var regButton = document.getElementById("button_reg");
	if (registerInputFields.style.display == "none") { registerInputFields.style.display = "block"; enableRegister = true; submitButton.value = "Regisztrálok!"; regButton.value = "Mégse"; changeClass(regButton, "large", "cancel"); }
	else { registerInputFields.style.display = "none"; enableRegister = false; submitButton.value = "Belépek!"; regButton.value = "Regisztrálok!"; changeClass(regButton, "cancel", "large"); }
}

function stringEscape(str)
{
	var reg = /\s/g;
	str = str.replace(reg, "");
	return str;
}

function hasClass(el,cls) 
{
	return el.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(el,cls)
{
    if (!this.hasClass(el,cls)) el.className += " "+cls;
}

function removeClass(el,cls)
{
    if (hasClass(el,cls)) 
	{
        var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
        el.className = el.className.replace(reg,' ');
    }
}

function changeClass(el, oldcls, newcls)
{
	removeClass(el, oldcls);
	addClass(el, newcls);
}

function changeType(element, type)
{
	var clone = element.cloneNode(true);
	clone.name = element.name;
	clone.id = element.id;
	clone.ClassName = element.ClassName;
	clone.title = element.title;
	clone.value = element.value;
	clone.type = type;
	clone.onclick = clearInput(element.id);
	clone.onblur = resetInput(element.id);
	element.parentNode.replaceChild(clone, element);
	
	//element.type = type;
}

function clearInput(inputID)
{
	var inputValue = document.getElementById(inputID);
	//if (inputID == "password" || inputID == "password2") changeType(inputValue, "password");
	for (i in DefaultInputText) if (inputValue.value == DefaultInputText[i]) inputValue.value = "";
}

function resetInput(inputID)
{
	var inputValue = document.getElementById(inputID);
	if (stringEscape(inputValue.value) == "")
	{
		for (i in DefaultInputText)
		{
			if (i == inputID) inputValue.value = DefaultInputText[i];
			//if (inputID == "password" || inputID == "password2") changeType(inputValue, "text");
		}
	}
}

function themeSelect(ID)
{
	for (var i = 0; i <= 8; i++) removeClass(document.getElementById("tema_" + i), "aktivtema");
	addClass(document.getElementById(ID), "aktivtema");
	var radios = document.forms["form_belepes"].radio_tema;
	for (var i = 0; i < radios.length; i++) if (radios[i].value == ID) radios[i].checked = true;
}

function nickRegex(nick)
{
	var reg = /^([a-zA-Z\_\-\,\ \\\'\^\{\|\}\[\]]+)([a-zA-Z0-9\_\-\,\ \\\'\^\{\|\}\[\]]*)$/i;  
	return reg.test(nick);
}

function mailRegex(email)
{
	var reg = /^([A-Za-z0-9]{1,}([-_\.&'][A-Za-z0-9]{1,}){0,}){1,}@(([A-Za-z0-9]{1,}[-]{0,1})\.){1,}[A-Za-z]{2,4}$/;  
	return reg.test(email);
}

function serverCheck(mode, param1, param2, param3)
{
	if (param3) param2 += "&param3=" + param3;
	if (param2) param1 += "&param2=" + param2;
	xmlhttp = new XMLHttpRequest();
	xmlhttp.open("GET", "xmlhttp.php?request=" + mode + "&param=" + param1, false);
	xmlhttp.send();
	return xmlhttp.responseText;
}

function loginCheck()
{
	var form = document.forms["form_belepes"];
	var username = stringEscape(form.username.value);
	var password = stringEscape(form.password.value);
	var password2 = stringEscape(form.password2.value);
	var email = stringEscape(form.email.value);
	var msg = "";
	
	if (username == "" || username == DefaultInputText["username"]) 
	{
		msg += "Hiányzó becenév!\n";  
	}
	else if (!nickRegex(username))
	{
		msg += "Hibás becenév!\n";
	}
	else if (serverCheck("loggedin", username) == 1) 
	{ 
		msg += "A megadott becenév (" + username + ") használatban van!\n"; 
	}
	else if (serverCheck("registered", username) != 3 && !enableRegister)
	{
		if (password == "" || password == stringEscape(DefaultInputText["password"]))
		{
			msg += "A megadott becenév (" + username + ") regisztrált, kérlek, írd be a jelszót!\n"; 
		}
		else if (serverCheck("password", username, password) == 5)
		{
			msg += "Hibás jelszó!\n"; 
		}
	}
	
	if (enableRegister) 
	{ 
		if (serverCheck("registered", username) != 3)
		{
			msg += "A megadott becenév (" + username + ") regisztrált!\n"; 
		}
		if (password != password2) 
		{ 
			msg += "A két jelszó nem egyezik!\n"; 
		} 
		if (email == "" || email == DefaultInputText["email"]) 
		{ 
			msg += "Hiányzó e-mail cím!\n";
		}
		else if (!mailRegex(email))
		{
			msg += "Hibás e-mail cím!\n";
		}
		if (msg == "")
		{
			var register = serverCheck("register", username, password2, email);
			if (register == 1)
			{
				showRegister();
				msg += "Sikeres regisztráció!";
			}
			else if (register == 2)
			{
				msg += "Ezzel az e-mail címmel már túl sokszor lett regisztrálva!";
			}
			else
			{
				msg += "Valami hiba van!";
			}
		}
	}
	
	if (msg != "") { alert(msg); return false; }
	return true;
}
