var enviando=false;


var capaComentariosTmp = "";
var tituloTopicInicial = "";

var tokenSesion = "";
var usuarioLibre = false;
var usuarioRegistrado = "";
var ultimaIdConfUsr = "";
var ultimaIdSeccionBoletin ="";
var borrarId=0;
var ultimoItemComentado = "";
var ultimaIdFotoFan=0;

$(document).ready(function () {
	setSesion();		
	inicializarComentarios();		
	$("#enviar_tema").click(function(){ nuevoTopic();});
	inicializarFormRegistro();
	inicializarEstrellas();
	tituloTopicInicial = $("#topic_titulo").val();
	
	if ($(".COM_pestanas").length > 0){
		inicializarPanel();
	}
	
	$("#COM_recordar_contrasena").dialog({ autoOpen: false });
	
	$(".recordar_contrasena").click( function(){
		$('#COM_recordar_contrasena').dialog('option', 'title', 'Recordar Clave');
		$('#COM_recordar_contrasena').dialog('open');			
		return (false);
	});
	$("#COM_recordar_boton").click(function(){recordarClave();});
	
	$("#falloAutenticacion").dialog();
	$('#falloAutenticacion').dialog('option', 'title', 'Error de identificación');
		 
	
	if ($("#test_form").length > 0){		
		$("#test_form").submit(function(){return (enviarTest());});
	}

	if ($("#COM_mailingEnviar").length > 0){		
		inicializarNewsletter();
	}
	
	
	$("#COM_formLogin").submit(function(){return (validarFormLogin());});
	
	if ($("#COM_ventanaSubirImagen").length > 0){		
		$("#COM_ventanaSubirImagen").dialog({ autoOpen: false });
		$("#COM_subirImagen").click(function(){
			$('#COM_ventanaSubirImagen').dialog('option', 'title', 'Subir Imagen');
			$('#COM_ventanaSubirImagen').dialog('open');
		});
	}
	
	inicializarSpoilers();
	
	random = Math.random();	
	if (random<0.05){   
	
		$('#anuncioCabecera').flash({
		    src: '/skins/precriticas/imagenes/portada/fans.swf',
		    width: 800,
		    height: 100,
		    wmode: 'opaque'
		});
	}
	
	$("#COM_fans_subirFoto").dialog({ autoOpen: false });
	
	$("#COM_fans_SubirFotoClick").click(function() {
		$('#COM_fans_subirFoto').dialog('option', 'title', 'Subir Foto');
		$('#COM_fans_subirFoto').dialog('open');			
		return (false);
	});
	
	$("#hacerse_fan").click(function(){
		nuevoFan();
		return(false);
	});
	

});

function inicializarComentarios(){	
	$(".COM_comentariosItem").each(function(index){
		capa = "#" + $(this).attr("id");
		itemTipo = $(capa + " .COM_tipoComentario").val();
		itemValor = $(capa + " .COM_itemComentario").val();
		$(capa + " .COM_comentarItem").click(function(){comentarItem(itemTipo, itemValor, capa);});
		
	});
}

function inicializarSpoilers(){
	$(".spoiler .fondoSpoiler").fadeTo(0,0.65);
	$(".spoiler").each(function(){
		$(this).height($(this).parent().height()+20);
	});  
	$(".spoiler").click(function(){$(this).hide("fast")});
}

function validarFormLogin(){
	if ($("#COM_formLoginUser").val()==""){
		alert("Escribe tu usuario");
		return (false);
	}
	else{
		return (true);
	}
}

function enviarTest(){
	faltan = $('.bloquePregunta ul').size() - $('.bloquePregunta input:checked').size();
	
	if (!faltan){
		return (true);
	}
	else{
		alert("Faltan " + faltan + " campos por rellenar");
		return (false);
	}
}

function inicializarPanel(){
	$(".COM_pestanas li").click(function(){
		mostrarPestana($(this).attr('id'));
	});
	$(".COM_pestana:first").show();
	
	//datos:
	
	$("#COM_panel_actualizarEmail").click(function(){actualizarUsuarioEmail();});
	$("#COM_panel_actualizarClave").click(function(){actualizarUsuarioPassword();});
	
}

function mostrarPestana(idPest){
	
	$(".COM_pestana").hide();
	$("#" + idPest + "_contenido").show();
}
			
	

function setSesion(){
	tokenSesion = $("#tokenSesion").val();
}


function inicializarEstrellas(){
	
	
	$(".COM_stars").each(function(){
		
		id = $(this).attr("id");				
		$("#" + id + " div").each(function(index){			
			$(this).mouseout(function(){				
				$("#" + id + " .COM_stars_amarilla").removeClass("COM_stars_amarilla");
			});			
			$(this).mouseover(function(){				
				$("#" + id + " div:lt(" + (index+1) + ")").addClass("COM_stars_amarilla");
			});
			$(this).click(function(){				
				valorarItem(id, index+1);
			});
		});
	});
}

function valorarItem(id, valor){
	parametros = new Array(new Array("id",id), new Array("valor",valor));
	llamadaAjax("valorarItem", parametros);
	
	$("#" + id + " div:lt(" + (valor) + ")").addClass("COM_stars_amarilla");
	$("#" + id + " div").unbind('mouseover');
	$("#" + id + " div").unbind('mouseout');
	return (true);
}

function valorarItem_end(msg){
	if (msg=="KO"){					
		alert("Ha habido algún problema al darle valor a las estrellas. Vuelve a intentarlo más tarde");
	}
}

function inicializarFormRegistro(){
	if ($("#ventana_registro").length > 0){
		$("#ventana_registro").dialog({ autoOpen: false });
		$("#COM_correct").hide();
		$("#COM_incorrect").hide();
		
		$(".registrar").click(function() {
			$('#ventana_registro').dialog('option', 'title', 'Registro');
			$('#ventana_registro').dialog('open');			
			return (false);

		});
		
		$("#registro_usuario").blur(function() {
			  existeUsuario();
		});
		
		$("#registro_email").blur(function() {
			  existeEmail();
		});
		
		$("#registro_password2").keyup(function() {
			  comprobarClaves();
		});
		
		$("#registro_enviar").click(function() {
			return (registro());
		});
	}
}

function comprobarClaves(){	
	if ($("#registro_password").val() == $("#registro_password2").val()){
		$(".claveMalRepetida").removeClass("claveMalRepetida");
		$("#registro_password2").addClass("claveBienRepetida");
		$("#passwordMal").hide();
	} 
	else{
		$(".claveBienRepetida").removeClass("claveBienRepetida");
		$("#registro_password2").addClass("claveMalRepetida");
	}
}

function registro(){
		errorEnvio = "";

		nickUsuario = $("#registro_usuario").val();
		passwordTxt = $("#registro_password").val();
		emailTxt = $("#registro_email").val();
		politica = $("#politica_privacidad:checked").size();
			
		enviar = true;
		
		$("#usuarioNulo").hide();
		$("#usuarioExiste").hide();
		$("#passwordNulo").hide();
		$("#passwordMal").hide();
		$("#emailNulo").hide();
		$("#politicaNulo").hide();
		
		if (nickUsuario==""){			
			$("#usuarioNulo").show();
			enviar=false;
		}
		else{
			if (!usuarioLibre){				
				$("#usuarioExiste").show();
				enviar = false;
			}
		}
		if (passwordTxt==""){
			$("#passwordNulo").show();
			enviar = false;
		}
		else{
			if (passwordTxt!=$("#registro_password2").val()){
				$("#passwordMal").show();
				enviar = false;
			}			
		}
		if (emailTxt==""){
			$("#emailNulo").show();
			enviar = false;
		}
		
		if (!politica){
			$("#politicaNulo").show();
			enviar = false;
		}
		
		if (enviar){
			$("loading2").show();
			usuarioRegistrado = nickUsuario;
			parametros = new Array(new Array("usuario",nickUsuario), new Array("clave",passwordTxt), new Array("email",emailTxt));
			llamadaAjax("registro", parametros);
			
			return (true);
		}
		else{			
			return (false);
		}
		
}

function registro_end(msg){
	$("loading2").hide();
	if (msg!="KO"){		
		$("#ventana_registro").html(msg);		
	}
	else{
		alert("No se ha realizado el registro correctamente");
	}
	usuarioRegistrado = "";
}

function prepararParametros(comando, params){
	res = "comando=" + comando + "&sesion=" + tokenSesion;
	
	for (i=0;i<params.length;i++){		
		res = res + "&" + params[i][0] + "=" + escape(params[i][1]);
	}
	
	return res;
}

function nuevoTopic(){
	
	titulo = $("#topic_titulo").val();	
	texto = $("#topic_texto").val();	
	if (titulo=="" || titulo==tituloTopicInicial){
		$("#errorTituloTopic").show();
		return (false);
	} 
		
	parametros = new Array(new Array("titulo",titulo), new Array("texto",texto));
	llamadaAjax("nuevoTopic", parametros);
}

function nuevoTopic_end(msg){
	if (msg!="KO"){		
		$("#topic_lista").prepend(msg);
		
		$("#topic_titulo").val(tituloTopicInicial);
		$("#topic_texto").val("");
	}
	else{
		alert("Ha habido algún problema. Vuelve a intentarlo más tarde");
	}	
}

 
function comentarItem(itemTipo, itemValor, capa){		
	texto = $(capa + " .COM_textoComentario").val();
	
	ultimoItemComentado = capa;
	
	if ((texto=="") || (itemTipo=="") || (itemValor=="")){
		alert("Se debe escribir un texto");
		return (false);
	}
	
	
	$(capa + " .loading").show();		
	parametros = new Array(new Array("texto",texto), new Array("itemTipo",itemTipo), new Array("itemValor",itemValor));
	llamadaAjax("comentarItem", parametros);
	
}

function comentarItem_end(msg){
	capa = ultimoItemComentado;
	ultimoItemComentado = "";
	
	$(capa + " .loading").hide();
	if (msg!="KO"){		
		$(capa + " .COM_comentario").append(msg);
		$(capa + " .COM_textoComentario").val("");
	}
	else{
		alert("Ha habido algún problema. Vuelve a intentarlo más tarde");
	}		
}


function existeEmail(){
	email = $("#registro_email").val();
	if (email!=""){
		
		$("#COM_email_loading").show();
		$("#COM_email_incorrect").hide();
		$("#COM_email_correct").hide();			
		$("#emailExiste").hide();
		
		parametros = new Array(new Array("email",email));
		llamadaAjax("existeEmail", parametros);
	}
}

function existeEmail_end(msg){
	$("#COM_email_loading").hide();
	if (msg=="SI"){
		$("#COM_email_incorrect").show();
		$("#emailExiste").show();
		
		emailLibre = false;
	}
	else{
		$("#COM_email_correct").show();
		emailLibre = true;
	}
}

function existeUsuario(){
	nickUsuario = $("#registro_usuario").val();
	if (nickUsuario!=""){
		$("#usuarioNulo").hide();
		
		$("#COM_loading").show();
		$("#COM_incorrect").hide();
		$("#COM_correct").hide();
		$("#usuarioExiste").hide();
		
		
		parametros = new Array(new Array("nombreUsuario",nickUsuario));
		llamadaAjax("existeUsuario", parametros);
	}
}

function existeUsuario_end(msg){
	$("#COM_loading").hide();
	if (msg=="SI"){
		$("#COM_incorrect").show();
		$("#usuarioExiste").show();
		
		usuarioLibre = false;
	}
	else{
		$("#COM_correct").show();
		usuarioLibre = true;
	}
}

function getComentariosItem(tipo, item){
	
	parametros = new Array(new Array("tipo",tipo), new Array("item",item));
	llamadaAjax("getComentariosItem", parametros);
	
	capaComentariosTmp= tipo + "_" + item;
}

function getComentariosItem_end(msg){
	
	$("#" + capaComentariosTmp).html(msg);
	capaComentariosTmp = "";	
	$("#comentarItem").click(function(){ comentarItem();});
}

function actualizarUsuarioEmail(){
	
	$("#COM_panel_email_KO").hide();
	$("#COM_panel_email_OK").hide();
	
	email = $("#COM_panel_email").val();
	
	if (email == ""){
		$("#COM_panel_emailNulo").show();
	}
	else{	
		$("#COM_panel_emailNulo").hide();
		$("#COM_panel_loading_actualizarEmail").show();
			
		parametros = new Array(new Array("email",email));
		llamadaAjax("actualizarUsuarioEmail", parametros);
	}
}
function actualizarUsuarioEmail_end(msg){
	$("#COM_panel_loading_actualizarEmail").hide();
	
	if (msg=="OK"){
		$("#COM_panel_email_OK").show();
	}
	else{
		$("#COM_panel_email_KO").show();
	}
	
}

function actualizarUsuarioPassword(){
	
	oldPassword = $("#COM_panel_oldpassword").val();
	newPassword = $("#COM_panel_newpassword").val();
	newPassword2 = $("#COM_panel_newpassword2").val();
	
	fin = false;
	$("#COM_panel_passwordsMalRepetidas").hide();
	$("#COM_panel_newpasswordNulo").hide();
	$("#COM_panel_oldpasswordNulo").hide();	
	$("#COM_panel_password_KO").hide();
	$("#COM_panel_password_OK").hide();
	
	if (newPassword == ""){
		$("#COM_panel_newpasswordNulo").show();		
		fin =true;
	}
	if (oldPassword == ""){
		$("#COM_panel_oldpasswordNulo").show();		
		fin = true;
	}
	if ((oldPassword != "") && (newPassword != "") && (newPassword != newPassword2)){
		$("#COM_panel_passwordsMalRepetidas").show();		
		fin = true;
	}
	if (fin){return(false);}
	
	$("#COM_panel_loading_actualizarPassword").show();
	
	parametros = new Array(new Array("oldPassword",oldPassword),new Array("newPassword",newPassword));
	llamadaAjax("actualizarUsuarioPassword", parametros);
	
}
function actualizarUsuarioPassword_end(msg){	
	$("#COM_panel_loading_actualizarPassword").hide();
	
	if (msg=="OK"){
		$("#COM_panel_password_OK").show();
	}
	else{
		$("#COM_panel_password_KO").show();
	}
}

function recordarClave(){
	$("#COM_recordar_OK").hide();
	$("#COM_recordar_KO").hide();
	$("#COM_recordar_ERROR").hide();
	$("#COM_recordar_emailNulo").hide();
	email = $("#COM_email_recordar").val();
	
	if (email==""){
		$("#COM_recordar_emailNulo").show();
		return (false);
	}
	
	$("#COM_recordar_enviando").show();
	
	parametros = new Array(new Array("email",email));
	llamadaAjax("recordarClave", parametros);
}

function recordarClave_end(msg){
	$("#COM_recordar_enviando").hide();
	if (msg=="OK"){
		$("#COM_recordar_OK").show();
	}
	else if(msg=="KO"){
		$("#COM_recordar_KO").show();
	}
	else{
		$("#COM_recordar_ERROR").show();
	}
}

function acutalizarVariableUsuario(id){
	ultimaIdConfUsr = id;
	valor = $("#COM_var_" + id).val();
	
	$("#COM_var_" + id + "_correct").hide();
	$("#COM_var_" + id + "_incorrect").hide();
	$("#COM_var_" + ultimaIdConfUsr + "_KO").hide();
	
	$("#COM_var_" + ultimaIdConfUsr + "_loading").show();
	
	parametros = new Array(new Array("variable",id),new Array("valor",valor));
	llamadaAjax("acutalizarVariableUsuario", parametros);
}

function acutalizarVariableUsuario_end(msg){
	$("#COM_var_" + ultimaIdConfUsr + "_loading").hide();
	if (msg=="OK"){
		$("#COM_var_" + ultimaIdConfUsr + "_correct").show();
		
	}
	else{
		$("#COM_var_" + ultimaIdConfUsr + "_incorrect").show();
		$("#COM_var_" + ultimaIdConfUsr + "_KO").show();
	}
	ultimaIdConfUsr = "";
}

function acutalizarEnviarBoletin(){
	
	valor = $("#COM_mailingEnviar:checked" ).size();

	iconosEnviar("COM_mailingEnviar");
	$("#COM_mailingEnviar_error").hide();
	
	
	parametros = new Array(new Array("valor",valor));
	llamadaAjax("acutalizarEnviarBoletin", parametros);
}

function acutalizarEnviarBoletin_end(msg){
	
	iconosRecibir("COM_mailingEnviar",(msg!="KO"));
	
	if (msg=="KO"){
		$("#COM_mailingEnviar_error").show();		
	}
	else{		
		if (msg=="SI"){
			$("#COM_mailingOpciones input").attr("checked","checked");
			$("#COM_mailingOpciones").show();			
		}
		else{
			$("#COM_mailingOpciones").hide();
		}
	}	
	
}

function acutalizarSeccionBoletin(id){
	
	ultimaIdSeccionBoletin = id;
	valor = $("#" + id + ":checked" ).size();

	iconosEnviar(id);
	$("#" + id + "_error").hide();
	
	seccion = id.substr(12); //quitando COM_mailing_
	
	parametros = new Array(new Array("valor",valor),new Array("seccion",seccion));
	llamadaAjax("acutalizarSeccionBoletin", parametros);
}

function acutalizarSeccionBoletin_end(msg){
	id = ultimaIdSeccionBoletin;
	ultimaIdSeccionBoletin = "";
	
	iconosRecibir(id,(msg!="KO"));
	
	if (msg=="KO"){
		$("#" + id +"_error").show();		
	}
		
	
}


function inicializarNewsletter(){
	$("#COM_mailingEnviar").click(function() {
		acutalizarEnviarBoletin();
	});
	
	$("#COM_mailingOpciones input").click(function() {
		acutalizarSeccionBoletin($(this).attr('id'));
	});
}

function marcarComentario(id, valor, tipo){
	parametros = new Array(new Array("valor",valor),new Array("id",id), new Array("tipo",tipo));
	llamadaAjax("marcarComentario", parametros);
}

function marcarComentario_end(msg){
	if (msg=="KO"){
		alert("Ha habido algún problema");
	}
	else{
		alert("Hecho");
	}
}

function borrarComentario(id){
	borrarId = id;
	parametros = new Array(new Array("id",id));
	llamadaAjax("borrarComentario", parametros);
}

function borrarComentario_end(msg){
	id = borrarId;
	borrarId = 0;
	if (msg=="OK"){
		$("#COM_comentario_" + id).hide("fast");
	}
	else{
		$("#COM_comentario_" + id).append("<div class=\"errorForm\" style=\"display:block\">" + msg + "</div>");
	}
}

function nuevoFan(){
	if (tokenSesion){
		$("#COM_Form_hacerseFan").submit();
	}
	else{
		$("#fan_no_autenticado").show();		
	}
}

function borrarFotoFanclub(id){
	ultimaIdFotoFan = id;
	parametros = new Array(new Array("id",id));
	llamadaAjax("borrarFotoFanclub", parametros);
	
	return (false);
}

function borrarFotoFanclub_end(msg){
	if (msg=="OK"){
		$("#fanfoto_" + ultimaIdFotoFan).hide();
		$("#enlaceborrarfoto_" + ultimaIdFotoFan).hide();
	}else{
		alert("Se ha producido algún error, vuelve a intentarlo más tarde");
	}
	ultimaIdFotoFan = 0;
}



function iconosEnviar(id){
	$("#" + id + "_loading").show();
	$("#" + id + "_correcto").hide();
	$("#" + id + "_incorrecto").hide();
}
function iconosRecibir(id,resultado){
	$("#" + id + "_loading").hide();
	if (resultado){
		$("#" + id + "_correcto").show();
	}
	else{
		$("#" + id + "_incorrecto").show();
	}
}

function llamadaAjax(comando, parametros){
  //parametros: "param1=valor1&param2=valor2..."	

  if (!enviando){
 
  	  enviando = true;
	  params = prepararParametros(comando, parametros);
	 
		
	   $.ajax({
	   type: "POST",
	   url: "http://www.precriticas.com/ajax/comunidad/",
	   data: params,	   
	   success: function(msg){
	     accion(comando, msg);
	   }
	 });
  }
 }
 
function accion(comando, msg){
 
 	if (msg=="END"){
 		alert("La sesión ha caducado, por favor, recarga la página para volver a identificarte.");
 	}
 	else { 		
 		window[comando + "_end"](msg);
 	}
 	
 	enviando=false;
 }
