;
YAHOO.namespace("lang");YAHOO.lang.JSON = {_ESCAPES:/\\["\\\/bfnrtu]/g, _VALUES:/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, _BRACKETS:/(?:^|:|,)(?:\s*\[)+/g, _INVALID:/^[\],:{}\s]*$/, _SPECIAL_CHARS:/["\\\x00-\x1f\x7f-\x9f]/g, _PARSE_DATE:/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/, _CHARS:{'\b':"\\b", '\t':"\\t", '\n':"\\n", '\f':"\\f", '\r':"\\r", '"':"\\\"", '\\':"\\\\"}, _applyFilter:function (C, B) {var A = function (E, D) {var F, G;if (D && typeof D === "object") {for (F in D) {if (YAHOO.lang.hasOwnProperty(D, F)) {G = A(F, D[F]);if (G === undefined) {delete D[F];} else {D[F] = G;}}}}return B(E, D);};if (YAHOO.lang.isFunction(B)) {A("", C);}return C;}, isValid:function (A) {if (!YAHOO.lang.isString(A)) {return false;}return this._INVALID.test(A.replace(this._ESCAPES, "@").replace(this._VALUES, "]").replace(this._BRACKETS, ""));}, dateToString:function (B) {function A(C) {return C < 10 ? "0" + C : C;}return "\"" + B.getUTCFullYear() + "-" + A(B.getUTCMonth() + 1) + "-" + A(B.getUTCDate()) + "T" + A(B.getUTCHours()) + ":" + A(B.getUTCMinutes()) + ":" + A(B.getUTCSeconds()) + "Z\"";}, stringToDate:function (B) {if (this._PARSE_DATE.test(B)) {var A = new Date;A.setUTCFullYear(RegExp.$1, (RegExp.$2 | 0) - 1, RegExp.$3);A.setUTCHours(RegExp.$4, RegExp.$5, RegExp.$6);return A;}}, parse:function (s, filter) {if (this.isValid(s)) {return this._applyFilter(eval("(" + s + ")"), filter);}throw new SyntaxError("parseJSON");}, stringify:function (C, K, F) {var E = YAHOO.lang, H = E.JSON, D = H._CHARS, A = this._SPECIAL_CHARS, B = [];var I = function (N) {if (!D[N]) {var J = N.charCodeAt();D[N] = "\\u00" + Math.floor(J / 16).toString(16) + (J % 16).toString(16);}return D[N];};var M = function (J) {return "\"" + J.replace(A, I) + "\"";};var L = H.dateToString;var G = function (J, T, R) {var W = typeof J, P, Q, O, N, U, V, S;if (W === "string") {return M(J);}if (W === "boolean" || J instanceof Boolean) {return String(J);}if (W === "number" || J instanceof Number) {return isFinite(J) ? String(J) : "null";}if (J instanceof Date) {return L(J);}if (E.isArray(J)) {for (P = B.length - 1; P >= 0; --P) {if (B[P] === J) {return "null";}}B[B.length] = J;S = [];if (R > 0) {for (P = J.length - 1; P >= 0; --P) {S[P] = G(J[P], T, R - 1) || "null";}}B.pop();return "[" + S.join(",") + "]";}if (W === "object") {if (!J) {return "null";}for (P = B.length - 1; P >= 0; --P) {if (B[P] === J) {return "null";}}B[B.length] = J;S = [];if (R > 0) {if (T) {for (P = 0, O = 0, Q = T.length; P < Q; ++P) {if (typeof T[P] === "string") {U = G(J[T[P]], T, R - 1);if (U) {S[O++] = M(T[P]) + ":" + U;}}}} else {O = 0;for (N in J) {if (typeof N === "string" && E.hasOwnProperty(J, N)) {U = G(J[N], T, R - 1);if (U) {S[O++] = M(N) + ":" + U;}}}}}B.pop();return "{" + S.join(",") + "}";}return undefined;};F = F >= 0 ? F : Infinity;return G(C, K, F);}};YAHOO.register("json", YAHOO.lang.JSON, {version:"2.5.1", build:"984"});
