String.prototype.fromXML = function() { var result = this.replace(/&/g,'&'); result = result.replace(/>/g,'<'); return result; } function SimpleQueue() { // Simple implementacion de una cola // Los elementos nunca se eliminan del array, simplemente van subiendo los indices this.queue = new Array(); this.queueCant = 0; this.queueIndex = 0; this.push = function (action) { this.queue[this.queueCant] = action; this.queueCant++; } this.pop = function () { while ((this.queueCant>this.queueIndex) && (this.queue[this.queueIndex]==false)) this.queueIndex++; if (this.queueCant>this.queueIndex) { var result = this.queue[this.queueIndex]; this.queue[this.queueIndex] = false; this.queueIndex++; return result; } else { return false; } } this.sameElements = function (element) { var result = new Array(); for (var i=this.queueIndex; i= 5) try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } @else xmlhttp = false; @end @*/ if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { try { xmlhttp = new XMLHttpRequest(); xmlhttp.overrideMimeType("text/xml"); } catch (e) { xmlhttp = false; } } wrapper.xmlhttp = xmlhttp; } function getHTTPObject() { return {'isWorking': false, 'current_request': false, 'xmlhttp': false}; } function getXMLTagValue(xmlObj, tagName){ var elems = xmlObj.getElementsByTagName(tagName); if (elems.length && (elems[0].childNodes.length)) return elems[0].firstChild.nodeValue; else return ''; } function XMLrequest_ready() { if (http.xmlhttp.readyState == 4) { //El request esta listo //alert(http.responseText); if (http.xmlhttp.responseText!='') { //El texto de respuesta no fue vacio var result = http.xmlhttp.responseXML.documentElement; if (window.ajaxDebugger) window.ajaxDebugger.requestReady(http.current_request, http.xmlhttp.responseText); //AD if (result) { // try { http.current_request.processXMLResult(result); if (http.current_request.putInCache) { //Libera todo los requests de la cola que estan esperando el mismo resultado var same_requests = request_queue.sameElements(http.current_request); for (var i=0; ithis.maxSize) this.data = removeFirst(this.data); } } if (top.http) { //Usa la conexion http creada en el frame Top var http = top.http; var request_queue = top.request_queue; var ajaxCache = top.ajaxCache; } else { var http = getHTTPObject(); // Crea su propia conexion http var request_queue = new SimpleQueue(); var ajaxCache = new AJAXCache(); } //Funciones viejas function AJAXSemaphore(container) { this.container; this.img_red; this.img_green; this.setRed = function(){ if (this.container) { this.img_green.style.display = 'none'; this.img_red.style.display = 'inline'; } } this.setGreen = function(){ if (this.container) { this.img_red.style.display = 'none'; this.img_green.style.display = 'inline'; } } this.init = function(container) { if (container) { this.container = container; this.container.className = 'ajaxSemaphore'; var img = document.createElement('IMG'); img.src = '/images/rojo.gif'; img.style.display = 'inline'; this.img_red = img; this.container.appendChild(img); img = document.createElement('IMG'); img.src = '/images/verde.gif'; img.style.display = 'none'; this.img_green = img; this.container.appendChild(img); } } this.init(container); } //alert('AJAX Enabled');