Usuario:Chixpy/WSS1/botonesbusqueda.js

De Inciclopedia
Ir a la navegación Ir a la búsqueda

Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.

  • Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
  • Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
  • Opera: Presiona Ctrl+F5.
// Basada en la versión de Axxgreazz para el MonoBook-Suite de WP-es
// http://es.wikipedia.org/wiki/Usuario:Axxgreazz/Monobook-Suite

// Modificada por User:Chixpy

// Usa "inicializar.js"

// Evitemos su carga duplicada
if (!WSS.Buscador){

WSS.Buscador = {
  // Funciones para usar con la carga automática de buscadores
  // ---------------------------------------------------------

  // WSS.Buscador.SkinHacks ()
  // Hack muuuy específicos para ciertas wikis.
  SkinHacks : function()
  {
    // Inciclopedia -> Subir a caja de búsqueda.
    if (wgSiteName == "Inciclopedia")
    {
      BlqBusqueda = WSS.FP.ObtenerElemento("p-search", true);
      if (BlqBusqueda) {BlqBusqueda.style.top = "32px";};
    };
  },

  // WSS.Buscador.AnadirGrupoBuscadores (identificador)
  // Añade un menu nuevo grupo de buscadores relacionados (visualmente solo salta a la linea siguiente...)
  AnadirGrupoBuscadores : function(identificador)
  {
    WSS.Buscador.WSSBuscadores[WSS.Buscador.WSSBuscadores.length] = {"grupo": "", "url": "",
      "nombre": identificador, "descripcion": ""};   
  },

  // WSS.Buscador.AnadirBuscador (grupo, dirección, nombre, descripcion)
  AnadirBuscador : function(grupo, dirección, nombre, descripcion)
  {
    WSS.Buscador.WSSBuscadores[WSS.Buscador.WSSBuscadores.length] = {"grupo": grupo, "url": dirección,
      "nombre": nombre, "descripcion": descripcion};
  },	

  // Funciones internas para llamar desde otros módulos
  // --------------------------------------------------
  // WSS.Buscador.CrearNuevoGrupo (identificador)
  // Crea un nuevo grupo de botones de buscadores
  // Devuelve el grupo de botones de búsqueda creado
  CrearNuevoGrupo : function(identificador)
  {
    if ((identificador == "") || !identificador) {return;}

    // Si ya existe, ¡¡out!!
    if (WSS.FP.ObtenerElemento(identificador, true)) {return;}

    var NuevoGrupo = null;

    switch (skin)
    {
      case 'monaco': 
        NuevoGrupo = WSS.FP.AnadirAntes (
          WSS.FP.ObtenerElemento("navigation_widget"),
          WSS.FP.ObtenerElemento("search_box"),
          "div",
          {className:"GrupoBuscadores color2 center small", id:identificador});
       break;
      case 'oasis': 
      case 'wikia': 
        NuevoGrupo = WSS.FP.AnadirAntes (
          WSS.FP.ObtenerElemento("WikiaRail"),
          WSS.FP.ObtenerElemento("WikiaSearch"),
          "div",
          {className:"GrupoBuscadores color2 center small", id:identificador});
       break;
      case 'vector':
        NuevoGrupo = WSS.FP.AnadirHijo(
          WSS.FP.ObtenerElemento("searchform"),
          "div",
          {className:"GrupoBuscadores", id:identificador});
        break;
      default:
        NuevoGrupo = WSS.FP.AnadirAntes (
          WSS.FP.ObtenerElemento("p-search"),
          WSS.FP.ObtenerElemento("searchBody"),
          "div",
          {className:"GrupoBuscadores", id:identificador});
    }
    return NuevoGrupo;
  },

  // WSS.Buscador.CrearBuscador (grupo, direccion, nombre, ayuda)
  // Debería devolver el buscador creado... pero no lo hace :P
  CrearBuscador : function (grupo, direccion, nombre, descripcion)
  {
    if ((grupo == "") || !grupo) {return;}
    if ((direccion == "") || !direccion) {return;}
    if ((nombre == "") || !nombre) {return;}
    if (!descripcion) {descripcion == "";}
    
    var GrupoBuscadores = WSS.FP.ObtenerElemento(grupo);
    
    // Usando el tan odiado innerHTML...
    GrupoBuscadores.innerHTML +=  '<input type="button" class="searchButton" class="searchButton" ' +
        'style="font-size: xx-small; padding:0; margin:0;" ' +
        'onclick="WSS.Buscador.Buscar(\'' + direccion + '\')" value="' +
        nombre + '" title="' + descripcion + '" />';
    
    return;    
  },
  
  // Funcion de búsqueda usada por los botones creados
  // -------------------------------------------------
  Buscar : function (direccion)
  {
    switch (skin)
    {
      case 'monaco': 
        var texto = WSS.FP.ObtenerElemento("search_field");
        break;
      case 'answers':
        var texto = WSS.FP.ObtenerElemento("search_input");
        break;
      default:
        var texto = WSS.FP.ObtenerElemento("searchInput");
    }

    var Qs = '';
    
    if (escape(texto.value) == '')
    {  
      switch (wgNamespaceNumber )
      {
        case -1: 
          Qs = wgUserName;
          break;
        case 0: 
          Qs = WSSTituloSinSubpaginas().replace(/_/g , '+');
          break;
        default:
          Qs = WSSTituloSinSubpaginas().replace(/_/g , '+');
          Qs = Qs.substring(Qs.indexOf(':')+ 1 , Qs.length);
      }
    }
    else { Qs = texto.value; }
    window.open(direccion + Qs);
  },

  // Carga automática de buscadores
  // ------------------------------

  // WSS.Buscador.CargarBuscador
  // Funcion que cargar los menús.
  CargarBuscador: function()
  {
    if (WSS.Buscador.Cargar == false) {return;};

    // Vaciamos la caja de búsqueda
    switch (skin)
    {
      case 'monaco': 
        WSS.FP.ObtenerElemento("search_field").value = '';
        break;
      case 'answers':
        WSS.FP.ObtenerElemento("search_input").value = '';
        break;
      default:
        WSS.FP.ObtenerElemento("searchInput").value = '';
    }

    for (i = 0; i < WSS.Buscador.WSSBuscadores.length; i++)
    {
      if (WSS.Buscador.WSSBuscadores[i].url == ""){        
        WSS.Buscador.CrearNuevoGrupo (WSS.Buscador.WSSBuscadores[i].nombre);
      }
      else
      {
        WSS.Buscador.CrearBuscador (WSS.Buscador.WSSBuscadores[i].grupo, WSS.Buscador.WSSBuscadores[i].url,
          WSS.Buscador.WSSBuscadores[i].nombre,  WSS.Buscador.WSSBuscadores[i].descripcion);
      };
    };
  },

  WSSBuscadores : [],
  Cargar : true,    // Cargar módulo de buscadores
  Globales : true,  // Cargar buscadores globales
  Locales : true,   // Cargar buscadores locales
  Usuario : true    // Cargar buscadores globales de usuario

  // Nota: Los buscadores locales de usuario siempre se cargan cuando está activo
}

WSS.FP.IncluirConfiguracion ("buscadores", WSS.Buscador.Globales,
  WSS.Buscador.Locales, WSS.Buscador.Usuario);

addOnloadHook(WSS.Buscador.SkinHacks, false);
addOnloadHook(WSS.Buscador.CargarBuscador, false);

} //if (!WSS.Buscador)