/*
Copyright (c) 2010, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.com/yui/license.html
version: 2.8.1
*/
YAHOO.util.Connect={
    _msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],
    _http_headers:{},
    _has_http_headers:false,
    _use_default_post_header:true,
    _default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",
    _default_form_header:"application/x-www-form-urlencoded",
    _use_default_xhr_header:true,
    _default_xhr_header:"XMLHttpRequest",
    _has_default_headers:true,
    _default_headers:{},
    _poll:{},
    _timeOut:{},
    _polling_interval:50,
    _transaction_id:0,
    startEvent:new YAHOO.util.CustomEvent("start"),
    completeEvent:new YAHOO.util.CustomEvent("complete"),
    successEvent:new YAHOO.util.CustomEvent("success"),
    failureEvent:new YAHOO.util.CustomEvent("failure"),
    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(A){
        this._msxml_progid.unshift(A);
    },
    setDefaultPostHeader:function(A){
        if(typeof A=="string"){
            this._default_post_header=A;
        }else{
            if(typeof A=="boolean"){
                this._use_default_post_header=A;
            }
        }
    },
    setDefaultXhrHeader:function(A){
        if(typeof A=="string"){
            this._default_xhr_header=A;
        }else{
            this._use_default_xhr_header=A;
        }
    },
    setPollingInterval:function(A){
        if(typeof A=="number"&&isFinite(A)){
            this._polling_interval=A;
        }
    },
    createXhrObject:function(F){
        var D,A,B;
        try{
            A=new XMLHttpRequest();
            D={
                conn:A,
                tId:F,
                xhr:true
            };

        }catch(C){
            for(B=0;B<this._msxml_progid.length;++B){
                try{
                    A=new ActiveXObject(this._msxml_progid[B]);
                    D={
                        conn:A,
                        tId:F,
                        xhr:true
                    };

                    break;
                }catch(E){}
            }
        }finally{
            return D;
        }
    },
    getConnectionObject:function(A){
        var C,D=this._transaction_id;
        try{
            if(!A){
                C=this.createXhrObject(D);
            }else{
                C={
                    tId:D
                };

                if(A==="xdr"){
                    C.conn=this._transport;
                    C.xdr=true;
                }else{
                    if(A==="upload"){
                        C.upload=true;
                    }
                }
            }
            if(C){
                this._transaction_id++;
            }
        }catch(B){}
        return C;
    },
    asyncRequest:function(G,D,F,A){
        var E,C,B=(F&&F.argument)?F.argument:null;
        if(this._isFileUpload){
            C="upload";
        }else{
            if(F.xdr){
                C="xdr";
            }
        }
        E=this.getConnectionObject(C);
        if(!E){
            return null;
        }else{
            if(F&&F.customevents){
                this.initCustomEvents(E,F);
            }
            if(this._isFormSubmit){
                if(this._isFileUpload){
                    this.uploadFile(E,F,D,A);
                    return E;
                }
                if(G.toUpperCase()=="GET"){
                    if(this._sFormData.length!==0){
                        D+=((D.indexOf("?")==-1)?"?":"&")+this._sFormData;
                    }
                }else{
                    if(G.toUpperCase()=="POST"){
                        A=A?this._sFormData+"&"+A:this._sFormData;
                    }
                }
            }
            if(G.toUpperCase()=="GET"&&(F&&F.cache===false)){
                D+=((D.indexOf("?")==-1)?"?":"&")+"rnd="+new Date().valueOf().toString();
            }
            if(this._use_default_xhr_header){
                if(!this._default_headers["X-Requested-With"]){
                    this.initHeader("X-Requested-With",this._default_xhr_header,true);
                }
            }
            if((G.toUpperCase()==="POST"&&this._use_default_post_header)&&this._isFormSubmit===false){
                this.initHeader("Content-Type",this._default_post_header);
            }
            if(E.xdr){
                this.xdr(E,G,D,F,A);
                return E;
            }
            E.conn.open(G,D,true);
            if(this._has_default_headers||this._has_http_headers){
                this.setHeader(E);
            }
            this.handleReadyState(E,F);
            E.conn.send(A||"");
            if(this._isFormSubmit===true){
                this.resetFormState();
            }
            this.startEvent.fire(E,B);
            if(E.startEvent){
                E.startEvent.fire(E,B);
            }
            return E;
        }
    },
    initCustomEvents:function(A,C){
        var B;
        for(B in C.customevents){
            if(this._customEvents[B][0]){
                A[this._customEvents[B][0]]=new YAHOO.util.CustomEvent(this._customEvents[B][1],(C.scope)?C.scope:null);
                A[this._customEvents[B][0]].subscribe(C.customevents[B]);
            }
        }
    },
    handleReadyState:function(C,D){
        var B=this,A=(D&&D.argument)?D.argument:null;
        if(D&&D.timeout){
            this._timeOut[C.tId]=window.setTimeout(function(){
                B.abort(C,D,true);
            },D.timeout);
        }
        this._poll[C.tId]=window.setInterval(function(){
            if(C.conn&&C.conn.readyState===4){
                window.clearInterval(B._poll[C.tId]);
                delete B._poll[C.tId];
                if(D&&D.timeout){
                    window.clearTimeout(B._timeOut[C.tId]);
                    delete B._timeOut[C.tId];
                }
                B.completeEvent.fire(C,A);
                if(C.completeEvent){
                    C.completeEvent.fire(C,A);
                }
                B.handleTransactionResponse(C,D);
            }
        },this._polling_interval);
    },
    handleTransactionResponse:function(B,I,D){
        var E,A,G=(I&&I.argument)?I.argument:null,C=(B.r&&B.r.statusText==="xdr:success")?true:false,H=(B.r&&B.r.statusText==="xdr:failure")?true:false,J=D;
        try{
            if((B.conn.status!==undefined&&B.conn.status!==0)||C){
                E=B.conn.status;
            }else{
                if(H&&!J){
                    E=0;
                }else{
                    E=13030;
                }
            }
        }catch(F){
            E=13030;
        }
        if((E>=200&&E<300)||E===1223||C){
            A=B.xdr?B.r:this.createResponseObject(B,G);
            if(I&&I.success){
                if(!I.scope){
                    I.success(A);
                }else{
                    I.success.apply(I.scope,[A]);
                }
            }
            this.successEvent.fire(A);
            if(B.successEvent){
                B.successEvent.fire(A);
            }
        }else{
            switch(E){
                case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:
                    A=this.createExceptionObject(B.tId,G,(D?D:false));
                    if(I&&I.failure){
                        if(!I.scope){
                            I.failure(A);
                        }else{
                            I.failure.apply(I.scope,[A]);
                        }
                    }
                    break;
                default:
                    A=(B.xdr)?B.response:this.createResponseObject(B,G);
                    if(I&&I.failure){
                        if(!I.scope){
                            I.failure(A);
                        }else{
                            I.failure.apply(I.scope,[A]);
                        }
                    }
            }
            this.failureEvent.fire(A);
            if(B.failureEvent){
                B.failureEvent.fire(A);
            }
        }
        this.releaseObject(B);
        A=null;
    },
    createResponseObject:function(A,G){
        var D={},I={},E,C,F,B;
        try{
            C=A.conn.getAllResponseHeaders();
            F=C.split("\n");
            for(E=0;E<F.length;E++){
                B=F[E].indexOf(":");
                if(B!=-1){
                    I[F[E].substring(0,B)]=YAHOO.lang.trim(F[E].substring(B+2));
                }
            }
        }catch(H){}
        D.tId=A.tId;
        D.status=(A.conn.status==1223)?204:A.conn.status;
        D.statusText=(A.conn.status==1223)?"No Content":A.conn.statusText;
        D.getResponseHeader=I;
        D.getAllResponseHeaders=C;
        D.responseText=A.conn.responseText;
        D.responseXML=A.conn.responseXML;
        if(G){
            D.argument=G;
        }
        return D;
    },
    createExceptionObject:function(H,D,A){
        var F=0,G="communication failure",C=-1,B="transaction aborted",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,D,C){
        var B=(C)?this._default_headers:this._http_headers;
        B[A]=D;
        if(C){
            this._has_default_headers=true;
        }else{
            this._has_http_headers=true;
        }
    },
    setHeader:function(A){
        var B;
        if(this._has_default_headers){
            for(B in this._default_headers){
                if(YAHOO.lang.hasOwnProperty(this._default_headers,B)){
                    A.conn.setRequestHeader(B,this._default_headers[B]);
                }
            }
        }
        if(this._has_http_headers){
            for(B in this._http_headers){
                if(YAHOO.lang.hasOwnProperty(this._http_headers,B)){
                    A.conn.setRequestHeader(B,this._http_headers[B]);
                }
            }
            this._http_headers={};

            this._has_http_headers=false;
        }
    },
    resetDefaultHeaders:function(){
        this._default_headers={};

        this._has_default_headers=false;
    },
    abort:function(E,G,A){
        var D,B=(G&&G.argument)?G.argument:null;
        E=E||{};

        if(E.conn){
            if(E.xhr){
                if(this.isCallInProgress(E)){
                    E.conn.abort();
                    window.clearInterval(this._poll[E.tId]);
                    delete this._poll[E.tId];
                    if(A){
                        window.clearTimeout(this._timeOut[E.tId]);
                        delete this._timeOut[E.tId];
                    }
                    D=true;
                }
            }else{
                if(E.xdr){
                    E.conn.abort(E.tId);
                    D=true;
                }
            }
        }else{
            if(E.upload){
                var C="yuiIO"+E.tId;
                var F=document.getElementById(C);
                if(F){
                    YAHOO.util.Event.removeListener(F,"load");
                    document.body.removeChild(F);
                    if(A){
                        window.clearTimeout(this._timeOut[E.tId]);
                        delete this._timeOut[E.tId];
                    }
                    D=true;
                }
            }else{
                D=false;
            }
        }
        if(D===true){
            this.abortEvent.fire(E,B);
            if(E.abortEvent){
                E.abortEvent.fire(E,B);
            }
            this.handleTransactionResponse(E,G,true);
        }
        return D;
    },
    isCallInProgress:function(A){
        A=A||{};

        if(A.xhr&&A.conn){
            return A.conn.readyState!==4&&A.conn.readyState!==0;
        }else{
            if(A.xdr&&A.conn){
                return A.conn.isCallInProgress(A.tId);
            }else{
                if(A.upload===true){
                    return document.getElementById("yuiIO"+A.tId)?true:false;
                }else{
                    return false;
                }
            }
        }
    },
    releaseObject:function(A){
        if(A&&A.conn){
            A.conn=null;
            A=null;
        }
    }
};
(function(){
    var G=YAHOO.util.Connect,H={};

    function D(I){
        var J='<object id="YUIConnectionSwf" type="application/x-shockwave-flash" data="'+I+'" width="0" height="0">'+'<param name="movie" value="'+I+'">'+'<param name="allowScriptAccess" value="always">'+"</object>",K=document.createElement("div");
        document.body.appendChild(K);
        K.innerHTML=J;
    }
    function B(L,I,J,M,K){
        H[parseInt(L.tId)]={
            "o":L,
            "c":M
        };

        if(K){
            M.method=I;
            M.data=K;
        }
        L.conn.send(J,M,L.tId);
    }
    function E(I){
        D(I);
        G._transport=document.getElementById("YUIConnectionSwf");
    }
    function C(){
        G.xdrReadyEvent.fire();
    }
    function A(J,I){
        if(J){
            G.startEvent.fire(J,I.argument);
            if(J.startEvent){
                J.startEvent.fire(J,I.argument);
            }
        }
    }
    function F(J){
        var K=H[J.tId].o,I=H[J.tId].c;
        if(J.statusText==="xdr:start"){
            A(K,I);
            return;
        }
        J.responseText=decodeURI(J.responseText);
        K.r=J;
        if(I.argument){
            K.r.argument=I.argument;
        }
        this.handleTransactionResponse(K,I,J.statusText==="xdr:abort"?true:false);
        delete H[J.tId];
    }
    G.xdr=B;
    G.swf=D;
    G.transport=E;
    G.xdrReadyEvent=new YAHOO.util.CustomEvent("xdrReady");
    G.xdrReady=C;
    G.handleXdrResponse=F;
})();
(function(){
    var D=YAHOO.util.Connect,F=YAHOO.util.Event;
    D._isFormSubmit=false;
    D._isFileUpload=false;
    D._formNode=null;
    D._sFormData=null;
    D._submitElementValue=null;
    D.uploadEvent=new YAHOO.util.CustomEvent("upload"),D._hasSubmitListener=function(){
        if(F){
            F.addListener(document,"click",function(J){
                var I=F.getTarget(J),H=I.nodeName.toLowerCase();
                if((H==="input"||H==="button")&&(I.type&&I.type.toLowerCase()=="submit")){
                    D._submitElementValue=encodeURIComponent(I.name)+"="+encodeURIComponent(I.value);
                }
            });
            return true;
        }
        return false;
    }();
    function G(T,O,J){
        var S,I,R,P,W,Q=false,M=[],V=0,L,N,K,U,H;
        this.resetFormState();
        if(typeof T=="string"){
            S=(document.getElementById(T)||document.forms[T]);
        }else{
            if(typeof T=="object"){
                S=T;
            }else{
                return;
            }
        }
        if(O){
            this.createFrame(J?J:null);
            this._isFormSubmit=true;
            this._isFileUpload=true;
            this._formNode=S;
            return;
        }
        for(L=0,N=S.elements.length;L<N;++L){
            I=S.elements[L];
            W=I.disabled;
            R=I.name;
            if(!W&&R){
                R=encodeURIComponent(R)+"=";
                P=encodeURIComponent(I.value);
                switch(I.type){
                    case"select-one":
                        if(I.selectedIndex>-1){
                            H=I.options[I.selectedIndex];
                            M[V++]=R+encodeURIComponent((H.attributes.value&&H.attributes.value.specified)?H.value:H.text);
                        }
                        break;
                    case"select-multiple":
                        if(I.selectedIndex>-1){
                            for(K=I.selectedIndex,U=I.options.length;K<U;++K){
                                H=I.options[K];
                                if(H.selected){
                                    M[V++]=R+encodeURIComponent((H.attributes.value&&H.attributes.value.specified)?H.value:H.text);
                                }
                            }
                        }
                        break;
                    case"radio":case"checkbox":
                        if(I.checked){
                            M[V++]=R+P;
                        }
                        break;
                    case"file":case undefined:case"reset":case"button":
                        break;
                    case"submit":
                        if(Q===false){
                            if(this._hasSubmitListener&&this._submitElementValue){
                                M[V++]=this._submitElementValue;
                            }
                            Q=true;
                        }
                        break;
                    default:
                        M[V++]=R+P;
                }
            }
        }
        this._isFormSubmit=true;
        this._sFormData=M.join("&");
        this.initHeader("Content-Type",this._default_form_header);
        return this._sFormData;
    }
    function C(){
        this._isFormSubmit=false;
        this._isFileUpload=false;
        this._formNode=null;
        this._sFormData="";
    }
    function B(H){
        var I="yuiIO"+this._transaction_id,J;
        if(YAHOO.env.ua.ie){
            J=document.createElement('<iframe id="'+I+'" name="'+I+'" />');
            if(typeof H=="boolean"){
                J.src="javascript:false";
            }
        }else{
            J=document.createElement("iframe");
            J.id=I;
            J.name=I;
        }
        J.style.position="absolute";
        J.style.top="-1000px";
        J.style.left="-1000px";
        document.body.appendChild(J);
    }
    function E(H){
        var K=[],I=H.split("&"),J,L;
        for(J=0;J<I.length;J++){
            L=I[J].indexOf("=");
            if(L!=-1){
                K[J]=document.createElement("input");
                K[J].type="hidden";
                K[J].name=decodeURIComponent(I[J].substring(0,L));
                K[J].value=decodeURIComponent(I[J].substring(L+1));
                this._formNode.appendChild(K[J]);
            }
        }
        return K;
    }
    function A(K,V,L,J){
        var Q="yuiIO"+K.tId,R="multipart/form-data",T=document.getElementById(Q),M=(document.documentMode&&document.documentMode===8)?true:false,W=this,S=(V&&V.argument)?V.argument:null,U,P,I,O,H,N;
        H={
            action:this._formNode.getAttribute("action"),
            method:this._formNode.getAttribute("method"),
            target:this._formNode.getAttribute("target")
        };

        this._formNode.setAttribute("action",L);
        this._formNode.setAttribute("method","POST");
        this._formNode.setAttribute("target",Q);
        if(YAHOO.env.ua.ie&&!M){
            this._formNode.setAttribute("encoding",R);
        }else{
            this._formNode.setAttribute("enctype",R);
        }
        if(J){
            U=this.appendPostData(J);
        }
        this._formNode.submit();
        this.startEvent.fire(K,S);
        if(K.startEvent){
            K.startEvent.fire(K,S);
        }
        if(V&&V.timeout){
            this._timeOut[K.tId]=window.setTimeout(function(){
                W.abort(K,V,true);
            },V.timeout);
        }
        if(U&&U.length>0){
            for(P=0;P<U.length;P++){
                this._formNode.removeChild(U[P]);
            }
        }
        for(I in H){
            if(YAHOO.lang.hasOwnProperty(H,I)){
                if(H[I]){
                    this._formNode.setAttribute(I,H[I]);
                }else{
                    this._formNode.removeAttribute(I);
                }
            }
        }
        this.resetFormState();
        N=function(){
            if(V&&V.timeout){
                window.clearTimeout(W._timeOut[K.tId]);
                delete W._timeOut[K.tId];
            }
            W.completeEvent.fire(K,S);
            if(K.completeEvent){
                K.completeEvent.fire(K,S);
            }
            O={
                tId:K.tId,
                argument:V.argument
            };

            try{
                O.responseText=T.contentWindow.document.body?T.contentWindow.document.body.innerHTML:T.contentWindow.document.documentElement.textContent;
                O.responseXML=T.contentWindow.document.XMLDocument?T.contentWindow.document.XMLDocument:T.contentWindow.document;
            }catch(X){}
            if(V&&V.upload){
                if(!V.scope){
                    V.upload(O);
                }else{
                    V.upload.apply(V.scope,[O]);
                }
            }
            W.uploadEvent.fire(O);
            if(K.uploadEvent){
                K.uploadEvent.fire(O);
            }
            F.removeListener(T,"load",N);
            setTimeout(function(){
                document.body.removeChild(T);
                W.releaseObject(K);
            },100);
        };

        F.addListener(T,"load",N);
    }
    D.setForm=G;
    D.resetFormState=C;
    D.createFrame=B;
    D.appendPostData=E;
    D.uploadFile=A;
})();
YAHOO.register("connection",YAHOO.util.Connect,{
    version:"2.8.1",
    build:"19"
});
