YAHOO.util.Connect={_msxml_progid:["MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],_http_header:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded",_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._use_default_post_header=a},setPollingInterval:function(a){if(typeof a==
"number"&&isFinite(a))this._polling_interval=a},createXhrObject:function(a){var b,c;try{c=new XMLHttpRequest,b={conn:c,tId:a}}catch(d){for(var e=0;e<this._msxml_progid.length;++e)try{c=new ActiveXObject(this._msxml_progid[e]);b={conn:c,tId:a};break}catch(f){}}finally{return b}},getConnectionObject:function(){var a,b=this._transaction_id;try{(a=this.createXhrObject(b))&&this._transaction_id++}catch(c){}finally{return a}},asyncRequest:function(a,b,c,d){var e=this.getConnectionObject();if(e){if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(e.tId,
c,b);this.releaseObject(e);return}a=="GET"?b+="?"+this._sFormData:a=="POST"&&(d=d?this._sFormData+"&"+d:this._sFormData);this._sFormData=""}e.conn.open(a,b,true);if(this._isFormSubmit||d&&this._use_default_post_header)if(this.initHeader("Content-Type",this._default_post_header),this._isFormSubmit)this._isFormSubmit=false;this._has_http_headers&&this.setHeader(e);this.handleReadyState(e,c);e.conn.send(d?d:null);return e}return null},handleReadyState:function(a,b){var c=this;b&&b.timeout&&(this._timeOut[a.tId]=
window.setTimeout(function(){c.abort(a,b,true)},b.timeout));this._poll[a.tId]=window.setInterval(function(){a.conn&&a.conn.readyState==4&&(window.clearInterval(c._poll[a.tId]),delete c._poll[a.tId],b&&b.timeout&&delete c._timeOut[a.tId],c.handleTransactionResponse(a,b))},this._polling_interval)},handleTransactionResponse:function(a,b,c){if(b){var d,e;try{d=a.conn.status!==void 0&&a.conn.status!=0?a.conn.status:13030}catch(f){d=13030}if(d>=200&&d<300)try{e=this.createResponseObject(a,b.argument),b.success&&
(b.scope?b.success.apply(b.scope,[e]):b.success(e))}catch(g){}else try{switch(d){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:e=this.createExceptionObject(a.tId,b.argument,c?c:false);b.failure&&(b.scope?b.failure.apply(b.scope,[e]):b.failure(e));break;default:e=this.createResponseObject(a,b.argument),b.failure&&(b.scope?b.failure.apply(b.scope,[e]):b.failure(e))}}catch(h){}}this.releaseObject(a)},createResponseObject:function(a,b){var c={},d={};try{for(var e=a.conn.getAllResponseHeaders(),
f=e.split("\n"),g=0;g<f.length;g++){var h=f[g].indexOf(":");h!=-1&&(d[f[g].substring(0,h)]=f[g].substring(h+2))}}catch(i){}c.tId=a.tId;c.status=a.conn.status;c.statusText=a.conn.statusText;c.getResponseHeader=d;c.getAllResponseHeaders=e;c.responseText=a.conn.responseText;c.responseXML=a.conn.responseXML;if(typeof b!==void 0)c.argument=b;return c},createExceptionObject:function(a,b,c){var d={};d.tId=a;c?(d.status=-1,d.statusText="transaction aborted"):(d.status=0,d.statusText="communication failure");
if(b)d.argument=b;return d},initHeader:function(a,b){this._http_header[a]=this._http_header[a]===void 0?b:b+","+this._http_header[a];this._has_http_headers=true},setHeader:function(a){for(var b in this._http_header)this._http_header.hasOwnProperty(b)&&a.conn.setRequestHeader(b,this._http_header[b]);delete this._http_header;this._http_header={};this._has_http_headers=false},setForm:function(a,b,c){this._sFormData="";if(typeof a=="string")a=document.getElementById(a)||document.forms[a];else if(typeof a!=
"object")return;if(b)this.createFrame(c?c:null),this._isFileUpload=this._isFormSubmit=true,this._formNode=a;else{for(var d,e,f=false,g=0;g<a.elements.length;g++)if(b=a.elements[g],e=a.elements[g].disabled,c=a.elements[g].name,d=a.elements[g].value,!e&&c)switch(b.type){case "select-one":case "select-multiple":for(d=0;d<b.options.length;d++)b.options[d].selected&&(this._sFormData+=window.ActiveXObject?encodeURIComponent(c)+"="+encodeURIComponent(b.options[d].attributes.value.specified?b.options[d].value:
b.options[d].text)+"&":encodeURIComponent(c)+"="+encodeURIComponent(b.options[d].hasAttribute("value")?b.options[d].value:b.options[d].text)+"&");break;case "radio":case "checkbox":b.checked&&(this._sFormData+=encodeURIComponent(c)+"="+encodeURIComponent(d)+"&");break;case "file":case void 0:case "reset":case "button":break;case "submit":f==false&&(this._sFormData+=encodeURIComponent(c)+"="+encodeURIComponent(d)+"&",f=true);break;default:this._sFormData+=encodeURIComponent(c)+"="+encodeURIComponent(d)+
"&"}this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1)}},createFrame:function(a){var b="yuiIO"+this._transaction_id;if(window.ActiveXObject){var c=document.createElement('<IFRAME id="'+b+'" name="'+b+'">');c.src=typeof a=="boolean"?"javascript:false":a}else c=document.createElement("IFRAME"),c.id=b,c.name=b;c.style.position="absolute";c.style.top="-1000px";c.style.left="-1000px";document.body.appendChild(c)},uploadFile:function(a,b,c){var d="yuiIO"+a,e=document.getElementById(d);
this._formNode.action=c;this._formNode.enctype="multipart/form-data";this._formNode.method="POST";this._formNode.target=d;this._formNode.submit();this._formNode=null;this._isFormSubmit=this._isFileUpload=false;var f=function(){var c={};c.tId=a;c.responseText=e.contentWindow.document.body?e.contentWindow.document.body.innerHTML:null;c.responseXML=e.contentWindow.document.XMLDocument?e.contentWindow.document.XMLDocument:e.contentWindow.document;c.argument=b.argument;b.upload&&(b.scope?b.upload.apply(b.scope,
[c]):b.upload(c));YAHOO.util.Event?YAHOO.util.Event.removeListener(e,"load",f):window.ActiveXObject?e.detachEvent("onload",f):e.removeEventListener("load",f,false);setTimeout(function(){document.body.removeChild(e)},100)};YAHOO.util.Event?YAHOO.util.Event.addListener(e,"load",f):window.ActiveXObject?e.attachEvent("onload",f):e.addEventListener("load",f,false)},abort:function(a,b,c){return this.isCallInProgress(a)?(a.conn.abort(),window.clearInterval(this._poll[a.tId]),delete this._poll[a.tId],c&&
delete this._timeOut[a.tId],this.handleTransactionResponse(a,b,true),true):false},isCallInProgress:function(a){return a.conn?a.conn.readyState!=4&&a.conn.readyState!=0:false},releaseObject:function(a){a.conn=null}};

