1var requests = new Array(); 2 3if(typeof(XMLHttpRequest) == 'undefined') 4var XMLHttpRequest = function() 5{ 6 var request = null; 7 try 8 { 9 request = new ActiveXObject('Msxml2.XMLHTTP'); 10 } 11 catch(e) 12 { 13 try 14 { 15 request = new ActiveXObject('Microsoft.XMLHTTP'); 16 } 17 catch(ee) 18 {} 19 } 20 return request; 21} 22 23function ajax_stop() 24{ 25 for(var i=0; i<requests.length; i++) 26 { 27 if(requests[i] != null) 28 requests[i].abort(); 29 } 30} 31 32function ajax_create_request(context) 33{ 34 for(var i=0; i<requests.length; i++) 35 { 36 if(requests[i].readyState == 4) 37 { 38 requests[i].abort(); 39 requests[i].context = context; 40 return requests[i]; 41 } 42 } 43 44 var pos = requests.length; 45 46 requests[pos] = Object(); 47 requests[pos].obj = new XMLHttpRequest(); 48 requests[pos].context = context; 49 50 return requests[pos]; 51} 52 53function ajax_request(url, data, callback, context) 54{ 55 var request = ajax_create_request(context); 56 var async = typeof(callback) == 'function'; 57 58 if(async) request.obj.onreadystatechange = function() 59 { 60 if(request.obj.readyState == 4) 61 callback(new ajax_response(request)); 62 } 63 64 request.obj.open('POST', url, async); 65 request.obj.send(data); 66 67 if(!async) 68 return new ajax_response(request); 69} 70 71function ajax_response(request) 72{ 73 this.request = request.obj; 74 this.error = null; 75 this.value = null; 76 this.context = request.context; 77 78 if(request.obj.status == 200) 79 { 80 try 81 { 82 this.value = object_from_json(request); 83 84 if(this.value && this.value.error) 85 { 86 this.error = this.value.error; 87 this.value = null; 88 } 89 } 90 catch(e) 91 { 92 this.error = new ajax_error(e.name, e.description, e.number); 93 } 94 } 95 else 96 { 97 this.error = new ajax_error('HTTP request failed with status: ' + request.obj.status, request.obj.status); 98 } 99 100 return this; 101} 102 103function enc(s) 104{ 105 return s.toString().replace(/\%/g, "%26").replace(/=/g, "%3D"); 106} 107 108function object_from_json(request) 109{ 110 if(request.obj.responseXML != null && request.obj.responseXML.xml != null && request.obj.responseXML.xml != '') 111 return request.obj.responseXML; 112 113 var r = null; 114 eval('r=' + request.obj.responseText + ';'); 115 return r; 116} 117 118function ajax_error(name, description, number) 119{ 120 this.name = name; 121 this.description = description; 122 this.number = number; 123 124 return this; 125} 126 127ajax_error.prototype.toString = function() 128{ 129 return this.name + " " + this.description; 130} 131 132function json_from_object(o) 133{ 134 if(o == null) 135 return 'null'; 136 137 switch(typeof(o)) 138 { 139 case 'object': 140 if(o.constructor == Array) // checks if it is an array [,,,] 141 { 142 var s = ''; 143 for(var i=0; i<o.length; ++i) 144 { 145 s += json_from_object(o[i]); 146 147 if(i < o.length -1) 148 s += ','; 149 } 150 151 return '[' + s + ']'; 152 } 153 break; 154 case 'string': 155 return '"' + o.replace(/(["\\])/g, '\\$1') + '"'; 156 default: 157 return String(o); 158 } 159}var ajaxVersion = '5.7.22.2';
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.