var regData = new Array();
var regDataKeys = ["login", "pass", "szall_nev", "szall_irszam", "szall_city", "szall_utca", "szaml_nev", "szaml_irszam", "szaml_city", "szaml_utca", "telefon", "email"];
var modDataKeys = ["szall_nev", "szall_irszam", "szall_utca", "szall_city", "szaml_nev", "szaml_irszam", "szaml_city", "szaml_utca", "telefon"];
var email_foglalt = false;
var rsubmit = false;
regDataKeys.each(function(a) {
	regData[a] = false;
});

function reg_error(id, str) {
	if (!$(id)) return false;
	if (str) {
		$(id).innerHTML = str;
		$(id).style.display = "block";
		return true;
	}
	$(id).style.display = "none";
	
}

/*

Iranyitoszam ellenorzes

*/

function check_irszam(name, next, page) {
	if (!page) page = "regisztracio";
	var input = $(name + "_irszam");
	if (page == "modositas" && !input.oldvalue && input.value) {
		input.oldvalue = input.value;
		regData[name + "_irszam"] = true;
	}
	input.value = input.value.replace("ö", "0");

	if (input.value != Math.floor(input.value)) {
		if (!input.oldvalue) input.oldvalue = "";
		input.value = input.oldvalue;
		regData[name + "_irszam"] = false;
		return;
	}

	input.value = Math.floor(input.value);
	if (input.value == 0) input.value = "";
	if (input.value.length < 4) {
		$(name + "_megye").className = "disabled";
		$(name + "_megye_label").className = "disabled";
		$(name + "_megye").innerHTML = "Adjon meg irányítószámot!";
//		$(name + "_telepules_input").style.display = "none";
//		$(name + "_telepules_label").className = "disabled";
		input.oldvalue = input.value;
		regData[name + "_irszam"] = false;
		reg_error(name + "_city_notice", false);
		regData[name + "_city"] = false;
		return;
	}

	if (input.value.length == 0) {
		if (next === true) {
			reg_error(name + "_irszam_notice", 'Nem adott meg irányítószámot!');
		}
		regData[name + "_irszam"] = false;
		return;
	}

	if (page == "modositas" && next === true && $F(name + "_telepules_input")) {
		regData[name + "_irszam"] = true;
		regData[name + "_city"] = true;
		return;
	}

	if (input.value.length == 4 && input.value != input.oldvalue) {
		regData[name + "_irszam"] = "checking";
		reg_error(name + "_irszam_notice", 'Irányítószám ellenőrzése...');
		var url = "/" + page + "/irsz/" + $F(name + "_irszam") + "/" + name;
		var ajax = new Ajax.Request(
			url, {
				method: "get",
				onComplete: ajax_irszam
			}
		);
	}
	input.oldvalue = input.value;
}

function ajax_irszam(request) {
	var i;
	var xml = new ArkenXML(request);
	var idata = xml.getItem("data");
	var irszam = idata.getAttr("irszam");
	var type = idata.getAttr("type");
	var megye = idata.getAttr("megye");
	var telepules = idata.getAttr("telepules");
//	var utca = new Array();

	if (telepules == "Nincs") {
		reg_error(type + "_irszam_notice", 'Nem található a megadott irányítószám!');
		regData[name + "_irszam"] = false;
		$(type + "_megye").className = "disabled";
		$(type + "_megye_label").className = "disabled";
		$(type + "_megye").innerHTML = "Adjon meg irányítószámot!";
//		$(type + "_telepules").className = "disabled";
//		$(type + "_telepules_label").className = "disabled";
		reg_error(type + "_city_notice", false);
		regData[type + "_city"] = false;
		return;
	}

//	var utcak = xml.getItem("utca").getList("item");
//	for (i = 0; i < utcak.length; i++) {
//		utca.push(utcak[i].getAttr("value"));
//	}

//	new Autocompleter.Local(type + "_utca", type + "_utcak", utca, {frequency: 0.1, choices: 15});

	$(type + "_megye").className = "ok";
	$(type + "_megye_label").className = "ok";
	$(type + "_megye").innerHTML = megye;
	//$(type + "_telepules").className = "ok";
	$(type + "_telepules_label").className = "ok";
	$(type + "_telepules_input").style.display = "block";
	$(type + "_telepules_input").value = telepules;

	reg_error(type + "_irszam_notice", false);
	regData[type + "_irszam"] = true;

	$(type + "_utca").focus();
}

function check_city(type, next) {
	if ($F(type + "_telepules_input").length < 2) {
		if (next === true) {
			reg_error(type + "_city_notice", 'A megadott településnév túl rövid!');
		} else {
			reg_error(type + "_city_notice", false);
		}
		regData[type + "_city"] = false;
	} else {
		reg_error(type + "_city_notice", false);
		regData[type + "_city"] = true;
	}
}


function szaml_show() {
	$("szaml_show").style.display = "none";
	$("szaml_table").style.display = "block";
}

/*

Azonosito ellenorzes

*/

function check_login(next) {
	$("reg_login").value = trim($F("reg_login"));
	$("reg_login").value = $F("reg_login").replace(" ", "");
	var login = $F("reg_login");
	if (login.length == 0) {
		if (next === true) {
			reg_error("login_notice", 'Nem adott meg azonosítót!');
		} else {
			reg_error("login_notice", false);
		}
		regData["login"] = false;
		return;
	}

	if (login.length < 5) {
		reg_error("login_notice",  'Az azonosító minimális hossza 5 karakter.');
		regData["login"] = false;
		return;
	}

	if ($("reg_login").check == login) return;

	//reg_error("login_notice", 'Azonosító ellenőrzése...');
	regData["login"] = "checking";
	var url = "/regisztracio";
	var ajax = new Ajax.Request(
		url, {
			method: "post",
			parameters: "check_login=" + login,
			onComplete: ajax_login
		}
	);
}

function ajax_login(request) {
	var xml = new ArkenXML(request);
	var used = xml.getItem("login").getAttr("used");
	$("reg_login").check =  xml.getItem("login").getAttr("value");
	if (used == 1) {
		reg_error("login_notice", 'Az azonosító már foglalt. Kérjük válasszon másikat.');
		regData["login"] = false;
	} else {
		reg_error("login_notice", false);
		regData["login"] = true;
	}
}

/*

Jelszo ellenorzes

*/

function check_passwd(next) {
	var pass1 = $F("reg_pass1");
	var pass2 = $F("reg_pass2");

	var s = pass1.length;
	if (s > 4) {
		if (pass1.match('[a-záéíóöőúüű]')) s *= 2;
		if (pass1.match('[A-ZÁÉÍÓÖŐÚÜŰ]')) s *= 2;
		if (pass1.match("[0-9]")) s *= 2;
		reg_error("pass_notice", false);
	} else {
		reg_error("pass_notice", 'A jelszó minimális hossza 5 karakter.');
		regData["pass"] = false;
	}

	if (s > 0) {
		if (s > 50) s = 50;
		var color = "#FF0000";
		if (s > 14) color = "#FF920C";
		if (s > 40) color = "#009900";
		$("pass_bar").style.width = s * 2 + "%";
		$("pass_bar").style.background = color;
		$("pass_bar_cont").style.display = "block";
		$("pass_bar_label").style.display = "block";
	} else {
		$("pass_bar_label").style.display = "none";
		$("pass_bar_cont").style.display = "none";
		if (next === true) {
			reg_error("pass_notice", 'Nem adott meg jelszót!');
		} else {
			reg_error("pass_notice", false);
		}
	}

	if (pass1.length < 5) {
		$("td_pass2").className = "disabled";
		$("reg_pass2").className = "reg_s2_d";
		$("reg_pass2").disabled = true;
		regData["pass"] = false;
		return;
	}

	if (s < 15) {
		reg_error("pass_notice", 'A jelszó nem biztonságos. Használjon hosszabb jelszót, számokat illetve kis- és nagybetűket!');
//		$("pass2_label").style.display = "none";
//		$("pass2_input").style.display = "none";
		$("td_pass2").className = "disabled";
		$("reg_pass2").className = "reg_s2_d";
		$("reg_pass2").disabled = true;
		regData["pass"] = false;
		return;
	}

//	$("pass2_label").style.display = "block";
//	$("pass2_input").style.display = "block";
	$("td_pass2").className = "ok";
	$("reg_pass2").className = "reg_s2";
	$("reg_pass2").disabled = false;

	if (pass1 != pass2 && pass2 && pass1) {
		reg_error("pass_notice", 'A jelszó és a megerősített jelszó nem egyeznek.');
		regData["pass"] = false;
		return;
	}
	regData["pass"] = true;
}

/*

Nev ellenorzes

*/

function check_nev(name, next) {
	var nev = $(name + "_nev");
	nev.value = trim(nev.value);
	if (nev.value.length == 0) {
		if (next === true) {
			reg_error(name + "_nev_notice", 'Nem adta meg a nevét!');
		} else {
			reg_error(name + "_nev_notice", false);
		}
		regData[name + "_nev"] = false;
		return;
	}

	if (nev.value.length < 6) {
		reg_error(name + "_nev_notice", 'A név túl rövid.');
		regData[name + "_nev"] = false;
		return;
	}

	if (!nev.value.match(" ")) {
		reg_error(name + "_nev_notice", 'Adja meg vezeték- és keresztnevét is!');
		regData[name + "_nev"] = false;
		return;
	}
	reg_error(name + "_nev_notice", false);
	regData[name + "_nev"] = true;
}

/*

Cim ellenorzes

*/

function check_utca(name, next) {
	var utca = $(name + "_utca");
	utca.value = trim(utca.value);
	if (utca.value.length == 0) {
		if (next === true) {
			reg_error(name + "_utca_notice", 'Nem adta meg a lakcímét!');
		} else {
			reg_error(name + "_utca_notice", false);
		}
		regData[name + "_utca"] = false;
		return;
	}

	if (utca.value.length < 6) {
		reg_error(name + "_utca_notice", 'Az utcanév túl rövid.');
		regData[name + "_utca"] = false;
		return;
	}
	reg_error(name + "_utca_notice", false);
	regData[name + "_utca"] = true;
}

/*

Telefon ellenorzes

*/

function check_tel(next) {
	var telefon = $("reg_telefon");
	telefon.value = trim(telefon.value);
	 telefon.value = telefon.value.replace(/[^0-9\(\)\-\+\ \/]/g, "");
	if (!telefon.value.length) {
		if (next === true) {
			reg_error("reg_telefon_notice", 'Nem adott meg telefonszámot!');
		} else {
			reg_error("reg_telefon_notice", false);
		}
		regData["telefon"] = false;
		return;
	}
	if (telefon.value.length < 7) {
		reg_error("reg_telefon_notice", 'A telefonszám rövid.');
		regData["telefon"] = false;
		return;
	}
	reg_error("reg_telefon_notice", false);
	regData["telefon"] = true;
}

/*

E-mail ellenorzes

*/

function check_email(next, done) {
	var email = $("reg_email");
	email.value = trim(email.value);

	if (!email.value) {
		if (next === true) {
			reg_error("reg_email_notice", 'Nem adott meg e-mail címet!');
		} else {
			reg_error("reg_email_notice", false);
		}
		regData["email"] = false;
		return;
	}

	if (!email.value.match("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$")) {
		reg_error("reg_email_notice", 'A megadott e-mail cím hibás!');
		regData["email"] = false;
		return;
	}

	if ($("reg_email").check == email.value) {
		if (email_foglalt === true) {
			reg_error("reg_email_notice", 'A megadott e-mail címen már van regisztrált felhasználónk!');
			regData["email"] = false;
			return;
		}
		reg_error("reg_email_notice", false);
		return;
	}
	reg_error("reg_email_notice", 'E-mail cím ellenőrzése...');
	regData["email"] = "checking";
	var url = "/regisztracio";
	var ajax = new Ajax.Request(
		url, {
			method: "post",
			parameters: "check_email=" + email.value,
			onComplete: ajax_email
		}
	);
	ajax_reg_done = true;
}

function ajax_email(request) {
	var xml = new ArkenXML(request);
	var used = xml.getItem("email").getAttr("used");
	$("reg_email").check =  xml.getItem("email").getAttr("value");
	if (used == 1) {
		reg_error("reg_email_notice", 'A megadott e-mail címen már van regisztrált felhasználónk!');
		email_foglalt = true;
		regData["email"] = false;
	} else {
		reg_error("reg_email_notice", false);
		regData["email"] = true;
		email_foglalt = false;
	}
}

/*

Adatok submit

*/

function reg_user_check() {
	reg_error("szaml_notice", false);
	check_login(true);
	check_passwd(true);
	check_nev("szall", true);
	check_irszam("szall", true);
	check_city("szall", true);
	check_utca("szall", true);
	check_nev("szaml");
	check_irszam("szaml");
	check_city("szaml");
	check_utca("szaml");
	check_tel(true);
	check_email(true);
}

function reg_done(nocheck) {
	if (nocheck !== true) {
		reg_user_check();
	}
	var i = 0;
	var cnt = 0;
	var szaml_cnt = 0;
	for (i = 0; i < regDataKeys.length; i++) {
		var a = regDataKeys[i];
		if (regData[a] !== true) {
			if (a.substr(0, 6) == "szaml_") {
				szaml_cnt ++;
			} else {
				cnt ++;
			}
		}
	}
	if (szaml_cnt > 0 && szaml_cnt < 4) {
		reg_error("szaml_notice", 'Számlázási cím beállításához mind a négy mező kitöltése kötelező!');
		return false;
	}
	if (cnt > 0) return false;

	var inputs = ["reg_login", "reg_pass1", "szall_nev", "szall_irszam", "szall_telepules_input", "szall_utca", "szaml_nev", "szaml_irszam", "szaml_telepules_input", "szaml_utca", "reg_telefon", "reg_email", "reg_nk"];
	var pars = new Array();
	for (i = 0; i < inputs.length; i++) {
		if ($(inputs[i])) {
			pars.push(inputs[i] + "=" + escape($F(inputs[i])));
		}
	}

	var boxes = document.getElementsByTagName("input");
	for (i = 0; i < boxes.length; i++) {
		if (boxes[i].id.substr(0, 9) == "hirlevel_") {
			var check = boxes[i].checked ? 1 : 0;
			pars.push(boxes[i].id + "=" + check);
		}
	}

	var url = "/regisztracio";
	var ajax = new Ajax.Request(
		url, {
			method: "post",
			parameters: pars.join("&"),
			onComplete: step2
		}
	);
	$("reg_form").style.display = "none";
	$("reg_message").innerHTML = "Regisztráció folyamatban...";
	$("reg_message").style.display = "block";
	window.scrollTo(0,0);
}

function step2(request) {
	if (request.responseText) {
		window.location.href = "/regisztracio";
	}
}



function mod_user_check() {
	reg_error("szaml_notice", false);
	check_nev("szall", true);
	check_irszam("szall", true, "modositas");
	check_city("szaml", true);
	check_utca("szall", true);
	check_nev("szaml");
	check_irszam("szaml", false, "modositas");
	check_city("szall");
	check_utca("szaml");
	check_tel(true);
}

function mod_done(nocheck) {
	if (nocheck !== true) {
		mod_user_check();
	}
	var i = 0;
	var cnt = 0;
	var szaml_cnt = 0;
	for (i = 0; i < modDataKeys.length; i++) {
		var a = modDataKeys[i];
		if (regData[a] !== true) {
			if (a.substr(0, 6) == "szaml_") {
				szaml_cnt ++;
			} else {
				cnt ++;
			}
		}
	}
	if (szaml_cnt > 0 && szaml_cnt < 4) {
		reg_error("szaml_notice", 'Számlázási cím beállításához mind a négy mező kitöltése kötelező!');
		return false;
	}
	if (cnt > 0) return false;

	$("regisztracio").style.display = "none";
	$("reg_message").innerHTML = "Adatok módosítása...";
	$("reg_message").style.display = "block";
	scrollTo(0, 0);
	var inputs = ["szall_nev", "szall_irszam", "szall_telepules_input", "szall_utca", "szaml_nev", "szaml_irszam", "szaml_telepules_input", "szaml_utca", "reg_telefon"];
	var pars = new Array();
	pars.push("adatmod=1");
	for (i = 0; i < inputs.length; i++) {
		pars.push(inputs[i] + "=" + escape($F(inputs[i])));
//		pars.push(inputs[i] + "=" + $F(inputs[i]));
	}
	var url = "/beallitasok/adatok";
	var ajax = new Ajax.Request(
		url, {
			method: "post",
			parameters: pars.join("&"),
			onComplete: mod_ok
		}
	);
}

function mod_ok() {
	$("reg_message").style.display = "none";
	$("regisztracio").style.display = "block";
}


var update_pass_old = false;
function check_old_passwd() {
	var url = "/beallitasok";
	var pars = new Array();
	pars.push("oldpass=" + $("reg_pass").value);
	var ajax = new Ajax.Request(
		url, {
			method: "post",
			parameters: pars.join("&"),
			onComplete: check_old_passwd_answer
		}
	);
}

function check_old_passwd_answer(request) {
	var xml = new ArkenXML(request);
	if (xml.getItem("pass").getAttr("ok") != 1) {
		reg_error("old_pass_notice", 'A megadott régi jelszó nem jó!');
		update_pass_old = false;
	} else {
		reg_error("old_pass_notice", false);
		update_pass_old = true;
	}
}

function update_pass() {
	if (update_pass_old !== true) return;
	if (regData["pass"] === false) return;
	var url = "/beallitasok";
	var pars = new Array();
	pars.push("newpass=" + $("reg_pass1").value);
	var ajax = new Ajax.Request(
		url, {
			method: "post",
			parameters: pars.join("&"),
			onComplete: update_pass_done
		}
	);
}

function update_pass_done() {
	$("old_pass_notice").style.display = "block";
	$("old_pass_notice").innerHTML = "A jelszó módosítása megtörtént.";
	$("reg_pass").value = "";
	$("reg_pass1").value = "";
	$("reg_pass2").value = "";
}
