//***************
//Funciones relacionadas con la puntuación de la página
//***************
var ver_puntuacion=false;

function MostrarPuntuacion(peticion)
   {
   $("VerPuntuacion").innerHTML=peticion.responseText;
   }

function Puntuacion(blog,pagina)
   {
   if(!ver_puntuacion)
      {
      $("VerPuntuacion").innerHTML="Cargando...";
      $("VerPuntuacion").style.visibility="visible";
      var ajax=new Ajax("ajax_puntuacion.php");
      ajax.Finalizar(MostrarPuntuacion);
      ajax.Enviar("GET","?blog="+blog+"&pagina="+pagina);
      }
   else
      $("VerPuntuacion").style.visibility="hidden";
   ver_puntuacion=!ver_puntuacion;
   }

//***************
//Funciones relacionadas con la calificación de los posts
//***************

var clave_post=0;

function MostrarCalificaciones(peticion)
   {
   $("VerCalificaciones_"+clave_post).innerHTML=peticion.responseText;
   }

function Calificaciones(blog,pagina,post,clave_nueva)
   {
   if(!clave_post)
      {
      clave_post=clave_nueva;
      if(desplegada) //Ocultar la lista de calificiones posibles si está desplegada
         DesplegarCalificaciones(-1,-1);
      $("VerCalificaciones_"+clave_post).innerHTML="Cargando...";
      $("VerCalificaciones_"+clave_post).style.visibility="visible";
      var ajax=new Ajax("ajax_calificaciones.php");
      ajax.Finalizar(MostrarCalificaciones);
      ajax.Enviar("GET","?blog="+blog+"&pagina="+pagina+"&post="+post);
      }
   else if(!blog || clave_post==clave_nueva)
      {
      $("VerCalificaciones_"+clave_post).style.visibility="hidden";
      clave_post=0;
      }
   else
      {
      Calificaciones("",pagina,post,clave_nueva); //Oculta la calificación actual, los 3 últimos parámetros son triviales
      Calificaciones(blog,pagina,post,clave_nueva);
      }
   }

//***************
//Funciones relacionadas con el formulario para postear
//***************

var codigo_acciones="";

function BorrarFormulario()
   {
   if(confirm("¿Seguro que quieres borrar todo el texto del post?"))
      $("Post").value="";
   Palabras("Post");
   Caracteres("Post");
   }

function Previsualizar(sesion)
   {
   function FinPrevisualizar(peticion)
      {
      previsualizar=peticion.responseText;
      $("Previsualizar").innerHTML=previsualizar;
      $("BarraDeEstado").style.visibility="hidden";
      }
   var nick=encodeURIComponent($("Nick").value);
   var web=encodeURIComponent($("WEB").value);
   var texto=encodeURIComponent($("Post").value);
   var ajax=new Ajax("ajax_previsualizar.php");
   $("BarraDeEstado").innerHTML="Cargando Previsualización...";
   $("BarraDeEstado").style.visibility="visible";
   ajax.Finalizar(FinPrevisualizar);
   ajax.Enviar("POST","blog="+blog+"&pagina="+pagina+"&texto="+texto+"&nick="+nick+"&web="+web);
   }

function Postear()
   {
   var nick=encodeURIComponent($("Nick").value);
   var web=encodeURIComponent($("WEB").value);
   var texto=encodeURIComponent($("Post").value);
   if(!texto)
      {
      alert("No vale postear sin escribir nada... es trampa.");
      return;
      }
   else
      {
      $("BarraDeEstado").innerHTML="<blink>Enviando post...</blink>";
      $("BarraDeEstado").style.visibility="visible";
      $("Previsualizar").innerHTML="";
      var ajax=new Ajax("ajax_postear.php");
      ajax.Finalizar(ActualizarPosts);
      ajax.Enviar("POST","blog="+blog+"&pagina="+pagina+"&nick="+nick+"&web="+web+"&texto="+texto+"&clave="+clave);
      }
   }

function ActualizarPosts(por_postear)
   {
   if(!por_postear)
      setTimeout("ActualizarPosts()",120000);
   else if(por_postear.responseText) //Mensaje de error al postear
      {
      $("BarraDeEstado").style.visibility="hidden";
      alert(por_postear.responseText);      
      return;
      }
   else
      $("Post").value="";
   function Comprobar(peticion)
      {
      var ultimo_ts=peticion.responseText;
      if(ultimo_ts && timestamp!=ultimo_ts)
         {
         $("BarraDeEstado").style.visibility="visible";
         $("BarraDeEstado").innerHTML="<blink>Cargando posts nuevos...</blink>";
         timestamp=ultimo_ts;
         function CargarPosts(respuesta)
            {
            $("Posts").innerHTML=respuesta.responseText;
            $("BarraDeEstado").style.visibility="hidden";
            }
         function CargarJS(respuesta)
            {
            eval(respuesta.responseText);
            }
         var ajax=new Ajax("ajax_cargar_posts.php");
         ajax.Finalizar(CargarPosts);
         ajax.Enviar("GET","?blog="+blog+"&pagina="+pagina);
         var ajax_js=new Ajax("ajax_cargar_posts_js.php");
         ajax_js.Finalizar(CargarJS);
         ajax_js.Enviar("GET","?blog="+blog+"&pagina="+pagina);
         }
      else
         $("BarraDeEstado").style.visibility="hidden";
      }
   var ajax=new Ajax("ajax_ultimo_ts.php");
   ajax.Finalizar(Comprobar);
   ajax.Enviar("GET","?blog="+blog+"&pagina="+pagina);
   }

function TickPost(clave_post)
   {
   var referencia=eval("t_"+clave_post);
   referencia.Tick();
   if(referencia.Segundo()>0)
      {
      if($("TiempoEditar_"+clave_post))
         $("TiempoEditar_"+clave_post).innerHTML=referencia.Segundo();
      setTimeout("TickPost('"+clave_post+"')",1000);
      }
   else
      {
      $("TiempoEditarContenedor_"+clave_post).innerHTML="Timeout!! Ya no puedes editar este post!!.";
      }
   }

function EditarPost(blog,pagina,post,real)
   {
   var texto_actual=$("Post").value;
   var editar=true;
   if(texto_actual && texto_actual!="¡Deja un comentario!")
      editar=confirm("Editar este post borrará todo lo que tengas escrito actualmente en el campo para postear. ¿Seguro que quieres continuar?.");
   if(editar)
      {
      $("Post").value="Cargando post para editar...";
      function Editar(respuesta)
         {
         $("Post").value=respuesta.responseText;
         Palabras("Post");
         Caracteres("Post")
         codigo_acciones=$("AccionesPostear").innerHTML;
         $("AccionesPostear").innerHTML="Estás editando el post "+real+". <input type=\"button\" value=\"Cancelar Edición\" onclick=\"CancelarEdicion()\"> <input type=\"button\" value=\"Guardar Cambios\" onclick=\"GuardarEdicion("+post+")\">";
         }
      var ajax=new Ajax("ajax_codigo_l85.php");
      ajax.Finalizar(Editar);
      ajax.Enviar("GET","?blog="+blog+"&pagina="+pagina+"&post="+post);
      }
   }

function CancelarEdicion()
   {
   $("AccionesPostear").innerHTML=codigo_acciones;
   $("Post").value="";
   Palabras("Post");
   Caracteres("Post")
   }

function GuardarEdicion(post)
   {
   var texto=encodeURIComponent($("Post").value);
   if(!texto)
      {
      alert("¡No puedes dejar el post vacío!. Tienes que escribir algo.");
      return;
      }
   else
      {
      $("BarraDeEstado").innerHTML="<blink>Enviando los cambios del post...</blink>";
      $("BarraDeEstado").style.visibility="visible";
      $("Previsualizar").innerHTML="";
      var ajax=new Ajax("ajax_editar_post.php");
      ajax.Finalizar(ActualizarPosts);
      ajax.Enviar("POST","blog="+blog+"&pagina="+pagina+"&post="+post+"&texto="+texto+"&clave="+clave);
      CancelarEdicion();
      }
   }

//Funciones para puntuar la página
var nota=10;

function ActivarPuntuar(valor)
   {
   if(!cuenta_sesion || cuenta_sesion=="anonimo")
      {
      $("Puntuacion").innerHTML="Necesitas iniciar sesión para votar";
      return;
      }
   if(tipo=="Virtual")
      {
      $("Puntuacion").innerHTML="Cuentas virtuales no pueden votar";
      return;
      }
   if(cuenta_sesion==blog)
      {
      $("Puntuacion").innerHTML="¡No puedes votarte a ti mismo!";
      return;
      }
   if(componente)
      {
      $("Puntuacion").innerHTML="Eres componente de esta cuenta virtual. ¡No puedes votar!.";
      return;
      }
   if(ha_puntuado)
      {
      $("Puntuacion").innerHTML="Ya has votado con un "+ha_puntuado;
      nota=ha_puntuado;
      RefrescarEstrellas(ha_puntuado);
      return;
      }
   RefrescarEstrellas(valor);
   $("Puntuacion").innerHTML="Haz click para puntuar con un "+nota;
   }

function RefrescarEstrellas(valor)
   {
   if(valor>0)
      nota=valor;
   var i=1;
   if(valor!=-1)
      {
      for(;i<=nota;i++)
         {
         if(i%2)
            $("Punto"+i).src=dir_skin+"/iconos/estrella_izq_ov.png";
         else
            $("Punto"+i).src=dir_skin+"/iconos/estrella_der_ov.png";
         }
      }
   else
      RefrescarPuntuacion();
   for(;i<=nota_actual;i++)
      {
      if(i%2)
         $("Punto"+i).src=dir_skin+"/iconos/estrella_izq_ok.png";
      else
         $("Punto"+i).src=dir_skin+"/iconos/estrella_der_ok.png";
      }
   for(;i<=10;i++)
      {
      if(i%2)
         $("Punto"+i).src=dir_skin+"/iconos/estrella_izq_ko.png";
      else
         $("Punto"+i).src=dir_skin+"/iconos/estrella_der_ko.png";
      }
   }

function RefrescarPuntuacion()
   {
   var nota=nota_actual;
   if(nota<1)
      nota="¿?";
   var texto="Valoración: "+nota+" puntos (<a href=\"javascript:Puntuacion('"+blog+"',"+pagina+")\">"+num_puntuaciones+" voto";
   if(num_puntuaciones!=1)
      texto=texto+"s";
   texto=texto+"</a>)<div id=\"VerPuntuacion\"></div>";
   $("Puntuacion").innerHTML=texto;
   $("PuntuacionPagina").innerHTML=nota;
   if(ha_puntuado && $("PuntuacionUsuario"))
      $("PuntuacionUsuario").innerHTML=ha_puntuado;
   else if($("PuntuacionUsuario"))
      $("PuntuacionUsuario").innerHTML="¿?";
   }

function Puntuar()
   {
   if(ha_puntuado || !cuenta_sesion || cuenta_sesion=="anonimo" || tipo=="Virtual" || componente)
      return;
   if(confirm("¿Seguro que quieres puntuar la página "+pagina+" de "+blog+" con un "+nota+"?"))
      {
      var ajax=new Ajax("ajax_puntuar.php");
      function Terminar(respuesta)
         {
         num_puntuaciones++;
         nota_actual=""+respuesta.responseText;
         ha_puntuado=nota;
         RefrescarEstrellas(-1);
         }
      ajax.Finalizar(Terminar);
      ajax.Enviar("GET","?blog="+blog+"&pagina="+pagina+"&nota="+nota+"&clave="+clave);
      }
   }

//***************
//Funciones relacionadas con la calificación de los posts
//***************

var desplegada="";

function DesplegarCalificaciones(tipo,id)
   {
   if(desplegada)
      {
      $(desplegada).style.visibility="hidden";
      var salir=false;
      if(tipo+"_"+id==desplegada || tipo==-1)
         salir=true;
      desplegada="";
      if(salir)
         return;
      }
   if(clave_post) //Ocultar la lista de calificiones ya realizadas
      Calificaciones("",1,1,1); //Los últimos 3 parámetros son triviales
   $(tipo+"_"+id).style.visibility="visible";
   desplegada=tipo+"_"+id;
   }

function Calificar(tipo,blog,pagina,post)
   {
   var ajax=new Ajax("ajax_calificar.php");
   function Terminar(respuesta)
      {
      eval(respuesta.responseText);
      DesplegarCalificaciones(-1,-1);
      $("BarraDeEstado").style.visibility="hidden";
      }
   $("BarraDeEstado").innerHTML="<blink>Enviando la calificación...</blink>";
   $("BarraDeEstado").style.visibility="visible";
   ajax.Finalizar(Terminar);
   ajax.Enviar("GET","?tipo="+tipo+"&blog="+blog+"&pagina="+pagina+"&post="+post+"&clave="+clave);
   }

//***************
//Funciones relacionadas con borrar posts
//***************

function Borrar(blog,pagina,post,numero)
   {
   if(confirm("¿Seguro que quieres borrar el post "+numero+" de esta página?"))
      {
      var ajax=new Ajax("ajax_borrar_post.php");
      function Terminar(respuesta)
         {
         ActualizarPosts(1);
         $("BarraDeEstado").style.visibility="hidden";
         }
      $("BarraDeEstado").innerHTML="<blink>Borrando post...</blink>";
      $("BarraDeEstado").style.visibility="visible";
      ajax.Finalizar(Terminar);
      ajax.Enviar("GET","?blog="+blog+"&pagina="+pagina+"&post="+post+"&clave="+clave);
      }
   }
