PageRenderTime 56ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/projects/htmlunit-2.8/src/test/resources/libraries/yui/2.3.0/build/connection/connection-min.js

https://gitlab.com/essere.lab.public/qualitas.class-corpus
JavaScript | 130 lines | 123 code | 1 blank | 6 comment | 31 complexity | a6ad2c6c1daf3c12198c4d7a5edb243d MD5 | raw file
  1. /*
  2. Copyright (c) 2007, Yahoo! Inc. All rights reserved.
  3. Code licensed under the BSD License:
  4. http://developer.yahoo.net/yui/license.txt
  5. version: 2.3.0
  6. */
  7. YAHOO.util.Connect={_msxml_progid:['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:'application/x-www-form-urlencoded; charset=UTF-8',_use_default_xhr_header:true,_default_xhr_header:'XMLHttpRequest',_has_default_headers:true,_default_headers:{},_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,_submitElementValue:null,_hasSubmitListener:(function()
  8. {if(YAHOO.util.Event){YAHOO.util.Event.addListener(document,'click',function(e){var obj=YAHOO.util.Event.getTarget(e);if(obj.type=='submit'){YAHOO.util.Connect._submitElementValue=encodeURIComponent(obj.name)+"="+encodeURIComponent(obj.value);}});return true;}
  9. return false;})(),startEvent:new YAHOO.util.CustomEvent('start'),completeEvent:new YAHOO.util.CustomEvent('complete'),successEvent:new YAHOO.util.CustomEvent('success'),failureEvent:new YAHOO.util.CustomEvent('failure'),uploadEvent:new YAHOO.util.CustomEvent('upload'),abortEvent:new YAHOO.util.CustomEvent('abort'),_customEvents:{onStart:['startEvent','start'],onComplete:['completeEvent','complete'],onSuccess:['successEvent','success'],onFailure:['failureEvent','failure'],onUpload:['uploadEvent','upload'],onAbort:['abortEvent','abort']},setProgId:function(id)
  10. {this._msxml_progid.unshift(id);},setDefaultPostHeader:function(b)
  11. {this._use_default_post_header=b;},setDefaultXhrHeader:function(b)
  12. {this._use_default_xhr_header=b;},setPollingInterval:function(i)
  13. {if(typeof i=='number'&&isFinite(i)){this._polling_interval=i;}},createXhrObject:function(transactionId)
  14. {var obj,http;try
  15. {http=new XMLHttpRequest();obj={conn:http,tId:transactionId};}
  16. catch(e)
  17. {for(var i=0;i<this._msxml_progid.length;++i){try
  18. {http=new ActiveXObject(this._msxml_progid[i]);obj={conn:http,tId:transactionId};break;}
  19. catch(e){}}}
  20. finally
  21. {return obj;}},getConnectionObject:function(isFileUpload)
  22. {var o;var tId=this._transaction_id;try
  23. {if(!isFileUpload){o=this.createXhrObject(tId);}
  24. else{o={};o.tId=tId;o.isUpload=true;}
  25. if(o){this._transaction_id++;}}
  26. catch(e){}
  27. finally
  28. {return o;}},asyncRequest:function(method,uri,callback,postData)
  29. {var o=(this._isFileUpload)?this.getConnectionObject(true):this.getConnectionObject();if(!o){return null;}
  30. else{if(callback&&callback.customevents){this.initCustomEvents(o,callback);}
  31. if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(o,callback,uri,postData);return o;}
  32. if(method.toUpperCase()=='GET'){if(this._sFormData.length!==0){uri+=((uri.indexOf('?')==-1)?'?':'&')+this._sFormData;}
  33. else{uri+="?"+this._sFormData;}}
  34. else if(method.toUpperCase()=='POST'){postData=postData?this._sFormData+"&"+postData:this._sFormData;}}
  35. o.conn.open(method,uri,true);if(this._use_default_xhr_header){if(!this._default_headers['X-Requested-With']){this.initHeader('X-Requested-With',this._default_xhr_header,true);}}
  36. if(this._isFormSubmit||(postData&&this._use_default_post_header)){this.initHeader('Content-Type',this._default_post_header);if(this._isFormSubmit){this.resetFormState();}}
  37. if(this._has_default_headers||this._has_http_headers){this.setHeader(o);}
  38. this.handleReadyState(o,callback);o.conn.send(postData||null);this.startEvent.fire(o);if(o.startEvent){o.startEvent.fire(o);}
  39. return o;}},initCustomEvents:function(o,callback)
  40. {for(var prop in callback.customevents){if(this._customEvents[prop][0]){o[this._customEvents[prop][0]]=new YAHOO.util.CustomEvent(this._customEvents[prop][1],(callback.scope)?callback.scope:null);o[this._customEvents[prop][0]].subscribe(callback.customevents[prop]);}}},handleReadyState:function(o,callback)
  41. {var oConn=this;if(callback&&callback.timeout){this._timeOut[o.tId]=window.setTimeout(function(){oConn.abort(o,callback,true);},callback.timeout);}
  42. this._poll[o.tId]=window.setInterval(function(){if(o.conn&&o.conn.readyState===4){window.clearInterval(oConn._poll[o.tId]);delete oConn._poll[o.tId];if(callback&&callback.timeout){window.clearTimeout(oConn._timeOut[o.tId]);delete oConn._timeOut[o.tId];}
  43. oConn.completeEvent.fire(o);if(o.completeEvent){o.completeEvent.fire(o);}
  44. oConn.handleTransactionResponse(o,callback);}},this._polling_interval);},handleTransactionResponse:function(o,callback,isAbort)
  45. {if(!callback){this.releaseObject(o);return;}
  46. var httpStatus,responseObject;try
  47. {if(o.conn.status!==undefined&&o.conn.status!==0){httpStatus=o.conn.status;}
  48. else{httpStatus=13030;}}
  49. catch(e){httpStatus=13030;}
  50. if(httpStatus>=200&&httpStatus<300||httpStatus===1223){responseObject=this.createResponseObject(o,callback.argument);if(callback.success){if(!callback.scope){callback.success(responseObject);}
  51. else{callback.success.apply(callback.scope,[responseObject]);}}
  52. this.successEvent.fire(responseObject);if(o.successEvent){o.successEvent.fire(responseObject);}}
  53. else{switch(httpStatus){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:responseObject=this.createExceptionObject(o.tId,callback.argument,(isAbort?isAbort:false));if(callback.failure){if(!callback.scope){callback.failure(responseObject);}
  54. else{callback.failure.apply(callback.scope,[responseObject]);}}
  55. break;default:responseObject=this.createResponseObject(o,callback.argument);if(callback.failure){if(!callback.scope){callback.failure(responseObject);}
  56. else{callback.failure.apply(callback.scope,[responseObject]);}}}
  57. this.failureEvent.fire(responseObject);if(o.failureEvent){o.failureEvent.fire(responseObject);}}
  58. this.releaseObject(o);responseObject=null;},createResponseObject:function(o,callbackArg)
  59. {var obj={};var headerObj={};try
  60. {var headerStr=o.conn.getAllResponseHeaders();var header=headerStr.split('\n');for(var i=0;i<header.length;i++){var delimitPos=header[i].indexOf(':');if(delimitPos!=-1){headerObj[header[i].substring(0,delimitPos)]=header[i].substring(delimitPos+2);}}}
  61. catch(e){}
  62. obj.tId=o.tId;obj.status=(o.conn.status==1223)?204:o.conn.status;obj.statusText=(o.conn.status==1223)?"No Content":o.conn.statusText;obj.getResponseHeader=headerObj;obj.getAllResponseHeaders=headerStr;obj.responseText=o.conn.responseText;obj.responseXML=o.conn.responseXML;if(typeof callbackArg!==undefined){obj.argument=callbackArg;}
  63. return obj;},createExceptionObject:function(tId,callbackArg,isAbort)
  64. {var COMM_CODE=0;var COMM_ERROR='communication failure';var ABORT_CODE=-1;var ABORT_ERROR='transaction aborted';var obj={};obj.tId=tId;if(isAbort){obj.status=ABORT_CODE;obj.statusText=ABORT_ERROR;}
  65. else{obj.status=COMM_CODE;obj.statusText=COMM_ERROR;}
  66. if(callbackArg){obj.argument=callbackArg;}
  67. return obj;},initHeader:function(label,value,isDefault)
  68. {var headerObj=(isDefault)?this._default_headers:this._http_headers;if(headerObj[label]===undefined){headerObj[label]=value;}
  69. else{headerObj[label]=value+","+headerObj[label];}
  70. if(isDefault){this._has_default_headers=true;}
  71. else{this._has_http_headers=true;}},setHeader:function(o)
  72. {if(this._has_default_headers){for(var prop in this._default_headers){if(YAHOO.lang.hasOwnProperty(this._default_headers,prop)){o.conn.setRequestHeader(prop,this._default_headers[prop]);}}}
  73. if(this._has_http_headers){for(var prop in this._http_headers){if(YAHOO.lang.hasOwnProperty(this._http_headers,prop)){o.conn.setRequestHeader(prop,this._http_headers[prop]);}}
  74. delete this._http_headers;this._http_headers={};this._has_http_headers=false;}},resetDefaultHeaders:function(){delete this._default_headers;this._default_headers={};this._has_default_headers=false;},setForm:function(formId,isUpload,secureUri)
  75. {this.resetFormState();var oForm;if(typeof formId=='string'){oForm=(document.getElementById(formId)||document.forms[formId]);}
  76. else if(typeof formId=='object'){oForm=formId;}
  77. else{return;}
  78. if(isUpload){var io=this.createFrame(secureUri?secureUri:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=oForm;return;}
  79. var oElement,oName,oValue,oDisabled;var hasSubmit=false;for(var i=0;i<oForm.elements.length;i++){oElement=oForm.elements[i];oDisabled=oForm.elements[i].disabled;oName=oForm.elements[i].name;oValue=oForm.elements[i].value;if(!oDisabled&&oName)
  80. {switch(oElement.type)
  81. {case'select-one':case'select-multiple':for(var j=0;j<oElement.options.length;j++){if(oElement.options[j].selected){if(window.ActiveXObject){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text)+'&';}
  82. else{this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text)+'&';}}}
  83. break;case'radio':case'checkbox':if(oElement.checked){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';}
  84. break;case'file':case undefined:case'reset':case'button':break;case'submit':if(hasSubmit===false){if(this._hasSubmitListener&&this._submitElementValue){this._sFormData+=this._submitElementValue+'&';}
  85. else{this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';}
  86. hasSubmit=true;}
  87. break;default:this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';}}}
  88. this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);return this._sFormData;},resetFormState:function(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";},createFrame:function(secureUri){var frameId='yuiIO'+this._transaction_id;var io;if(window.ActiveXObject){io=document.createElement('<iframe id="'+frameId+'" name="'+frameId+'" />');if(typeof secureUri=='boolean'){io.src='javascript:false';}
  89. else if(typeof secureURI=='string'){io.src=secureUri;}}
  90. else{io=document.createElement('iframe');io.id=frameId;io.name=frameId;}
  91. io.style.position='absolute';io.style.top='-1000px';io.style.left='-1000px';document.body.appendChild(io);},appendPostData:function(postData)
  92. {var formElements=[];var postMessage=postData.split('&');for(var i=0;i<postMessage.length;i++){var delimitPos=postMessage[i].indexOf('=');if(delimitPos!=-1){formElements[i]=document.createElement('input');formElements[i].type='hidden';formElements[i].name=postMessage[i].substring(0,delimitPos);formElements[i].value=postMessage[i].substring(delimitPos+1);this._formNode.appendChild(formElements[i]);}}
  93. return formElements;},uploadFile:function(o,callback,uri,postData){var frameId='yuiIO'+o.tId;var uploadEncoding='multipart/form-data';var io=document.getElementById(frameId);var oConn=this;var rawFormAttributes={action:this._formNode.getAttribute('action'),method:this._formNode.getAttribute('method'),target:this._formNode.getAttribute('target')};this._formNode.setAttribute('action',uri);this._formNode.setAttribute('method','POST');this._formNode.setAttribute('target',frameId);if(this._formNode.encoding){this._formNode.setAttribute('encoding',uploadEncoding);}
  94. else{this._formNode.setAttribute('enctype',uploadEncoding);}
  95. if(postData){var oElements=this.appendPostData(postData);}
  96. this._formNode.submit();this.startEvent.fire(o);if(o.startEvent){o.startEvent.fire(o);}
  97. if(callback&&callback.timeout){this._timeOut[o.tId]=window.setTimeout(function(){oConn.abort(o,callback,true);},callback.timeout);}
  98. if(oElements&&oElements.length>0){for(var i=0;i<oElements.length;i++){this._formNode.removeChild(oElements[i]);}}
  99. for(var prop in rawFormAttributes){if(YAHOO.lang.hasOwnProperty(rawFormAttributes,prop)){if(rawFormAttributes[prop]){this._formNode.setAttribute(prop,rawFormAttributes[prop]);}
  100. else{this._formNode.removeAttribute(prop);}}}
  101. this.resetFormState();var uploadCallback=function()
  102. {if(callback&&callback.timeout){window.clearTimeout(oConn._timeOut[o.tId]);delete oConn._timeOut[o.tId];}
  103. oConn.completeEvent.fire(o);if(o.completeEvent){o.completeEvent.fire(o);}
  104. var obj={};obj.tId=o.tId;obj.argument=callback.argument;try
  105. {obj.responseText=io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:io.contentWindow.document.documentElement.textContent;obj.responseXML=io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;}
  106. catch(e){}
  107. if(callback&&callback.upload){if(!callback.scope){callback.upload(obj);}
  108. else{callback.upload.apply(callback.scope,[obj]);}}
  109. oConn.uploadEvent.fire(obj);if(o.uploadEvent){o.uploadEvent.fire(obj);}
  110. if(YAHOO.util.Event){YAHOO.util.Event.removeListener(io,"load",uploadCallback);}
  111. else if(window.detachEvent){io.detachEvent('onload',uploadCallback);}
  112. else{io.removeEventListener('load',uploadCallback,false);}
  113. setTimeout(function(){document.body.removeChild(io);oConn.releaseObject(o);},100);};if(YAHOO.util.Event){YAHOO.util.Event.addListener(io,"load",uploadCallback);}
  114. else if(window.attachEvent){io.attachEvent('onload',uploadCallback);}
  115. else{io.addEventListener('load',uploadCallback,false);}},abort:function(o,callback,isTimeout)
  116. {var abortStatus;if(o.conn){if(this.isCallInProgress(o)){o.conn.abort();window.clearInterval(this._poll[o.tId]);delete this._poll[o.tId];if(isTimeout){window.clearTimeout(this._timeOut[o.tId]);delete this._timeOut[o.tId];}
  117. abortStatus=true;}}
  118. else if(o.isUpload===true){var frameId='yuiIO'+o.tId;var io=document.getElementById(frameId);if(io){document.body.removeChild(io);if(isTimeout){window.clearTimeout(this._timeOut[o.tId]);delete this._timeOut[o.tId];}
  119. abortStatus=true;}}
  120. else{abortStatus=false;}
  121. if(abortStatus===true){this.abortEvent.fire(o);if(o.abortEvent){o.abortEvent.fire(o);}
  122. this.handleTransactionResponse(o,callback,true);}
  123. else{}
  124. return abortStatus;},isCallInProgress:function(o)
  125. {if(o&&o.conn){return o.conn.readyState!==4&&o.conn.readyState!==0;}
  126. else if(o&&o.isUpload===true){var frameId='yuiIO'+o.tId;return document.getElementById(frameId)?true:false;}
  127. else{return false;}},releaseObject:function(o)
  128. {if(o.conn){o.conn=null;}
  129. o=null;}};YAHOO.register("connection",YAHOO.util.Connect,{version:"2.3.0",build:"442"});