// Scripts para mostrar las opiniones y sugerencias.

function muestra_categoria(id_categoria)
{
    // Quito las solapas activas    
    var solapas_act = getElementsByClassName('actual');
    for(var i=0; i < solapas_act.length; i++)
        jscss('remove', solapas_act[i], 'actual');
        
    // Activo la nueva solapa
    jscss('add', document.getElementById("cat_solapa_"+id_categoria), 'actual');

    
    // Quito el contenedor activo    
    var contenedores_act = getElementsByClassName("visible");
    for(var i=0; i < contenedores_act.length; i++)
        jscss('swap', contenedores_act[i], 'visible', 'oculta');
    
    // Activo el nuevo contenedor
    jscss('swap', document.getElementById("cat_contenido_"+id_categoria), 'oculta', 'visible');
}

// Devuelve un array con todos los objetos que se llaman "classname",
// buscando desde el nodo "node" hacia abajo.
function getElementsByClassName(classname, node)
{
      if(!node) 
        node = document.getElementsByTagName("body")[0];
      var a = [];
      var re = new RegExp('\\b' + classname + '\\b');
      var els = node.getElementsByTagName("*");
      for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))
            a.push(els[i]);

      return a;
}

/*
This example function takes four parameters:
    a:  defines the action you want the function to perform.
    o:  the object in question.
    c1: the name of the first class
    c2: the name of the second class

Possible actions are:
    swap:   replaces class c1 with class c2 in object o.
    add:    adds class c1 to the object o.
    remove: removes class c1 from the object o.
    check:  test if class c1 is already applied to object o and returns true or false.
*/
function jscss(a,o,c1,c2)
{
  switch (a){
    case 'swap':
      o.className=!jscss('check',o,c1)?o.className.replace(c2,c1): o.className.replace(c1,c2);
    break;
    case 'add':
      if(!jscss('check',o,c1)){o.className+=o.className?' '+c1:c1;}
    break;
    case 'remove':
      var rep=o.className.match(' '+c1)?' '+c1:c1;
      o.className=o.className.replace(rep,'');
    break;
    case 'check':
      return new RegExp('\\b'+c1+'\\b').test(o.className)
    break;
  }
}

//paginacion
function pagina_cat(pag_actual, id_categoria)
{
    var id_destino      = document.getElementById("id_destino").value;
    var id_tipo_destino = document.getElementById("id_tipo_destino").value;
    var idioma          = document.getElementById("idioma").value;
    var con_usuario     = document.getElementById("con_usuario").value;
    var items_pag       = document.getElementById("items_pag").value;

	var post_params = "id_destino="+id_destino+"&id_tipo_destino="+id_tipo_destino+"&id_categoria="+id_categoria+"&cod_idioma="+idioma+"&con_usuario="+con_usuario+"&items_pag="+items_pag+"&pag_actual="+pag_actual;

	var callback ={ 
	        timeout: 10000,
	        success: function(resp) 
	        {
		        if (resp.responseText != 0)
		        {
		          var sugerencias_paginadas   = YAHOO.lang.JSON.parse(resp.responseText);

		          setPaginacion (sugerencias_paginadas.paginacion, id_categoria);
		          setSugerencias(sugerencias_paginadas.sugerencias, id_categoria);
		        }
		        else
		        {
                  alert("No se han podido recuperar sugerencias para esa página");        
		        }
	        }
	    }
	    
	// Llamada AJAX    
	YAHOO.util.Connect.asyncRequest("POST", "/"+str_opiniones+"/do_ajax?action=getSugerenciasPaginadas", callback, post_params );
	
}



function setPaginacion(paginacion, categoria)
{
	var cajaPaginacion='<div class="width40 floatl alignLeft">\
                            Mostrando del ${min_actual} al ${max_actual} resultado{if MaxRecordCount > 1}s{/if} de ${MaxRecordCount}\
                        </div>\
                        <div class="width60 floatl alignright">\
                            {if !AtFirstPage}\
                                <a href="javascript:void(0)" onClick="pagina_cat(\'1\', \'${categoria}\')" title="Ir a la primera página">&lt;&lt;</a> | \
                                <a href="javascript:void(0)" onClick="pagina_cat(\'${AbsolutePage-1}\', \'${categoria}\')" title="Ir a la página ${AbsolutePage-1}">Anterior</a> | \
                            {/if}\
                            {for pagina in paginas}\
                                {if pagina == AbsolutePage}\
                                    ${pagina} | \
                                {else}\
                                    <a href="javascript:void(0)" onClick="pagina_cat(\'${pagina}\', \'${categoria}\')" title="Ir a la página ${pagina}">${pagina}</a> | \
                                {/if}\
                            {/for}\
                            {if !AtLastPage}\
                                <a href="javascript:void(0)" onClick="pagina_cat(\'${AbsolutePage+1}\', \'${categoria}\')" title="Ir a la página ${parseInt(AbsolutePage)+1}">Siguiente</a> | \
                                <a href="javascript:void(0)" onClick="pagina_cat(\'${LastPageNo}\', \'${categoria}\')" title="Ir a la última página">&gt;&gt;</a>\
                            {/if}\
                        </div>\
                        <div class="clear"></div>';
    
    // Calculamos min y max
    var min_actual = (paginacion.AbsolutePage * paginacion.ItemsPage) - paginacion.ItemsPage + 1;
    var max_actual = (paginacion.AbsolutePage * paginacion.ItemsPage);
    if(max_actual > paginacion.MaxRecordCount)
        max_actual = paginacion.MaxRecordCount;
    // Montamos un array con +/- 2 numeros de páginas a mostrar
    var pgs=[];
    for (i=paginacion.AbsolutePage-2; i<=paginacion.AbsolutePage+2;i++)
    {
        if( i>=1 && i<=paginacion.LastPageNo)
            pgs[pgs.length]=i;
    }
    // Asignamos los valores necesarios para el template
	var data= {
			    AbsolutePage:      paginacion.AbsolutePage,
			    LastPageNo:        paginacion.LastPageNo,
			    AtFirstPage:       paginacion.AtFirstPage,
			    AtLastPage:        paginacion.AtLastPage,
		        MaxRecordCount:    paginacion.MaxRecordCount,
		        ItemsPage:         paginacion.ItemsPage,
		        min_actual:        min_actual,
		        max_actual:        max_actual,
		        paginas:           pgs,
		        categoria:         categoria
		    }

    // Procesamos las variables con el template
	var mytplObj=TrimPath.parseTemplate(cajaPaginacion);
	var result = mytplObj.process(data);
	
	// Asignamos el resultado a la capa de paginacion
	$('paginacion_layer_'+categoria).innerHTML=result;
    
}
function setSugerencias(sugerencias, id_categoria)
{
    var cajaSugerencia = '<div class="caja_blanca">\
	                          <div class="top"><div></div></div>\
	                          <div class="mid">\
	                              <!-- USUARIO -->\
	                              <div class="floatl width20">\
                                      {if usuario_o.pseudonimo_public == "Anónimo"}\
                                          <img id="foto_container" src="/images_new/myatrapalo/imagen.gif" width="80" alt="Foto" class="padtop5 padbot5" />\
                                          <p class="padtop5 negrita">${usuario_o.pseudonimo_public}</p>\
                                      {else}\
                                          {if usuario_o.foto_usuario != ""}\
                                              <img id="foto_container" src="/images_new/myatrapalo/usuarios/${usuario_o.foto_usuario}" width="80" alt="Foto Usuario" class="padtop5 padbot5"/>\
                                          {else}\
                                              <img id="foto_container" src="/images_new/myatrapalo/imagen.gif" width="80" alt="Foto Anonimo" class="padtop5 padbot5"/>\
                                          {/if}\
                                          <p class="padtop5">\
                                              {if sugerencia_o.cod_idioma == "es"}\
	                                              <strong><a href="/miatrapalo/publico/${usuario_o.id_usuario_cod}">${usuario_o.nombre_public}</a></strong><br\>\
                                              {else}\
                                                  <strong>${usuario_o.nombre_public}</strong><br\>\
                                              {/if}\
	                                          ${usuario_o.poblacion_public}\
                                          </p>\
                                          <p class="padtop5"><strong>Usuario desde:</strong> ${usuario_o.fecha_alta_public}</p>\
                                      {/if}\
	                              </div>\
	                              <!-- SUGERENCIA -->\
	                              <div class="floatl width80">\
	                                  <div class="floatl width80 negrita rojo fonts14">${sugerencia_o.titulo}</div>\
	                                  <div class="floatl width20 negrita alignright">${sugerencia_o.fecha}</div>\
	                                  <div class="clear"></div>\
	                                  <p class="padtop5 padbot5">${sugerencia_o.texto}</p>\
                                      {if sugerencia_o.direccion!="" || sugerencia_o.poblacion!="" || sugerencia_o.website!="" || sugerencia_o.mail!="" || sugerencia_o.contacto!="" || sugerencia_o.telefono!=""}\
                                          <div class="pad5 borde_gris_2px">\
                                              {if sugerencia_o.direccion != ""}\
                                                  <p class="padbot5"><b>Dirección:</b> ${sugerencia_o.direccion}</p>\
                                              {/if}\
                                              {if sugerencia_o.poblacion != ""}\
                                                  <p class="padbot5"><b>Población:</b> ${sugerencia_o.poblacion}</p>\
                                              {/if}\
                                              {if sugerencia_o.website != ""}\
                                                  <p class="padbot5"><b>Website:</b> ${sugerencia_o.website}</p>\
                                              {/if}\
                                              {if sugerencia_o.mail != ""}\
                                                  <p class="padbot5"><b>E-Mail:</b> ${sugerencia_o.mail}</p>\
                                              {/if}\
                                              {if sugerencia_o.contacto != ""}\
                                                  <p class="padbot5"><b>Persona de contacto:</b> ${sugerencia_o.contacto}</p>\
                                              {/if}\
                                              {if sugerencia_o.telefono != ""}\
                                                  <p class="padbot5"><b>Teléfono:</b> ${sugerencia_o.telefono}</p>\
                                              {/if}\
                                          </div>\
                                      {/if}\
	                              </div>\
	                              <div class="clear"></div>\
	                          </div>\
	                          <div class="bot"><div></div></div>\
	                      </div>\
	                      <div class="clear padbot10"></div>';

    var mytplObj=TrimPath.parseTemplate(cajaSugerencia);
    $('sugerencias_layer_'+id_categoria).innerHTML="";

    for(var i=0; i<sugerencias.length; i++)
    {
	    var data = {
                       sugerencia_o : sugerencias[i],
                       usuario_o :    sugerencias[i].usuario
	               }
	               
        var result = mytplObj.process(data);
        $('sugerencias_layer_'+id_categoria).innerHTML += result;
    }

}
