function exchPaginacion(ident, options) {
	this.ident = ident;
	var urlAux = document.location.href;
	urlAux = urlAux.substring(0, urlAux.indexOf("/",8)); //Buscamos la primera barra a partir de http://
	if ((urlAux.indexOf("barceloviajes") != -1) || (urlAux.indexOf("barcelobusiness") != -1)) {
		this.url = urlAux + this.url;
	} else {
		var index = urlAux.length + 1;
		urlAux = document.location.href;
		this.url = urlAux.substring(0, urlAux.indexOf("/", index)) + this.url;
	}
	this.url += "?&ident="+this.ident+"&pagObj="+options.objName;
	this.objName = options.objName;
	// Traspasamos la cookie
	var ckval = getCookie("session_mem");
	delCookie("session_mem","/paginas/jspgen/");
	setCookie("session_mem", ckval, null,"/paginas/jspgen/");
};

exchPaginacion.prototype = {
	ident : null,						// Identificador (sesión)
	objName : "exchPag",				// Nombre del objeto
	pagNum : 1,							// Indica el número de página seleccionado
	url : "/jspgen/ajax/filtro.jsp",	// Url del jsp encargado de realizar el filtrado
	selector: null,						// Selector que define el filtro
	xslprms: null,						// Parámetros para la hoja de estilos
	onComplete: null,					// Ajax onComplete call

	showXml: function() {
		var _url = this.url+"&showXml=true";
		if (this.pagNum != 0) {
			_url += "&pagina="+this.pagNum;
		}
		if (this.selector != null) {
			_url += "&select="+this.selector;
		}
		if (this.xslprms != null) {
			_url += "&xslprms="+this.xslprms;
		}
		//alert(_url);
		var p_ventana = window.open(_url,'xml'+this.name,"scrollbars=1,resizable=1,menubar=0,toolbar=0,status=0,width=600,height=400");
		p_ventana.moveTo((screen.availWidth-600)/2,(screen.availHeight-400)/2);
		p_ventana.focus();
	},
	
	showResp: function() {
		var _url = this.url;
		if (this.pagNum != 0) {
			_url += "&pagina="+this.pagNum;
		}
		if (this.selector != null) {
			_url += "&select="+this.selector;
		}
		if (this.xslprms != null) {
			_url += "&xslprms="+this.xslprms;
		}
		var p_ventana = window.open(_url,'html'+this.name,"scrollbars=1,resizable=1,menubar=0,toolbar=0,status=0,width=600,height=400");
		p_ventana.moveTo((screen.availWidth-600)/2,(screen.availHeight-400)/2);
		p_ventana.focus();
	},
	
	chgRegsPag: function(regsPag) {
		var _url = "";
		if (this.selector != null) {
			_url += "&select="+this.selector;
		}
		if (this.xslprms != null) {
			_url += "&xslprms="+this.xslprms;
		}		
		if (regsPag == "none") {
			this.runCall(_url);
			this.pagNum = 0;
		} else {
			_url += "&regsPag="+regsPag+"&pagina=1";
			this.runCall(_url);
			this.pagNum = 1;
		}
	},
	
	getPag: function(numPag) {
		var _url = "&pagina="+numPag;
		if (this.selector != null) {
			_url += "&select="+this.selector;
		}
		if (this.xslprms != null) {
			_url += "&xslprms="+this.xslprms;
		}
		this.runCall(_url);
		this.pagNum = parseInt(numPag);
	},
	
	sort: function(sortField, sortType) {
		var _url = "&sortField="+sortField+"&sortType="+sortType+"&pagina=1";
		if (this.selector != null) {
			_url += "&select="+this.selector;
		}
		if (this.xslprms != null) {
			_url += "&xslprms="+this.xslprms;
		}
		this.runCall(_url);
		this.pagNum = 1;
	},
		
	select: function(sel, xslprms) {
		var _url = "&select="+sel+"&pagina=1";
		if (xslprms) {
			_url += "&xslprms="+xslprms;
		}
		this.selector = sel;
		this.xslprms = xslprms;
		this.runCall(_url);
		this.pagNum = 1;
	},
	
	runCall: function(params) {	
		window.status = "buscando...";
		var timestamp = new Date();
		var _url = this.url;
		while ((params != null) && (params != "")) {
			var iaux = params.indexOf("&");
			if (iaux == 0) { //Si params empieza por '&' nos lo saltamos
				params = params.substring(1);
				iaux = params.indexOf("&");
			}
			if (iaux == -1) {
				var paramName = params.substring(0, params.indexOf("="));
				if (paramName == "xsl") {
					var xslpath = document.location.href;
					xslpath = xslpath.substring(0, xslpath.lastIndexOf("/")+1);
					xslpath = xslpath+params.substring(params.indexOf("=")+1);
					if (xslpath.indexOf("?") == -1) xslpath += "?";
					xslpath += "&pagObj="+this.name;
					_url += "&xsl="+xslpath;
				} else {
					_url += "&"+paramName+"="+params.substring(params.indexOf("=")+1);
				}
				params = "";
			} else {
				var paramaux = params.substring(0,iaux);
				var paramName = paramaux.substring(0, paramaux.indexOf("="));
				if (paramName == "xsl") {
					var xslpath = document.location.href;
					xslpath = xslpath.substring(0, xslpath.lastIndexOf("/")+1);
					xslpath = xslpath+paramaux.substring(paramaux.indexOf("=")+1);
					if (xslpath.indexOf("?") == -1) xslpath += "?";
					xslpath += "&pagObj="+this.name;
					_url += "&xsl="+xslpath;
				} else {
					_url += "&"+paramName+"="+paramaux.substring(paramaux.indexOf("=")+1);
				}
				params = params.substring(iaux+1);
			}
		}
		_url += "&time="+timestamp;
		//alert(_url);
		new ajax(_url, {onComplete: this.onComplete});
	},
	
	response: function(request) {
	//alert("done");		
		window.status = "done";
		try{
			var xmldoc = request.responseText;
			//alert(xmldoc);
			var index = xmldoc.indexOf("<response>");
			if (index == -1) {
				throw(xmldoc);
			}
			index = xmldoc.indexOf(">", index)+1;
			var fin = false;
			while (!fin) {				
				var tag = xmldoc.substring(index, xmldoc.indexOf(">", index));
				tag = tag.substring(tag.indexOf("<")+1);
				if (tag == "/response" || tag == "response" ) {
					fin = true;
				} else {
					index = xmldoc.indexOf(">", index)+1;
					var index2 = xmldoc.indexOf("</"+tag+">");
					if (index2 != -1) {
						var contenido = xmldoc.substring(index, index2);
						//alert(contenido);
						var div = document.getElementById(tag);
						if(div) {
							div.innerHTML = contenido;
						}
					}
					index = xmldoc.indexOf(">",index2)+1;
				}
			}
			//initEffects();
			// Inicialización del filtro por nombre en disp. hoteles
			if(typeof init_hoteles == 'function') {
				init_hoteles();
			}
			// actualizamos precios
			if(typeof actualiza_precios == 'function') {
				actualiza_precios();
			}
			// Quitamos el bloqueo
			$('div#parrilla').unblock(); 
			
		} catch (e) {
				null;
//			alert("Error:"+e);
		}
	}
}
