/*
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" });