rendered paste body /** * * Javascript AJAX Functions * * @name ajax * @author C. Joudrey * @since 2006-19-06 * @version 2.1.2 * @package reptileframework * * */ var AJAX = { XMLHttpRequest: function() { var req = false; if(window.XMLHttpRequest && !(window.ActiveXObject)) { try { req = new XMLHttpRequest(); } catch(e) { req = false; } } else if(window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } } } return(req); }, Response: function(xmlobject) { this.status = xmlobject.status; this.statusText = xmlobject.statusText; this.responseText = xmlobject.responseText; this.responseXML = xmlobject.responseXML; }, Request: function(url, options) { if (!isset(url)) { return(false); } this.url = url; this.method = (isset(options.method)) ? options.method : 'GET'; this.asynchronous = (isset(options.asynchronous) && typeof(options.asynchronous) == "boolean") ? options.asynchronous : true; this.contentType = (isset(options.contentType)) ? options.contentType : 'application/x-www-form-urlencoded'; this.parameters = (isset(options.parameters)) ? options.parameters : ''; if (typeof(this.parameters.join) != "undefined") { this.parameters = this.parameters.join("&"); } this.encoding = (isset(options.encoding)) ? options.encoding : 'iso-8859-1'; this.callbacks = {}; this.dispatch = function(event, parameter) { if (isset(this.callbacks[event])) { if (isset(parameter)) { this.callbacks[event](parameter); } else { this.callbacks[event](); } } } this.handler = function() { switch(this.object.readyState) { case 3: this.dispatch('onLoading'); break; case 4: this.dispatch('onComplete', new AJAX.Response(this.object)); break; } } if (isset(options.onComplete)) { this.callbacks['onComplete'] = options.onComplete; } if (isset(options.onFailure)) { this.callbacks['onFailure'] = options.onFailure; } this.object = new AJAX.XMLHttpRequest(); if (!this.object) { this.dispatch('onFailure'); return false; } this.object.onreadystatechange = this.handler.bind(this); if (this.method == "GET") { if (this.parameters != '') { this.object.open(this.method, this.url + "?" + this.parameters, this.asynchronous); } else { this.object.open(this.method, this.url, this.asynchronous); } } else { this.object.open(this.method, this.url, this.asynchronous); } this.object.setRequestHeader("Content-Encoding", this.encoding); this.object.setRequestHeader("Content-Type", this.contentType); if (this.method == "GET") { this.object.send(""); } else { this.object.send(this.parameters); } if (!this.asynchronous) { this.response = new AJAX.Response(this.object); } } } function isset(check) { return(typeof(check) != "undefined"); } Function.prototype.bind = function() { var __method = this; args = $A(arguments); object = args.shift(); return function() { return __method.apply(object, args.concat($A(arguments))); } } var $A = Array.from = function(iterable) { if (!iterable) return []; if (iterable.toArray) { return iterable.toArray(); } else { var results = []; for (var i = 0, length = iterable.length; i < length; i++) { results.push(iterable[i]); } return results; } }