// JavaScript Document
var oBuscador = new function(){
	
	//C
	this.cambiarPagina = function(pag,e){
		iniciar();		
		pagina = pag;
		obtenerLista(true);
		if(e)StopEvent(e);
	}
	this.cambiarCategoria = function(idCat,e){
		if($('liCategoriaBuscador' + idCat).className != 'off'){
			if(idCategoria > 0){
				if($('liCategoriaBuscador' + idCategoria)){
					$('liCategoriaBuscador' + idCategoria).className = '';
				}
			}
			iniciar();		
			idCategoria = idCat;
			$('liCategoriaBuscador' + idCategoria).className = 'on';
			this.filtrar();
		}
		if(e)StopEvent(e);
	}
	this.cambiarCiudad = function(idCiud,e){
		if(idCiudad > 0){
			if($('liCiudadBuscador' + idCiudad)){
				$('liCiudadBuscador' + idCiudad).className = '';
			}
		}
		iniciar();		
		idCiudad = idCiud;
		$('liCiudadBuscador' + idCiudad).className = 'on';		
		this.filtrar();
		if(e)StopEvent(e);
	}
	this.cambiarPais = function(idP){
		if($('lineaPaisBuscador' + idP)){
			$('paisBuscador').value = $('lineaPaisBuscador' + idP).innerHTML;
		}
		else $('paisBuscador').value = '';
		idPais = idP;
		$('filterPaisBuscador').style.display = 'none';
		this.filtrar();
	}
	
	//E
	var enviar = function(archivo,valores){
		listo = false;
		req.pedir(archivo,valores);
	}
	
	//F
	this.filtrar = function(){
		iniciar();
		pagina = 1;
		valoresFiltros = 'idCiudad' + SEP_IGUAL + idCiudad + SEP_AND;
		valoresFiltros += 'idCategoria' + SEP_IGUAL + idCategoria + SEP_AND;
		if(pais)valoresFiltros += 'idPais' + SEP_IGUAL + idPais + SEP_AND;		
		obtenerLista(true);				
	}
	
	//I
	var iniciar = function(){
		if(!iniciado){
			req = new Request(listener);
			blockeador = $('blockerBuscador');
			setOpacity(70,blockeador);
			loader = $('loaderBuscador');
			pais = $('paisBuscador');
			iniciado = true;
		}
	}
	
	//L
	var listener = function(){

		listo = true;
		var d = req.respuestaXML;
		if(d){
			if(d.getAttribute('tipo') == 'devolverProductosBuscador'){
				var i;				
				if(categoriasEspeciales.length == 0){
					var partCat = d.getAttribute('idsCategorias').split(',');
					for(i=0;i<partCat.length;i++){
						categoriasEspeciales[partCat[i]] = 1;	
					}
				}
				for(i in categoriasEspeciales){
					if($('liCategoriaBuscador' + i)){
						if(d.getAttribute('cantidad' + i) == 0)$('liCategoriaBuscador' + i).className = 'off';	
						else{
							if(i == idCategoria)$('liCategoriaBuscador' + i).className = 'on';	
							else $('liCategoriaBuscador' + i).className = '';	
						}
					}
				}
				
				$('contProductosBuscador').innerHTML = d.firstChild.firstChild.data;
				if(d.childNodes[1].firstChild.data)$('contCiudadesBuscador').innerHTML = d.childNodes[1].firstChild.data;
			}
		}
		else alert(req.respuestaHTML);
		
		mostrarBlockeador();
	}

	//M
	this.mostrarFilterPais = function(mostrar){
		if(mostrar){
			clearInterval(intervaloPais);
			$('filterPaisBuscador').style.display = 'block';			
		}
		else{
			intervaloPais = setTimeout(function(){
				$('filterPaisBuscador').style.display = 'none';
			},500);
		}
	}	
	var mostrarBlockeador = function(mostrar){
		if(mostrar){
			blockeador.style.width = blockeador.parentNode.offsetWidth + 'px';
			blockeador.style.height = blockeador.parentNode.offsetHeight + 'px';
			blockeador.style.display = 'block';
			loader.style.display = 'block';
			loader.style.marginTop = Math.round((blockeador.parentNode.offsetHeight-loader.offsetHeight)/2)+'px';
			loader.style.marginLeft = Math.round((blockeador.parentNode.offsetWidth-loader.offsetWidth)/2)+'px';			
		}
		else{
			blockeador.style.display = 'none';
			loader.style.display = 'none';			
		}
	}

	
	//O
	var obtenerLista = function(desdeFiltro){
		if(listo){
			var v = 'pagina' + SEP_IGUAL + pagina + SEP_AND;
			if(desdeFiltro)v += 'desdeFiltro' + SEP_IGUAL + 1 + SEP_AND;
			v += valoresFiltros;
			v += 'desdeRegion' + SEP_IGUAL + this.desdeRegion + SEP_AND;
			mostrarBlockeador(true);
			accion = 'devolverProductosBuscador';
			enviar(archivo + accion,v);
		}
	}.closure(this);
	
	//Q
	this.quitarFiltros = function(){
		iniciar();
		idPais = idCiudad = 0;
		if(pais)pais.value = '';
		this.filtrar();
		
	}
	

	var pagina = 1;
	var accion = '';
	var idCiudad = 0;
	var idCategoria = ID_CATEGORIA_DEFECTO;
	var idPais = ID_PAIS_DEFECTO;
	var valoresFiltros = 'idCategoria' + SEP_IGUAL + idCategoria + SEP_AND + 'idPais' + SEP_IGUAL + idPais + SEP_AND;	
	var iniciado = false;
	var intervaloPais = 0;

	var categoriasEspeciales = new Array();
	var pais = req = blockeador = loader = null;
	var archivo = DIR_ROOT + 'requests/ProductoMetodos.php?metodo=';
	var listo = true;
	
	
}
