
var myregister = new Object();

myregister.sUploadUrl = '/ajax/ajax_register.php';

myregister.fullnev_err = "Érvénytelen Teljes név!<BR>Megengedett hossz: 2-40 karakter<BR>Megengedett karakterek: magyar abc, egyéb";
myregister.mail_err = "Érvénytelen E-mail cím!";
myregister.varos_err = "Érvénytelen Városnév!<BR>Megengedett hossz: 2-40 karakter<BR>Megengedett karakterek: magyar abc, egyéb";
myregister.nicknev_err = "Érvénytelen Felhasználónév!<BR>Megengedett hossz: 4-20 karakter";
myregister.pass_err = "Érvénytelen Jelszó!<BR>Megengedett hossz: 4-20 karakter";
myregister.pass2_err = "A két jelszó nem eggyezik";
myregister.ev_err = "Érvénytelen Születési év! Négyjegyű szám kell!!!";
myregister.ev1_err = "Érvénytelen Születési év!<BR>Még meg sem születtél!";
myregister.ev2_err = "Érvénytelen Születési év!<BR>Túl öreg vagy!";
myregister.elfogad_err = "Nem fogadtad el az oldal használati feltételeit!"

myregister.overlay = new YAHOO.widget.Panel("register_overlay", { close:false,fixedcenter:true,visible:true,width:"500px",modal:true,draggable:false } );

myregister.checkTeljesNev = function(value){
		var filter = /^[-A-Za-z0-9 \.,\:_#&@'\(\)’`"\/ßäÄöÖüÜóÓőŐúÚéÉáÁűŰíÍ]{2,40}$/i; //filter PHP-ból betöltve
		var my_err = document.getElementById("name_errico");
		if(!filter.test(value)){
			//jelenítsd meg az X-et
			my_err.style.display = "inline";
			my_err.onmousemove = function(e) {myregister.showMsg(e||event,myregister.fullnev_err);};
			return this.fullnev_err; //hiba
		}else{
			my_err.style.display = "none";
			return null; //nincs hiba
		}
	}
	
myregister.checkNick = function(value){
		var filter = /^(.){4,20}$/i; //filter PHP-ból betöltve
		var my_err = document.getElementById("nick_errico");
		if(!filter.test(value)){
			my_err.style.display = "inline";
			my_err.onmousemove = function(e) {myregister.showMsg(e||event,myregister.nicknev_err);};
			return this.nicknev_err;
		}else{
			my_err.style.display = "none";
			return null;
		}
	}
	
myregister.checkMail = function(value){
		var filter = /^[-a-zA-Z0-9_\.\+\/]+@{1}[-a-zA-Z0-9_\.\+\/]+[\.]{1}[-a-zA-Z0-9_\.\+\/]{2,}$/i; //filter PHP-ból betöltve
		var my_err = document.getElementById("mail_errico");
		if(!filter.test(value)){
			//jelenítsd meg az X-et
			my_err.style.display = "inline";
			my_err.onmousemove = function(e) {myregister.showMsg(e||event,myregister.mail_err);};
			return this.mail_err; //hiba
		}else{
			my_err.style.display = "none";
			return null; //nincs hiba
		}
	}
	
myregister.checkOldJelszo = function(value){
		var filter = /^(.){4,20}$/i; //filter PHP-ból betöltve
		var my_err = document.getElementById("oldpass_errico");
		if(!filter.test(value)){
			my_err.style.display = "inline";
			my_err.onmousemove = function(e) {myregister.showMsg(e||event,myregister.pass_err);};
			return this.pass_err;
		}else{
			my_err.style.display = "none";
			return null;
		}
	}
	
myregister.checkJelszo = function(value){
		var filter = /^(.){4,20}$/i; //filter PHP-ból betöltve
		var my_err = document.getElementById("pass_errico");
		if(value != '' && !filter.test(value)){
			my_err.style.display = "inline";
			my_err.onmousemove = function(e) {myregister.showMsg(e||event,myregister.pass_err);};
			return this.pass_err;
		}else{
			my_err.style.display = "none";
			return null;
		}
	}
	
myregister.checkJelszo2 = function(value){
		var filter = /^(.){4,20}$/i; //filter PHP-ból betöltve
		var my_err = document.getElementById("pass2_errico");
		if(value != '' && !filter.test(value)){
			my_err.style.display = "inline";
			my_err.onmousemove = function(e) {myregister.showMsg(e||event,myregister.pass_err);};
			return this.pass_err;
		}else{
			my_err.style.display = "none";
			return null;
		}
	}
	
myregister.checkVaros = function(value){
		var filter = /^[-A-Za-z0-9 \.,\:_#&@'\(\)’`"\/ßäÄöÖüÜóÓőŐúÚéÉáÁűŰíÍ]{2,40}$/i; //filter PHP-ból betöltve
		var my_err = document.getElementById("varos_errico");
		if(value.length && !filter.test(value)){
			my_err.style.display = "inline";
			my_err.onmousemove = function(e) {myregister.showMsg(e||event,myregister.varos_err);};
			return this.varos_err;
		}else{
			my_err.style.display = "none";
			return null;
		}
	}
	
myregister.checkEv = function(value){
		var filter = /^[0-9]{4}$/i; //filter PHP-ból betöltve
		var my_err = document.getElementById("ev_id");
		var actYear = (new Date()).getFullYear();
		
		if(!filter.test(value)){
			my_err.style.background = "#ae5530";
			my_err.onmousemove = function(e) {myregister.showMsg(e||event,myregister.ev_err);};
			return this.ev_err;
		}else if(my_err.value >= actYear){
			my_err.style.background = "#ae5530";
			my_err.onmousemove = function(e) {myregister.showMsg(e||event,myregister.ev1_err);};
			return this.ev1_err;
		}else if(my_err.value < 1900){
			my_err.style.background = "#ae5530";
			my_err.onmousemove = function(e) {myregister.showMsg(e||event,myregister.ev2_err);};
			return this.ev2_err;
		}else{
			my_err.style.background = "transparent";
			my_err.onmousemove = null;
			buborek.hide();
			return null;
		}
	}
	
myregister.showMsg = function(event,msg){
		var scrollTop = ( document.documentElement.scrollTop || document.body.scrollTop );
		var scrollLeft = ( document.documentElement.scrollLeft || document.body.scrollLeft );
		var obj = document.getElementById("bub_szoveg");
		obj.innerHTML = msg;
		buborek.show();
		buborek.moveTo(event.clientX + scrollLeft-30,event.clientY + scrollTop+20);
	}
	
myregister.checkAllUpload = function(argForm){
		var vNick = (argForm.nick?argForm.nick.value:null);
		var vNev = argForm.nev.value;
		var vEmil = argForm.emil.value;
		var vOldPass = (argForm.oldpass?argForm.oldpass.value:null);
		var vPass = argForm.pass.value;
		var vPass2 = argForm.pass2.value;
		var vEv = argForm.ev.value;
		var vVaros = argForm.varos.value;
		
		var error = new Array();
		var temp;
		
		temp = this.checkTeljesNev(vNev);
		if(temp) error.push(temp);
		if(vNick != null){
			temp = this.checkNick(vNick);
			if(temp) error.push(temp);
		}
		temp = this.checkMail(vEmil);
		if(temp) error.push(temp);
		if(vOldPass != null){
			temp = this.checkOldJelszo(vOldPass);
			if(temp) error.push(temp);
		}
		temp = this.checkJelszo(vPass);
		if(temp) error.push(temp);
		temp = this.checkJelszo2(vPass2);
		if(temp) error.push(temp);
		temp = (vPass != vPass2)&&vPass;
		if(temp) error.push(this.pass2_err);
		temp = this.checkVaros(vVaros);
		if(temp) error.push(temp);
		temp = this.checkEv(vEv);
		if(temp) error.push(temp);
		if(argForm.elfogad != null){
			temp = (!argForm.elfogad.checked)?this.elfogad_err:null;
			if(temp) error.push(temp);
		}
		
		return error;
	}

//az Ajax kéréseket küldi el a szerver felé
myregister.submitModify = function(){
		YAHOO.util.Connect.setForm('modify',false); //parse-olja a form-ot
		var form_error = this.checkAllUpload(document.modify);
		this.submitForm(form_error,'modify');
	}
	
myregister.submitRegister = function(){
		YAHOO.util.Connect.setForm('register',false); //parse-olja a form-ot
		var form_error = this.checkAllUpload(document.register);
		this.submitForm(form_error,'register');
	}
	
myregister.submitForm = function(form_error,operation){
		if(form_error.length){
			var o_body = "<div id='hiba_overlay' class='hiba_overlay_class'>";
				o_body += "<img src='/images/error.png' />";
				o_body += "<H3>A következő hibák történtek:</H3><ul>";
						for(var i=0;i<form_error.length;i++){
							o_body += "<li>"+form_error[i]+"</li>";
						}
				o_body += "</ul>";
				o_body += "<div id='spacer'></div><a id='hiba_close' href='#'>OK</a></div>";
				this.overlay.setBody(o_body);
				this.overlay.render(document.body);
				this.overlay.show();
				YAHOO.util.Event.addListener("hiba_close", "click", this.overlay.hide, this.overlay, true);
				document.getElementById("hiba_close").blur();
			return;
		}
		var o_body = "<div id='hiba_overlay' class='hiba_overlay_class' style='text-align:center'>";
			o_body += "<img src='/ajax/ajax-loader.gif' style='float:none'/>";
			o_body += "<li>Adatok feldolgozása folyamatban...</li>";
			o_body += "</div>";
			this.overlay.setBody(o_body);
			this.overlay.render(document.body);
			this.overlay.show();
		var handleSuccess = function(o){ //siker esetén
			if(o.responseText !== undefined){
				var response= [];
				try{
					response = YAHOO.lang.JSON.parse(o.responseText); //dolgozd fel a JSON formátumú választ
					o_body = "<div id='hiba_overlay' class='hiba_overlay_class'>";
					if(response[0].value == false ){ //Recept kitöltése nem jó
						o_body += "<img src='/images/error.png' /><H3>";
						o_body += "A következő hibák történtek:</H3><ul>";
						for(var i=1;i<response.length;i++){
							o_body += "<li>"+response[i].value+"</li>";
							var actElem = document.getElementById(response[i].name+"ico");
							if(actElem){
								actElem.param_v = response[i].value;
								actElem.onmousemove= function(e) {myregister.showMsg(e||event,this.param_v);};
								actElem.style.display = "inline";
							}
						}
						o_body += "</ul>";
					}else{
						o_body += "<img src='/images/check.png' />";
						if(operation == 'modify'){
							o_body += "<H3>Az adatmódosítás sikeresen megtörtént!</H3>";
							if(response.length == 2)
								o_body += "<ul><li>"+response[1].value+"</li></ul>";
						}else{
							o_body += "<H3>Köszönjük!<BR>Regisztrációdat fogadtuk! Hamarosan kapsz egy e-mailt, aminek segítségével aktiválhatod regisztrációdat!</H3>";
						}
					}
					o_body += "<div id='spacer'></div><a id='hiba_close' href='#'>OK</a></div>";
					myregister.overlay.setBody(o_body);
					myregister.overlay.render(document.body);
					YAHOO.util.Event.addListener("hiba_close", "click", myregister.overlay.hide, myregister.overlay, true); 
				}
				catch (x) { 
					alert("JSON Parse failed!\n"+x+"\nresponse: "+o.responseText); 
					myregister.overlay.hide();
					return; 
				}
			}else{
				alert('Hibás választ kaptam a szervertől!'); //ez is egy csúnya hiba
				myregister.overlay.hide();
			}
		};
		
		var handleFailure = function(o){ //hiba esetén
			var a = "Hiba a szerverrel való kommunikációnál:\n";
			if(o.responseText !== undefined){
				a += "Transaction id: " + o.tId + "\n";
				a += "HTTP status: " + o.status + "\n";
				a += "Status code message: " + o.statusText;
			}
			alert(a); //írd ki, hogy hiba
			myregister.overlay.hide();
		};
		
		var callback =
		{
			success:handleSuccess
			,failure:handleFailure
		};
		var request = YAHOO.util.Connect.asyncRequest('POST', this.sUploadUrl, callback);
}
