window.addEvent('domready', function() {
  // Historial
  histo = new HistoryManager();
  histo.addEvent('onHistoryChange', function(hashi)
                                    {
                                      if (hashi != '') {
                                        if (hashi.split(':')[0] == 'cat') cargar_cuerpo(hashi.split(':')[1]);
                                        if (hashi.split(':')[0] == 'bus')
                                        {
                                          $('buscar').value = hashi.split(':')[1];
                                          realizar_busqueda();
                                        }
                                        } else {
                                          cargar_cuerpo(0)
                                        };
                                    });
  //  acordeón menú
  var myAccordion = new Accordion($$('.collapse_target'), $$('.sub'), {alwaysHide: true, start:'all-close'});
  // acordeón carrito
  myAccordion_carr = new Accordion($$('div.toggler'), $$('div.element'), {
		opacity: false,
		show:0,
		
		onActive: function(toggler, element){
			toggler.getElement('a').setStyle('color', '#666666').setStyle('font-weight', 'bold');
			cerrado_pdf = (toggler.get('id') == 'carro_pdf')?false:true;
		},
		onBackground: function(toggler, element){
			toggler.getElement('a').setStyle('color', '#999999').setStyle('font-weight', 'normal');
		}
	});
	// Menú carrito
	$$('div.pedido_nav > a').each( function(el, ind) {
		                                            var sub_el = el.getParent('div.pedido_nav').getElement('ul');
		                                            if (sub_el) {
  		                                            sub_el.set('opacity', 0);
  		                                            el.addEvent('mouseenter', function(){
                                              		  sub_el.fade('in');
                                              		});
                                              		el.getParent('div.pedido_nav').addEvent('mouseleave', function(){
                                              		  sub_el.fade('out');
                                              		});
                                              	}
		                                          });
  $('fire_buscador').addEvent('click', function(event){
                                         event.stop();
                                         realizar_busqueda();
                                        });
  $('form_buscar').addEvent('submit', function(event){
                                         event.stop();
                                         realizar_busqueda();
                                        });
  //autocompleter
  var inputWord = $('buscar');
  new Autocompleter.Request.JSON(inputWord, 'ajax/ajax_catalogo.php', {
		postData: {'accion': 'autocomplete'}
	});
	inputWord.addEvent('focus', function()
                       {
                         if (this.value == 'Buscador de productos') this.value = '';
                        });
  inputWord.addEvent('blur', function()
                       {
                         if (this.value == '') this.value = 'Buscador de productos';
                        });
  
  // Catálogo
  cargar_pdf();
  cargar_carrito();
  myTips = new Tips('.tips2',{
                    showDelay: 200,
                    hideDelay: 400,
                    fixed:false
                });
  myTips.addEvent('onShow', function(tip){
    tip.fade('in');
  });
  myTips.addEvent('onHide', function(tip){
    tip.fade('out');
  });
  $('ajax_loading_holder').setStyles({opacity: 0.7, display: 'none'});
  $('generador_catalogo').setProperty('target', '_blank');
  if ($('aparicion')) $('aparicion').setStyles({display: 'block', opacity: 0});
  // Formulario de pedido en detalle producto
  if ($('form_carro'))
  {
    var myCheck = new FormCheck('form_carro', {
                                  submitByAjax : true,
                                  ajaxEvalScripts: true,
                                  ajaxResponseDiv: 'carga_resultado',
                              		onAjaxFailure: function() {
                              			$('carga_resultado').set('html', '<div class="aviso error">Error enviando el pedido. Por favor, intente nuevamente.</div>');
                              		}
                              });
  }
});

window.addEvent('load', function() {
  if ($('aparicion')) {
  var myFx = new Fx.Tween($('aparicion'), {duration: 2000});
  myFx.start('opacity', '1');
  }
});

var categoria_actual, paginado, myTips, histo, myAccordion_carr, cerrado_pdf = true, paginado_cat;

function cargar_cuerpo(categoria)
{
  if (categoria_actual != categoria)
  {
    paginado_cat = 0;
    categoria_actual = categoria;
    histo.addState('cat:' + categoria);
    $('carga_contenido').set('html', '<div id="cont_cargando"><div id="img_cargando"><img src="images/loading.gif" alt="cargando"></div><div id="text_cargando">Cargando...</div></div>');
    var req = new Request.HTML({url: 'ajax/ajax_catalogo.php', 
                		update: $('carga_contenido'),
                		onComplete: function()
                		{
                		  
                		},
                		onFailure: function() {
                			$('carga_contenido').set('html', '<div class="aviso error">Error leyendo el listado de categorías.</div>');
                		}
                	}).send('accion=cargar_cuerpo&categoria=' + categoria);
  }
}

function realizar_busqueda()
{
  paginado = 0;
  var cadena = $('buscar').value;
  if (cadena == 'Buscador de productos')
  {
    alert('Ingrese el texto a buscar.');
  } else if ((cadena.length) < 3)
  {
    alert('Ingrese al menos 3 caracteres a buscar.');
  } else 
  {
    histo.addState('bus:' + cadena);
    categoria_actual = '';
      $('carga_contenido').set('html', '<div id="cont_cargando"><div id="img_cargando"><img src="images/loading.gif" alt="cargando"></div><div id="text_cargando">Cargando...</div></div>');
      var req = new Request.HTML({url: 'ajax/ajax_catalogo.php', 
                  		update: $('carga_contenido'),
                  		onComplete: function()
                  		{
                  		  
                  		},
                  		onFailure: function() {
                  			$('carga_contenido').set('html', '<div class="aviso error">Error leyendo el listado de categorías.</div>');
                  		}
                  	}).send('accion=buscar&cadena=' + cadena);
  }
}


function paginar(donde, cadena)
{
  if (donde == 'adelante') paginado += 8;
  if (donde == 'atras') paginado -= 8;
  $('resultado_productos').set('html', '<div id="cont_cargando"><div id="img_cargando"><img src="images/loading.gif" alt="cargando"></div><div id="text_cargando">Cargando...</div></div>');
  var req = new Request.HTML({url: 'ajax/ajax_catalogo.php', 
              		update: $('resultado_productos'),
              		onComplete: function()
              		{
              		  
              		},
              		onFailure: function() {
              			$('carga_contenido').set('html', '<div class="aviso error">Error leyendo el listado de categorías.</div>');
              		}
              	}).send('accion=paginado&cadena=' + cadena + '&paginado=' + paginado);
}

function paginar_cat(donde, categoria)
{
  if (donde == 'adelante') paginado_cat += 8;
  if (donde == 'atras') paginado_cat -= 8;
  $('carga_contenido').set('html', '<div id="cont_cargando"><div id="img_cargando"><img src="images/loading.gif" alt="cargando"></div><div id="text_cargando">Cargando...</div></div>');
  var req = new Request.HTML({url: 'ajax/ajax_catalogo.php', 
              		update: $('carga_contenido'),
              		onComplete: function()
              		{
              		  
              		},
              		onFailure: function() {
              			$('carga_contenido').set('html', '<div class="aviso error">Error leyendo el listado de categorías.</div>');
              		}
              	}).send('accion=paginado_cat&categoria=' + categoria + '&paginado=' + paginado_cat);
}

function cargar_pdf()
{
  var req_pdf = new Request.HTML({url: 'ajax/ajax_catalogo.php', 
                		update: $('catalogo_pdf'),
                		onComplete: function()
                		{
                		  $('ajax_loading_holder').setStyle('display', 'none');
                		  myTips.attach('.tips2');
                		},
                		onFailure: function() {
                		  $('ajax_loading_holder').setStyle('display', 'none');
                			$('catalogo_pdf').set('html', '<div class="aviso error">Error leyendo el listado del catálogo.</div>');
                		}
                	}).send('accion=cargar_pdf');
}   

function agregar_pdf(prod_id)
{
  if ($('carro_pedido') && cerrado_pdf) 
  {
    myAccordion_carr.display(1);
    loading_pdf.delay(500);
  } else {
    loading_pdf();
  }
  var agr_pdf = new Request({url: 'ajax/ajax_catalogo.php', 
                		onSuccess: function()
                		{
                		  cargar_pdf();
                		},
                		onFailure: function() {
                			alert('Error agregando producto al catálogo.');
                		}
                	}).send('accion=agregar_pdf&prod_id=' + prod_id);
}

function vaciar_pdf()
{
  if (confirm('Está seguro de vaciar el catálogo a imprimir?'))
  {
    loading_pdf();
    var vac_pdf = new Request({url: 'ajax/ajax_catalogo.php', 
                  		onSuccess: function()
                  		{
                  		  cargar_pdf();
                  		},
                  		onFailure: function() {
                  			alert('Error vaciando el catálogo.');
                  		}
                  	}).send('accion=vaciar_pdf');
  }                	
}

function categoria_pdf(categoria)
{
  if ($('carro_pedido') && cerrado_pdf) 
  {
    myAccordion_carr.display(1);
    loading_pdf.delay(500);
  } else {
    loading_pdf();
  }
  var agr_pdf = new Request({url: 'ajax/ajax_catalogo.php', 
                		onSuccess: function()
                		{
                		  cargar_pdf();
                		},
                		onFailure: function() {
                			alert('Error agregando categoría al catálogo.');
                		}
                	}).send('accion=agregar_categoria_pdf&cat_id=' + categoria);
}


function loading_pdf()
{
  var altura = $('element_pdf').getStyle('height').toInt();
  altura -= 62;
  $('ajax_loading').setStyle('height', altura);
  $('ajax_loading').getElement('img').setStyle('margin-top', (altura/2-7));
  $('ajax_loading_holder').setStyle('display', 'block');
}

function cerrar_tip_pdf()
{
  var myFx = new Fx.Tween($('holder_tip_pdf'));
  myFx.start('opacity', '0').chain(function(){$('holder_tip_pdf').setStyle('display','none');});
}

function cargar_carrito()
{
  myAccordion_carr.display(0);
  var req_car = new Request.HTML({url: 'ajax/ajax_catalogo.php', 
                		update: $('carrito_pedido'),
                		onComplete: function()
                		{
                		  myTips.attach('.tips2');
                		},
                		onFailure: function() {
                			$('carrito_pedido').set('html', '<div class="aviso error">Error leyendo el listado del carrito.</div>');
                		}
                	}).send('accion=cargar_carrito');
}

function eliminar_pedido()
{
  if (confirm('¿Está seguro que desea eliminar el pedido?'))
  {
    var req_eli = new Request({url: 'ajax/ajax_catalogo.php', 
                  		onSuccess: function(respu)
                  		{
                  		  if (respu = 'OK')
                  		  {
                  		    cargar_carrito();
                  		  } else {
                  		    alert('Error eliminando el pedido, por favor reintente luego.');
                  		  }
                  		},
                  		onFailure: function() {
                  		  alert('Error eliminando el pedido, por favor reintente luego.');
                  		}
                  	}).send('accion=eliminar_carrito');
  }
}

function quitar_producto(a_el, ean)
{
  var req_qui = new Request({url: 'ajax/ajax_catalogo.php', 
                		onSuccess: function(respuesta)
                		{
                		  if (respuesta == 'OK')
                		  {
                		    // Eliminar la fila de la tabla
                		    var fila = $(a_el).getParent().getParent();
                		    fila.getFirst().getChildren('input[name^=los_ean]').set('value', 0);
												fila.getElement('input[name^=las_cant]').set('value', 1);
                		    var myFx = new Fx.Tween(fila);
                        myFx.start('opacity', '0').chain(function(){fila.setStyle('display','none');});
                        cargar_carrito();
                		  } else {
                		    alert('Error eliminando el producto del pedido.');
                		  }
                		},
                		onFailure: function() {
                			alert('Error eliminando el producto del pedido.');
                		}
                	}).send('accion=quitar_producto_carrito&ean=' + ean);              	
}

function checknocero(el){
  if(el.get('value') == 0){
    el.errors.push('No puede cambiar la cantidad a cero, para eliminar el producto del pedido utilice el icono correspondiente.');
    return false;
  }
  return true;
}
