/* Archivo: buscador.js
 * Descripción: Módulo para manejar el buscador de productos y el filtro de los
 *		mismos.
 * Autor: Guillermo Martínez <gmartinez(a)visionados.com>
 */

  Buscador = {
  /* Rutas de recursos y métodos. */
    _RutaResultadoBusqeda_: "http://www.cienporciennatural.com/index.php/productos/busca/",
    _RutaResultadoFiltros_: "http://www.cienporciennatural.com/index.php/productos/",
    _RutaProductos_: "http://www.cienporciennatural.com/index.php/productos/",
  /* Esto se añade en el filtro, tras "_RutaResultadoFiltros_". */
    _SeccionFiltro_: "busqueda/",



  /* Realiza el filtro de productos. */
    doFiltroProductos: function (DatosForm, FormularioJQ, Opciones)
    {
      var Formulario = FormularioJQ[0], ListaProductos = [], ListaCategorias = [], URL = '';

      if (typeof Formulario.alpha_prods != 'undefined'  && Formulario.alpha_prods.selectedIndex != 0)
	ListaProductos.push (Formulario.alpha_prods.value);
      if (typeof Formulario.alimentos != 'undefined'    && Formulario.alimentos.selectedIndex != 0)
	ListaProductos.push (Formulario.alimentos.value);
      if (typeof Formulario.complementos != 'undefined' && Formulario.complementos.selectedIndex != 0)
	ListaProductos.push (Formulario.complementos.value);
      if (typeof Formulario.otros != 'undefined'        && Formulario.otros.selectedIndex != 0)
	ListaProductos.push (Formulario.otros.value);

      if (typeof Formulario.nutrientes != 'undefined'   && Formulario.nutrientes.selectedIndex != 0)
	ListaCategorias.push (Formulario.nutrientes.value);
      if (typeof Formulario.para_quien != 'undefined'   && Formulario.para_quien.selectedIndex != 0)
	ListaCategorias.push (Formulario.para_quien.value);
      if (typeof Formulario.para_que != 'undefined'     && Formulario.para_que.selectedIndex != 0)
	ListaCategorias.push (Formulario.para_que.value);
      if (typeof Formulario.ingredientes != 'undefined' && Formulario.ingredientes.selectedIndex != 0)
	ListaCategorias.push (Formulario.ingredientes.value);

      if (ListaProductos.length > 0)
	ListaProductos = ListaProductos.join (',');
      else
	ListaProductos = '0';
      if (ListaCategorias.length > 0)
	ListaCategorias = ListaCategorias.join (',');
      else
	ListaCategorias = '0';
      if (ListaProductos != '0' || ListaCategorias != '0') {
	document.location = Buscador._RutaResultadoFiltros_ + Buscador._SeccionFiltro_
			  + ListaCategorias+"/"+ListaProductos;
      }
      return false;
    },



  /* Respuesta al botón "buscar". */
    onClickBuscar: function (aBoton)
    {
      switch ($("#donde:checked").val()) {
      case "8": // Productos.
	aBoton.preventDefault ();
	document.location = Buscador._RutaResultadoBusqeda_+encodeURI ($("#search")[0].value);
      default:
	return;
      }
    },



  /* Inicializa el objeto. */
    onReadyInicializa: function ()
    {
      var Componente;

      try {
	Componente = $("#buscar");
	if (Componente.length > 0)
	  Componente.click (Buscador.onClickBuscar);
	Componente = $("#filter");
	if (Componente.length > 0)
	  Componente.ajaxForm ({beforeSubmit: Buscador.doFiltroProductos});
      }
      catch (Error) {
	alert (Error);
      }
    },



  /* Pone "la sección". */
    PonSeccion: function (Seccion)
    {
      this._SeccionFiltro_ = encodeURI (Seccion);
    }
  };



/* Inicialización. */
  (function () { $(document).ready (Buscador.onReadyInicializa); }) ();

