<!--
/*
Funciones para manipular información de mensajes y tablones de mensajes con ajax.
*/

function $RF(el, radioGroup) { 
    if($(el).type && $(el).type.toLowerCase() == 'radio') { 
        var radioGroup = $(el).name; 
        var el = $(el).form; 
    } else if ($(el).tagName.toLowerCase() != 'form') { 
        return false; 
    } 
 
    var checked = $(el).getInputs('radio', radioGroup).find( 
        function(re) {return re.checked;} 
    ); 
    return (checked) ? $F(checked) : null; 
};

function sendArgument() {
	var formMsgboardId = $RF('postureForm', 'msgboardId');
	var formNick = $F('nick');
	var formEmail = $F('email');
	var formComment = $F('comment');
	var formDisclaimer = $F('disclaimer');
	
	formComment = encodeURIComponent(formComment);
	formNick = encodeURIComponent(formNick);
	
	if (!formDisclaimer) {
		alert('Debe aceptar las condiciones.');
		$('disclaimer').focus;
		return;
	}
	
	if (formMsgboardId=='' || formMsgboardId == null) {
		alert('Debe seleccionar una postura.');
		$('comment').focus;
		return;
	}
	
	if (formNick=='' || formNick=='Tu nombre...') {
		alert('Ingrese su nombre por favor.');
		$('nick').focus;
		return;
	}

	if (formComment=='' || formComment=='Escribe tu mensaje...') {
		alert('Ingrese un mensaje valido por favor.');
		$('comment').focus;
		return;
	}
	
	var url = '/app/application';
	var pars = 	"action=msgBoard"+
				"&mensaje="+formComment+
				"&nombreAutor="+formNick+
				"&msgboard="+formMsgboardId+
				"&email="+formEmail;
	
	$('buttonDebate').onclick = "";
		
	var templUrlAlert = "/comun/prototypeTemplates/msgAlert.html";
	var templUrlError = "/comun/prototypeTemplates/msgError.html";
	var templUrlSuccess = "/comun/prototypeTemplates/msgSuccess.html";
	
	new Ajax.Request(url,{	
		method:'POST',
		parameters: pars,
		encoding: 'ISO-8859-1',
		requestHeaders: {Accept: 'application/json'},
		onLoading: function(){
			$('disclaimerZone').hide();
			$('buttonDebateZone').hide();
		},
		onSuccess : function(resp) {
						
			var data = resp.responseText.evalJSON(true);
			var author = data.autor ? data.autor : "";
			var comment = data.comentario ? data.comentario : "";
			var mail = data.email ? data.email : "";
			var date = data.date ? data.date : "";
			var error = data.bError;
			var errorMsg = data.errorMensaje ? data.errorMensaje : "";
			var msg = data.mensajeRespuesta ? data.mensajeRespuesta : "";
			
			if (error == -1) {
				var msgData = {msg: msg};
				var msgContent = getEvaluateTemplate(templUrlAlert, msgData);
				sendArgumentCompleted(msgContent);
			} else {
				var msgData = {errorMsg: errorMsg};
				var msgContent = getEvaluateTemplate(templUrlError, errorMsg);
				sendArgumentCompleted(msgContent);
			}
		},
	onFailure: function(){
			var errorData = {errorMsg: "Ha ocurrido un problema con el comentario, intente luego."};
			try {
				var msgContent = getEvaluateTemplate(templUrlError, errorData);
				sendArgumentCompleted(msgContent);
			} catch (e) {
				alert(errorData.errorMsg);
			}
		}
	});
};

function sendArgumentArticle() {
	var formMsgboardId = $F('msgboardId');
	var formNick = $F('nick');
	var formEmail = $F('email');
	var formComment = $F('comment');
	var formDisclaimer = $F('disclaimer');
	formComment = encodeURIComponent(formComment);
	formNick = encodeURIComponent(formNick);
	
	if (!formDisclaimer) {
		alert('Debe aceptar las condiciones.');
		$('disclaimer').focus;
		return;
	}
	if (formMsgboardId=='' || formMsgboardId == null) {
		alert('Debe seleccionar una postura.');
		$('comment').focus;
		return;
	}
	if (formNick=='' || formNick=='Tu nombre...') {
		alert('Ingrese su nombre por favor.');
		$('nick').focus;
		return;
	}
	if (formComment=='' || formComment=='Escribe tu mensaje...') {
		alert('Ingrese un mensaje valido por favor.');
		$('comment').focus;
		return;
	}
	
	var url = '/app/application';
	var pars = 	"action=msgBoard"+
				"&mensaje="+formComment+
				"&nombreAutor="+formNick+
				"&msgboard="+formMsgboardId+
				"&email="+formEmail;
	
	$('buttonDebate').onclick = "";
	
	var templUrlAlert = "/comun/prototypeTemplates/msgAlert.html";
	var templUrlError = "/comun/prototypeTemplates/msgError.html";
	var templUrlSuccess = "/comun/prototypeTemplates/msgSuccess.html";
	
	new Ajax.Request(url,{	
		method:'POST',
		parameters: pars,
		encoding: 'ISO-8859-1',
		requestHeaders: {Accept: 'application/json'},
		onLoading: function(){
			$('disclaimerZone').hide();
			$('buttonDebateZone').hide();
		},
		onSuccess : function(resp) {
			var data = resp.responseText.evalJSON(true);
			var author = data.autor ? data.autor: "";
			var comment = data.comentario ? data.comentario : "";
			var mail = data.email ? data.email : "";
			var date = data.date ? data.date : "";
			var error = data.bError;
			var errorMsg = data.errorMensaje ? data.errorMensaje : "";
			var msg = data.mensajeRespuesta ? data.mensajeRespuesta : "";
			
			if (error == -1) {
				try {
					var msgData = {msg: msg};
					var msgContent = getEvaluateTemplate(templUrlAlert, msgData);
					sendArgumentCompleted(msgContent);//sendArgumentCompleted(msg);//comment);
				} catch (e) {
					alert(msg);//alert("commentData: " + commentData);
				}
			} else {
				try {
					var msgData = {errorMsg: errorMsg};
					var msgContent = getEvaluateTemplate(templUrlError, msgData);
					sendArgumentCompleted(msgContent);//sendArgumentCompleted(errorMsg);//comment);
				} catch (e) {
					alert(errorMsg);//alert("errorData: " + errorData);
				}
			}
		},
		onFailure: function(){
			var errorData = {errorMsg: "Ha ocurrido un problema con el comentario, intente luego."};
			//alert(errorData.errorMsg);
			try {
				var msgContent = getEvaluateTemplate(templUrlError, errorData);
				sendArgumentCompleted(msgContent);
			} catch (e) {
				alert(errorData.errorMsg);
			}
		}
	});
};

function getArguments(msgboardIds, msgboardId, quantity, hours, commentTempl, targetElemId) {
	if (msgboardId == '' || msgboardId == null) {
		console ? console.info('ID del grupo de mensajes incorrecto.') : true;
		return;
	}
	if (quantity < 0) {
		try {console.info('Cantidad de mensajes incorrecta.')}catch(e){};
		return;
	}
	if (hours < 0) {
		try {console.info('Horas de mensajes incorrecta.')}catch(e){};
		return;
	}
	var templUrl = "debate/prototypeTemplates/commentTempl.html";
	var url = '/app/application';
	var pars = 	"action=getArguments"+
				"&msgboardIds="+msgboardIds+
				"&msgboardId="+msgboardId+
				"&quantity="+quantity+
				"&hours="+hours;
	new Ajax.Request(url,{	
		method:'POST',
		parameters: pars,
		encoding: 'ISO-8859-1',
		requestHeaders: {Accept: 'application/json'},
		onSuccess: function(resp){
			var respData = resp.responseText.evalJSON(true);
			var msg = respData.msg;
			var data = respData.data;
			var error = respData.error;
			var outStr = "";

			if (error == 0) {
				for (var i = 0 ; i < data.length ; i++){
					outStr += getEvaluateTemplate(templUrl, $H(data[i]));//postTemplate.evaluate($H(data[i]));
				}
				$(targetElemId).innerHTML = outStr;
			} else {
				$(targetElemId).innerHTML = "<div>"+respData.errorMsg+"</div>";
			}
			getMessagesCompleted(respData);
		},
		onFailure: function(){
			$(targetElemId).innerHTML = "<div>Ha ocurrido un problema para listar los comentarios, intente luego.</div>";
		}
	});
};

function getArgumentsForManyMsgboard(msgboardIds, quantity, hours, commentTempl, targetElemId) {
	if (msgboardIds == '' || msgboardIds == null) {
		try {console.info('ID del grupo de mensajes incorrecto.')}catch(e){};
		return;
	}
	if (quantity < 0) {
		try {console.info('Cantidad de mensajes incorrecta.')}catch(e){};
		return;
	}
	if (hours < 0) {
		try {console.info('Horas de mensajes incorrecta.')}catch(e){};
		return;
	}
	var templUrl = "debate/prototypeTemplates/commentTempl.html";
	var url = '/app/application';
	var pars = 	"action=getArgumentsFromManyMsgboard"+
				"&msgboardIds="+msgboardIds+
				"&quantity="+quantity+
				"&hours="+hours;
	new Ajax.Request(url,{	
		method:'POST',
		parameters: pars,
		encoding: 'ISO-8859-1',
		requestHeaders: {Accept: 'application/json'},
		onSuccess: function(resp){
			var respData = resp.responseText.evalJSON(true);
			var msg = respData.msg;
			var data = respData.data;
			var error = respData.error;
			var outStr = "";
			if (error == 0) {
				for (var i = 0 ; i < data.length ; i++) {
					outStr += getEvaluateTemplate(templUrl, $H(data[i]));//postTemplate.evaluate($H(data[i]));
				}
				$(targetElemId).innerHTML = outStr;
			} else {
				$(targetElemId).innerHTML = "<div>"+respData.errorMsg+"</div>";
			}
			getMessagesCompleted(respData);
		},
		onFailure: function(){
			$(targetElemId).innerHTML = "<div>Ha ocurrido un problema para listar los comentarios, intente luego.</div>";
		}
	});
};

function reportAbuse (msgboardId, msgId, quantity, hours, maxAbusive) {
	var url = '/app/application';
	var pars = 	"action=reportAbuse"+
				"&msgboardId="+msgboardId+
				"&msgId="+msgId+
				"&quantity="+quantity+
				"&hours="+hours+
				"&maxAbusive="+maxAbusive;
	new Ajax.Request(url,{	
		method:'POST',
		parameters: pars,
		encoding: 'ISO-8859-1',
		requestHeaders: {Accept: 'application/json'},
		onSuccess: function(resp){
			var respData = resp.responseText.evalJSON(true);
			var msg = respData.msg;
			var abuseNum = respData.abuseNumbers;
			var error = respData.error;
			var errorMsg = respData.errorMsg;
			if (error == 0) {
				$('abuse'+msgId).innerHTML = "Abuso reportado";
			} else {
				alert(errorMsg);
				$('abuse'+msgId).innerHTML = "Abuso reportado";
			}
		},
		onFailure: function(){
			alert("Ha ocurrido un problema para reportar abuso, intente luego.");
		}

	});
};

function getMessages(msgboardId, quantity, hours, commentTempl, targetElemId ){
	if (msgboardId == '' || msgboardId == null) {
		try {console.info('ID del grupo de mensajes incorrecto.')}catch(e){};
		return;
	}
	if (quantity < 0) {
		try {console.info('Cantidad de mensajes incorrecta.')}catch(e){};
		return;
	}
	if (hours < 0) {
		try {console.info('Horas de mensajes incorrecta.')}catch(e){};
		return;
	}
	var templUrl = "/magazine/articulo/prototypeTemplates/commentTempl.html";
	var url = '/app/application';
	var pars = 	"action=getMessages"+
				"&msgboardId="+msgboardId+
				"&quantity="+quantity+
				"&hours="+hours;

	new Ajax.Request(url,{	
		method:'POST',
		parameters: pars,
		encoding: 'ISO-8859-1',
		requestHeaders: {Accept: 'application/json'},
		onSuccess: function(resp){
			var respData = resp.responseText.evalJSON(true);
			var msg = respData.msg;
			var data = respData.data;
			var error = respData.error;
			var outStr = "";

			if (error == 0) {
				for (var i = 0 ; i < data.length ; i++){
					outStr += getEvaluateTemplate(templUrl, $H(data[i]));//postTemplate.evaluate($H(data[i]));
				}
				//alert("outStr : "+ outStr);
				//for(i=0;i<10000;i++){};
				$(targetElemId).innerHTML = outStr;
			} else {
				$(targetElemId).innerHTML = "<div>"+respData.errorMsg+"</div>";
			}
			getMessagesCompleted(respData);
		},
		onFailure: function(){
			$(targetElemId).innerHTML = "<div>Ha ocurrido un problema para listar los comentarios, intente luego.</div>";
		}
	});
};

//-->