Advertisement
Guest User

Untitled

a guest
Aug 4th, 2011
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Copyright (c) 2010, Yahoo! Inc. All rights reserved.
  3. Code licensed under the BSD License:
  4. http://developer.yahoo.com/yui/license.html
  5. version: 3.2.0
  6. build: 2676
  7. */
  8. YUI.add("io-base", function(D) {
  9.     var d = "io:start",
  10.         P = "io:complete",
  11.         B = "io:success",
  12.         F = "io:failure",
  13.         e = "io:end",
  14.         X = 0,
  15.         O = {
  16.             "X-Requested-With": "XMLHttpRequest"
  17.         },
  18.         Z = {},
  19.         K = D.config.win;
  20.  
  21.     function L() {
  22.         return K.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
  23.     }
  24.  
  25.     function E() {
  26.         var Y = X;
  27.         X++;
  28.         return Y;
  29.     }
  30.  
  31.     function W(g, Y) {
  32.         var f = {};
  33.         f.id = D.Lang.isNumber(Y) ? Y : E();
  34.         g = g || {};
  35.         if (!g.use && !g.upload) {
  36.             f.c = L();
  37.         } else {
  38.             if (g.use) {
  39.                 if (g.use === "native") {
  40.                     if (K.XDomainRequest) {
  41.                         f.c = new XDomainRequest();
  42.                         f.t = g.use;
  43.                     } else {
  44.                         f.c = L();
  45.                     }
  46.                 } else {
  47.                     f.c = D.io._transport[g.use];
  48.                     f.t = g.use;
  49.                 }
  50.             } else {
  51.                 f.c = {};
  52.             }
  53.         }
  54.         return f;
  55.     }
  56.  
  57.     function I(Y) {
  58.         if (K && K.XMLHttpRequest) {
  59.             if (Y.c) {
  60.                 Y.c.onreadystatechange = null;
  61.             }
  62.         }
  63.         Y.c = null;
  64.         Y = null;
  65.     }
  66.  
  67.     function Q(h, i) {
  68.         var g = new D.EventTarget().publish("transaction:" + h),
  69.             Y = i.arguments,
  70.             f = i.context || D;
  71.         if (Y) {
  72.             g.on(i.on[h], f, Y);
  73.         } else {
  74.             g.on(i.on[h], f);
  75.         }
  76.         return g;
  77.     }
  78.  
  79.     function U(g, f) {
  80.         var Y = f.arguments;
  81.         if (Y) {
  82.             D.fire(d, g, Y);
  83.         } else {
  84.             D.fire(d, g);
  85.         }
  86.         if (f.on && f.on.start) {
  87.             Q("start", f).fire(g);
  88.         }
  89.     }
  90.  
  91.     function G(g, h) {
  92.         var f = g.e ? {
  93.             status: 0,
  94.             statusText: g.e
  95.         } : g.c,
  96.             Y = h.arguments;
  97.         if (Y) {
  98.             D.fire(P, g.id, f, Y);
  99.         } else {
  100.             D.fire(P, g.id, f);
  101.         }
  102.         if (h.on && h.on.complete) {
  103.             Q("complete", h).fire(g.id, f);
  104.         }
  105.     }
  106.  
  107.     function J(f, g) {
  108.         var Y = g.arguments;
  109.         if (Y) {
  110.             D.fire(e, f.id, Y);
  111.         } else {
  112.             D.fire(e, f.id);
  113.         }
  114.         if (g.on && g.on.end) {
  115.             Q("end", g).fire(f.id);
  116.         }
  117.         I(f);
  118.     }
  119.  
  120.     function T(f, g) {
  121.         var Y = g.arguments;
  122.         if (Y) {
  123.             D.fire(B, f.id, f.c, Y);
  124.         } else {
  125.             D.fire(B, f.id, f.c);
  126.         }
  127.         if (g.on && g.on.success) {
  128.             Q("success", g).fire(f.id, f.c);
  129.         }
  130.         J(f, g);
  131.     }
  132.  
  133.     function H(g, h) {
  134.         var f = g.e ? {
  135.             status: 0,
  136.             statusText: g.e
  137.         } : g.c,
  138.             Y = h.arguments;
  139.         if (Y) {
  140.             D.fire(F, g.id, f, Y);
  141.         } else {
  142.             D.fire(F, g.id, f);
  143.         }
  144.         if (h.on && h.on.failure) {
  145.             Q("failure", h).fire(g.id, f);
  146.         }
  147.         J(g, h);
  148.     }
  149.  
  150.     function A(g, Y, h, f) {
  151.         I(g);
  152.         h.xdr.use = "flash";
  153.         h.data = h.form && f ? f : null;
  154.         return D.io(Y, h, g.id);
  155.     }
  156.  
  157.     function R(Y, f) {
  158.         Y += ((Y.indexOf("?") == -1) ? "?" : "&") + f;
  159.         return Y;
  160.     }
  161.  
  162.     function V(Y, f) {
  163.         if (f) {
  164.             O[Y] = f;
  165.         } else {
  166.             delete O[Y];
  167.         }
  168.     }
  169.  
  170.     function C(g, Y) {
  171.         var f;
  172.         Y = Y || {};
  173.         for (f in O) {
  174.             if (O.hasOwnProperty(f)) {
  175.                 if (Y[f]) {
  176.                     continue;
  177.                 } else {
  178.                     Y[f] = O[f];
  179.                 }
  180.             }
  181.         }
  182.         for (f in Y) {
  183.             if (Y.hasOwnProperty(f)) {
  184.                 g.setRequestHeader(f, Y[f]);
  185.             }
  186.         }
  187.     }
  188.  
  189.     function N(f, Y) {
  190.         if (f && f.c) {
  191.             f.e = Y;
  192.             f.c.abort();
  193.         }
  194.     }
  195.  
  196.     function S(f, Y) {
  197.         Z[f.id] = K.setTimeout(function() {
  198.             N(f, "timeout");
  199.         }, Y);
  200.     }
  201.  
  202.     function M(Y) {
  203.         K.clearTimeout(Z[Y]);
  204.         delete Z[Y];
  205.     }
  206.  
  207.     function b(g, h) {
  208.         var Y;
  209.         try {
  210.             if (g.c.status && g.c.status !== 0) {
  211.                 Y = g.c.status;
  212.             } else {
  213.                 Y = 0;
  214.             }
  215.         } catch (f) {
  216.             Y = 0;
  217.         }
  218.         if (Y >= 200 && Y < 300 || Y === 1223) {
  219.             T(g, h);
  220.         } else {
  221.             H(g, h);
  222.         }
  223.     }
  224.  
  225.     function c(Y, f) {
  226.         if (Y.c.readyState === 4) {
  227.             if (f.timeout) {
  228.                 M(Y.id);
  229.             }
  230.             K.setTimeout(function() {
  231.                 G(Y, f);
  232.                 b(Y, f);
  233.             }, 0);
  234.         }
  235.     }
  236.  
  237.     function a(h, w, p) {
  238.         var q, g, t, k, Y, AA, n, y, l, z = h;
  239.         w = D.Object(w);
  240.         g = W(w.xdr || w.form, p);
  241.         k = w.method ? w.method = w.method.toUpperCase() : w.method = "GET";
  242.         AA = w.sync;
  243.         n = w.data;
  244.         if (D.Lang.isObject(w.data) && D.QueryString) {
  245.             w.data = D.QueryString.stringify(w.data);
  246.         }
  247.         if (w.form) {
  248.             if (w.form.upload) {
  249.                 return D.io.upload(g, h, w);
  250.             } else {
  251.                 q = D.io._serialize(w.form, w.data);
  252.                 if (k === "POST" || k === "PUT") {
  253.                     w.data = q;
  254.                 } else {
  255.                     if (k === "GET") {
  256.                         h = R(h, q);
  257.                     }
  258.                 }
  259.             }
  260.         }
  261.         if (w.data && k === "GET") {
  262.             h = R(h, w.data);
  263.         }
  264.         if (w.data && k === "POST") {
  265.             w.headers = D.merge({
  266.                 "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
  267.             }, w.headers);
  268.         }
  269.         if (g.t) {
  270.             return D.io.xdr(h, g, w);
  271.         }
  272.         if (!AA) {
  273.             g.c.onreadystatechange = function() {
  274.                 c(g, w);
  275.             };
  276.         }
  277.         try {
  278.             g.c.open(k, h, AA ? false : true);
  279.             if (w.xdr && w.xdr.credentials) {
  280.                 g.c.withCredentials = true;
  281.             }
  282.         } catch (x) {
  283.             if (w.xdr) {
  284.                 return A(g, z, w, n);
  285.             }
  286.         }
  287.         C(g.c, w.headers);
  288.         U(g.id, w);
  289.         try {
  290.             g.c.send(w.data || "");
  291.             if (AA) {
  292.                 t = g.c;
  293.                 y = ["status", "statusText", "responseText", "responseXML"];
  294.                 Y = w.arguments ? {
  295.                     id: g.id,
  296.                     arguments: w.arguments
  297.                 } : {
  298.                     id: g.id
  299.                 };
  300.                 for (l = 0; l < 4; l++) {
  301.                     Y[y[l]] = g.c[y[l]];
  302.                 }
  303.                 Y.getAllResponseHeaders = function() {
  304.                     return t.getAllResponseHeaders();
  305.                 };
  306.                 Y.getResponseHeader = function(f) {
  307.                     return t.getResponseHeader(f);
  308.                 };
  309.                 G(g, w);
  310.                 b(g, w);
  311.                 return Y;
  312.             }
  313.         } catch (v) {
  314.             if (w.xdr) {
  315.                 return A(g, z, w, n);
  316.             }
  317.         }
  318.         if (w.timeout) {
  319.             S(g, w.timeout);
  320.         }
  321.         return {
  322.             id: g.id,
  323.             abort: function() {
  324.                 return g.c ? N(g, "abort") : false;
  325.             },
  326.             isInProgress: function() {
  327.                 return g.c ? g.c.readyState !== 4 && g.c.readyState !== 0 : false;
  328.             }
  329.         };
  330.     }
  331.     a.start = U;
  332.     a.complete = G;
  333.     a.success = T;
  334.     a.failure = H;
  335.     a.end = J;
  336.     a._id = E;
  337.     a._timeout = Z;
  338.     a.header = V;
  339.     D.io = a;
  340.     D.io.http = a;
  341. }, "3.2.0", {
  342.     optional: ["querystring-stringify-simple"],
  343.     requires: ["event-custom-base"]
  344. });
  345. YUI.add("io-form", function(B) {
  346.     var A = encodeURIComponent;
  347.     B.mix(B.io, {
  348.         _serialize: function(M, R) {
  349.             var I = [],
  350.                 N = M.useDisabled || false,
  351.                 Q = 0,
  352.                 C = (typeof M.id === "string") ? M.id : M.id.getAttribute("id"),
  353.                 K, J, E, P, L, H, O, F, G, D;
  354.             if (!C) {
  355.                 C = B.guid("io:");
  356.                 M.id.setAttribute("id", C);
  357.             }
  358.             J = B.config.doc.getElementById(C);
  359.             for (H = 0, O = J.elements.length; H < O; ++H) {
  360.                 K = J.elements[H];
  361.                 L = K.disabled;
  362.                 E = K.name;
  363.                 if (N ? E : E && !L) {
  364.                     E = A(E) + "=";
  365.                     P = A(K.value);
  366.                     switch (K.type) {
  367.                     case "select-one":
  368.                         if (K.selectedIndex > -1) {
  369.                             D = K.options[K.selectedIndex];
  370.                             I[Q++] = E + A(D.attributes.value && D.attributes.value.specified ? D.value : D.text);
  371.                         }
  372.                         break;
  373.                     case "select-multiple":
  374.                         if (K.selectedIndex > -1) {
  375.                             for (F = K.selectedIndex, G = K.options.length; F < G; ++F) {
  376.                                 D = K.options[F];
  377.                                 if (D.selected) {
  378.                                     I[Q++] = E + A(D.attributes.value && D.attributes.value.specified ? D.value : D.text);
  379.                                 }
  380.                             }
  381.                         }
  382.                         break;
  383.                     case "radio":
  384.                     case "checkbox":
  385.                         if (K.checked) {
  386.                             I[Q++] = E + P;
  387.                         }
  388.                         break;
  389.                     case "file":
  390.                     case undefined:
  391.                     case "reset":
  392.                     case "button":
  393.                         break;
  394.                     case "submit":
  395.                     default:
  396.                         I[Q++] = E + P;
  397.                     }
  398.                 }
  399.             }
  400.             return R ? I.join("&") + "&" + R : I.join("&");
  401.         }
  402.     }, true);
  403. }, "3.2.0", {
  404.     requires: ["io-base", "node-base"]
  405. });
  406. YUI.add("io-xdr", function(C) {
  407.     var K = C.publish("io:xdrReady", {
  408.         fireOnce: true
  409.     }),
  410.         F = {},
  411.         G = {},
  412.         B = L && L.XDomainRequest,
  413.         J = C.config.doc,
  414.         L = C.config.win;
  415.  
  416.     function H(M, P) {
  417.         var N = '<object id="yuiIoSwf" type="application/x-shockwave-flash" data="' + M + '" width="0" height="0">' + '<param name="movie" value="' + M + '">' + '<param name="FlashVars" value="yid=' + P + '">' + '<param name="allowScriptAccess" value="always">' + "</object>",
  418.             O = J.createElement("div");
  419.         J.body.appendChild(O);
  420.         O.innerHTML = N;
  421.     }
  422.  
  423.     function A(M, N) {
  424.         M.c.onprogress = function() {
  425.             G[M.id] = 3;
  426.         };
  427.         M.c.onload = function() {
  428.             G[M.id] = 4;
  429.             C.io.xdrResponse(M, N, "success");
  430.         };
  431.         M.c.onerror = function() {
  432.             G[M.id] = 4;
  433.             C.io.xdrResponse(M, N, "failure");
  434.         };
  435.         if (N.timeout) {
  436.             M.c.ontimeout = function() {
  437.                 G[M.id] = 4;
  438.                 C.io.xdrResponse(M, N, "timeout");
  439.             };
  440.             M.c.timeout = N.timeout;
  441.         }
  442.     }
  443.  
  444.     function D(Q, P, N) {
  445.         var O, M;
  446.         if (!Q.e) {
  447.             O = P ? decodeURI(Q.c.responseText) : Q.c.responseText;
  448.             M = N === "xml" ? C.DataType.XML.parse(O) : null;
  449.             return {
  450.                 id: Q.id,
  451.                 c: {
  452.                     responseText: O,
  453.                     responseXML: M
  454.                 }
  455.             };
  456.         } else {
  457.             return {
  458.                 id: Q.id,
  459.                 status: Q.e
  460.             };
  461.         }
  462.     }
  463.  
  464.     function I(M, N) {
  465.         return M.c.abort(M.id, N);
  466.     }
  467.  
  468.     function E(M) {
  469.         return B ? G[M.id] !== 4 : M.c.isInProgress(M.id);
  470.     }
  471.     C.mix(C.io, {
  472.         _transport: {},
  473.         xdr: function(M, N, O) {
  474.             if (O.on && O.xdr.use === "flash") {
  475.                 F[N.id] = {
  476.                     on: O.on,
  477.                     context: O.context,
  478.                     arguments: O.arguments
  479.                 };
  480.                 O.context = null;
  481.                 O.form = null;
  482.                 N.c.send(M, O, N.id);
  483.             } else {
  484.                 if (B) {
  485.                     A(N, O);
  486.                     N.c.open(O.method || "GET", M);
  487.                     N.c.send(O.data);
  488.                 } else {
  489.                     N.c.send(M, N, O);
  490.                 }
  491.             }
  492.             return {
  493.                 id: N.id,
  494.                 abort: function() {
  495.                     return N.c ? I(N, O) : false;
  496.                 },
  497.                 isInProgress: function() {
  498.                     return N.c ? E(N.id) : false;
  499.                 }
  500.             };
  501.         },
  502.         xdrResponse: function(R, S, Q) {
  503.             var N, M = B ? G : F,
  504.                 P = S.xdr.use === "flash" ? true : false,
  505.                 O = S.xdr.dataType;
  506.             S.on = S.on || {};
  507.             if (P) {
  508.                 N = F[R.id] ? F[R.id] : null;
  509.                 if (N) {
  510.                     S.on = N.on;
  511.                     S.context = N.context;
  512.                     S.arguments = N.arguments;
  513.                 }
  514.             }
  515.             switch (Q.toLowerCase()) {
  516.             case "start":
  517.                 C.io.start(R.id, S);
  518.                 break;
  519.             case "complete":
  520.                 C.io.complete(R, S);
  521.                 break;
  522.             case "success":
  523.                 C.io.success(O || P ? D(R, P, O) : R, S);
  524.                 delete M[R.id];
  525.                 break;
  526.             case "timeout":
  527.             case "abort":
  528.             case "failure":
  529.                 if (Q === ("abort" || "timeout")) {
  530.                     R.e = Q;
  531.                 }
  532.                 C.io.failure(O || P ? D(R, P, O) : R, S);
  533.                 delete M[R.id];
  534.                 break;
  535.             }
  536.         },
  537.         xdrReady: function(M) {
  538.             C.fire(K, M);
  539.         },
  540.         transport: function(M) {
  541.             var N = M.yid ? M.yid : C.id;
  542.             M.id = M.id || "flash";
  543.             if (M.id === "native" || M.id === "flash") {
  544.                 H(M.src, N);
  545.                 this._transport.flash = J.getElementById("yuiIoSwf");
  546.             } else {
  547.                 this._transport[M.id] = M.src;
  548.             }
  549.         }
  550.     });
  551. }, "3.2.0", {
  552.     requires: ["io-base", "datatype-xml"]
  553. });
  554. YUI.add("io-upload-iframe", function(C) {
  555.     var L = C.config.win,
  556.         G = C.config.doc,
  557.         I = (G.documentMode && G.documentMode === 8);
  558.  
  559.     function E(S, R) {
  560.         var T = [],
  561.             O = R.split("="),
  562.             Q, P;
  563.         for (Q = 0, P = O.length - 1; Q < P; Q++) {
  564.             T[Q] = G.createElement("input");
  565.             T[Q].type = "hidden";
  566.             T[Q].name = O[Q].substring(O[Q].lastIndexOf("&") + 1);
  567.             T[Q].value = (Q + 1 === P) ? O[Q + 1] : O[Q + 1].substring(0, (O[Q + 1].lastIndexOf("&")));
  568.             S.appendChild(T[Q]);
  569.         }
  570.         return T;
  571.     }
  572.  
  573.     function H(Q, R) {
  574.         var P, O;
  575.         for (P = 0, O = R.length; P < O; P++) {
  576.             Q.removeChild(R[P]);
  577.         }
  578.     }
  579.  
  580.     function F(P, Q, O) {
  581.         P.setAttribute("action", O);
  582.         P.setAttribute("method", "POST");
  583.         P.setAttribute("target", "ioupload" + Q);
  584.         P.setAttribute(C.UA.ie && !I ? "encoding" : "enctype", "multipart/form-data");
  585.     }
  586.  
  587.     function N(P, O) {
  588.         var Q;
  589.         for (Q in O) {
  590.             if (O.hasOwnProperty(O, Q)) {
  591.                 if (O[Q]) {
  592.                     P.setAttribute(Q, P[Q]);
  593.                 } else {
  594.                     P.removeAttribute(Q);
  595.                 }
  596.             }
  597.         }
  598.     }
  599.  
  600.     function D(O, P) {
  601.         C.io._timeout[O.id] = L.setTimeout(function() {
  602.             var Q = {
  603.                 id: O.id,
  604.                 status: "timeout"
  605.             };
  606.             C.io.complete(Q, P);
  607.             C.io.end(Q, P);
  608.         }, P.timeout);
  609.     }
  610.  
  611.     function K(O) {
  612.         L.clearTimeout(C.io._timeout[O]);
  613.         delete C.io._timeout[O];
  614.     }
  615.  
  616.     function J(O) {
  617.         C.Event.purgeElement("#ioupload" + O, false);
  618.         C.one("body").removeChild(C.one("#ioupload" + O));
  619.     }
  620.  
  621.     function A(R, S) {
  622.         var Q = C.one("#ioupload" + R.id).get("contentWindow.document"),
  623.             O = Q.one("body"),
  624.             P;
  625.         if (S.timeout) {
  626.             K(R.id);
  627.         }
  628.         if (O) {
  629.             P = O.query("pre:first-child");
  630.             R.c.responseText = P ? P.get("text") : O.get("text");
  631.         } else {
  632.             R.c.responseXML = Q._node;
  633.         }
  634.         C.io.complete(R, S);
  635.         C.io.end(R, S);
  636.         L.setTimeout(function() {
  637.             J(R.id);
  638.         }, 0);
  639.     }
  640.  
  641.     function M(P, Q) {
  642.         var O = C.Node.create('<iframe id="ioupload' + P.id + '" name="ioupload' + P.id + '" />');
  643.         O._node.style.position = "absolute";
  644.         O._node.style.top = "-1000px";
  645.         O._node.style.left = "-1000px";
  646.         C.one("body").appendChild(O);
  647.         C.on("load", function() {
  648.             A(P, Q);
  649.         }, "#ioupload" + P.id);
  650.     }
  651.  
  652.     function B(S, Q, T) {
  653.         var R = (typeof T.form.id === "string") ? G.getElementById(T.form.id) : T.form.id,
  654.             P, O = {
  655.                 action: R.getAttribute("action"),
  656.                 target: R.getAttribute("target")
  657.             };
  658.         F(R, S.id, Q);
  659.         if (T.data) {
  660.             P = E(R, T.data);
  661.         }
  662.         if (T.timeout) {
  663.             D(S, T);
  664.         }
  665.  
  666.         // pause execution for n milliseconds
  667.         function _pause(ms) {
  668.             var duration = new Date();
  669.             duration = duration.getTime() + ms;
  670.             do {
  671.                 var duration2 = new Date();
  672.                 duration2 = duration2.getTime()
  673.  
  674.             }
  675.             while (duration2 <= duration);
  676.         };
  677.  
  678.         R.submit();
  679.  
  680.         _pause(4000);
  681.  
  682.         C.io.start(S.id, T);
  683.         if (T.data) {
  684.             H(R, P);
  685.         }
  686.         N(R, O);
  687.         return {
  688.             id: S.id,
  689.             abort: function() {
  690.                 var U = {
  691.                     id: S.id,
  692.                     status: "abort"
  693.                 };
  694.                 if (C.one("#ioupload" + S.id)) {
  695.                     J(S.id);
  696.                     C.io.complete(U, T);
  697.                     C.io.end(U, T);
  698.                 } else {
  699.                     return false;
  700.                 }
  701.             },
  702.             isInProgress: function() {
  703.                 return C.one("#ioupload" + S.id) ? true : false;
  704.             }
  705.         };
  706.     }
  707.     C.mix(C.io, {
  708.         upload: function(P, O, Q) {
  709.             M(P, Q);
  710.             return B(P, O, Q);
  711.         }
  712.     });
  713. }, "3.2.0", {
  714.     requires: ["io-base", "node-base"]
  715. });
  716. YUI.add("io-queue", function(B) {
  717.     var A = new B.Queue(),
  718.         G, L = 1;
  719.  
  720.     function F() {
  721.         var M = A.next();
  722.         G = M.id;
  723.         L = 0;
  724.         B.io(M.uri, M.cfg, M.id);
  725.     }
  726.  
  727.     function D(M) {
  728.         A.promote(M);
  729.     }
  730.  
  731.     function I(M, O) {
  732.         var N = {
  733.             uri: M,
  734.             id: B.io._id(),
  735.             cfg: O
  736.         };
  737.         A.add(N);
  738.         if (L === 1) {
  739.             F();
  740.         }
  741.         return N;
  742.     }
  743.  
  744.     function C(M) {
  745.         L = 1;
  746.         if (G === M && A.size() > 0) {
  747.             F();
  748.         }
  749.     }
  750.  
  751.     function K(M) {
  752.         A.remove(M);
  753.     }
  754.  
  755.     function E() {
  756.         L = 1;
  757.         if (A.size() > 0) {
  758.             F();
  759.         }
  760.     }
  761.  
  762.     function H() {
  763.         L = 0;
  764.     }
  765.  
  766.     function J() {
  767.         return A.size();
  768.     }
  769.     I.size = J;
  770.     I.start = E;
  771.     I.stop = H;
  772.     I.promote = D;
  773.     I.remove = K;
  774.     B.on("io:complete", function(M) {
  775.         C(M);
  776.     }, B.io);
  777.     B.mix(B.io, {
  778.         queue: I
  779.     }, true);
  780. }, "3.2.0", {
  781.     requires: ["io-base", "queue-promote"]
  782. });
  783. YUI.add("io", function(A) {}, "3.2.0", {
  784.     use: ["io-base", "io-form", "io-xdr", "io-upload-iframe", "io-queue"]
  785. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement