YAHOO.util.Connect={_msxml_progid:["MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],_http_header:{},_has_http_headers:false,_default_post_header:true,_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:[],_timeOut:[],_polling_interval:50,_transaction_id:0,setProgId:function(A){this._msxml_progid.unshift(A)},setDefaultPostHeader:function(A){this._default_post_header=A},setPollingInterval:function(A){if(typeof A=="number"&&isFinite(A)){this._polling_interval=A}},createXhrObject:function(E){var D,A;try{A=new XMLHttpRequest();D={conn:A,tId:E}}catch(C){for(var B=0;B<this._msxml_progid.length;++B){try{A=new ActiveXObject(this._msxml_progid[B]);D={conn:A,tId:E};break}catch(C){}}}finally{return D}},getConnectionObject:function(){var B;var C=this._transaction_id;try{B=this.createXhrObject(C);if(B){this._transaction_id++}}catch(A){}finally{return B}},asyncRequest:function(E,B,D,A){var C=this.getConnectionObject();if(!C){return null}else{if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(C.tId,D,B);this.releaseObject(C);return }if(E=="GET"){B+="?"+this._sFormData}else{if(E=="POST"){A=this._sFormData}}this._sFormData=""}C.conn.open(E,B,true);if(this._isFormSubmit||(A&&this._default_post_header)){this.initHeader("Content-Type","application/x-www-form-urlencoded");if(this._isFormSubmit){this._isFormSubmit=false}}if(this._has_http_headers){this.setHeader(C)}this.handleReadyState(C,D);A?C.conn.send(A):C.conn.send(null);return C}},handleReadyState:function(D,E){var A=E.timeout;var C=this;try{if(A!==undefined){this._timeOut[D.tId]=window.setTimeout(function(){C.abort(D,E,true)},A)}this._poll[D.tId]=window.setInterval(function(){if(D.conn&&D.conn.readyState==4){window.clearInterval(C._poll[D.tId]);C._poll.splice(D.tId);if(A){C._timeOut.splice(D.tId)}C.handleTransactionResponse(D,E)}},this._polling_interval)}catch(B){window.clearInterval(C._poll[D.tId]);C._poll.splice(D.tId);if(A){C._timeOut.splice(D.tId)}C.handleTransactionResponse(D,E)}},handleTransactionResponse:function(E,F,A){if(!F){this.releaseObject(E);return }var C,B;try{if(E.conn.status!==undefined&&E.conn.status!=0){C=E.conn.status}else{C=13030}}catch(D){C=13030}if(C>=200&&C<300){B=this.createResponseObject(E,F.argument);if(F.success){if(!F.scope){F.success(B)}else{F.success.apply(F.scope,[B])}}}else{switch(C){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:B=this.createExceptionObject(E.tId,F.argument,A);if(F.failure){if(!F.scope){F.failure(B)}else{F.failure.apply(F.scope,[B])}}break;default:B=this.createResponseObject(E,F.argument);if(F.failure){if(!F.scope){F.failure(B)}else{F.failure.apply(F.scope,[B])}}}}this.releaseObject(E)},createResponseObject:function(A,G){var D={};var I={};try{var C=A.conn.getAllResponseHeaders();var F=C.split("\n");for(var E=0;E<F.length;E++){var B=F[E].indexOf(":");if(B!=-1){I[F[E].substring(0,B)]=F[E].substring(B+2)}}}catch(H){}D.tId=A.tId;D.status=A.conn.status;D.statusText=A.conn.statusText;D.getResponseHeader=I;D.getAllResponseHeaders=C;D.responseText=A.conn.responseText;D.responseXML=A.conn.responseXML;if(typeof G!==undefined){D.argument=G}return D},createExceptionObject:function(H,D,A){var F=0;var G="communication failure";var C=-1;var B="transaction aborted";var E={};E.tId=H;if(A){E.status=C;E.statusText=B}else{E.status=F;E.statusText=G}if(D){E.argument=D}return E},initHeader:function(A,B){if(this._http_header[A]===undefined){this._http_header[A]=B}else{this._http_header[A]=B+","+this._http_header[A]}this._has_http_headers=true},setHeader:function(A){for(var B in this._http_header){if(this._http_header.propertyIsEnumerable){A.conn.setRequestHeader(B,this._http_header[B])}}delete this._http_header;this._http_header={};this._has_http_headers=false},setForm:function(J,E,B){this._sFormData="";if(typeof J=="string"){var I=(document.getElementById(J)||document.forms[J])}else{if(typeof J=="object"){var I=J}else{return }}if(E){(typeof B=="string")?this.createFrame(B):this.createFrame();this._isFormSubmit=true;this._isFileUpload=true;this._formNode=I;return }var A,H,F,K;var G=false;for(var D=0;D<I.elements.length;D++){K=I.elements[D].disabled;A=I.elements[D];H=I.elements[D].name;F=I.elements[D].value;if(!K&&H){switch(A.type){case"select-one":case"select-multiple":for(var C=0;C<A.options.length;C++){if(A.options[C].selected){this._sFormData+=encodeURIComponent(H)+"="+encodeURIComponent(A.options[C].value||A.options[C].text)+"&"}}break;case"radio":case"checkbox":if(A.checked){this._sFormData+=encodeURIComponent(H)+"="+encodeURIComponent(F)+"&"}break;case"file":case undefined:case"reset":case"button":break;case"submit":if(G==false){this._sFormData+=encodeURIComponent(H)+"="+encodeURIComponent(F)+"&";G=true}break;default:this._sFormData+=encodeURIComponent(H)+"="+encodeURIComponent(F)+"&";break}}}this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1)},createFrame:function(A){if(window.ActiveXObject){var B=document.createElement('<IFRAME name="ioFrame" id="ioFrame">');if(A){B.src=A}}else{var B=document.createElement("IFRAME");B.id="ioFrame";B.name="ioFrame"}B.style.position="absolute";B.style.top="-1000px";B.style.left="-1000px";document.body.appendChild(B)},uploadFile:function(D,C,B){this._formNode.action=B;this._formNode.enctype="multipart/form-data";this._formNode.method="POST";this._formNode.target="ioFrame";this._formNode.submit();this._formNode=null;this._isFileUpload=false;this._isFormSubmit=false;var A=function(){var E={tId:D,responseText:document.getElementById("ioFrame").contentWindow.document.body.innerHTML,argument:C.argument};if(C.upload){if(!C.scope){C.upload(E)}else{C.upload.apply(C.scope,[E])}}YAHOO.util.Event.removeListener("ioFrame","load",A);window.ioFrame.location.replace("#");setTimeout("document.body.removeChild(document.getElementById('ioFrame'))",100)};YAHOO.util.Event.addListener("ioFrame","load",A)},abort:function(B,C,A){if(this.isCallInProgress(B)){window.clearInterval(this._poll[B.tId]);this._poll.splice(B.tId);if(A){this._timeOut.splice(B.tId)}B.conn.abort();this.handleTransactionResponse(B,C,true);return true}else{return false}},isCallInProgress:function(A){if(A.conn){return A.conn.readyState!=4&&A.conn.readyState!=0}else{return false}},releaseObject:function(A){A.conn=null;A=null}};
