/**
 * @since 26.06.09
 * Adaptada para mostrar el resultado de la búsqueda cartográfica y
 * el cálculo de rutas por Luis Marin y busqueda cartografica Daily Medina.
 */

jQuery.noConflict();

var Busqueda = Class.create();

Busqueda.prototype = {
		
		//parametros
		_lista : null, 			//object
		_mostrando : null, 		//string
		_tipoBusqueda : null, 	//string
		_url : null, 			//string
		_param : null,		 	//string
		_data : null, 			//array
		_carga :null,			//boolean
		_contenido : null,		//string
		_rutasFunction : null,   //function
		_mostrarResultado : null,
		
		/**
		 * Constructor
		 * @return
		 */
		initialize: function() 
		{
			this._lista = jQuery("#busquedas");
			if(!this._lista) return;
			
			this._mostrando = false;
						
			this.showBusqueda();
			this.hideBusqueda();
			this.loadBusqueda();
		},
	
		loadBusqueda : function()
		{
			if(this._mostrando)
				this.loadReporte();
		},
		
		printBusqueda : function()
		{		
			
			var self = this;
			this._lista.find(".bottom_ico1").click(function(){
				if (self._tipoBusqueda == "rutas"){
					var dataHtml = jQuery("#imprimir_lista table");					
				} else {
					var dataHtml = jQuery("div#imprimir_lista table#tabla_titulo,div#imprimir_lista table#tbl-list");
				}
				var destHtml = jQuery("#data_not_print");
				jQuery.jPrintArea(dataHtml,destHtml);
					
			});
		},
		
		showBusqueda : function()
		{		
			var self = this;

				this._lista.find(".bottom_titulo2").click(function(){	
					//Elimina el cargador repetido apenas se presione el boton para cargar		

						if(self._mostrando){							
							if (!self._cargar)return;							
							self.loadReporte();						
							self._cargar = false;
						} else if (self._tipoBusqueda){
							self._lista.animate( {bottom:"0px"}, 1000, function(){
								self.loadReporte();							
								self._cargar = false;
								self._mostrando = true;	
								self.printBusqueda();
							});
					 	}				
						self._lista.find("#div_busqueda").empty();
				});
		},
		
		hideBusqueda : function()
		{
			var self = this;
			
			this._lista.find(".bottom_ico3").click(function(){

				if(!self._mostrando) return;	
				
				self._lista.animate( { bottom:"-182px"}, 1000 , function(){
					self._lista.find("#div_busqueda").empty();
					self._mostrando = false;
				});
			});
			
		},
		
		loadReporte : function()
		{	
			if(!this._mostrarResultado)
			{	
				trunk = ""; //string		
				if(this._tipoBusqueda == "rutas")
				{					
					var _url = this._url;
					var param = this._param;				
					this._lista.find("#titulo_reporte").text(this._data.rutas.title+':');
				}
				else if(this._tipoBusqueda == "carto")
				{
					this._lista.find("#titulo_reporte").text('');
					var param = {
							'buscar' : jQuery("#buscar").val(),
							'cbo_tipo_2' : jQuery("#cbo_tipo_2 > option:selected").val(),
							'cbo_pais' : jQuery("#cbo_pais > option:selected").val(),
							'cbo_estado' : jQuery("#cbo_estado > option:selected").val(),
							'cbo_ciudades' : jQuery("#cbo_ciudades > option:selected").val()
					};
					trunk = "buscador/src/";
					var _url = trunk + "listar_cartografica.php";
				}
				//Borra el div de cargando
				
				jQuery("#car_busqueda").empty();
				self = this;
				// Agregando el "cargando..."
				
				ajaxUtil.utilities.mostrar_cargando("div_busqueda", "car_busqueda", "media/img/indicator.gif");
				
				var self = this;
	//			alert(_url);
	//			console.log(param);	
				jQuery.ajax({
					   type: "POST",
					   dataType: "html",	
					   url: _url,
					   data: param,
					   success: function(data){
							
							try{
								eval('var json='+ data + ';');
							}catch(e){
								var json = null;
							}
							
							if (json&&json.razon&&json.razon=='0')
							{
								self._contenido = json.texto;
								data = '<center><b>'+json.texto+'</b></center>';
							}
							else
							{
								self._contenido = data;
								if(self._tipoBusqueda == "rutas")
									self._rutasFunction.apply(self, new Array(true));
							}
							self._lista.find("#div_busqueda").html(data);
							
							if(self._lista.find("#titulo_busq"))
								self._lista.find("#titulo_reporte").text(self._lista.find("#titulo_busq").val());
							
							//se hace click al menu de herramientas principal de la aplicacion, para que se mantenga seleccionado
							jQuery(".on_menu").click(function(){
								jQuery("#eve_qui").trigger("click");								
							});
							
							self.getSenalador();
							self.getPaginator(trunk /*string*/);
							//Quitando el "cargando..."
							ajaxUtil.utilities.quitar_cargando("car_busqueda", "div_busqueda");	
						}
				});
			}
			else
			{
				jQuery("#car_busqueda").empty();
				var self = this;
				if(this._contenido)
				{
					self._lista.find("#div_busqueda").html(self._contenido);
					//Quitando el "cargando..."
					ajaxUtil.utilities.quitar_cargando("car_busqueda", "div_busqueda");	
					self.getSenalador();
					self.getPaginator(trunk /*string*/);
				}
			}	
				
		},
		
		getPaginator : function(_trunk /*string*/)
		{	
			
			trunk = _trunk;			
			obj = Object.clone(this);	
			//return;
			jQuery(".preview > .quienes_titulo, .show > .quienes_titulo, .next > .quienes_titulo").click(function(event){					
				var href = jQuery(this).attr("href");
				var nom_arc= 'listar_cartografica.php';
				var arr_href = href.split(nom_arc);
				ajaxUtil.utilities.mostrar_cargando("div_busqueda", "car_busqueda", "media/img/indicator.gif");	
				jQuery("#div_busqueda").attr({title:"Cargando búsqueda..."});
				
				if (arr_href[0]==undefined)	//si esta indefinida es pafa firefox
					href = trunk+href;
				else 						//para explorer					
					href = trunk+nom_arc+arr_href[1];
				var tiempo=new Date().getTime();
				href = href + '&tie='+tiempo;				
				jQuery("#div_busqueda").load(href,function(){
					
					//se hace click al menu de herramientas principal de la aplicacion, para que se mantenga seleccionado
					jQuery(this).find(".on_menu").click(function(){
						jQuery("#eve_qui").trigger("click");						
					});
					
					obj.getSenalador();
					obj.getPaginator(trunk);					
					jQuery("#div_busqueda").attr({title:""});
					ajaxUtil.utilities.quitar_cargando("car_busqueda", "div_busqueda");
				});
				
				event.preventDefault();
			});	
		
		},
		
		getSenalador : function ()
		{
			// id = _none_cursor : es la id que se debe colocar en tr a la lista en caso de no querer remarcarlo con el cursor
			// id = _none: es la id que se va a colocar en el td en caso de que no se quiera integrar la clase css del esta script
			jQuery("#tbl-list tr[id!=_none_cursor]").hover(
				function(){	
					// se realizo de esta manera porque en firefox no se se hacia el contra del hover										
					jQuery("#tbl-list tr").removeClass("point_cursor")
					.children("td[id!='_none']").addClass("bg2");							
					jQuery(this).children('td').removeClass("bg2");																																															
					jQuery(this).addClass("point_cursor");
				},
				function(){									
					jQuery(this).children('td[id!="_none"]').addClass("bg2");
					jQuery(this).removeClass("point_cursor");														
				}
			);

		}
		
};