

//<script type="text/javascript">

	//*******************************************************
	//RumbaEventos Galeria V2 - Clase Buscador
	//Autor: Antonio Khouri
	//Caracas / Venezuela
	//*******************************************************
	
	Delegate = {
	  create: function (obj, func, params)
	  {
		  var f = function()
		  {
			  return func.apply(obj, params);
		  };
		  return f;
	  }
	}
	
	//clase abstracta
	//Deben ser sobreescritos: generarLeyenda y SetItemPrecargado

	Buscador = function(minombre, nombre_item, url_xml_item, url_busc_comas, url_imagen, form_buscador, form_busc_menu) {
		//para tener el ambito correcto dentro de las funciones
		var me = this;
		this.nombre = minombre;
		this.rGal = null;

		//variables para mostrar los resultados (van al url)
		//en pagina no se guarda el numero de pagina en si
		//si no el indice del primer item que se debe imprimir en la lista
		var pagina=0;
		var busc_params="";

		//variables para controlar interaccion de búsqueda (igual pero no van al url
		var lista = new Array();
		var timeout = 0;
		var timing;
		var refrescando = false;
		this.leyenda="";

		//variables para controlar interaccion de las item
		var cant_item = 0;
		var item_ajx;
		var item_timeout;
		var item_timing;
		var pag_listo = true;
		this.arr_precargados = new Array();
		this.arr_precargados_img = new Array();

		//getter y setter para todas las variables que son
		//invocadas desde otro archivo y no ha cargado

		this.getPagina = function () {return pagina;}
		this.getParams = function () {return busc_params;}

		this.getCantItem = function () {return cant_item;}
		this.setCantItem = function (valor) {cant_item = valor;}

		this.getNombreItem = function () {return nombre_item ;}
		this.setNombreItem = function (valor) {nombre_item = valor;}

		this.getURLImagen = function () {return url_imagen;}
		this.setURLImagen = function (valor) {url_imagen = valor;}

		this.getLista = function () {return lista;}
		this.setItem = function (arr_id, arr_coditem) {setItem(arr_id, arr_coditem);}
		
		//cambiar el numero de galería que se muestra en determinado item
		function setItem(arr_id_param, arr_coditem_param) {

			var arr_id = Array();
			var arr_coditem = Array();
			var tdgal = Array(), args = "";

			//procesar primero la lista
			//descartar los -1 (no va) y -2 (mensaje de no se encontró)

			var cont=0;
			while (arr_id_param.length > 0) {
				var id = arr_id_param.pop();
				var coditem = arr_coditem_param.pop();

				if (id != -3)
					if ($(nombre_item + '_' + id) == null) continue;

				if (coditem == -1) {  //el id -1 indica borrar item
					$(nombre_item + '_' + id).innerHTML = "&nbsp;";
				} else if (coditem == -2) { //el coditem -2 indica colocar la frase "no se encontro"
					$(nombre_item + '_' + id).innerHTML = "No se encontraron resultados";
				} else if (typeof(me.arr_precargados[coditem]) != "undefined") {
					//ya esta item estaba cargada
					if (id != -3)
						me.setItemPrecargado($(nombre_item + '_' + id), coditem);
				} else {
					arr_id.push(id);
					arr_coditem.push(coditem);

					//parametros para item.php
					args += "id[]=" + coditem + "&";

					//el id -3 indica solo precarga
					if (id != -3) {
						$(nombre_item + '_' + id).innerHTML = "<img src='cargando.gif' height='12' width='12' alt='cargando...' /><br />";
						tdgal.push($(nombre_item + '_' + id));
					} else {
						tdgal.push(0);
					}
					cont++;
				}
			}

			//si no queda nada que cargar, abortar
			if (cont == 0) return;

			//abortar cualquier peticion XMLhttpRequest anterior para esta item
			if (item_ajx != null) item_ajx.transport.abort();
			delete item_ajx;

			//abortar cualquier accion de timeout anterior para esta item
			item_timeout = 0;
			if (item_timing != null)
			clearTimeout(item_timing);

			item_timing = setTimeout(Delegate.create(me, me.temporizadorItem, [arr_id]),350);

			//comenzar peticion
			item_ajx = new Ajax.Request(url_xml_item, {
				onSuccess : function(resp) {

					//hay respuesta
					//cancelar cualquier timeout que iba en camino
					item_timeout = -1;
					if (item_timing != null) clearTimeout(item_timing);

					//revisar la respuesta XML y colocarla en estas variables
					var id, fecha, nombre, resumen, albumid, album;
					var aux = Array();

					respuesta = resp.responseXML;

					//precargar todos primero
					for (i=0; i < arr_id.length; i++) {
						me.arr_precargados[arr_coditem[i]] = respuesta.getElementsByTagName("resultados")[i].cloneNode(true);

						//precargar primero las imagenes que se van a mostrar en la pagina
						/*if (arr_id[i] == -3) continue;
						me.arr_precargados_img[arr_coditem[i]] = new Image();
						me.arr_precargados_img[arr_coditem[i]].src = url_imagen + arr_coditem[i];*/
					}

					//ahora mostrar
					for (i=0; i < arr_id.length; i++) {
						//el coditem -3 indica solo precarga
						//si esta activado no se debe vaciar en ningun item

						if (arr_id[i] != -3)
							me.setItemPrecargado(tdgal[i], arr_coditem[i]);
					}


					//precargar las imágenes
					for (i = arr_id.length -1; i >= 0; i--) {
						if (arr_id[i] == -3)
							me.precargarImagen(arr_coditem[i]);
					}

				},
				onFailure : function(resp) {

					//cuando falla se detiene el timeout
					item_timeout = -1;
					if (item_timing != null) clearTimeout(item_timing);

					//y se carga un mensaje de error en su lugar
					if (tdgal != null) tdgal.innerHTML = "No se pudo cargar<br/><a href='REINTENTAR' onclick='" + minombre + ".refrescarPagina(); return false;'>REINTENTAR</a>";
				},
				parameters : args
				});

		}

		this.precargarImagen = function(id) {/*cada hijo que se encargue de su imagen*/}

		//funcion usada por la anterior, para el timeout
		this.temporizadorItem = function(arr_id) {
			//si me cambiaron el valor desde afuera a -1, no hacer mas nada
			if (item_timeout == -1) return;

			//aumentar el contador en 1
			item_timeout++;

			//si el contador no ha llegado ha llegado a 11
			if (item_timeout < 30) {
				//esperar 2 segundos mas y pintar otro puntito
				//for (i = 0; i < arr_id.length; i++) 
					//if ($(nombre_item + '_' + arr_id[i]) != null) $(nombre_item + '_' + arr_id[i]).innerHTML += "Cargando resumen de galería ......".substring(item_timeout-1, item_timeout);

				//anotar un punto adicional
				item_timing = setTimeout(Delegate.create(me, me.temporizadorItem, [arr_id]),350);
			} else {
				//si no abortar y pintar un mensaje de error
				item_ajx.transport.abort();
				for (i = 0; i < arr_id.length; i++)
					if ($(nombre_item + '_' + arr_id[i]) != null) $(nombre_item + '_' + arr_id[i]).innerHTML = "No se pudo cargar<br/><a href='VOLVER_A_INTENTAR' onclick='" + minombre + ".refrescarPagina(); return false;'>REINTENTAR</a>";
			}
		}

		//carga de items precargados (privado, lo llama la funcion anterior)
		//debe ser sobreescrita
		this.setItemPrecargado = function (tdgal, coditem) {}

		var en_busqueda = false;

		//funciones para busquedas
		this.buscar = function(params, ir_a_pagina) {

			if (en_busqueda) return;

			en_busqueda = true;

			me.rGal.activarPubliGeneral();

			if (params == null) busc_params = "";
			else busc_params = params;

			//y que no quede ningún item activo (timing y ajx)
			//ni con contenido
			var lista_limpiar_item_id = Array();
			var lista_limpiar_item_gal = Array();

			for (i = 0; i < cant_item; i++) {
				lista_limpiar_item_id[i] = i;
				lista_limpiar_item_gal[i] = -1;
			}

			setItem(lista_limpiar_item_id, lista_limpiar_item_gal);
			if (item_timing != null) clearTimeout(item_timing);
			if (item_ajx != null) item_ajx.transport.abort();

			//deshabilitar el formulario de búsqueda mientras se busca
			me.deshabilitarForm();

			//comenzar el timeout y borrar la leyenda
			timeout = 0;
			timing = setTimeout(Delegate.create(me, me.temporizadorBuscar, new Array()),200);
			
			me.rGal.pararAjx();

			$('div_leyenda').innerHTML = "<img src='cargando.gif' height='12' width='12' alt='cargando...' /> Buscando ";
			$('pag_navegar').style.display = "none";
			$('pag_navegar').innerHTML = "";
			$('div_resumen').innerHTML = '';
			$('pag_menu').innerHTML = '';

			if ($("div_leyenda_album") != null) {
				$("div_leyenda_album").style.display = 'none';
				$("div_leyenda").style.display = 'block';
			}

			//comenzar a buscar
			me.rGal.ajxGeneral = new Ajax.Request(url_busc_comas, {
				onSuccess : function(resp) {

					//cuando se tiene respuesta eliminar el timeout
					timeout = -1;
					if (timing != null) clearTimeout(timing);

					//convertir la respuesta (id de galerias separadas por coma)
					//en arreglo y almacenar en lista
					lista = resp.responseText.split(",");

					//quitar el resaltado anterior
					if (me.rGal.categ != "") {
						if ($('categ_' + me.rGal.categ) != null) {
							$('categ_' + me.rGal.categ).style.backgroundColor = 'white';
							$('categ_' + me.rGal.categ).style.fontWeight = 'normal';
							$('categ_' + me.rGal.categ).childNodes[0].style.color = 'black';
						}
					}

					//la categ, la leyenda y los params recibidos (los ultimos de las comas
					me.rGal.categ = lista.pop();
					me.rGal.censura = lista.pop();
					busc_params = lista.pop();

					//generar la leyenda
					me.leyenda = "";
					//me.leyenda = "<a class='leyendalink' href='./'>RumbaEventos</a>";
					//me.leyenda += " &gt; <a class='leyendalink' href='./galerias.php'>Galerias</a> ";
					//me.leyenda += " &gt; Galerias ";

					//poner el resaltado nuevo de categoria
					$('categ_' + me.rGal.categ).style.backgroundColor = $('categ_peq_' + me.rGal.categ).style.backgroundColor;
					$('categ_' + me.rGal.categ).style.fontWeight = 'bold';
					$('categ_' + me.rGal.categ).childNodes[0].style.color = 'white';
					$('menu_top').style.backgroundColor = $('categ_peq_' + me.rGal.categ).style.backgroundColor;
					$('pag_navegar').style.backgroundColor = $('categ_peq_' + me.rGal.categ).style.backgroundColor;
					$('form_menu').style.backgroundColor = $('menu_top').style.backgroundColor;
					Nifty('#form_menu', 'transparent tr bl br');

					var nombre_categ = "Todas las galerías";
					if (me.rGal.categ != "-1") {
						for (i = 0; i < $('selcategoria').options.length; i++) {
							if ($('selcategoria').options[i].value == me.rGal.categ) {
								nombre_categ = $('selcategoria').options[i].innerHTML;
								break;
							}
						}
					}

					//leyenda
					me.leyenda += "<a class='leyendalink' href='re.php?categoria=" + me.rGal.categ + "' "
								 +"onclick='" + me.rGal.nombre + ".buscarParams(\"\", \"\", \"\", \"" 
								 + me.rGal.categ
								 +"\", \"\"); return false;'>"
								 + nombre_categ + "</a>"
							 ;

					//habilitar el formulario de búsqueda
					me.habilitarForm();
	
					en_busqueda = false;

					me.leyenda += me.generarLeyenda(busc_params, lista, me.rGal.categ);

					$('div_leyenda').innerHTML = me.leyenda;


					//mostrar primera página de resultados
					me.setPagina(ir_a_pagina);

					if (me.rGal.censura > "B" && me.rGal.censurado == true) {
						me.rGal.en_censura = true;
						//alert("prueba");
						$('div_form').innerHTML = 
							"<table width='100%'>"
							+"	<tr>"
							+"		<td style='height: 400px; vertical-align: middle; text-align: center; color: #4B4B4B; font-size: 13px;'>"
							+"			La siguiente galería contiene elementos<br />"
							+"			de lenguaje, salud, sexo y/o violencia <br />"
							+"			solo apto para mayores de edad.<br />"
							+"			<br /><br />"
							+"			<a href='#' onclick='rgl.continuarCD(); return false;' style='color: blue; font-size: 16px;'>Abrir Galería de Fotos Censura " + me.rGal.censura + "</a>"
							+"			<br /><br />"
							+"			<a href='#' onclick='history.back(); return false;' style='color: blue; font-size: 16px;'>Volver</a>"
							+"		</td>"
							+"	</tr>"
							+"</table>";

						me.rGal.encensura = true;
						return;
					}

				},
				onFailure : function(resp) {
					//si falló, cancelar el timeout
					timeout = -1;
					if (timing != null) clearTimeout(timing);

					//colocar en leyenda un mensaje de error
					$('div_leyenda').innerHTML = "No se pudo conectar para buscar "
												+" <a href='VOLVER_A_INTENTAR' onclick='" + minombre + ".refrescarBusqueda(); return false;'>Vuelva a Intentarlo</a>";

					//habilitar el formulario de búsqueda
					me.habilitarForm();

					en_busqueda = false;

				},
				parameters : encodeURI(busc_params.replace(/\*a\//g, '&').replace(/\*u\//g, '=') + "&comas=1").replace(/\+/g, '%2B')
				});
		}

		//funcion usada por la anterior, para el timeout
		this.temporizadorBuscar = function() {

			//si me cambiaron el contador por fuera, no hacer nada
			if (timeout == -1) return;

			//aumentar un punto el contador
			timeout++;

			//si el contador no ha llegado a 25 esperar 600 ms mas y colocar un puntito
			if (timeout < 25) {
				timing = setTimeout(Delegate.create(me, me.temporizadorBuscar, new Array()),600);
				$('div_leyenda').innerHTML += '.';
			} else {
				//si se acabo el tiempo abortar el ajx y pintar un mensaje de error
				me.rGal.pararAjx();

				$('div_leyenda').innerHTML = "No se pudo conectar para buscar "
											+" <a href='VOLVER_A_INTENTAR' onclick='" + minombre + ".refrescarBusqueda(); return false;'>Vuelva a Intentarlo</a>";

				//habilitar el formulario de búsqueda
				me.habilitarForm();

				en_busqueda = false;

			}
		}

		this.deshabilitarForm = function () {
			$('btnbuscar').value = "...";
			/*$('btnbuscar').disabled = true;
			//$('txtbuscar').disabled = true;
			$('selcategoria').disabled = true;
			$('selfecha').disabled = true;
			$('selciudad').disabled = true;*/
		}

		this.habilitarForm = function () {
			$('btnbuscar').value = "Ir";
			/*$('btnbuscar').disabled = false;
			//$('txtbuscar').disabled = false;
			$('selcategoria').disabled = false;
			$('selfecha').disabled = false;
			$('selciudad').disabled = false;*/
		}

		//funcion debe ser sobreescrita
		this.generarLeyenda = function(busc_params, lista, categ) {return "Leyenda";}

		var form_menu_cargado=false;
		this.setFormBuscador = function(form_busc) {
			//Asegurarse de que todo el framework esté en modo buscador
			form_buscador = form_busc;
			$('div_form').innerHTML = form_buscador;
			$('div_leyenda').innerHTML = me.leyenda;

			//cargar una sola vez, en realidad no deberia hacer esto asi
			//pero como estoy usando el mismo pa todo el mundo
			if (!form_menu_cargado) {
				$('form_menu').innerHTML = form_busc_menu;
				form_menu_cargado = true;
			}
			
		}

		this.setFormResumen = function(form_res) {
			//Asegurarse de que todo el framework esté en modo buscador
			$('div_resumen').innerHTML = form_res;
		}

		this.setPagMenu = function(form_res) {
			//Asegurarse de que todo el framework esté en modo buscador
			$('pag_menu').innerHTML = form_res;
			$('pag_menu').style.display = "block";
		}

		this.getFormBuscador = function() {
			return form_buscador;
		}

		this.refrescarFormBuscador = function() {
			me.setFormBuscador(form_buscador);
		}

		//funcion para cambiar el primer item que se muestra en la lista
		//es llamada tambien a la primera búsqueda (con valor 0)
		this.setPagina = function (numero) {

			pag_listo = false;
			var masactual;
			var masantiguo;

			//si me mando un numero incorrecto rebotar
			numero = parseInt(numero);
			if (isNaN(numero)) return;

			//rango es la posicion del item donde se va a empezar a imprimir
			// y asignar variable global de página (el mismo)
			rango = numero;

			//asegurar que el rango no se salió de la lista
			if (rango > lista.length - cant_item)
				rango = lista.length - cant_item;

			if (rango < 0)
				rango = 0;

			//pag_izq es la cantidad de páginas que tendría a la izquierda
			//pag_der la cantidad de paginas que tendría a la derecha
			//pag_act es el numero de pagina correcto para la exposicion actual
			//cant_paginas es el total de páginas
			//coño como me costó escribir estas dos lineas!!!!

			pag_izq = Math.round((rango / cant_item) + 0.49);
			pag_der = Math.round(((lista.length - (rango + cant_item)) / cant_item) + 0.49);
			cantpaginas = pag_izq + 1 + pag_der;
			pag_act = pag_izq + 1;
			primer_mostrado = (rango + 1);
			ultimo_mostrado = (rango + cant_item);
			if (ultimo_mostrado > lista.length)
				ultimo_mostrado = lista.length;

			//imprimir las flechas de navegación
			//siempre que no estén en la primera o última página
			if (rango == 0)
				masactual = "";
			else {
				//lo modifico temporalmente para que el
				//generador de hash me de el link correcto
				pagina = rango - cant_item;
				masactual = "<a id='masactual' href='#" + me.rGal.getHashStatusActual() + "' onclick='" + minombre + ".setPagina(" + pagina + "); return false;'>anterior</a>";
			}

			if (rango == lista.length - cant_item || lista.length <= cant_item)
				masantiguo = "&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;";
			else {
				//lo modifico temporalmente para que el
				//generador de hash me de el link correcto
				pagina = rango + cant_item;
				masantiguo = "<a id='masantiguo' href='#" + me.rGal.getHashStatusActual() + "' onclick='" + minombre + ".setPagina(" + pagina + "); return false;'>siguiente</a>";
			}
			
			//le doy el valor correcto para pagina
			pagina = rango;

			//el navegador de páginas, que invoquen a la proxima pagina correcta segun el resize
			$('pag_navegar').style.display = "block";
			$('pag_navegar').innerHTML =
				masactual
				+"<input type='text' id='pag' value='" + (pag_act) 
				+"' onfocus='this.select();' onblur='this.value=" + (pag_act) + ";' "
				+"onkeydown='if (event.keyCode==13) {" 
				+ minombre + ".setPagina(" + rango + " + " + cant_item + " * (parseInt(this.value) - " + pag_act + ")); this.select();}' />"
				+"<span id='txtpaginas'> de "
				+ cantpaginas + "</span>"
				+ masantiguo
			;
			

			//TO DO
			if ($("navegador_inferior") != null) {
				var nav_inferior = "";
				if (masactual != "") nav_inferior += "<a href='#" + me.rGal.getHashStatusActual() + "' onclick='" + minombre + ".setPagina(" + (rango - cant_item) + "); return false;'>Anterior</a>";
				if (masactual != "" && masantiguo != "") nav_inferior += " | ";
				if (masantiguo != "") nav_inferior += "<a href='#" + me.rGal.getHashStatusActual() + "' onclick='" + minombre + ".setPagina(" + (rango + cant_item) + "); return false;'>Siguiente</a>";
				$('navegador_inferior').innerHTML = nav_inferior;
			}

			Nifty("#pag_navegar", "small");

			if (primer_mostrado != ultimo_mostrado)
				$('pag_mostradas').innerHTML = "mostrando " + primer_mostrado + " al " + ultimo_mostrado  + " de " + lista.length;
			else
				$('pag_mostradas').innerHTML = "TIP: pruebe utilizar la rueda del ratón"
			
			//pintar las item (usar la funcion para cambiarlas de id de galeria)

			var lista_idgals = Array();
			var lista_gals = Array();

			//ahora colocar a las listas la pagina siguiente y anterior
			//para pre-cargarlas (utilizar id -3)
			var cuantas_precargar = cant_item * 4;
			if (cant_item == 1) cuantas_precargar = 10;

			for (j = rango - cuantas_precargar; j < rango; j++) {
				if (j >= 0 && j < lista.length) {
					lista_idgals.push(-3);
					lista_gals.push(lista[j]);
				}
			}
			for (j = rango + cant_item; j < rango + (2 * cuantas_precargar); j++) {
				if (j >= 0 && j < lista.length) {
					lista_idgals.push(-3);
					lista_gals.push(lista[j]);
				}
			}

			//se llenan dos listas, una con los id de items que se van a llenar
			//y la otra con los valores (id de galerias), y se pasa a la funcion camb_item
			for (i = cant_item - 1; i > 0; i--) {
				lista_idgals.push(i);

				if (lista.length > i)
					lista_gals.push(lista[rango + i]);
				else
					lista_gals.push(-1);   //-1 indica que deje el espacio vacío
			}

			//la primera item se asigna de ultimo
			//para asegurarse que no es un 0 que indica que no hay resultados
			lista_idgals.push(0);

			if (lista.length > 0 && lista[0] != "0") {
				lista_gals.push(lista[rango]);
			} else {
				lista_gals.push(-2);     //-2 indica mensaje de no hay resultados
			}

			setItem(lista_idgals, lista_gals);

			//actualizar el hash del url
			if (!refrescando)
				me.rGal.cambiarHashAhora();

			pag_listo = true;
		}

		this.refrescarPagina = function () {
			refrescando = true;
			me.setPagina(pagina);
			refrescando = false;
		}

		this.refrescarBusqueda = function () {
			refrescando = true;
			me.buscar(busc_params, pagina);
			refrescando = false;
		}

		this.pararBusqueda = function() {
			if (item_timing != null) clearTimeout(item_timing);
			if (timing != null) clearTimeout(timing);
			//me.detenerRuedaPag($('div_form'));
			me.detenerRuedaPag($('pag_navegar'));
		}

		/* Evento rueda del raton */

		var moverpagTimeout;
		function moverpag(delta) {

			if (me.rGal.getIsIE()) me.rGal.permitirCambHash = false;
			me.setPagina(me.getPagina() - (delta * me.getCantItem()));

			if (moverpagTimeout != null) clearTimeout(moverpagTimeout);

			//cambiar has solo cuando lo soltó por 2 segundos
			moverpagTimeout = setTimeout(function () {
				if (me.rGal.getIsIE()) me.rGal.permitirCambHash = true;
				if (me.rGal.getIsIE()) me.rGal.cambiarHashIncondicional(me.rGal.getHashStatusActual());
			}, 2000);
		}

		/** Event handler for mouse wheel event.*/
		function wheel(event){
				var delta = 0;
				if (!event) /* For IE. */
						event = window.event;
				if (event.wheelDelta) { /* IE/Opera. */
						delta = event.wheelDelta/120;
						/** In Opera 9, delta differs in sign as compared to IE.
						 */
						if (window.opera)
								delta = -delta;
				} else if (event.detail) { /** Mozilla case. */
						/** In Mozilla, sign of delta is different than in IE.
						 * Also, delta is multiple of 3.
						 */
						delta = -event.detail/3;
				}

				if (delta)
						moverpag(delta);

				if (event.preventDefault)
						event.preventDefault();

			event.returnValue = false;
		}

		/** igual que rueda pero flecha */
		function flecha(event){
			var delta = 0, desplaza = 0, tecla;

			if (!event) { // IE
				event = window.event;
				tecla = event.keyCode;
			}

			if (event.which) // Netscape/Firefox/Opera
				tecla = event.which;

			if (tecla == 37) delta = 1;
			if (tecla == 39) delta = -1;
			if (tecla == 38) desplaza = -14;
			if (tecla == 40) desplaza = 14;

			if (delta || desplaza) {
				
				if (delta) moverpag(delta);
				if (desplaza) self.scrollBy(0, desplaza);

				if (event.preventDefault)
					event.preventDefault();
				event.returnValue = false;
			} else {
				event.returnValue = true;
			}
		}

		this.iniciarRuedaPag = function(obj) {
			/** DOMMouseScroll is for mozilla. */
			if (obj.addEventListener)
					obj.addEventListener('DOMMouseScroll', wheel, false);
			/** IE/Opera. */
			obj.onmousewheel = wheel;

			//colocar onkeydown al body
			document.getElementsByTagName("body")[0].onkeydown = flecha;
			//$('txtbuscar').focus();
		}

		this.detenerRuedaPag = function (obj) {
			/** DOMMouseScroll is for mozilla. */
			if (obj.removeEventListener)
					obj.removeEventListener('DOMMouseScroll', wheel, false);
			/** IE/Opera. */
			obj.onmousewheel = null;

			//colocar onkeydown al body
			document.getElementsByTagName("body")[0].onkeydown = null;
		}

	} //fin de clase

//</script>

