1/* 2version = '0005 2016-07-05' 3*/ 4// 5// ФÑнкÑии Ð´Ð»Ñ ÑабоÑÑ jshttprequest 6// 7 8//0005 2016-07-05 - вклÑÑение /comm/js/jshttprequest/jshttprequest.js ÑбÑано, ÑÑнкÑÐ¸Ñ JsHttpRequest добавлена в ÑÑÐ¾Ñ Ñайл 9//0004 2016-06-10 - вклÑÑение /comm/js/jshttprequest/jshttprequest.js добавлено в treegraph.xsl 10//document.writeln('<scr' + 'ipt src="/comm/js/jshttprequest/jshttprequest.js" type="text/javascript"><\/scr' + 'ipt>'); 11 12var LoadingWhere = 1; 13 14// 15// ÑоÑмиÑование url Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑа 16// 17function makeurl(url,clas,func) 18{ 19 if(!url) 20 { 21 var loc = String(document.location); 22 url = (loc.indexOf('?') < 1) ? '/?id=1' : loc; 23 } 24 if(typeof(clas)!='undefined') url += '&clas=' + clas; 25 if(typeof(func)!='undefined') url += '&func=' + func; 26 return url; 27} 28// 29// полÑÑение ÑÑÑаниÑÑ (cur_id) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñми ÑÑилÑми и вÑÑавка в ÑказаннÑй div 30// 31function jshttp_getmess(divadd, cur_id, template, style, cell, get, loadingdiv, loadingtext, loadingw) 32{ 33 divadd = find_div_id(divadd); 34 var url = makeurl('','jshttp','getmess'); 35 var datas = { 36 'js_divadd' : divadd, // иденÑиÑикаÑÐ¾Ñ div-а Ð´Ð»Ñ Ð²ÑÑавки 37 'js_cur_id' : cur_id, // иденÑиÑикаÑÐ¾Ñ Ð¿Ð¾Ð»ÑÑаемого обÑекÑа 38 'js_template' : template, // Ñаблон 39 'js_style' : style, // ÑÑÐ¸Ð»Ñ 40 'js_cell' : cell, // ÑпиÑок 41 'js_get' : get // 1 - полÑÑение GET-ÑпоÑобом, 0 - PHP-ÑÑнкÑиÑми 42 }; 43 44 if(typeof(loadingdiv)!='undefined' && (iloadingdiv = document.getElementById(loadingdiv)) && (idivadd = document.getElementById(divadd))) 45 { 46 if(typeof(loadingtext)=='undefined') 47 loadingtext = iloadingdiv.innerHTML; 48 else 49 loadingtext = '<div class="loading">' + loadingtext + '</div>'; 50 51 if(typeof(loadingw)=='undefined') 52 loadingw = LoadingWhere; 53 if(loadingw==-1) 54 idivadd.innerHTML = iloadingdiv.innerHTML + idivadd.innerHTML; //to top 55 else if(loadingw==1) 56 idivadd.innerHTML += iloadingdiv.innerHTML; //to end 57 else 58 idivadd.innerHTML = iloadingdiv.innerHTML; //replace 59 } 60 JsHttpRequest.query(url, datas, jshttp_getmess_res, false); 61 return false; 62} 63// 64// полÑÑение ÑÑÑаниÑÑ Ð¿Ð¾ url Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñми ÑÑилÑми и вÑÑавка в ÑказаннÑй div 65// 66// loadingw=-1 - div loadingdiv Ñ ÑекÑÑом loadingtext добавлÑем в наÑало конÑÑ div-а divadd 67// loadingw=1 - div loadingdiv Ñ ÑекÑÑом loadingtext добавлÑем к конÑÑ div-а divadd [по ÑмолÑаниÑ] 68// loadingw=2 - div loadingdiv Ñ ÑекÑÑом loadingtext заменÑем div divadd 69// loadingw=0 - не вододим div loadingdiv 70// 71function jshttp_geturl(divadd, url, template, style, cell, loadingdiv, loadingtext, loadingw) 72{ 73 divadd = find_div_id(divadd); 74 if(divadd) 75 { 76 document.getElementById(divadd).setAttribute('saveurl',url,0); 77 } 78 url += '&template=' + ((typeof(template)!='undefined') ? template : 'main_post'); 79 if(typeof(style)!='undefined') url += '&style=' + style; 80 if(typeof(cell)!='undefined') url += '&cell=' + cell; 81 url += '&js_divadd=' + divadd; 82 83 if(typeof(loadingdiv)!='undefined' && (iloadingdiv = document.getElementById(loadingdiv)) && (idivadd = document.getElementById(divadd))) 84 { 85 if(typeof(loadingtext)=='undefined') 86 loadingtext = iloadingdiv.innerHTML; 87 else 88 loadingtext = '<div class="loading">' + loadingtext + '</div>'; 89 90 if(typeof(loadingw)=='undefined') 91 loadingw = LoadingWhere; 92 93 if(loadingw==-1) 94 idivadd.innerHTML = loadingtext + idivadd.innerHTML; //to top 95 else if(loadingw==1) 96 idivadd.innerHTML += loadingtext; //to end 97 else if(loadingw==2) 98 idivadd.innerHTML = loadingtext; //replace 99 else 100 ; //nothing 101 } 102 JsHttpRequest.query(url, null, jshttp_getmess_res, false); 103 return false; 104} 105// 106// полÑÑение конÑенÑа из ÑÑнкÑии блока (block_id) и вÑÑавка в ÑказаннÑй div 107// 108function jshttp_getblock(divadd, url, block_id) 109{ 110 divadd = find_div_id(divadd); 111 url = makeurl(url,'jshttp','get_function_block'); 112 var datas = { 113 'js_divadd' : divadd, // иденÑиÑикаÑÐ¾Ñ div-а Ð´Ð»Ñ Ð²ÑÑавки 114 'js_block_id' : block_id // иденÑиÑикаÑÐ¾Ñ ÑекÑÑего блока (оÑкÑда запÑÑÑили ÑÑнкÑиÑ) 115 }; 116 JsHttpRequest.query(url, datas, jshttp_getmess_res, false); 117 return false; 118} 119function jshttp_getmess_res(result, errors) 120{ 121 if(result && result['js_divadd'] && (idivadd = document.getElementById(result['js_divadd']))) 122 { 123 idivadd.innerHTML = result['js_info']; 124 if(result['js_eval']) 125 { 126 eval(result['js_eval']); 127 } 128 if(typeof(jshttp_getmess_callback)=='function') 129 { 130 jshttp_getmess_callback(result); 131 } 132 } 133} 134 135 136// 137// пÑовеÑка на допÑÑÑимоÑÑÑ Ð¿Ð¾Ð»ÐµÐ¹ ÑоÑÐ¼Ñ ÑегиÑÑÑаÑии: name login и user_nick 138// 139function jshttp_checkfield(field,url) 140{ 141 if(!field) return; 142 url = makeurl(url,'jshttp','checkfield'); 143 var datas = new Array(); 144 datas[field.name] = field.value;
145 datas['js_name'] = field.name; 146 datas['js_value'] = field.value; 147 datas['js_desc'] = field.hasAttribute('description') ? field.getAttribute('description') : field.getAttribute('title'); 148 if(!datas['js_desc'] && (desc = document.getElementById(field.name.replace('p__','d1__')))) 149 datas['js_desc'] = desc.innerHTML; 150 JsHttpRequest.query(url, datas, jshttp_checkfield_res, false); 151} 152function jshttp_checkfield_res(result, errors) 153{ 154 var text1 = new Array(); 155 var text2 = new Array(); 156 text1["ru"] = 'ÐолÑзоваÑÐµÐ»Ñ Ñ Ñаким "%s" Ñже ÑÑÑеÑÑвÑеÑ'; 157 text1["en"] = 'User with this "%s" already exist'; 158 text2["ru"] = 'ÐаполниÑе обÑзаÑелÑное поле "%s"'; 159 text2["en"] = 'Fill required field "%s"'; 160 var js_name = result['js_name']; 161 var js_value = result['js_value']; 162 var js_desc = result['js_desc']; 163 164 if(result['js_err']==1) 165 { 166 document.getElementById(js_name).className += ' terbg'; 167 alert(text1[TG_site_lang].replace(/%s/,js_desc)); 168 } 169 else if(js_value=='') 170 { 171 document.getElementById(js_name).className += ' terbg'; 172 alert(text2[TG_site_lang].replace(/%s/,js_desc)); 173 } 174 else 175 { 176 document.getElementById(js_name).className = document.getElementById(js_name).className.replace(/ terbg/g,''); 177 } 178} 179 180// 181// еÑли obj-обÑекÑ, Ñо иÑÐµÑ id ближайÑего ÑодиÑелÑÑкого div-а Ñ id-м block_XXX 182// еÑли obj-ÑÑÑока, Ñо возвÑаÑÐ°ÐµÑ ÐµÐµ 183// 184function find_div_id(obj) 185{ 186 if(typeof(obj)=='object') 187 { 188 while(obj = obj.parentNode) 189 { 190 if(obj.id != "" && obj.id.indexOf('block_') >= 0) 191 return obj.id; 192 } 193 return false; 194 } 195 return obj; 196} 197 198 199/** 200 * JsHttpRequest: JavaScript "AJAX" data loader 201 * Minimized version: see debug directory for the complete one. 202 * 203 * @license LGPL 204 * @author Dmitry Koterov, http://en.dklab.ru/lib/JsHttpRequest/ 205 * @version 5.x $Id$ 206 */ 207function JsHttpRequest(){ 208var t=this; 209t.onreadystatechange=null; 210t.readyState=0; 211t.responseText=null; 212t.responseXML=null; 213t.status=200; 214t.statusText="OK"; 215t.responseJS=null; 216t.caching=false; 217t.loader=null; 218t.session_name="PHPSESSID"; 219t._ldObj=null; 220t._reqHeaders=[]; 221t._openArgs=null; 222t._errors={inv_form_el:"Invalid FORM element detected: name=%, tag=%",must_be_single_el:"If used, <form> must be a single HTML element in the list.",js_invalid:"JavaScript code generated by backend is invalid!\n%",url_too_long:"Cannot use so long query with GET request (URL is larger than % bytes)",unk_loader:"Unknown loader: %",no_loaders:"No loaders registered at all, please check JsHttpRequest.LOADERS array",no_loader_matched:"Cannot find a loader which may process the request. Notices are:\n%",no_headers:"Method setRequestHeader() cannot work together with the % loader."}; 223t.abort=function(){ 224with(this){ 225if(_ldObj&&_ldObj.abort){ 226_ldObj.abort(); 227} 228_cleanup(); 229if(readyState==0){ 230return; 231} 232if(readyState==1&&!_ldObj){ 233readyState=0; 234return; 235} 236_changeReadyState(4,true); 237} 238}; 239t.open=function(_2,_3,_4,_5,_6){ 240with(this){ 241try{ 242if(document.location.search.match(new RegExp("[&?]"+session_name+"=([^&?]*)"))||document.cookie.match(new RegExp("(?:;|^)\\s*"+session_name+"=([^;]*)"))){ 243_3+=(_3.indexOf("?")>=0?"&":"?")+session_name+"="+this.escape(RegExp.$1); 244} 245} 246catch(e){ 247} 248_openArgs={method:(_2||"").toUpperCase(),url:_3,asyncFlag:_4,username:_5!=null?_5:"",password:_6!=null?_6:""}; 249_ldObj=null; 250_changeReadyState(1,true); 251return true; 252} 253}; 254t.send=function(_7){ 255if(!this.readyState){ 256return; 257} 258this._changeReadyState(1,true); 259this._ldObj=null; 260var _8=[]; 261var _9=[]; 262if(!this._hash2query(_7,null,_8,_9)){ 263return; 264} 265var _a=null; 266if(this.caching&&!_9.length){ 267_a=this._openArgs.username+":"+this._openArgs.password+"@"+this._openArgs.url+"|"+_8+"#"+this._openArgs.method; 268var _b=JsHttpRequest.CACHE[_a]; 269if(_b){ 270this._dataReady(_b[0],_b[1]); 271return false; 272} 273} 274var _c=(this.loader||"").toLowerCase(); 275if(_c&&!JsHttpRequest.LOADERS[_c]){ 276return this._error("unk_loader",_c); 277} 278var _d=[]; 279var _e=JsHttpRequest.LOADERS; 280for(var _f in _e){ 281var ldr=_e[_f].loader; 282if(!ldr){ 283continue; 284} 285if(_c&&_f!=_c){ 286continue; 287} 288var _11=new ldr(this); 289JsHttpRequest.extend(_11,this._openArgs); 290JsHttpRequest.extend(_11,{queryText:_8.join("&"),queryElem:_9,id:(new Date().getTime())+""+JsHttpRequest.COUNT++,hash:_a,span:null}); 291var _12=_11.load(); 292if(!_12){ 293this._ldObj=_11; 294JsHttpRequest.PENDING[_11.id]=this; 295return true; 296} 297if(!_c){ 298_d[_d.length]="- "+_f.toUpperCase()+": "+this._l(_12); 299}else{ 300return this._error(_12); 301} 302} 303return _f?this._error("no_loader_matched",_d.join("\n")):this._error("no_loaders"); 304}; 305t.getAllResponseHeaders=function(){ 306with(this){ 307return _ldObj&&_ldObj.getAllResponseHeaders?_ldObj.getAllResponseHeaders():[]; 308} 309}; 310t.getResponseHeader=function(_13){ 311with(this){ 312return _ldObj&&_ldObj.getResponseHeader?_ldObj.getResponseHeader():[]; 313} 314}; 315t.setRequestHeader=function(_14,_15){ 316with(this){ 317_reqHeaders[_reqHeaders.length]=[_14,_15]; 318} 319}; 320t._dataReady=function(_16,js){ 321with(this){ 322if(caching&&_ldObj){ 323JsHttpRequest.CACHE[_ldObj.hash]=[_16,js]; 324} 325if(_16!==null||js!==null){ 326status=4; 327responseText=responseXML=_16; 328responseJS=js; 329}else{ 330status=500; 331responseText=responseXML=responseJS=null; 332} 333_changeReadyState(2); 334_changeReadyState(3); 335_changeReadyState(4); 336_cleanup(); 337} 338}; 339t._l=function(_18){ 340var i=0,p=0,msg=this._errors[_18[0]]; 341while((p=msg.indexOf("%",p))>=0){ 342var a=_18[++i]+""; 343msg=msg.substring(0,p)+a+msg.substring(p+1,msg.length); 344p+=1+a.length; 345} 346return msg; 347}; 348t._error=function(msg){
349msg=this._l(typeof (msg)=="string"?arguments:msg); 350msg="JsHttpRequest: "+msg; 351if(!window.Error){ 352throw msg; 353}else{ 354if((new Error(1,"test")).description=="test"){ 355throw new Error(1,msg); 356}else{ 357throw new Error(msg); 358} 359} 360}; 361t._hash2query=function(_1e,_1f,_20,_21){ 362if(_1f==null){ 363_1f=""; 364} 365if((""+typeof (_1e)).toLowerCase()=="object"){ 366var _22=false; 367if(_1e&&_1e.parentNode&&_1e.parentNode.appendChild&&_1e.tagName&&_1e.tagName.toUpperCase()=="FORM"){ 368_1e={form:_1e}; 369} 370for(var k in _1e){ 371var v=_1e[k]; 372if(v instanceof Function){ 373continue; 374} 375var _25=_1f?_1f+"["+this.escape(k)+"]":this.escape(k); 376var _26=v&&v.parentNode&&v.parentNode.appendChild&&v.tagName; 377if(_26){ 378var tn=v.tagName.toUpperCase(); 379if(tn=="FORM"){ 380_22=true; 381}else{ 382if(tn=="INPUT"||tn=="TEXTAREA"||tn=="SELECT"){ 383}else{ 384return this._error("inv_form_el",(v.name||""),v.tagName); 385} 386} 387_21[_21.length]={name:_25,e:v}; 388}else{ 389if(v instanceof Object){ 390this._hash2query(v,_25,_20,_21); 391}else{ 392if(v===null){ 393continue; 394} 395if(v===true){ 396v=1; 397} 398if(v===false){ 399v=""; 400} 401_20[_20.length]=_25+"="+this.escape(""+v); 402} 403} 404if(_22&&_21.length>1){ 405return this._error("must_be_single_el"); 406} 407} 408}else{ 409_20[_20.length]=_1e; 410} 411return true; 412}; 413t._cleanup=function(){ 414var _28=this._ldObj; 415if(!_28){ 416return; 417} 418JsHttpRequest.PENDING[_28.id]=false; 419var _29=_28.span; 420if(!_29){ 421return; 422} 423_28.span=null; 424var _2a=function(){ 425_29.parentNode.removeChild(_29); 426}; 427JsHttpRequest.setTimeout(_2a,50); 428}; 429t._changeReadyState=function(s,_2c){ 430with(this){ 431if(_2c){ 432status=statusText=responseJS=null; 433responseText=""; 434} 435readyState=s; 436if(onreadystatechange){ 437onreadystatechange(); 438} 439} 440}; 441t.escape=function(s){ 442return escape(s).replace(new RegExp("\\+","g"),"%2B"); 443}; 444} 445JsHttpRequest.COUNT=0; 446JsHttpRequest.MAX_URL_LEN=2000; 447JsHttpRequest.CACHE={}; 448JsHttpRequest.PENDING={}; 449JsHttpRequest.LOADERS={}; 450JsHttpRequest._dummy=function(){ 451}; 452JsHttpRequest.TIMEOUTS={s:window.setTimeout,c:window.clearTimeout}; 453JsHttpRequest.setTimeout=function(_2e,dt){ 454window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.s; 455if(typeof (_2e)=="string"){ 456id=window.JsHttpRequest_tmp(_2e,dt); 457}else{ 458var id=null; 459var _31=function(){ 460_2e(); 461delete JsHttpRequest.TIMEOUTS[id]; 462}; 463id=window.JsHttpRequest_tmp(_31,dt); 464JsHttpRequest.TIMEOUTS[id]=_31; 465} 466window.JsHttpRequest_tmp=null; 467return id; 468}; 469JsHttpRequest.clearTimeout=function(id){ 470window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.c; 471delete JsHttpRequest.TIMEOUTS[id]; 472var r=window.JsHttpRequest_tmp(id); 473window.JsHttpRequest_tmp=null; 474return r; 475}; 476JsHttpRequest.query=function(url,_35,_36,_37){ 477var req=new this(); 478 479if(req.caching){ 480req.caching=!_37; 481} 482req.onreadystatechange=function(){ 483if(req.readyState==4){ 484_36(req.responseJS,req.responseText); 485} 486}; 487var _39=null; 488if(url.match(/^((\w+)\.)?(GET|POST)\s+(.*)/i)){ 489req.loader=RegExp.$2?RegExp.$2:null; 490_39=RegExp.$3; 491url=RegExp.$4; 492} 493req.open(_39,url,true); 494req.send(_35); 495}; 496JsHttpRequest.dataReady=function(d){ 497var th=this.PENDING[d.id]; 498delete this.PENDING[d.id]; 499if(th){ 500th._dataReady(d.text,d.js); 501}else{ 502if(th!==false){ 503throw "dataReady(): unknown pending id: "+d.id; 504} 505} 506}; 507JsHttpRequest.extend=function(_3c,src){ 508for(var k in src){ 509_3c[k]=src[k]; 510} 511}; 512JsHttpRequest.LOADERS.xml={loader:function(req){ 513JsHttpRequest.extend(req._errors,{xml_no:"Cannot use XMLHttpRequest or ActiveX loader: not supported",xml_no_diffdom:"Cannot use XMLHttpRequest to load data from different domain %",xml_no_headers:"Cannot use XMLHttpRequest loader or ActiveX loader, POST method: headers setting is not supported, needed to work with encodings correctly",xml_no_form_upl:"Cannot use XMLHttpRequest loader: direct form elements using and uploading are not implemented"}); 514this.load=function(){ 515if(this.queryElem.length){ 516return ["xml_no_form_upl"]; 517} 518if(this.url.match(new RegExp("^([a-z]+)://([^\\/]+)(.*)","i"))){ 519if(RegExp.$2.toLowerCase()==document.location.hostname.toLowerCase()){ 520this.url=RegExp.$3; 521}else{ 522return ["xml_no_diffdom",RegExp.$2]; 523} 524} 525var xr=null; 526if(window.XMLHttpRequest){ 527try{ 528xr=new XMLHttpRequest(); 529} 530catch(e){ 531} 532}else{ 533if(window.ActiveXObject){ 534try{ 535xr=new ActiveXObject("Microsoft.XMLHTTP"); 536} 537catch(e){ 538} 539if(!xr){ 540try{ 541xr=new ActiveXObject("Msxml2.XMLHTTP"); 542} 543catch(e){ 544} 545} 546} 547} 548if(!xr){ 549return ["xml_no"]; 550} 551var _41=window.ActiveXObject||xr.setRequestHeader; 552if(!this.method){ 553this.method=_41&&this.queryText.length?"POST":"GET"; 554} 555if(this.method=="GET"){ 556if(this.queryText){ 557this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText; 558} 559this.queryText=""; 560if(this.url.length>JsHttpRequest.MAX_URL_LEN){ 561return ["url_too_long",JsHttpRequest.MAX_URL_LEN]; 562} 563}else{ 564if(this.method=="POST"&&!_41){ 565return ["xml_no_headers"]; 566} 567} 568this.url+=(this.url.indexOf("?")>
568=0?"&":"?")+"JsHttpRequest="+(req.caching?"0":this.id)+"-xml"; 569var id=this.id; 570xr.onreadystatechange=function(){ 571if(xr.readyState!=4){ 572return; 573} 574xr.onreadystatechange=JsHttpRequest._dummy; 575req.status=null; 576try{ 577req.status=xr.status; 578req.responseText=xr.responseText; 579} 580catch(e){ 581} 582if(!req.status){ 583return; 584} 585try{ 586eval("JsHttpRequest._tmp = function(id) { var d = "+req.responseText+"; d.id = id; JsHttpRequest.dataReady(d); }"); 587} 588catch(e){ 589return req._error("js_invalid",req.responseText); 590} 591JsHttpRequest._tmp(id); 592JsHttpRequest._tmp=null; 593}; 594xr.open(this.method,this.url,true,this.username,this.password); 595if(_41){ 596for(var i=0;i<req._reqHeaders.length;i++){ 597xr.setRequestHeader(req._reqHeaders[i][0],req._reqHeaders[i][1]); 598} 599xr.setRequestHeader("Content-Type","application/octet-stream"); 600} 601xr.send(this.queryText); 602this.span=null; 603this.xr=xr; 604return null; 605}; 606this.getAllResponseHeaders=function(){ 607return this.xr.getAllResponseHeaders(); 608}; 609this.getResponseHeader=function(_44){ 610return this.xr.getResponseHeader(_44); 611}; 612this.abort=function(){ 613this.xr.abort(); 614this.xr=null; 615}; 616}}; 617JsHttpRequest.LOADERS.script={loader:function(req){ 618JsHttpRequest.extend(req._errors,{script_only_get:"Cannot use SCRIPT loader: it supports only GET method",script_no_form:"Cannot use SCRIPT loader: direct form elements using and uploading are not implemented"}); 619this.load=function(){ 620if(this.queryText){ 621this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText; 622} 623this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+this.id+"-"+"script"; 624this.queryText=""; 625if(!this.method){ 626this.method="GET"; 627} 628if(this.method!=="GET"){ 629return ["script_only_get"]; 630} 631if(this.queryElem.length){ 632return ["script_no_form"]; 633} 634if(this.url.length>JsHttpRequest.MAX_URL_LEN){ 635return ["url_too_long",JsHttpRequest.MAX_URL_LEN]; 636} 637if(req._reqHeaders.length){ 638return ["no_headers","SCRIPT"]; 639} 640var th=this,d=document,s=null,b=d.body; 641if(!window.opera){ 642this.span=s=d.createElement("SCRIPT"); 643var _4a=function(){ 644s.language="JavaScript"; 645if(s.setAttribute){ 646s.setAttribute("src",th.url); 647}else{ 648s.src=th.url; 649} 650b.insertBefore(s,b.lastChild); 651}; 652}else{ 653this.span=s=d.createElement("SPAN"); 654s.style.display="none"; 655b.insertBefore(s,b.lastChild); 656s.innerHTML="Workaround for IE.<s"+"cript></"+"script>"; 657var _4a=function(){ 658s=s.getElementsByTagName("SCRIPT")[0]; 659s.language="JavaScript"; 660if(s.setAttribute){ 661s.setAttribute("src",th.url); 662}else{ 663s.src=th.url; 664} 665}; 666} 667JsHttpRequest.setTimeout(_4a,10); 668return null; 669}; 670}}; 671JsHttpRequest.LOADERS.form={loader:function(req){ 672JsHttpRequest.extend(req._errors,{form_el_not_belong:"Element \"%\" does not belong to any form!",form_el_belong_diff:"Element \"%\" belongs to a different form. All elements must belong to the same form!",form_el_inv_enctype:"Attribute \"enctype\" of the form must be \"%\" (for IE), \"%\" given."}); 673this.load=function(){ 674var th=this; 675if(!th.method){ 676th.method="POST"; 677} 678th.url+=(th.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+th.id+"-"+"form"; 679if(req._reqHeaders.length){ 680return ["no_headers","FORM"]; 681} 682if(th.method=="GET"){ 683if(th.queryText){ 684th.url+=(th.url.indexOf("?")>=0?"&":"?")+th.queryText; 685} 686if(th.url.length>JsHttpRequest.MAX_URL_LEN){ 687return ["url_too_long",JsHttpRequest.MAX_URL_LEN]; 688} 689var p=th.url.split("?",2); 690th.url=p[0]; 691th.queryText=p[1]||""; 692} 693var _4e=null; 694var _4f=false; 695if(th.queryElem.length){ 696if(th.queryElem[0].e.tagName.toUpperCase()=="FORM"){ 697_4e=th.queryElem[0].e; 698_4f=true; 699th.queryElem=[]; 700}else{ 701_4e=th.queryElem[0].e.form; 702for(var i=0;i<th.queryElem.length;i++){ 703var e=th.queryElem[i].e; 704if(!e.form){ 705return ["form_el_not_belong",e.name]; 706} 707if(e.form!=_4e){ 708return ["form_el_belong_diff",e.name]; 709} 710} 711} 712if(th.method=="POST"){ 713var _52="multipart/form-data"; 714var _53=(_4e.attributes.encType&&_4e.attributes.encType.nodeValue)||(_4e.attributes.enctype&&_4e.attributes.enctype.value)||_4e.enctype; 715if(_53!=_52){ 716return ["form_el_inv_enctype",_52,_53]; 717} 718} 719} 720var d=_4e&&(_4e.ownerDocument||_4e.document)||document; 721var _55="jshr_i_"+th.id; 722var s=th.span=d.createElement("DIV"); 723s.style.position="absolute"; 724s.style.display="none"; 725s.style.visibility="hidden"; 726s.innerHTML=(_4e?"":"<form"+(th.method=="POST"?" enctype=\"multipart/form-data\" method=\"post\"":"")+"></form>")+"<iframe name=\""+_55+"\" id=\""+_55+"\" style=\"width:0px; height:0px; overflow:hidden; border:none\"></iframe>"; 727if(!_4e){ 728_4e=th.span.firstChild; 729} 730d.body.insertBefore(s,d.body.lastChild); 731var _57=function(e,_59){ 732var sv=[]; 733var _5b=e; 734if(e.mergeAttributes){ 735var _5b=d.createElement("form"); 736_5b.mergeAttributes(e,false); 737} 738for(var i=0;i<_59.length;i++){ 739var k=_59[i][0],v=_59[i][1]; 740sv[sv.length]=[k,_5b.getAttribute(k)]; 741_5b.setAttribute(k,v); 742} 743if(e.mergeAttributes){
744e.mergeAttributes(_5b,false); 745} 746return sv; 747}; 748var _5f=function(){ 749top.JsHttpRequestGlobal=JsHttpRequest; 750var _60=[]; 751if(!_4f){ 752for(var i=0,n=_4e.elements.length;i<n;i++){ 753_60[i]=_4e.elements[i].name; 754_4e.elements[i].name=""; 755} 756} 757var qt=th.queryText.split("&"); 758for(var i=qt.length-1;i>=0;i--){ 759var _64=qt[i].split("=",2); 760var e=d.createElement("INPUT"); 761e.type="hidden"; 762e.name=unescape(_64[0]); 763e.value=_64[1]!=null?unescape(_64[1]):""; 764_4e.appendChild(e); 765} 766for(var i=0;i<th.queryElem.length;i++){ 767th.queryElem[i].e.name=th.queryElem[i].name; 768} 769var sv=_57(_4e,[["action",th.url],["method",th.method],["onsubmit",null],["target",_55]]); 770_4e.submit(); 771_57(_4e,sv); 772for(var i=0;i<qt.length;i++){ 773_4e.lastChild.parentNode.removeChild(_4e.lastChild); 774} 775if(!_4f){ 776for(var i=0,n=_4e.elements.length;i<n;i++){ 777_4e.elements[i].name=_60[i]; 778} 779} 780}; 781JsHttpRequest.setTimeout(_5f,100); 782return null; 783}; 784}};
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.