/* devildrey33_Comentarios.js creado el 30/11/2011 */
/* Ultima modificación 03/12/2011 */

$(function() { 
	$(window).bind('scroll', function() { devildrey33_Comentarios_OcultarToolTips(); });
	$(window).bind('resize', function() { devildrey33_Comentarios_OcultarToolTips(); });
});	



/* Función que agrega una etiqueta al textarea del comentario */
/*  Si hay texto seleccionado la etiqueta se situa al inicio y final de este */
/*  Si no hay texto seleccionado la etiqueta se situa donde esta el cursror */
function devildrey33_Comentarios_AgregarEtiqueta(Etiqueta) {
	ImprimirDebug("devildrey33_Comentarios_AgregarEtiqueta('" + Etiqueta + "')");
	var EditComentario = document.getElementById("devildrey33_Comentarios_EditComentario");
	var Inicio = EditComentario.value.substr(0, EditComentario.selectionStart);
	var Sel = EditComentario.value.substr(EditComentario.selectionStart, EditComentario.selectionEnd - EditComentario.selectionStart);
	var Fin = EditComentario.value.substr(EditComentario.selectionEnd);
	EditComentario.value = Inicio + "[" + Etiqueta +"]" + Sel + "[/" + Etiqueta + "]" + Fin;
	EditComentario.selectionStart = Inicio.length + ((Etiqueta.length * 2) + 5) + Sel.length;
	EditComentario.selectionEnd = EditComentario.selectionStart;
	EditComentario.focus();
}

/* Función para pre-visualizar un mensaje */
/* Posibles errores
	1 No hay nombre
	2 Nombre reservado
	3 No hay email
	4 Email invalido
	5 No hay comentario
	6 Error capcha
	7,8,9,a,b Error parsing
*/
function devildrey33_Comentarios_Previsualizar(PaginaPadre) {
	ImprimirDebug("devildrey33_Comentarios_Previsualizar('" + PaginaPadre + "')");
	var Nombre     = document.getElementById("devildrey33_Comentarios_EditNombre").value;
	var Email      = document.getElementById("devildrey33_Comentarios_EditEmail").value;
	var PaginaWeb  = document.getElementById("devildrey33_Comentarios_EditPaginaWeb").value;
	var Comentario = document.getElementById("devildrey33_Comentarios_EditComentario").value;
	$.post("devildrey33_Comentarios.php", { "Comando" : "Previsualizar", "Nombre" : Nombre, "Email" : Email, "PaginaWeb" : PaginaWeb, "Comentario" : Comentario, "PaginaPadre" : PaginaPadre, "DatosCaptcha" : devildrey33_CaptchaPuzzle_Datos() }, 
		function(data) {
			$("#devildrey33_Comentarios_TxtNombre").css({ "color" : "#000" });
			$("#devildrey33_Comentarios_TxtEmail").css({ "color" : "#000" });
			$("#devildrey33_Comentarios_Enviar").css({ "display" : "none" });
			$("#devildrey33_Comentarios_Preview").css({ "background-color" : "inherit"});
			if (data.substr(0, 5) == "Error") {
				var MensajeError = "";
				if (data.length == 6) 	MensajeError = "<b>Error :</b>";
				else					MensajeError = "<b>Errores :</b><br />";
				for (var i = 5; i < data.length; i++) {
					switch (data.substr(i, 1)) {
						case "1" :
							$("#devildrey33_Comentarios_TxtNombre").css({ "color" : "#F00" });
							MensajeError = MensajeError + "No has introducido ningun nombre.";
							break;
						case "2" :
							$("#devildrey33_Comentarios_TxtNombre").css({ "color" : "#F00" });
							MensajeError = MensajeError + "El nombre introducido esta reservado.";
							break;
						case "3" :
							$("#devildrey33_Comentarios_TxtEmail").css({ "color" : "#F00" });
							MensajeError = MensajeError + "No has introducido ninguna dirección de correo.";
							break;
						case "4" :
							$("#devildrey33_Comentarios_TxtEmail").css({ "color" : "#F00" });
							MensajeError = MensajeError + "La dirección de correo introducida no es válida.";
							break;
						case "5" :
							MensajeError = MensajeError + "El comentario esta vacio.";
							break;
						case "6" :
							MensajeError = MensajeError + "No se ha completado el captcha correctamente.";
							break;
						case "7" :
							MensajeError = MensajeError + "Hay una etiqueta [html] sin cerrar.";
							break;
						case "8" :
							MensajeError = MensajeError + "Hay una etiqueta [js] sin cerrar.";
							break;
						case "9" :
							MensajeError = MensajeError + "Hay una etiqueta [css] sin cerrar.";
							break;
						case "a" :
							MensajeError = MensajeError + "Hay una etiqueta [php] sin cerrar.";
							break;
						case "b" :
							MensajeError = MensajeError + "Hay una etiqueta [cpp] sin cerrar.";
							break;
					}
					if (i != data.lenght - 1) MensajeError = MensajeError + "<br />";
				}
				Ceyur_MostrarMensaje(MensajeError, 0, 0);
			}
			else {
				$("#devildrey33_Comentarios_Preview").html(data);
				$("#devildrey33_Comentarios_Preview").css({ "background-color" : "#DDD"});
				$("#devildrey33_Comentarios_Enviar").css({ "display" : "table" });
			}
		}
	);
}

/* Función para enviar un mensaje */
function devildrey33_Comentarios_Enviar(PaginaPadre) {
	ImprimirDebug("devildrey33_Comentarios_Enviar('" + PaginaPadre + "')");
	var Nombre     = document.getElementById("devildrey33_Comentarios_EditNombre").value;
	var Email      = document.getElementById("devildrey33_Comentarios_EditEmail").value;
	var PaginaWeb  = document.getElementById("devildrey33_Comentarios_EditPaginaWeb").value;
	var Comentario = document.getElementById("devildrey33_Comentarios_EditComentario").value;
	$.post("devildrey33_Comentarios.php", { "Comando" : "Enviar", "Nombre" : Nombre, "Email" : Email, "PaginaWeb" : PaginaWeb, "Comentario" : Comentario, "PaginaPadre" : PaginaPadre, "DatosCaptcha" : devildrey33_CaptchaPuzzle_Datos() }, 
		function(data) {
			if (data == "MensajeEnviado") {
				$.post("devildrey33_Comentarios.php", { "Comando" : "LeerComentarios", "PaginaPadre" : PaginaPadre },
					function(data) {
						$("#devildrey33_Comentarios").html(data);
						devildrey33_CaptchaPuzzle_Reiniciar();
						$("#devildrey33_Comentarios_Preview").html("");
						$("#devildrey33_Comentarios_Preview").css({ "background-color" : ""});
						$("#devildrey33_Comentarios_Enviar").css({ "display" : "none" });
						Ceyur_MostrarMensaje("Mensaje enviado correctamente", 0, 0);
					}
				);
			}
			else if (data == "ErrorCaptcha") {
				Ceyur_MostrarMensaje("Vuelve a poner las piezas del puzzle a su sitio....", 1, 0);
			}
			else {
				Ceyur_MostrarMensaje("Error enviado el mensaje", 0, 0);
			}
		}
	);
}

/* Función que agrega el bbcode para responder a un mensaje en el editbox del comentario*/
function devildrey33_Comentarios_BotonResponder(NumMensaje) {
	ImprimirDebug("devildrey33_Comentarios_BotonResponder('" + NumMensaje + "')");
	document.getElementById('devildrey33_Comentarios_EditComentario').value = '[#' + NumMensaje + ']';
	$('html, body').animate({ scrollTop : $('body').height() }, 'fast');
}

/* Función para eliminar un mensaje */
function devildrey33_Comentarios_BotonEliminar(PaginaPadre, NumMensaje) {
	ImprimirDebug("devildrey33_Comentarios_BotonEliminar('" + PaginaPadre + "', '" + NumMensaje + "')");
	$.post('devildrey33_Comentarios.php', { "Comando" : "BorrarComentario", 'PaginaPadre' : PaginaPadre, 'NumMensaje' : NumMensaje }, 
		function(data) {
			$.post("devildrey33_Comentarios.php", { "Comando" : "LeerComentarios", "PaginaPadre" : PaginaPadre },
				function(data) {
					$("#devildrey33_Comentarios").html(data);
				}
			);
		}
	);
}

/* Función para votar positivo un mensaje */
function devildrey33_Comentarios_BotonMas1Click(PaginaPadre, NumMensaje) {
	ImprimirDebug("devildrey33_Comentarios_BotonMas1Click('" + PaginaPadre + "', '" + NumMensaje + "')");
	if (document.getElementById('devildrey33_Comentarios_BotonMas1_' + NumMensaje).className == 'devildrey33_Comentarios_BotonComentarios') {
		document.getElementById('devildrey33_Comentarios_BotonMas1_' + NumMensaje).className = 'devildrey33_Comentarios_BotonComentariosDesactivado';
		document.getElementById('devildrey33_Comentarios_BotonMenos1_' + NumMensaje).className = 'devildrey33_Comentarios_BotonComentariosDesactivado';
		document.getElementById('devildrey33_Comentarios_Votacion_' + NumMensaje).innerHTML = parseInt(document.getElementById('devildrey33_Comentarios_Votacion_' + NumMensaje).innerHTML) + 1;
		document.getElementById('devildrey33_Comentarios_TotalVotaciones_' + NumMensaje).innerHTML = parseInt(document.getElementById('devildrey33_Comentarios_TotalVotaciones_' + NumMensaje).innerHTML) + 1;
		$.post("devildrey33_Comentarios.php", { "Comando" : "VotarComentario", "PaginaPadre" : PaginaPadre, "NumMensaje" : NumMensaje, "Votacion" : "true" });
	}
}

/* Función para votar negativo un mensaje */
function devildrey33_Comentarios_BotonMenos1Click(PaginaPadre, NumMensaje) {
	ImprimirDebug("devildrey33_Comentarios_BotonMenos1Click('" + PaginaPadre + "', '" + NumMensaje + "')");
	if (document.getElementById('devildrey33_Comentarios_BotonMenos1_' + NumMensaje).className == 'devildrey33_Comentarios_BotonComentarios') {
		document.getElementById('devildrey33_Comentarios_BotonMenos1_' + NumMensaje).className = 'devildrey33_Comentarios_BotonComentariosDesactivado';
		document.getElementById('devildrey33_Comentarios_BotonMas1_' + NumMensaje).className = 'devildrey33_Comentarios_BotonComentariosDesactivado';
		document.getElementById('devildrey33_Comentarios_TotalVotaciones_' + NumMensaje).innerHTML = parseInt(document.getElementById('devildrey33_Comentarios_TotalVotaciones_' + NumMensaje).innerHTML) + 1;
		$.post("devildrey33_Comentarios.php", { "Comando" : "VotarComentario", "PaginaPadre" : PaginaPadre, "NumMensaje" : NumMensaje, "Votacion" : "false" });
	}
}

/* Variables pàra los tooltips de los mensajes */
var devildrey33_Comentarios_ToolTipsMostrados = Array();
var devildrey33_Comentarios_TemporizadorTollTip = 0;
var devildrey33_Comentarios_z_index = 100;

/* Función para mostrar un tooltip de un mensaje */
function devildrey33_Comentarios_MostrarToolTipComentario(PaginaPadre, NumMensaje, Evento) {
	ImprimirDebug("devildrey33_Comentarios_MostrarToolTipComentario('" + PaginaPadre + "', '" + NumMensaje + "')");
	if (devildrey33_Comentarios_ToolTipsMostrados[NumMensaje] != true) {
		$.post("devildrey33_Comentarios.php", { "Comando" : "LeerComentario", "PaginaPadre" : PaginaPadre, "NumMensaje" : NumMensaje }, 
			function(data) {
				$('#devildrey33_Comentarios_ToolTipsComentarios').html($('#devildrey33_Comentarios_ToolTipsComentarios').html() + '<div class=\"devildrey33_Comentarios_ToolTipComentario\" id=\"TT' + NumMensaje + '\" onmouseout=\"devildrey33_Comentarios_TemporizadorOcultarToolTips(\'true\')\" onmouseover=\"devildrey33_Comentarios_TemporizadorOcultarToolTips(\'false\')\">' + data + '</div>');
				$('#TT' + NumMensaje).css({ 'top' : Evento.clientY - 10 , 'left' : Evento.clientX - 10, "z-index" : devildrey33_Comentarios_z_index ++ });
				devildrey33_Comentarios_ToolTipsMostrados[NumMensaje] = true;
				devildrey33_Comentarios_TemporizadorOcultarToolTips("false");
			}
		);
	}
	else {
		if ($("#TT" + NumMensaje).css("display") != "table") 
			$('#TT' + NumMensaje).css({ 'top' : Evento.clientY - 10 , 'left' : Evento.clientX - 10, display : "table", "z-index" : devildrey33_Comentarios_z_index ++ });
		devildrey33_Comentarios_TemporizadorOcultarToolTips("true");
	}
}

/* Función para activar / desactivar el temporizador para ocultar los tooltips de los comentarios */
function devildrey33_Comentarios_TemporizadorOcultarToolTips(Activar) {
	ImprimirDebug("devildrey33_Comentarios_TemporizadorOcultarToolTips('" + Activar + "')");
	if (Activar == "true") {
		if (devildrey33_Comentarios_TemporizadorTollTip != 0) clearInterval(devildrey33_Comentarios_TemporizadorTollTip);
		devildrey33_Comentarios_TemporizadorTollTip = setInterval("devildrey33_Comentarios_OcultarToolTips()", 500);
	}
	else {
		if (devildrey33_Comentarios_TemporizadorTollTip != 0) clearInterval(devildrey33_Comentarios_TemporizadorTollTip);
		devildrey33_Comentarios_TemporizadorTollTip = 0;
	}
}

/* Función que oculta los tooltips mostrados de los comentarios */
function devildrey33_Comentarios_OcultarToolTips() {
	ImprimirDebug("devildrey33_Comentarios_OcultarToolTips()");
	$(".devildrey33_Comentarios_ToolTipComentario").css({ "display" : "none" });
	clearInterval(devildrey33_Comentarios_TemporizadorTollTip);
	devildrey33_Comentarios_TemporizadorTollTip = 0;
}

