YAHOO.util.Connect={_msxml_progid:["MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],_http_header:{},_has_http_headers:false,_isFormSubmit:false,_sFormData:null,_poll:[],_polling_interval:50,_transaction_id:0,setProgId:function(a){this.msxml_progid.unshift(a)},setPollingInterval:function(a){if(typeof a=="number"&&isFinite(a)){this._polling_interval=a}},createXhrObject:function(f){var d,a;try{a=new XMLHttpRequest();d={conn:a,tId:f}}catch(c){for(var b=0;b<this._msxml_progid.length;++b){try{a=new ActiveXObject(this._msxml_progid[b]);if(a){d={conn:a,tId:f};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(e=="GET"){b+="?"+this._sFormData}else{if(e=="POST"){a=this._sFormData}}this._sFormData="";this._isFormSubmit=false}c.conn.open(e,b,true);if(a){}c.conn.setRequestHeader("Content-type","application/x-www-form-urlencoded");this.handleReadyState(c,d);a?c.conn.send(a):c.conn.send(null);return c}},handleReadyState:function(c,d){var b=this;try{this._poll[c.tId]=window.setInterval(function(){if(c.conn&&c.conn.readyState==4){window.clearInterval(b._poll[c.tId]);b._poll.splice(c.tId);b.handleTransactionResponse(c,d)}},this._polling_interval)}catch(a){window.clearInterval(b._poll[c.tId]);b._poll.splice(c.tId);b.handleTransactionResponse(c,d)}},handleTransactionResponse:function(d,f){if(!f){this.releaseObject(d);return}var b;var a;try{b=d.conn.status}catch(c){b=13030}if(b>=200&&b<300){a=this.createResponseObject(d,f.argument);if(f.success){if(!f.scope){f.success(a)}else{f.success.apply(f.scope,[a])}}}else{switch(b){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:a=this.createExceptionObject(d,f.argument);if(f.failure){if(!f.scope){f.failure(a)}else{f.failure.apply(f.scope,[a])}}break;default:a=this.createResponseObject(d,f.argument);if(f.failure){if(!f.scope){f.failure(a)}else{f.failure.apply(f.scope,[a])}}}}this.releaseObject(d)},createResponseObject:function(a,h){var d={};var k={};try{var c=a.conn.getAllResponseHeaders();var g=c.split("\n");for(var f=0;f<g.length;f++){var b=g[f].indexOf(":");if(b!=-1){k[g[f].substring(0,b)]=g[f].substring(b+1)}}d.tId=a.tId;d.status=a.conn.status;d.statusText=a.conn.statusText;d.getResponseHeader=k;d.getAllResponseHeaders=c;d.responseText=a.conn.responseText;d.responseXML=a.conn.responseXML;if(typeof h!==undefined){d.argument=h}}catch(j){}finally{return d}},createExceptionObject:function(e,a){var c=0;var d="communication failure";var b={};b.tId=e;b.status=c;b.statusText=d;if(a){b.argument=a}return b},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){a.conn.setRequestHeader(b,this._http_header[b])}delete this._http_header;this._http_header={};this._has_http_headers=false},setForm:function(h){this._sFormData="";if(typeof h=="string"){var g=(document.getElementById(h)||document.forms[h])}else{if(typeof h=="object"){var g=h}else{return}}var a,f,d,k;var e=false;for(var c=0;c<g.elements.length;c++){k=g.elements[c].disabled;if(g.elements[c].name!=""){a=g.elements[c];f=g.elements[c].name;d=g.elements[c].value}if(!k){switch(a.type){case"select-one":case"select-multiple":for(var b=0;b<a.options.length;b++){if(a.options[b].selected){this._sFormData+=encodeURIComponent(f)+"="+encodeURIComponent(a.options[b].value||a.options[b].text)+"&"}}break;case"radio":case"checkbox":if(a.checked){this._sFormData+=encodeURIComponent(f)+"="+encodeURIComponent(d)+"&"}break;case"file":case undefined:case"reset":case"button":break;case"submit":if(e==false){this._sFormData+=encodeURIComponent(f)+"="+encodeURIComponent(d)+"&";e=true}break;default:this._sFormData+=encodeURIComponent(f)+"="+encodeURIComponent(d)+"&";break}}}this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1)},abort:function(a){if(this.isCallInProgress(a)){window.clearInterval(this._poll[a.tId]);this._poll.splice(a.tId);a.conn.abort();this.releaseObject(a);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}};
