// JavaScript Document`
function Busqueda(){
	this.tits = document.getElementById('tipoBusqueda');
	this.resu = document.getElementById('resultados');
	//
	this.clave = document.getElementById('clave');
	this.btnBus = document.getElementById('imgBuscar');
	//
	this.req = new Request();
	this.req.listener = function(){
		var o = this.req.respuestaXML, i = 0, x = 0, t = 0, n = null, h = null, txtTit = '', txtCont = '', idPrimero = '', linkPrimero = '', s = '';
		
		this.esperar = false;
		
		if(!o){
			alert("Error: "+this.req.respuestaHTML);
			return false;
		}
		
		if(this.crearTitulos) txtTit = '<a class="solapaOn" onclick="oBusqueda.buscar(-1, this);">General<'+'/a>';
		//
		for(i = 0; i < o.childNodes.length; i++){
			//seccion
			n = o.childNodes[i];
			//ponemos la solapa si lo pediomos, y si hay mas de los que se muestran o mas categorias
			if(this.crearTitulos && (this.totalGeneral < parseInt(n.getAttribute('total')) || o.childNodes.length > 1)){
				txtTit += '<a id="solBus'+n.tagName+'" onclick="oBusqueda.buscar('+n.getAttribute('sec')+', this);">'+n.tagName+'<'+'/a>';
			}
			//subtitulo
			if(this.crearSubTitulos){
				txtCont += '<div class="itemTitSec" onclick="oBusqueda.buscar('+n.getAttribute('sec')+', document.getElementById(\'solBus'+n.tagName+'\'));">';
				//if(n.getAttribute('ico') != '') txtCont += '<img src="imgBusqueda/ico'+n.getAttribute('ico')+'.gif" alt="'+n.tagName+'" style="vertical-align:middle;" /'+'> ';
				txtCont += n.tagName+' ('+n.getAttribute('total')+')<'+'/div>';
			}
			//items
			for(x = 0; x < n.childNodes.length; x++){
				//item
				h = n.childNodes[x];
				txtCont += h.firstChild.data;
				
				if(this.seccion > 0) s = this.seccion;
				else if(!!h.getAttribute('sec')) s = parseInt(h.getAttribute('sec'));
				
				//solo para cuando estamos en una seccion puntual
				if(s > 0){
					eval("oEleCons"+oSecc[s]+h.getAttribute('id')+" = new oEleConsGen("+h.getAttribute('id')+", '"+oSecc[s]+"');");
					idPrimero = h.getAttribute('id');
					linkPrimero = h.getAttribute('ref');					
				}
			}
			//paginado
			t = Math.ceil(parseInt(n.getAttribute('total'))/this.totalSeccion);
			if(this.crearPaginado && t > 1){
				txtCont += '<div class="navegador">';
				for(x = 1; x <= t; x++){
					if(this.pagina == x) txtCont += '<strong>'+x+'<'+'/strong>';
					else txtCont += '<a onclick="oBusqueda.buscar('+n.getAttribute('sec')+',null,'+x+',this);">'+x+'<'+'/a> ';
				}
				txtCont += '<div>';
			}
		}
		//
		if(o.childNodes.length == 0){
			txtCont = '<div class="busquedaNoRes">La búsqueda no obtuvo resultados';
			if(this.seccion == 0) txtCont += ' sobre "<strong>'+this.claveBuscada+'<'+'/strong>"';
			txtCont += '<'+'/div>';
		}
		//
		if(this.crearTitulos){
			this.tits.innerHTML = txtTit;
			this.oTabAct = (this.tits.firstChild)? this.tits.firstChild : null;
		}
		//
		this.resu.innerHTML = txtCont;
		//
		window.setTimeout(controlarAltoLateral, 100);
		//
		if(this.endBuscar) this.endBuscar(idPrimero,linkPrimero);
	}.closure(this);
	
	//
	this.conError = false;
	this.esperar = false;
	//
	this.crearTitulos = true;
	this.crearSubTitulos = true;
	this.crearPaginado = false;
	//
	this.oTabAct = null;
	this.claveBuscada = '';
	this.seccion = 0;
	//
	this.totalGeneral = 3;
	this.totalSeccion = 3;
	this.pagina = 1;
	//
	this.enviarMasInfo = null;
	this.endBuscar = null;
	
	//
	this.controlar = function(){
		if(trim(this.clave.value).length < 2){
			this.conError = true;
			if(trim(this.clave.value) == '') this.resu.innerHTML = '<div class="itemTitSec" style="color:#FF0000; cursor:default;">Debe ingresar al menos una palabra clave para la búsqueda<'+'/div>';
			else this.resu.innerHTML = '<div class="itemTitSec" style="cursor:default;">Debe ingresar una palabra clave más larga<'+'/div>';
			this.tits.innerHTML = '';
		}
		else this.conError = false;
	};
	
	this.buscar = function(sec, oTab, pagina){
		var v = '';
		this.controlar();
		
		if(this.esperar || this.conError) return false;
		this.esperar = true;
		
		//solo cuando estamos en una seccion que no es la busqueda
		if(this.seccion != 0){
			sec = this.seccion;
			v += 'tipo|=|1|&|';
			if(!pagina) this.claveBuscada = this.clave.value;
			v += 'clave|=|'+this.claveBuscada+'|&|';
		}
		else v += 'tipo|=|2|&|';
		
		if(!sec){
			this.crearSubTitulos = this.crearTitulos = true;
			this.crearPaginado = false;
			//
			this.claveBuscada = this.clave.value;
			v += 'clave|=|'+this.claveBuscada+'|&|';
			//
			v += 'total|=|'+this.totalGeneral+'|&|';
		}
		else{
			v += 'seccion|=|'+sec+'|&|';
			this.crearTitulos = false;
			//
			v += 'clave|=|'+this.claveBuscada+'|&|';
			//
			if(sec <= 0){
				this.crearSubTitulos = true;
				v += 'total|=|'+this.totalGeneral+'|&|';
				//
				this.crearPaginado = false;
			}
			else{
				this.crearSubTitulos = false;
				v += 'total|=|'+this.totalSeccion+'|&|';
				//
				this.crearPaginado = true;
				if(!pagina) this.pagina = 1;
				else{
					this.pagina = pagina;
					v += 'pagina|=|'+this.pagina+'|&|';
				}
			}
			//
			if(oTab){
				if(!!this.oTabAct) this.oTabAct.className = '';
				this.oTabAct = oTab;
				this.oTabAct.className = 'solapaOn';
				this.clave.focus();
				this.clave.blur();
			}
		}
		//si queremos enviar mas datos a la busqueda
		if(!!this.enviarMasInfo) v += this.enviarMasInfo();
		
		this.resu.innerHTML = '<div class="busquedaLoader"><img src="'+DIR_SERVER_ROOT+'img/loader.gif" /><'+'/div>';
		this.req.pedir(DIR_SERVER_ROOT+'xmlHttpRequest/busqueda.php', v);
	}
	
	//
	AddEvent(this.btnBus, 'click', function(){ this.buscar(false); }.closure(this));
	AddEvent(this.clave, 'focus', function(){ this.clave.select(); }.closure(this));
	AddEvent(this.clave, 'keyup', function(event){ if(event.keyCode == 13) this.buscar(false); }.closure(this));
	
}
