// Script para controlar el envío de preguntas

//paginacionCallbacks.registrar(gestionPreguntas);

$(document).ready(function()
{
	var userId = comprobarEstadoUsuario();
	if(userId == null)
		$("#datosPersonalesAutorPregunta").show();
		$("#textoPregunta").show();
		$("#guiasPregunta").show();
		$("#clausulaPregunta").show();
		$("#botonDivPregunta").show();
		$("#captchaDivPregunta").show();
		$("#textoDivLegal").show();
	
	$("#botonPregunta").click(
		function(){
			$("#textoPregunta").show();
			$("#guiasPregunta").show();
			$("#mensaje_confirmacion_enviar_pregunta").hide();
			$("#textoDivLegal").show();
		}
	)
	// Este evento se lanza cuando el usuario lanza el envío de una nueva pregunta
	$("#botonEnviarPregunta").click(
		function ()
		{
			$("#mensaje_confirmacion_enviar_pregunta").hide();
			$("#mensaje_error_enviar_pregunta").hide();
			
			var mailValido = validarEmail($("#emailAutorNuevaPregunta").val());

			if (userId == null && !$("#autorNuevaPregunta").val())
			{
				$("#textoMensajeErrorNuevaPregunta").html("Tu pregunta no ha sido enviada. Verifica que has rellenado todos los campos correctamente.")
				$("#mensaje_error_enviar_pregunta").show();
				$("#autorNuevaPregunta").focus();
				return false;
			}
			else if(userId == null && !$("#emailAutorNuevaPregunta").val())
			{
				$("#textoMensajeErrorNuevaPregunta").html("Tu pregunta no ha sido enviada. Verifica que has rellenado todos los campos correctamente.")
				$("#mensaje_error_enviar_pregunta").show();
				$("#emailAutorNuevaPregunta").focus();
				return false;
			}
			else if (userId == null && mailValido == false)
			{
				$("#textoMensajeErrorNuevaPregunta").html("Tu pregunta no ha sido enviada. Verifica que has rellenado todos los campos correctamente.")
				$("#mensaje_error_enviar_pregunta").show();
				$("#mailAutorNuevaPregunta").focus();
				return false;
			}		
			else if (!$("#etiIdNuevaPregunta").val())
			{
				$("#textoMensajeErrorNuevaPregunta").html("Tu pregunta no ha sido enviada. Verifica que has rellenado todos los campos correctamente.");
				$("#mensaje_error_enviar_pregunta").show();
				$("#textoNuevaPregunta").focus();
			}
			else if (!$("#textoNuevaPregunta").val())
			{
				$("#textoMensajeErrorNuevaPregunta").html("Tu pregunta no ha sido enviada. Verifica que has rellenado todos los campos correctamente.");
				$("#mensaje_error_enviar_pregunta").show();
				$("#textoNuevaPregunta").focus();
				return false;
			}
			else if ($("#textoNuevaPregunta").val().length > 255)
			{
				$("#textoMensajeErrorNuevaPregunta").html("La pregunta no puede exceder de 255 caracteres");
				$("#mensaje_error_enviar_pregunta").show();
				$("#textoNuevaPregunta").focus();
				return false;
			}
			else if (!$("input#acepto_comentario").is(":checked"))
			{
				$("#textoMensajeErrorNuevaPregunta").html("<strong>Atención:</strong> Tu petición <strong>no ha sido procesada</strong> correctamente. Debes aceptar la claúsula de privacidad antes.");
				$("input#acepto_comentario").focus();
				$("#mensaje_error_enviar_pregunta").show();
				return false;
			}

			
			// Verificamos el captcha
			var captchaValido = compruebaCaptcha('captchaEnviarPregunta',$("#captchaCodePregunta").val());
			if(captchaValido!="true"){
				$("#textoMensajeErrorNuevaPregunta").html("Introduzca nuevamente el código que aparece en la imagen (sensible a mayúsculas y minúsculas) ");
				$("#mensaje_error_enviar_pregunta").show();
				cambiaCaptcha('captchaEnviarPregunta',$(".cambiarCaptcha").attr("id").split("_")[2]);
				$("#captchaCodePregunta").focus();
				return false;
			}

			if ($("#mostrarImagenAutorPregunta").is(":checked") && userId != null)
				var mostrarImagenAutorPregunta_val = 1
			else
				var mostrarImagenAutorPregunta_val = 0

			$.get("/modulo/moduloPreguntas.html",{textoNuevaPregunta:escape($("#textoNuevaPregunta").val()),mostrarImagenAutorPregunta:mostrarImagenAutorPregunta_val,etiId:$("#etiIdNuevaPregunta").val(),usuario:userId,usuarioNombre:$("#autorNuevaPregunta").val(),usuarioMail:$("#emailAutorNuevaPregunta").val()},
				function (resultadoInsercionPregunta)
				{
					// alguna clase externa a parasaber nos está metiendo en la salida un salto de linea asi que lo quitamos
					resultadoInsercionPregunta = resultadoInsercionPregunta.replace(/^\s+/, "");
					switch (resultadoInsercionPregunta)
					{
						case "1":
							$("#textoMensajeErrorNuevaPregunta").html("Tu pregunta no ha sido enviada. Verifica que has rellenado todos los campos correctamente.")
							$("#mensaje_error_enviar_pregunta").show();
							break;
						case "2":
							cambiaCaptcha('captchaEnviarPregunta',$(".cambiarCaptcha").attr("id").split("_")[2]);
							$("#textoNuevaPregunta").val("");
							$("#captchaCodePregunta").val("");
							$("#textoPregunta").hide();
                			$("#guiasPregunta").hide();
							$("#mensaje_confirmacion_enviar_pregunta").show();
							$("#textoDivLegal").hide();
							if($("div[id='preguntasSinResponder']")!=null)
								$("div[id='preguntasSinResponder']").load("/modulo/moduloPreguntas.html?accion=recargaPreguntasSinRespuesta&etiId="+$("#etiIdNuevaPregunta").val()+"&urlGuia="+$("#idUrlGuiaTema").val(),paginacionCallbacks.ejecutar);
							break;
					}
					return false;
				}
			);
			return false;
		}
	);

	// Este evento se lanza cuando el usuario lanza la busqueda de una pregunta
	$("#submitEnviarPregunta").submit(
		function ()
		{
			var idEtiquetaPregunta= $("input#idEtiquetaPregunta").val();
			var textoBuscarPregunta= $("#textoBuscarPregunta").val();
			var urlGuiatema= $("input#idUrlGuiaTema").val();

			// Controlamos que se haya escrito algo en la caja de texto
			if (!textoBuscarPregunta)
				return false;

			// Se recarga la página sin utilizar el ajax
			location.href= urlGuiatema + "/respuesta-resultados?query=" + textoBuscarPregunta + "&etiId=" + idEtiquetaPregunta;
			return false;
		}
	);
	gestionPreguntas();
});
function enlaceUsuarioNoRegistrado()
{
	var linksNoReg = Array();
	linksNoReg = $(".inner a[href='/comunidad/usuarios/noregistrado']");
	for (var i = 0; i < linksNoReg.length; i++) {
		texto = $(".inner a[href='/comunidad/usuarios/noregistrado']:eq(0)").text();
   		$(".inner a[href='/comunidad/usuarios/noregistrado']:eq(0)").replaceWith(texto);
 	}
}
function gestionPreguntas ()
{

		$("img#iconoBuscando").hide();

		// Este evento se lanza cuando el usuario selecciona uno de los elementos de la lista de autores
		$("#autorRespuesta").change(
			function()
			{			
				$("#respuestas").load("/modulo/moduloPreguntas.html?idAutorRespuesta=" + this.value + "&idPregunta=" + $("#idPregunta").val()+ "&regenerate=true",{},paginacionCallbacks.ejecutar);
			}
		);


		// Este evento se lanza cuando el usuario selecciona uno de los elementos de la lista de autores en la página de portadas de preguntas
		$("#autorPregunta").change(
			function()
			{

				var urlCompleta= $("input#urlCompleta").val();
				
				var urlPreguntasSinResponder= $("#listadoPreguntasSinResolver").attr("href");
				var urlPreguntasRespondidas= $("#listadoPreguntasRespondidas").attr("href");
				
				var idEtiquetaPregunta= $("input#idEtiquetaPregunta").val();
				var usuarioLogeado= $("input#usuariologeado").val();
				
				$("#preguntasDestacadas").hide();
				$("#preguntasSinResponder").hide();
				$("#preguntasRespondidas").hide();

				$("#preguntasDestacadas").load("/modulo/moduloPreguntasPortada.html?idAutorPregunta=" + this.value + "&preguntasDestacadas=1"+ "&etiId=" + idEtiquetaPregunta + "&urlCompleta=" + urlCompleta+ "&regenerate=true");

				$("#preguntasSinResponder").load("/modulo/moduloPreguntasPortada.html?idAutorPregunta=" + this.value + "&preguntasSinResponder=1&url="+ urlPreguntasSinResponder+ "&etiId=" + idEtiquetaPregunta + "&urlCompleta=" + urlCompleta+ "&regenerate=true");

				$("#preguntasRespondidas").load("/modulo/moduloPreguntasPortada.html?idAutorPregunta=" + this.value + "&preguntasRespondidas=1&url="+ urlPreguntasRespondidas+ "&etiId=" + idEtiquetaPregunta + "&urlCompleta=" + urlCompleta+ "&regenerate=true");
				
				$("#preguntasDestacadas").show();
				$("#preguntasSinResponder").show();
				$("#preguntasRespondidas").show();
				return false;
			}
		);

		// Este evento se lanza cuando el usuario selecciona uno de los elementos de la lista de autores en la página de listado de preguntas
		$("#autorListadoPregunta").change(
			function()
			{
				var tipoPregunta= $("input#tipoPregunta").val();
				var numPorPagina= $("input#numPorPagina").val();
				var amplitudPagina= $("input#amplitudPagina").val();
				var container= $("input#containerPregunta").val();
				var idEtiquetaPregunta= $("input#idEtiquetaPregunta").val();

				$("#contenedor_listado").load("/modulo/listadosPregunta.html?idAutorPregunta=" + this.value + "&estadoPreguntas="+tipoPregunta+ "&npp="+numPorPagina+"&ap="+amplitudPagina + "&container=" + container + "&etiId=" + idEtiquetaPregunta+ "&regenerate=true",{},paginacionCallbacks.ejecutar);
				return false;
			}
		);

		$(".linkTabBuscarPreguntas").click(

			function ()
			{
				var activaGuia;
				var idEtiquetaPregunta= $("input#idEtiquetaPregunta").val();
				
				var numeroTotal;
				var amplitudPagina= $("input#amplitudPagina").val();
				var numeroPorPagina= $("input#numeroPorPagina").val();
				var textoBuscarRespuesta= $("#textoBuscarRespuesta").val();
				
				$("#li_" + this.id).addClass("activo");
			
				//$("#" + vistaActual + this.id).show();
				$("#listaPestanas").find("li").removeClass("activo");
				$("#li_" + this.id).addClass("activo");
				
				if (this.id== "preguntasGuia") {
					activaGuia= 1;
					numeroTotal= $("input#numeroTotalGuia").val();
				}
				else {
					activaGuia= 0;
					numeroTotal= $("input#numeroTotalParasaber").val();
				}
				$("#contenedor_listado").html("<img src='/img/loading.gif'>");

				$("#contenedor_listado").load("/modulo/moduloBuscadorPreguntas.html?guiaActiva="+ activaGuia + "&etiId=" + idEtiquetaPregunta+ "&query=" + escape(textoBuscarRespuesta) + "&page=1&np="+numeroTotal+"&ap="+amplitudPagina+"&npp="+numeroPorPagina,{}, paginacionCallbacks.ejecutar);

				return false;
			}
		);
}

/*
	Función que carga la url de respuestas o la url del login de usuario según esté el usuario logeado o no 
*/
function cargarLinkFormRespuesta( urlEnviarRespuesta, urlLoginUsuario, mostrarEnlaceRespuesta) 
{

	var ckArr = document.cookie.split("; "); 
	var userInfo = null; 
	var ipUser = false; 
	var urlEnviar= "";
	var cadRegistro = "";

	for (var nBucle=0;nBucle<ckArr.length;nBucle++) 
	{
		var aCookie = ckArr[nBucle].split("="); 

		// Comprobamos que la cookie que necesitamos est? creada 
		if (aCookie[0] == "parasaber_validation_info") 
		{
			var parametrosCookie = unescape(aCookie[1]); 
			userInfo = parametrosCookie.split("|")[1]; 
		}
	}

	if (userInfo == null) 
	{
		var date = new Date(); 
		date.setTime((date.getTime() + (8760*60*60*1000))); 
		document.cookie = "cUser=nouser; PATH=/; DOMAIN=.parasaber.com; expires=" + date.toGMTString(); 
		userInfo = "nouser"; 
	}

	if (mostrarEnlaceRespuesta) {

		if (userInfo == "nouser") { 
			urlEnviar= urlLoginUsuario;
		} 
		else { 
			urlEnviar= urlEnviarRespuesta;
		} 
		cadRegistro += '<p class="boton"><a href="'+ urlEnviar+ '">Envía tu respuesta</a></p>'; 
	}

	document.write(cadRegistro); 
}
function comprobarEstadoUsuario(){
	var ckArr = document.cookie.split("; "); 
	var userId = null;
	var ipUser = false;
	for (var nBucle=0;nBucle<ckArr.length;nBucle++) 
	{
		var aCookie = ckArr[nBucle].split("="); 
		// Comprobamos que la cookie que necesitamos está creada 
		if (aCookie[0] == "parasaber_validation_info") 
		{
			var parametrosCookie = unescape(aCookie[1]); 
			userId = parametrosCookie.split("|")[0];
		}
	}
	return userId;
}
function validarEmail (email)
{
	if (email.length == 0)
		return false;
	if (email.indexOf(' ') != -1)
		return false;
	var erEmail = /^[^@]+@[^\.]+(\.[^\.]+)+$/;
	var valida = erEmail.test(email);
	if(valida)
		return true;
	else
		return false;
}

