
var mycomment = new Object();

mycomment.sUploadUrl = '/ajax/ajax_comment.php';

mycomment.overlay = new YAHOO.widget.Panel("comment_overlay", { close:false,fixedcenter:true,visible:true,width:"500px",modal:true,draggable:false } );

mycomment.targy_err = "Hibás tárgy!<BR>Megengedett hossz: 4-64 karakter<BR>Megengedett karakterek: magyar abc, számok, pár írásjel és speciális";
mycomment.ertekeles_err = "Nem értékelted a receptet!<BR>Kattints a szívekre!"
mycomment.comment_err = "Hibás hozzászólás!<BR>Megengedett hossz: minimum 10 karakter<BR>Megengedett karakterek: magyar abc, számok, pár írásjel és speciális";

mycomment.checkTargy = function(value){
	var filter = /^[-A-Za-z0-9 \.,\:_#&@'\(\)’`"ßäÄöÖüÜóÓőŐúÚéÉáÁűŰíÍ\!\?$%\*\+\/;\=\{\|\}~°]{4,64}$/i; //filter PHP-ból betöltve
	var my_err = document.getElementById("targy_errico");
	if(!filter.test(value)){
		//jelenítsd meg az X-et
		my_err.style.display = "inline";
		my_err.onmousemove = function(e) {mycomment.showMsg(e||event,mycomment.targy_err);};
		return this.targy_err; //hiba
	}else{
		my_err.style.display = "none";
		return null; //nincs hiba
	}
}

mycomment.checkComment = function(value){
	var filter = /^(.|\n|\r){10,}$/i; //filter PHP-ból betöltve
	var my_err = document.getElementById("comment_errico");
	value = value.replace(/(<([^>]+)>)/ig,"");
	if(!filter.test(value)){
		//jelenítsd meg az X-et
		my_err.style.display = "inline";
		my_err.onmousemove = function(e) {mycomment.showMsg(e||event,mycomment.comment_err);};
		return this.comment_err; //hiba
	}else{
		my_err.style.display = "none";
		return null; //nincs hiba
	}
}

mycomment.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);
}

mycomment.checkAllUpload = function(){
	var vTargy = document.comment_kuld.targy.value;
	var vComment = document.comment_kuld.comment.value;
	var vErtek = document.comment_kuld.ertek.value;

	var error = new Array();
	var temp;

	temp = this.checkTargy(vTargy);
	if(temp) error.push(temp);
	temp = this.checkComment(vComment);
	if(temp) error.push(temp);
	if(vErtek < 1 )
		error.push(this.ertekeles_err);
	return error;
}

mycomment.refreshComment = function(id){
	if(!document.getElementById('commentek'))
		return;
	document.getElementById('commentek').innerHTML = "<img src='/ajax/ajax-loader.gif' style='float:none;margin: 0 auto;'/>";
	var handleSuccess = function(o){
		if(o.responseText !== undefined){
			document.getElementById('commentek').innerHTML = o.responseText;
		}else{
			document.getElementById('commentek').innerHTML ="<h3>Hozzászólások betöltése sikertelen!</h3>";
		}
	};

	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
	};

	var callback =
	{
		success:handleSuccess,
		failure:handleFailure
	};

	var sUrl = "ajax/ajax_commentrefresh.php";
	var postData = "id="+id;

	YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData); 
}

mycomment.submitComment = function(){
	tinyMCE.triggerSave();
	YAHOO.util.Connect.setForm('comment_kuld',false); //parse-olja a form-ot
	var form_error = this.checkAllUpload();
	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>Hozzászólás elküldése 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 ){
					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) {mycomment.showMsg(e||event,this.param_v);};
							actElem.style.display = "inline";
						}
					}
					o_body += "</ul>";
				}else{
					o_body += "<img src='/images/check.png' />";
					o_body += "<H3>Hozzászólásodat sikeresen fogadtuk.</H3>";
					mycomment.refreshComment(document.comment_kuld.id.value);
				}
				o_body += "<div id='spacer'></div><a id='hiba_close' href='#'>OK</a></div>";
				mycomment.overlay.setBody(o_body);
				mycomment.overlay.render(document.body);
				YAHOO.util.Event.addListener("hiba_close", "click", mycomment.overlay.hide, mycomment.overlay, true); 
			} 
			catch (x) { 
				alert("JSON Parse failed!\n"+x+"\nresponse: "+o.responseText); 
				mycomment.overlay.hide();
				return; 
			}
		}else{
			alert('Hibás választ kaptam a szervertől!'); //ez is egy csúnya hiba
			mycomment.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
	};

	var callback =
	{
		success:handleSuccess
		,failure:handleFailure
	};
	YAHOO.util.Connect.asyncRequest('POST', this.sUploadUrl, callback);
}
