1 /* Replayable replacements for global functions */
3 /***************************************************************
5 **************************************************************/
6 //! stable.js 0.1.3, https://github.com/Two-Screen/stable
7 //! © 2012 Stéphan Kochen, Angry Bytes. MIT licensed.
10 // A stable array sort, because `Array#sort()` is not guaranteed stable.
11 // This is an implementation of merge sort, without recursion.
13 var stable = function(arr, comp) {
14 if (typeof(comp) !== 'function') {
15 comp = function(a, b) {
26 if (len <= 1) return arr;
28 // Rather than dividing input, simply iterate chunks of 1, 2, 4, 8, etc.
29 // Chunks are the size of the left or right hand in merge sort.
30 // Stop when the left-hand covers all of the array.
32 for (var chk = 1; chk < len; chk *= 2) {
33 arr = pass(arr, comp, chk);
35 for (var i = 0; i < len; i++) {
41 // Run a single pass with the given chunk size. Returns a new array.
42 var pass = function(arr, comp, chk) {
44 // Output, and position.
45 var result = new Array(len);
47 // Step size / double chunk size.
49 // Bounds of the left and right chunks.
51 // Iterators over the left and right chunk.
54 // Iterate over pairs of chunks.
55 for (l = 0; l < len; l += dbl) {
61 // Iterate both chunks in parallel.
65 // Compare the chunks.
66 if (li < r && ri < e) {
67 // This works for a regular `sort()` compatible comparator,
68 // but also for a simple comparator like: `a > b`
69 if (comp(arr[li], arr[ri]) <= 0) {
70 result[i++] = arr[li++];
73 result[i++] = arr[ri++];
76 // Nothing to compare, just flush what's left.
78 result[i++] = arr[li++];
81 result[i++] = arr[ri++];
83 // Both iterators are at the chunk ends.
93 var arrsort = function(comp) {
94 return stable(this, comp);
97 if (Object.defineProperty) {
98 Object.defineProperty(Array.prototype, "sort", {
99 configurable: true, writable: true, enumerable: false,
103 Array.prototype.sort = arrsort;
107 /***************************************************************
109 **************************************************************/
112 * In a generated replay, this file is partially common, boilerplate code
113 * included in every replay, and partially generated replay code. The following
114 * header applies to the boilerplate code. A comment indicating "Auto-generated
115 * below this comment" marks the separation between these two parts.
117 * Copyright (C) 2011, 2012 Purdue University
118 * Written by Gregor Richards
119 * All rights reserved.
121 * Redistribution and use in source and binary forms, with or without
122 * modification, are permitted provided that the following conditions are met:
124 * 1. Redistributions of source code must retain the above copyright notice,
125 * this list of conditions and the following disclaimer.
126 * 2. Redistributions in binary form must reproduce the above copyright notice,
127 * this list of conditions and the following disclaimer in the documentation
128 * and/or other materials provided with the distribution.
130 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
131 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
132 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
133 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
134 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
135 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
136 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
137 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
138 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
139 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
140 * POSSIBILITY OF SUCH DAMAGE.
147 // detect if we're in a browser or not
148 var inbrowser = false;
149 var inharness = false;
150 var finished = false;
151 if (typeof window !== "undefined" && "document" in window) {
153 if (window.parent && "JSBNG_handleResult" in window.parent) {
156 } else if (typeof global !== "undefined") {
160 window = (function() { return this; })();
164 if ("console" in window) {
165 window.JSBNG_Console = window.console;
170 // Workaround for bound functions as events
171 delete Function.prototype.bind;
174 var JSBNG_Replay = window.top.JSBNG_Replay = {
175 push: function(arr, fun) {
180 path: function(str) {
184 forInKeys: function(of) {
192 // the actual replay runner
195 delete window.onload;
198 var jr = JSBNG_Replay$;
199 var cb = function() {
200 var end = new Date().getTime();
203 var msg = "Time: " + (end - st) + "ms";
206 window.parent.JSBNG_handleResult({error:false, time:(end - st)});
207 } else if (inbrowser) {
208 var res = document.createElement("div");
210 res.style.position = "fixed";
211 res.style.left = "1em";
212 res.style.top = "1em";
213 res.style.width = "35em";
214 res.style.height = "5em";
215 res.style.padding = "1em";
216 res.style.backgroundColor = "white";
217 res.style.color = "black";
218 res.appendChild(document.createTextNode(msg));
220 document.body.appendChild(res);
221 } else if (typeof console !== "undefined") {
223 } else if (typeof print !== "undefined") {
224 // hopefully not the browser print() function :)
233 var st = new Date().getTime();
234 while (jr !== null) {
239 // add a frame at replay time
240 function iframe(pageid) {
243 // represent the iframe as an iframe (of course)
244 var iframe = document.createElement("iframe");
245 iframe.style.display = "none";
246 document.body.appendChild(iframe);
247 iw = iframe.contentWindow;
248 iw.document.write("<script type=\"text/javascript\">var JSBNG_Replay_geval = eval;</script>");
251 // no general way, just lie and do horrible things
255 window.window = window;
257 window.JSBNG_Replay_geval = function(str) {
266 // called at the end of the replay stuff
267 function finalize() {
269 setTimeout(onload, 0);
275 // verify this recorded value and this replayed value are close enough
276 function verify(rep, rec) {
278 (rep === rep || rec === rec) /* NaN test */) {
280 if (typeof rec === "function" && typeof rep === "function") {
283 if (typeof rec !== "object" || rec === null ||
284 !(("__JSBNG_unknown_" + typeof(rep)) in rec)) {
292 var firstMessage = true;
293 function replayMessage(msg) {
297 firstMessage = false;
304 // complain when there's an error
305 function verificationError(msg) {
306 if (finished) return;
308 window.parent.JSBNG_handleResult({error:true, msg: msg});
309 } else replayMessage(msg);
314 function verifySet(objstr, obj, prop, gvalstr, gval) {
315 if (/^on/.test(prop)) {
316 // these aren't instrumented compatibly
320 if (!verify(obj[prop], gval)) {
321 var bval = obj[prop];
322 var msg = "Verification failure! " + objstr + "." + prop + " is not " + gvalstr + ", it's " + bval + "!";
323 verificationError(msg);
327 // to verify a call or new
328 function verifyCall(iscall, func, cthis, cargs) {
330 var callArgs = func.callArgs[func.inst];
331 iscall = iscall ? 1 : 0;
332 if (cargs.length !== callArgs.length - 1) {
335 if (iscall && !verify(cthis, callArgs[0])) ok = false;
336 for (var i = 0; i < cargs.length; i++) {
337 if (!verify(cargs[i], callArgs[i+1])) ok = false;
341 var msg = "Call verification failure!";
342 verificationError(msg);
345 return func.returns[func.inst++];
348 // to verify the callpath
349 function verifyPath(func) {
350 var real = callpath.shift();
352 var msg = "Call path verification failure! Expected " + real + ", found " + func;
353 verificationError(msg);
357 // figure out how to define getters
359 if (Object.defineProperty) {
360 var odp = Object.defineProperty;
361 defineGetter = function(obj, prop, getter, setter) {
362 if (typeof setter === "undefined") setter = function(){};
363 odp(obj, prop, {"enumerable": true, "configurable": true, "get": getter, "set": setter});
365 } else if (Object.prototype.__defineGetter__) {
366 var opdg = Object.prototype.__defineGetter__;
367 var opds = Object.prototype.__defineSetter__;
368 defineGetter = function(obj, prop, getter, setter) {
369 if (typeof setter === "undefined") setter = function(){};
370 opdg.call(obj, prop, getter);
371 opds.call(obj, prop, setter);
374 defineGetter = function() {
375 verificationError("This replay requires getters for correct behavior, and your JS engine appears to be incapable of defining getters. Sorry!");
379 var defineRegetter = function(obj, prop, getter, setter) {
380 defineGetter(obj, prop, function() {
381 return getter.call(this, prop);
383 // once it's set by the client, it's claimed
384 setter.call(this, prop, val);
385 Object.defineProperty(obj, prop, {
386 "enumerable": true, "configurable": true, "writable": true,
392 // for calling events
393 var fpc = Function.prototype.call;
395 // resist the urge, don't put a })(); here!
396 /******************************************************************************
397 * Auto-generated below this comment
398 *****************************************************************************/
399 var ow881945950 = window;
425 JSBNG_Replay.s6642b77f01f4d49ef240b29032e6da4372359178_0 = [];
426 JSBNG_Replay.sdaedc82b47673ce6de4c0b9c01978bd63c2c50e4_1 = [];
427 JSBNG_Replay.sdaedc82b47673ce6de4c0b9c01978bd63c2c50e4_2 = [];
428 JSBNG_Replay.s6642b77f01f4d49ef240b29032e6da4372359178_1 = [];
429 JSBNG_Replay.sd77f26a2825b7813fef421f4fc64cccaae936b24_7 = [];
431 // record generated by JSBench at 2013-07-10T17:55:49.619Z
434 f881945950_0 = function() { return f881945950_0.returns[f881945950_0.inst++]; };
435 f881945950_0.returns = [];
436 f881945950_0.inst = 0;
438 ow881945950.JSBNG__Date = f881945950_0;
442 ow881945950.JSBNG__document = o0;
444 f881945950_7 = function() { return f881945950_7.returns[f881945950_7.inst++]; };
445 f881945950_7.returns = [];
446 f881945950_7.inst = 0;
448 ow881945950.JSBNG__addEventListener = f881945950_7;
450 ow881945950.JSBNG__top = ow881945950;
452 ow881945950.JSBNG__scrollX = 0;
454 ow881945950.JSBNG__scrollY = 0;
456 f881945950_16 = function() { return f881945950_16.returns[f881945950_16.inst++]; };
457 f881945950_16.returns = [];
458 f881945950_16.inst = 0;
460 ow881945950.JSBNG__setTimeout = f881945950_16;
462 f881945950_17 = function() { return f881945950_17.returns[f881945950_17.inst++]; };
463 f881945950_17.returns = [];
464 f881945950_17.inst = 0;
466 ow881945950.JSBNG__setInterval = f881945950_17;
468 ow881945950.JSBNG__frames = ow881945950;
470 ow881945950.JSBNG__self = ow881945950;
472 ow881945950.JSBNG__content = ow881945950;
474 ow881945950.JSBNG__closed = false;
476 ow881945950.JSBNG__pkcs11 = null;
478 ow881945950.JSBNG__opener = null;
480 ow881945950.JSBNG__defaultStatus = "";
484 ow881945950.JSBNG__location = o1;
486 ow881945950.JSBNG__innerWidth = 994;
488 ow881945950.JSBNG__innerHeight = 603;
490 ow881945950.JSBNG__outerWidth = 994;
492 ow881945950.JSBNG__outerHeight = 690;
494 ow881945950.JSBNG__screenX = 24;
496 ow881945950.JSBNG__screenY = 28;
498 ow881945950.JSBNG__mozInnerScreenX = 0;
500 ow881945950.JSBNG__mozInnerScreenY = 0;
502 ow881945950.JSBNG__pageXOffset = 0;
504 ow881945950.JSBNG__pageYOffset = 0;
506 ow881945950.JSBNG__scrollMaxX = 0;
508 ow881945950.JSBNG__scrollMaxY = 0;
510 ow881945950.JSBNG__fullScreen = false;
512 ow881945950.JSBNG__frameElement = null;
514 ow881945950.JSBNG__mozPaintCount = 0;
516 ow881945950.JSBNG__mozAnimationStartTime = 1373479177771;
520 ow881945950.JSBNG__mozIndexedDB = o2;
524 ow881945950.JSBNG__performance = o3;
526 ow881945950.JSBNG__devicePixelRatio = 1;
528 f881945950_65 = function() { return f881945950_65.returns[f881945950_65.inst++]; };
529 f881945950_65.returns = [];
530 f881945950_65.inst = 0;
532 ow881945950.JSBNG__Image = f881945950_65;
534 ow881945950.JSBNG__name = "uaMatch";
536 ow881945950.JSBNG__status = "";
538 ow881945950.JSBNG__Components = undefined;
540 ow881945950.JSBNG__indexedDB = o2;
544 ow881945950.JSBNG__onerror = null;
547 JSBNG_Replay$ = function(real, cb) { if (!real) return;
551 f881945950_0.returns.push(o2);
555 geval("var ue_t0 = ((ue_t0 || +new JSBNG__Date()));");
559 f881945950_0.returns.push(o2);
565 f881945950_0.returns.push(o2);
571 f881945950_0.returns.push(o2);
577 f881945950_0.returns.push(o2);
583 f881945950_0.returns.push(o2);
587 ow881945950.JSBNG__onJSBNG__stop = undefined;
589 f881945950_393 = function() { return f881945950_393.returns[f881945950_393.inst++]; };
590 f881945950_393.returns = [];
591 f881945950_393.inst = 0;
593 ow881945950.JSBNG__onbeforeunload = f881945950_393;
595 o0.webkitHidden = void 0;
599 o0.msHidden = void 0;
601 o0.mozHidden = false;
603 o0.mozVisibilityState = "visible";
607 f881945950_0.returns.push(o2);
611 f881945950_395 = function() { return f881945950_395.returns[f881945950_395.inst++]; };
612 f881945950_395.returns = [];
613 f881945950_395.inst = 0;
615 o0.JSBNG__addEventListener = f881945950_395;
617 f881945950_395.returns.push(undefined);
619 f881945950_7.returns.push(undefined);
623 f881945950_0.returns.push(o2);
625 f881945950_397 = function() { return f881945950_397.returns[f881945950_397.inst++]; };
626 f881945950_397.returns = [];
627 f881945950_397.inst = 0;
629 o2.getTime = f881945950_397;
633 f881945950_397.returns.push(1373479177880);
637 f881945950_0.returns.push(o2);
643 f881945950_0.returns.push(o2);
649 f881945950_0.returns.push(o2);
653 geval("var ue_csm = window;\nue_csm.ue_hob = ((ue_csm.ue_hob || +new JSBNG__Date()));\n(function(d) {\n var a = {\n ec: 0,\n pec: 0,\n ts: 0,\n erl: [],\n mxe: 50,\n startTimer: function() {\n a.ts++;\n JSBNG__setInterval(function() {\n ((((d.ue && ((a.pec < a.ec)))) && d.uex(\"at\")));\n a.pec = a.ec;\n }, 10000);\n }\n };\n function c(e) {\n if (((a.ec > a.mxe))) {\n return;\n }\n ;\n ;\n a.ec++;\n if (d.ue_jserrv2) {\n e.pageURL = ((\"\" + ((window.JSBNG__location ? window.JSBNG__location.href : \"\"))));\n }\n ;\n ;\n a.erl.push(e);\n };\n;\n function b(h, g, e) {\n var f = {\n m: h,\n f: g,\n l: e,\n fromOnError: 1,\n args: arguments\n };\n d.ueLogError(f);\n return false;\n };\n;\n b.skipTrace = 1;\n c.skipTrace = 1;\n d.ueLogError = c;\n d.ue_err = a;\n window.JSBNG__onerror = b;\n})(ue_csm);\nue_csm.ue_hoe = +new JSBNG__Date();\nvar ue_id = \"0M4YTA6K9C1VFV7TYXNC\", ue_sid = \"176-5336870-9447366\", ue_mid = \"ATVPDKIKX0DER\", ue_sn = \"www.amazon.com\", ue_url = \"/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=sr_1_1/uedata/unsticky/176-5336870-9447366/Detail/ntpoffrw\", ue_furl = \"fls-na.amazon.com\", ue_pr = 0, ue_navtiming = 1, ue_log_idx = 0, ue_log_f = 0, ue_fcsn = 1, ue_ctb0tf = 1, ue_fst = 0, ue_fna = 1, ue_swi = 1, ue_swm = 4, ue_onbful = 0, ue_jserrv2 = 3;\nif (!window.ue_csm) {\n var ue_csm = window;\n}\n;\n;\nue_csm.ue_hob = ((ue_csm.ue_hob || +new JSBNG__Date));\nfunction ue_viz() {\n (function(d, j, g) {\n var b, l, e, a, c = [\"\",\"moz\",\"ms\",\"o\",\"webkit\",], k = 0, f = 20, h = \"JSBNG__addEventListener\", i = \"JSBNG__attachEvent\";\n while ((((b = c.pop()) && !k))) {\n l = ((((b ? ((b + \"H\")) : \"h\")) + \"idden\"));\n if (k = ((typeof j[l] == \"boolean\"))) {\n e = ((b + \"visibilitychange\"));\n a = ((b + \"VisibilityState\"));\n }\n ;\n ;\n };\n ;\n {\n function m(q) {\n if (((d.ue.viz.length < f))) {\n var p = q.type, n = q.originalEvent;\n if (!((((/^focus./.test(p) && n)) && ((((n.toElement || n.fromElement)) || n.relatedTarget))))) {\n var r = ((j[a] || ((((((p == \"JSBNG__blur\")) || ((p == \"focusout\")))) ? \"hidden\" : \"visible\")))), o = ((+new JSBNG__Date - d.ue.t0));\n d.ue.viz.push(((((r + \":\")) + o)));\n ((((((ue.iel && ((ue.iel.length > 0)))) && ((r == \"visible\")))) && uex(\"at\")));\n }\n ;\n ;\n }\n ;\n ;\n };\n ((window.top.JSBNG_Replay.sd77f26a2825b7813fef421f4fc64cccaae936b24_7.push)((m)));\n };\n ;\n m({\n });\n if (k) {\n j[h](e, m, 0);\n }\n ;\n ;\n })(ue_csm, JSBNG__document, window);\n};\n;\nue_csm.ue_hoe = +new JSBNG__Date;\nue_csm.ue_hob = ((ue_csm.ue_hob || +new JSBNG__Date()));\n(function(e, h) {\n e.ueinit = ((((e.ueinit || 0)) + 1));\n e.ue = {\n t0: ((h.aPageStart || e.ue_t0)),\n id: e.ue_id,\n url: e.ue_url,\n a: \"\",\n b: \"\",\n h: {\n },\n r: {\n ld: 0,\n oe: 0,\n ul: 0\n },\n s: 1,\n t: {\n },\n sc: {\n },\n iel: [],\n ielf: [],\n fc_idx: {\n },\n viz: [],\n v: 30\n };\n e.ue.tagC = function() {\n var j = [];\n return function(k) {\n if (k) {\n j.push(k);\n }\n ;\n ;\n return j.slice(0);\n };\n };\n e.ue.tag = e.ue.tagC();\n e.ue.ifr = ((((((h.JSBNG__top !== h.JSBNG__self)) || (h.JSBNG__frameElement))) ? 1 : 0));\n function c(l, o, q, n) {\n if (((e.ue_log_f && e.ue.log))) {\n e.ue.log({\n f: \"uet\",\n en: l,\n s: o,\n so: q,\n to: n\n }, \"csm\");\n }\n ;\n ;\n var p = ((n || (new JSBNG__Date()).getTime()));\n var j = ((!o && ((typeof q != \"undefined\"))));\n if (j) {\n return;\n }\n ;\n ;\n if (l) {\n var m = ((o ? ((d(\"t\", o) || d(\"t\", o, {\n }))) : e.ue.t));\n m[l] = p;\n {\n var fin0keys = ((window.top.JSBNG_Replay.forInKeys)((q))), fin0i = (0);\n var k;\n for (; (fin0i < fin0keys.length); (fin0i++)) {\n ((k) = (fin0keys[fin0i]));\n {\n d(k, o, q[k]);\n };\n };\n };\n ;\n }\n ;\n ;\n return p;\n };\n;\n function d(k, l, m) {\n if (((e.ue_log_f && e.ue.log))) {\n e.ue.log({\n f: \"ues\",\n k: k,\n s: l,\n v: m\n }, \"csm\");\n }\n ;\n ;\n var n, j;\n if (k) {\n n = j = e.ue;\n if (((l && ((l != n.id))))) {\n j = n.sc[l];\n if (!j) {\n j = {\n };\n ((m ? (n.sc[l] = j) : j));\n }\n ;\n ;\n }\n ;\n ;\n n = ((m ? (j[k] = m) : j[k]));\n }\n ;\n ;\n return n;\n };\n;\n function g(n, o, m, k, j) {\n if (((e.ue_log_f && e.ue.log))) {\n e.ue.log({\n f: \"ueh\",\n ek: n\n }, \"csm\");\n }\n ;\n ;\n var l = ((\"JSBNG__on\" + m));\n var p = o[l];\n if (((typeof (p) == \"function\"))) {\n if (n) {\n e.ue.h[n] = p;\n }\n ;\n ;\n }\n else {\n p = function() {\n \n };\n }\n ;\n ;\n o[l] = ((j ? function(q) {\n k(q);\n p(q);\n } : function(q) {\n p(q);\n k(q);\n }));\n o[l].isUeh = 1;\n };\n;\n function b(s, m, r) {\n if (((e.ue_log_f && e.ue.log))) {\n e.ue.log({\n f: \"uex\",\n en: s,\n s: m,\n so: r\n }, \"csm\");\n }\n ;\n ;\n function l(P, N) {\n var L = [P,], G = 0, M = {\n };\n if (N) {\n L.push(\"m=1\");\n M[N] = 1;\n }\n else {\n M = e.ue.sc;\n }\n ;\n ;\n var E;\n {\n var fin1keys = ((window.top.JSBNG_Replay.forInKeys)((M))), fin1i = (0);\n var F;\n for (; (fin1i < fin1keys.length); (fin1i++)) {\n ((F) = (fin1keys[fin1i]));\n {\n var H = d(\"wb\", F), K = ((d(\"t\", F) || {\n })), J = ((d(\"t0\", F) || e.ue.t0));\n if (((N || ((H == 2))))) {\n var O = ((H ? G++ : \"\"));\n L.push(((((((\"sc\" + O)) + \"=\")) + F)));\n {\n var fin2keys = ((window.top.JSBNG_Replay.forInKeys)((K))), fin2i = (0);\n var I;\n for (; (fin2i < fin2keys.length); (fin2i++)) {\n ((I) = (fin2keys[fin2i]));\n {\n if (((((I.length <= 3)) && K[I]))) {\n L.push(((((((I + O)) + \"=\")) + ((K[I] - J)))));\n }\n ;\n ;\n };\n };\n };\n ;\n L.push(((((((\"t\" + O)) + \"=\")) + K[s])));\n if (((d(\"ctb\", F) || d(\"wb\", F)))) {\n E = 1;\n }\n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n if (((!n && E))) {\n L.push(\"ctb=1\");\n }\n ;\n ;\n return L.join(\"&\");\n };\n ;\n function v(H, F, J, E) {\n if (!H) {\n return;\n }\n ;\n ;\n var I = new JSBNG__Image();\n var G = function() {\n if (!e.ue.b) {\n return;\n }\n ;\n ;\n var L = e.ue.b;\n e.ue.b = \"\";\n v(L, F, J, 1);\n };\n if (((e.ue.b && !e.ue_swi))) {\n I.JSBNG__onload = G;\n }\n ;\n ;\n var K = ((((((!E || !e.ue.log)) || !window.amznJQ)) || ((window.amznJQ && window.amznJQ.isMock))));\n if (K) {\n e.ue.iel.push(I);\n I.src = H;\n }\n ;\n ;\n if (((e.ue.log && ((((J || E)) || e.ue_ctb0tf))))) {\n e.ue.log(H, \"uedata\", {\n n: 1\n });\n e.ue.ielf.push(H);\n }\n ;\n ;\n if (((e.ue_err && !e.ue_err.ts))) {\n e.ue_err.startTimer();\n }\n ;\n ;\n if (e.ue_swi) {\n G();\n }\n ;\n ;\n };\n ;\n function B(E) {\n if (!ue.collected) {\n var G = E.timing;\n if (G) {\n e.ue.t.na_ = G.navigationStart;\n e.ue.t.ul_ = G.unloadEventStart;\n e.ue.t._ul = G.unloadEventEnd;\n e.ue.t.rd_ = G.redirectStart;\n e.ue.t._rd = G.redirectEnd;\n e.ue.t.fe_ = G.fetchStart;\n e.ue.t.lk_ = G.domainLookupStart;\n e.ue.t._lk = G.domainLookupEnd;\n e.ue.t.co_ = G.connectStart;\n e.ue.t._co = G.connectEnd;\n e.ue.t.sc_ = G.secureConnectionStart;\n e.ue.t.rq_ = G.requestStart;\n e.ue.t.rs_ = G.responseStart;\n e.ue.t._rs = G.responseEnd;\n e.ue.t.dl_ = G.domLoading;\n e.ue.t.di_ = G.domInteractive;\n e.ue.t.de_ = G.domContentLoadedEventStart;\n e.ue.t._de = G.domContentLoadedEventEnd;\n e.ue.t._dc = G.domComplete;\n e.ue.t.ld_ = G.loadEventStart;\n e.ue.t._ld = G.loadEventEnd;\n }\n ;\n ;\n var F = E.navigation;\n if (F) {\n e.ue.t.ty = ((F.type + e.ue.t0));\n e.ue.t.rc = ((F.redirectCount + e.ue.t0));\n if (e.ue.tag) {\n e.ue.tag(((F.redirectCount ? \"redirect\" : \"nonredirect\")));\n }\n ;\n ;\n }\n ;\n ;\n e.ue.collected = 1;\n }\n ;\n ;\n };\n ;\n var D = ((!m && ((typeof r != \"undefined\"))));\n if (D) {\n return;\n }\n ;\n ;\n {\n var fin3keys = ((window.top.JSBNG_Replay.forInKeys)((r))), fin3i = (0);\n var j;\n for (; (fin3i < fin3keys.length); (fin3i++)) {\n ((j) = (fin3keys[fin3i]));\n {\n d(j, m, r[j]);\n };\n };\n };\n ;\n c(\"pc\", m, r);\n var x = ((d(\"id\", m) || e.ue.id));\n var p = ((((((((((((e.ue.url + \"?\")) + s)) + \"&v=\")) + e.ue.v)) + \"&id=\")) + x));\n var n = ((d(\"ctb\", m) || d(\"wb\", m)));\n if (n) {\n p += ((\"&ctb=\" + n));\n }\n ;\n ;\n if (((e.ueinit > 1))) {\n p += ((\"&ic=\" + e.ueinit));\n }\n ;\n ;\n var A = ((h.JSBNG__performance || h.JSBNG__webkitPerformance));\n var y = e.ue.bfini;\n var q = ((((A && A.navigation)) && ((A.navigation.type == 2))));\n var o = ((((m && ((m != x)))) && d(\"ctb\", m)));\n if (!o) {\n if (((y && ((y > 1))))) {\n p += ((\"&bft=\" + ((y - 1))));\n p += \"&bfform=1\";\n }\n else {\n if (q) {\n p += \"&bft=1\";\n }\n ;\n ;\n }\n ;\n ;\n if (q) {\n p += \"&bfnt=1\";\n }\n ;\n ;\n }\n ;\n ;\n if (((((e.ue._fi && ((s == \"at\")))) && ((!m || ((m == x))))))) {\n p += e.ue._fi();\n }\n ;\n ;\n var k;\n if (((((((s == \"ld\")) || ((s == \"ul\")))) && ((!m || ((m == x))))))) {\n if (((s == \"ld\"))) {\n if (((h.JSBNG__onbeforeunload && h.JSBNG__onbeforeunload.isUeh))) {\n h.JSBNG__onbeforeunload = null;\n }\n ;\n ;\n ue.r.ul = e.ue_onbful;\n if (((e.ue_onbful == 3))) {\n ue.detach(\"beforeunload\", e.onUl);\n }\n ;\n ;\n if (((JSBNG__document.ue_backdetect && JSBNG__document.ue_backdetect.ue_back))) {\n JSBNG__document.ue_backdetect.ue_back.value++;\n }\n ;\n ;\n if (e._uess) {\n k = e._uess();\n }\n ;\n ;\n }\n ;\n ;\n if (((((e.ue_navtiming && A)) && A.timing))) {\n d(\"ctb\", x, \"1\");\n if (((e.ue_navtiming == 1))) {\n e.ue.t.tc = A.timing.navigationStart;\n }\n ;\n ;\n }\n ;\n ;\n if (A) {\n B(A);\n }\n ;\n ;\n if (((e.ue_hob && e.ue_hoe))) {\n e.ue.t.hob = e.ue_hob;\n e.ue.t.hoe = e.ue_hoe;\n }\n ;\n ;\n if (e.ue.ifr) {\n p += \"&ifr=1\";\n }\n ;\n ;\n }\n ;\n ;\n c(s, m, r);\n var w = ((((((s == \"ld\")) && m)) && d(\"wb\", m)));\n if (w) {\n d(\"wb\", m, 2);\n }\n ;\n ;\n var z = 1;\n {\n var fin4keys = ((window.top.JSBNG_Replay.forInKeys)((e.ue.sc))), fin4i = (0);\n var u;\n for (; (fin4i < fin4keys.length); (fin4i++)) {\n ((u) = (fin4keys[fin4i]));\n {\n if (((d(\"wb\", u) == 1))) {\n z = 0;\n break;\n }\n ;\n ;\n };\n };\n };\n ;\n if (w) {\n if (((!e.ue.s && ((e.ue_swi || ((z && !e.ue_swi))))))) {\n p = l(p, null);\n }\n else {\n return;\n }\n ;\n ;\n }\n else {\n if (((((z && !e.ue_swi)) || e.ue_swi))) {\n var C = l(p, null);\n if (((C != p))) {\n e.ue.b = C;\n }\n ;\n ;\n }\n ;\n ;\n if (k) {\n p += k;\n }\n ;\n ;\n p = l(p, ((m || e.ue.id)));\n }\n ;\n ;\n if (((e.ue.b || w))) {\n {\n var fin5keys = ((window.top.JSBNG_Replay.forInKeys)((e.ue.sc))), fin5i = (0);\n var u;\n for (; (fin5i < fin5keys.length); (fin5i++)) {\n ((u) = (fin5keys[fin5i]));\n {\n if (((d(\"wb\", u) == 2))) {\n delete e.ue.sc[u];\n }\n ;\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n var t = 0;\n if (!w) {\n e.ue.s = 0;\n if (((e.ue_err && ((e.ue_err.ec > 0))))) {\n if (((e.ue_jserrv2 == 3))) {\n if (((e.ue_err.pec < e.ue_err.ec))) {\n e.ue_err.pec = e.ue_err.ec;\n p += ((\"&ec=\" + e.ue_err.ec));\n }\n ;\n ;\n }\n else {\n p += ((\"&ec=\" + e.ue_err.ec));\n }\n ;\n ;\n }\n ;\n ;\n t = d(\"ctb\", m);\n d(\"t\", m, {\n });\n }\n ;\n ;\n if (((!window.amznJQ && e.ue.tag))) {\n e.ue.tag(\"noAmznJQ\");\n }\n ;\n ;\n if (((((p && e.ue.tag)) && ((e.ue.tag().length > 0))))) {\n p += ((\"&csmtags=\" + e.ue.tag().join(\"|\")));\n e.ue.tag = e.ue.tagC();\n }\n ;\n ;\n if (((((p && e.ue.viz)) && ((e.ue.viz.length > 0))))) {\n p += ((\"&viz=\" + e.ue.viz.join(\"|\")));\n e.ue.viz = [];\n }\n ;\n ;\n e.ue.a = p;\n v(p, s, t, w);\n };\n;\n function a(j, k, l) {\n l = ((l || h));\n if (l.JSBNG__addEventListener) {\n l.JSBNG__addEventListener(j, k, false);\n }\n else {\n if (l.JSBNG__attachEvent) {\n l.JSBNG__attachEvent(((\"JSBNG__on\" + j)), k);\n }\n ;\n ;\n }\n ;\n ;\n };\n;\n ue.attach = a;\n function i(j, k, l) {\n l = ((l || h));\n if (l.JSBNG__removeEventListener) {\n l.JSBNG__removeEventListener(j, k);\n }\n else {\n if (l.JSBNG__detachEvent) {\n l.JSBNG__detachEvent(((\"JSBNG__on\" + j)), k);\n }\n ;\n ;\n }\n ;\n ;\n };\n;\n ue.detach = i;\n function f() {\n if (((e.ue_log_f && e.ue.log))) {\n e.ue.log({\n f: \"uei\"\n }, \"csm\");\n }\n ;\n ;\n var l = e.ue.r;\n function k(n) {\n return function() {\n if (!l[n]) {\n l[n] = 1;\n b(n);\n }\n ;\n ;\n };\n };\n ;\n e.onLd = k(\"ld\");\n e.onLdEnd = k(\"ld\");\n e.onUl = k(\"ul\");\n var j = {\n beforeunload: e.onUl,\n JSBNG__stop: function() {\n b(\"os\");\n }\n };\n {\n var fin6keys = ((window.top.JSBNG_Replay.forInKeys)((j))), fin6i = (0);\n var m;\n for (; (fin6i < fin6keys.length); (fin6i++)) {\n ((m) = (fin6keys[fin6i]));\n {\n g(0, window, m, j[m]);\n };\n };\n };\n ;\n ((e.ue_viz && ue_viz()));\n ue.attach(\"load\", e.onLd);\n if (((e.ue_onbful == 3))) {\n ue.attach(\"beforeunload\", e.onUl);\n }\n ;\n ;\n e.ue._uep = function() {\n new JSBNG__Image().src = ((((e.ue_md ? e.ue_md : \"http://uedata.amazon.com/uedata/?tp=\")) + (+new JSBNG__Date)));\n };\n if (((e.ue_pr && ((((e.ue_pr == 2)) || ((e.ue_pr == 4))))))) {\n e.ue._uep();\n }\n ;\n ;\n c(\"ue\");\n };\n;\n ue.reset = function(k, j) {\n if (!k) {\n return;\n }\n ;\n ;\n ((e.ue_cel && e.ue_cel.reset()));\n e.ue.t0 = +new JSBNG__Date();\n e.ue.rid = k;\n e.ue.id = k;\n e.ue.fc_idx = {\n };\n e.ue.viz = [];\n };\n e.uei = f;\n e.ueh = g;\n e.ues = d;\n e.uet = c;\n e.uex = b;\n f();\n})(ue_csm, window);\nue_csm.ue_hoe = +new JSBNG__Date();\nue_csm.ue_hob = ((ue_csm.ue_hob || +new JSBNG__Date()));\n(function(b) {\n var a = b.ue;\n a.rid = b.ue_id;\n a.sid = b.ue_sid;\n a.mid = b.ue_mid;\n a.furl = b.ue_furl;\n a.sn = b.ue_sn;\n a.lr = [];\n a.log = function(e, d, c) {\n if (((a.lr.length == 500))) {\n return;\n }\n ;\n ;\n a.lr.push([\"l\",e,d,c,a.d(),a.rid,]);\n };\n a.d = function(c) {\n return ((+new JSBNG__Date - ((c ? 0 : a.t0))));\n };\n})(ue_csm);\nue_csm.ue_hoe = +new JSBNG__Date();");
657 f881945950_65.returns.push(o2);
663 geval("var imaget0;\n(function() {\n var i = new JSBNG__Image;\n i.JSBNG__onload = function() {\n imaget0 = new JSBNG__Date().getTime();\n };\n i.src = \"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg\";\n})();");
665 geval("var amznJQ, jQueryPatchIPadOffset = false;\n(function() {\n function f(x) {\n return function() {\n x.push(arguments);\n };\n };\n;\n function ch(y) {\n return String.fromCharCode(y);\n };\n;\n var a = [], c = [], cs = [], d = [], l = [], o = [], s = [], p = [], t = [];\n amznJQ = {\n _timesliceJS: false,\n _a: a,\n _c: c,\n _cs: cs,\n _d: d,\n _l: l,\n _o: o,\n _s: s,\n _pl: p,\n addLogical: f(l),\n addStyle: f(s),\n addPL: f(p),\n available: f(a),\n chars: {\n EOL: ch(10),\n SQUOTE: ch(39),\n DQUOTE: ch(34),\n BACKSLASH: ch(92),\n YEN: ch(165)\n },\n completedStage: f(cs),\n declareAvailable: f(d),\n onCompletion: f(c),\n onReady: f(o),\n strings: {\n }\n };\n}());");
667 geval("function amz_js_PopWin(url, JSBNG__name, options) {\n var ContextWindow = window.open(url, JSBNG__name, options);\n ContextWindow.JSBNG__focus();\n return false;\n};\n;");
669 geval("function showElement(id) {\n var elm = JSBNG__document.getElementById(id);\n if (elm) {\n elm.style.visibility = \"visible\";\n if (((elm.getAttribute(\"JSBNG__name\") == \"heroQuickPromoDiv\"))) {\n elm.style.display = \"block\";\n }\n ;\n ;\n }\n;\n;\n};\n;\nfunction hideElement(id) {\n var elm = JSBNG__document.getElementById(id);\n if (elm) {\n elm.style.visibility = \"hidden\";\n if (((elm.getAttribute(\"JSBNG__name\") == \"heroQuickPromoDiv\"))) {\n elm.style.display = \"none\";\n }\n ;\n ;\n }\n;\n;\n};\n;\nfunction showHideElement(h_id, div_id) {\n var hiddenTag = JSBNG__document.getElementById(h_id);\n if (hiddenTag) {\n showElement(div_id);\n }\n else {\n hideElement(div_id);\n }\n;\n;\n};\n;\nwindow.isBowserFeatureCleanup = 1;\nvar touchDeviceDetected = false;\nvar CSMReqs = {\n af: {\n c: 2,\n e: \"amznJQ.AboveTheFold\",\n p: \"atf\"\n },\n cf: {\n c: 2,\n e: \"amznJQ.criticalFeature\",\n p: \"cf\"\n }\n};\nfunction setCSMReq(a) {\n a = a.toLowerCase();\n var b = CSMReqs[a];\n if (((b && ((--b.c == 0))))) {\n if (((typeof uet == \"function\"))) {\n uet(a);\n }\n ;\n ;\n ;\n if (b.e) {\n amznJQ.completedStage(b.e);\n }\n ;\n ;\n ;\n if (((typeof P != \"undefined\"))) {\n P.register(b.p);\n }\n ;\n ;\n ;\n }\n;\n;\n};\n;");
671 geval("var gbEnableTwisterJS = 0;\nvar isTwisterPage = 0;");
673 geval("if (window.amznJQ) {\n amznJQ.addLogical(\"csm-base\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/csm-base/csm-base-min-2486485847._V1_.js\",]);\n amznJQ.available(\"csm-base\", function() {\n \n });\n}\n;\n;");
675 geval("amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n amznJQ.available(\"navbarJS-jQuery\", function() {\n \n });\n amznJQ.available(\"finderFitsJS\", function() {\n \n });\n amznJQ.available(\"twister\", function() {\n \n });\n amznJQ.available(\"swfjs\", function() {\n \n });\n});");
677 geval("(function(d) {\n var e = function(d) {\n function b(f, c, b) {\n f[b] = function() {\n a._replay.push(c.concat({\n m: b,\n a: [].slice.call(arguments)\n }));\n };\n };\n ;\n var a = {\n };\n a._sourceName = d;\n a._replay = [];\n a.getNow = function(a, b) {\n return b;\n };\n a.when = function() {\n var a = [{\n m: \"when\",\n a: [].slice.call(arguments)\n },], c = {\n };\n b(c, a, \"run\");\n b(c, a, \"declare\");\n b(c, a, \"publish\");\n b(c, a, \"build\");\n return c;\n };\n b(a, [], \"declare\");\n b(a, [], \"build\");\n b(a, [], \"publish\");\n b(a, [], \"importEvent\");\n e._shims.push(a);\n return a;\n };\n e._shims = [];\n if (!d.$Nav) {\n d.$Nav = e(\"rcx-nav\");\n }\n;\n;\n if (!d.$Nav.make) {\n d.$Nav.make = e;\n }\n;\n;\n})(window);\nwindow.$Nav.when(\"exposeSBD.enable\", \"img.horz\", \"img.vert\", \"img.spin\", \"$popover\", \"btf.full\").run(function(d, e, j, b) {\n function a(a) {\n switch (typeof a) {\n case \"boolean\":\n h = a;\n i = !0;\n break;\n case \"function\":\n g = a;\n c++;\n break;\n default:\n c++;\n };\n ;\n ((((i && ((c > 2)))) && g(h)));\n };\n;\n function f(a, b) {\n var c = new JSBNG__Image;\n if (b) {\n c.JSBNG__onload = b;\n }\n ;\n ;\n c.src = a;\n return c;\n };\n;\n var c = 0, g, h, i = !1;\n f(e, ((d && a)));\n f(j, ((d && a)));\n window.$Nav.declare(\"protectExposeSBD\", a);\n window.$Nav.declare(\"preloadSpinner\", function() {\n f(b);\n });\n});\n((window.amznJQ && amznJQ.available(\"navbarJS-beacon\", function() {\n\n})));\nwindow._navbarSpriteUrl = \"http://g-ecx.images-amazon.com/images/G/01/gno/beacon/BeaconSprite-US-01._V397411194_.png\";\n$Nav.importEvent(\"navbarJS-beacon\");\n$Nav.importEvent(\"NavAuiJS\");\n$Nav.declare(\"exposeSBD.enable\", false);\n$Nav.declare(\"img.spin\", \"http://g-ecx.images-amazon.com/images/G/01/javascripts/lib/popover/images/snake._V192571611_.gif\");\n$Nav.when(\"$\").run(function($) {\n var ie6 = (($.browser.msie && ((parseInt($.browser.version) <= 6))));\n $Nav.declare(\"img.horz\", ((ie6 ? \"http://g-ecx.images-amazon.com/images/G/01/gno/beacon/nav-pop-8bit-h._V155961234_.png\" : \"http://g-ecx.images-amazon.com/images/G/01/gno/beacon/nav-pop-h-v2._V137157005_.png\")));\n $Nav.declare(\"img.vert\", ((ie6 ? \"http://g-ecx.images-amazon.com/images/G/01/gno/beacon/nav-pop-8bit-v._V155961234_.png\" : \"http://g-ecx.images-amazon.com/images/G/01/gno/beacon/nav-pop-v-v2._V137157005_.png\")));\n});");
681 f881945950_0.returns.push(o2);
683 o2.getTime = f881945950_397;
687 f881945950_397.returns.push(1373479178159);
689 geval("window.Navbar = function(options) {\n options = ((options || {\n }));\n this._loadedCount = 0;\n this._hasUedata = ((typeof uet == \"function\"));\n this._finishLoadQuota = ((options[\"finishLoadQuota\"] || 2));\n this._startedLoading = false;\n this._btfFlyoutContents = [];\n this._saFlyoutHorizOffset = -16;\n this._saMaskHorizOffset = -17;\n this._sbd_config = {\n major_delay: 300,\n minor_delay: 100,\n target_slop: 25\n };\n ((window.$Nav && $Nav.declare(\"config.sbd\", this._sbd_config)));\n this.addToBtfFlyoutContents = function(JSBNG__content, callback) {\n this._btfFlyoutContents.push({\n JSBNG__content: JSBNG__content,\n callback: callback\n });\n };\n this.getBtfFlyoutContents = function() {\n return this._btfFlyoutContents;\n };\n this.loading = function() {\n if (((!this._startedLoading && this._isReportingEvents()))) {\n uet(\"ns\");\n }\n ;\n ;\n this._startedLoading = true;\n };\n this.componentLoaded = function() {\n this._loadedCount++;\n if (((((this._startedLoading && this._isReportingEvents())) && ((this._loadedCount == this._finishLoadQuota))))) {\n uet(\"ne\");\n }\n ;\n ;\n };\n this._isReportingEvents = function() {\n return this._hasUedata;\n };\n this.browsepromos = {\n };\n this.issPromos = [];\n var le = {\n };\n this.logEv = function(d, o) {\n \n };\n ((window.$Nav && $Nav.declare(\"logEvent\", this.logEv)));\n};\nwindow._navbar = new Navbar({\n finishLoadQuota: 1\n});\n_navbar.loading();\n((window.$Nav && $Nav.declare(\"config.lightningDeals\", ((window._navbar._lightningDealsData || {\n})))));\n((window.$Nav && $Nav.declare(\"config.swmStyleData\", ((window._navbar._swmStyleData || {\n})))));\n_navbar._ajaxProximity = [141,7,60,150,];\n((window.$Nav && $Nav.declare(\"config.ajaxProximity\", window._navbar._ajaxProximity)));");
693 f881945950_0.returns.push(o2);
695 o2.getTime = f881945950_397;
697 f881945950_397.returns.push(1373479178221);
701 f881945950_65.returns.push(o4);
705 geval("_navbar.dynamicMenuUrl = \"/gp/navigation/ajax/dynamicmenu.html\";\n((window.$Nav && $Nav.declare(\"config.dynamicMenuUrl\", _navbar.dynamicMenuUrl)));\n_navbar.dismissNotificationUrl = \"/gp/navigation/ajax/dismissnotification.html\";\n((window.$Nav && $Nav.declare(\"config.dismissNotificationUrl\", _navbar.dismissNotificationUrl)));\n_navbar.dynamicMenus = true;\n((window.$Nav && $Nav.declare(\"config.enableDynamicMenus\", true)));\n_navbar.recordEvUrl = \"/gp/navigation/ajax/recordevent.html\";\n_navbar.recordEvInterval = 60000;\n_navbar.sid = \"176-5336870-9447366\";\n_navbar.rid = \"0M4YTA6K9C1VFV7TYXNC\";\n((window.$Nav && $Nav.declare(\"config.recordEvUrl\", _navbar.recordEvUrl)));\n((window.$Nav && $Nav.declare(\"config.recordEvInterval\", 60000)));\n((window.$Nav && $Nav.declare(\"config.sessionId\", _navbar.sid)));\n((window.$Nav && $Nav.declare(\"config.requestId\", _navbar.rid)));\n_navbar.readyOnATF = false;\n((window.$Nav && $Nav.declare(\"config.readyOnATF\", _navbar.readyOnATF)));\n_navbar.dynamicMenuArgs = {\n isPrime: 0,\n primeMenuWidth: 310\n};\n((window.$Nav && $Nav.declare(\"config.dynamicMenuArgs\", ((_navbar.dynamicMenuArgs || {\n})))));\n((window.$Nav && $Nav.declare(\"config.signOutText\", _navbar.signOutText)));\n((window.$Nav && $Nav.declare(\"config.yourAccountPrimeURL\", _navbar.yourAccountPrimer)));\nif (((window.amznJQ && amznJQ.available))) {\n amznJQ.available(\"jQuery\", function() {\n if (!jQuery.isArray) {\n jQuery.isArray = function(o) {\n return ((Object.prototype.toString.call(o) === \"[object Array]\"));\n };\n }\n ;\n ;\n });\n}\n;\n;\nif (((typeof uet == \"function\"))) {\n uet(\"bb\", \"iss-init-pc\", {\n wb: 1\n });\n}\n;\n;\nif (((!window.$SearchJS && window.$Nav))) {\n window.$SearchJS = $Nav.make();\n}\n;\n;\nif (window.$SearchJS) {\n var iss, issHost = \"completion.amazon.com/search/complete\", issMktid = \"1\", issSearchAliases = [\"aps\",\"stripbooks\",\"popular\",\"apparel\",\"electronics\",\"sporting\",\"garden\",\"videogames\",\"toys-and-games\",\"jewelry\",\"digital-text\",\"digital-music\",\"watches\",\"grocery\",\"hpc\",\"instant-video\",\"baby-products\",\"office-products\",\"software\",\"magazines\",\"tools\",\"automotive\",\"misc\",\"industrial\",\"mi\",\"pet-supplies\",\"digital-music-track\",\"digital-music-album\",\"mobile\",\"mobile-apps\",\"movies-tv\",\"music-artist\",\"music-album\",\"music-song\",\"stripbooks-spanish\",\"electronics-accessories\",\"photo\",\"audio-video\",\"computers\",\"furniture\",\"kitchen\",\"audiobooks\",\"beauty\",\"shoes\",\"arts-crafts\",\"appliances\",\"gift-cards\",\"pets\",\"outdoor\",\"lawngarden\",\"collectibles\",\"financial\",\"wine\",], updateISSCompletion = function() {\n iss.updateAutoCompletion();\n };\n $SearchJS.importEvent(\"search-js-autocomplete-lib\");\n $SearchJS.when(\"search-js-autocomplete-lib\").run(function() {\n $SearchJS.importEvent(\"search-csl\");\n $SearchJS.when(\"search-csl\").run(function(searchCSL) {\n if (!searchCSL) {\n searchCSL = jQuery.searchCSL;\n }\n ;\n ;\n searchCSL.init(\"Detail\", \"0M4YTA6K9C1VFV7TYXNC\");\n var ctw = [function() {\n var searchSelect = jQuery(\"select.searchSelect\"), nodeRegEx = new RegExp(/node=\\d+/i);\n return function() {\n var currDropdownSel = searchSelect.children();\n return ((((currDropdownSel.attr(\"data-root-alias\") || nodeRegEx.test(currDropdownSel.attr(\"value\")))) ? \"16458\" : undefined));\n };\n }(),];\n iss = new AutoComplete({\n src: issHost,\n mkt: issMktid,\n aliases: issSearchAliases,\n fb: 1,\n dd: \"select.searchSelect\",\n dupElim: 0,\n deptText: \"in {department}\",\n sugText: \"Search suggestions\",\n sc: 1,\n ime: 0,\n imeEnh: 0,\n imeSpacing: 0,\n isNavInline: 1,\n iac: 0,\n scs: 0,\n np: 4,\n doCTW: function(e) {\n for (var i = 0; ((i < ctw.length)); i++) {\n searchCSL.addWlt(((ctw[i].call ? ctw[i](e) : ctw[i])));\n };\n ;\n }\n });\n $SearchJS.publish(\"search-js-autocomplete\", iss);\n if (((((typeof uet == \"function\")) && ((typeof uex == \"function\"))))) {\n uet(\"be\", \"iss-init-pc\", {\n wb: 1\n });\n uex(\"ld\", \"iss-init-pc\", {\n wb: 1\n });\n }\n ;\n ;\n });\n });\n}\n;\n;\n((window.amznJQ && amznJQ.declareAvailable(\"navbarInline\")));\n((window.$Nav && $Nav.declare(\"nav.inline\")));\n((window.amznJQ && amznJQ.available(\"jQuery\", function() {\n amznJQ.available(\"navbarJS-beacon\", function() {\n \n });\n})));\n_navbar._endSpriteImage = new JSBNG__Image();\n_navbar._endSpriteImage.JSBNG__onload = function() {\n _navbar.componentLoaded();\n};\n_navbar._endSpriteImage.src = window._navbarSpriteUrl;\n((window.$Nav && $Nav.declare(\"config.autoFocus\", false)));\n((window.$Nav && $Nav.declare(\"config.responsiveGW\", !!window._navbar.responsivegw)));\n((window.$Nav && $Nav.when(\"$\", \"flyout.JSBNG__content\").run(function(jQuery) {\n jQuery(\"#nav_amabotandroid\").parent().html(\"Get CSG-Crazy Ball\\ufffdfree today\");\n})));\n_navbar.browsepromos[\"android\"] = {\n destination: \"/gp/product/ref=nav_sap_mas_13_07_10?ie=UTF8&ASIN=B00AVFO41K\",\n productTitle2: \"(List Price: $0.99)\",\n button: \"Learn more\",\n price: \"FREE\",\n productTitle: \"CSG-Crazy Ball - Power Match5\",\n headline: \"Free App of the Day\",\n image: \"http://ecx.images-amazon.com/images/I/71ws-s180zL._SS100_.png\"\n};\n_navbar.browsepromos[\"audible\"] = {\n width: 479,\n promoType: \"wide\",\n vertOffset: \"0\",\n horizOffset: \"-19\",\n height: 470,\n image: \"http://g-ecx.images-amazon.com/images/G/01/Audible/en_US/images/creative/amazon/beacon/ADBLECRE_2309_Beacon_Headphones_mystery_thehit._V382182717_.png\"\n};\n_navbar.browsepromos[\"automotive-industrial\"] = {\n width: 479,\n promoType: \"wide\",\n vertOffset: \"0\",\n horizOffset: \"0\",\n height: 472,\n image: \"http://g-ecx.images-amazon.com/images/G/01/BISS/stores/homepage/flyouts/julyGNO._V381261427_.png\"\n};\n_navbar.browsepromos[\"books\"] = {\n width: 495,\n promoType: \"wide\",\n vertOffset: \"0\",\n horizOffset: \"0\",\n height: 472,\n image: \"http://g-ecx.images-amazon.com/images/G/01/img13/books/flyout/books_botysf_flyout_kids-2._V380040471_.png\"\n};\n_navbar.browsepromos[\"clothing-shoes-jewelry\"] = {\n width: 460,\n promoType: \"wide\",\n vertOffset: \"0\",\n horizOffset: \"-20\",\n height: 472,\n image: \"http://g-ecx.images-amazon.com/images/G/01/AMAZON_FASHION/2013/GATEWAY/BTS1/FLYOUTS/FO_watch._V381438784_.png\"\n};\n_navbar.browsepromos[\"cloud-drive\"] = {\n width: 480,\n promoType: \"wide\",\n vertOffset: \"0\",\n horizOffset: \"0\",\n height: 472,\n image: \"http://g-ecx.images-amazon.com/images/G/01/digital/adrive/images/gno/iOs_GNO1._V385462964_.jpg\"\n};\n_navbar.browsepromos[\"digital-games-software\"] = {\n width: 518,\n promoType: \"wide\",\n vertOffset: \"0\",\n horizOffset: \"-19\",\n height: 472,\n image: \"http://g-ecx.images-amazon.com/images/G/01/img13/digital-video-games/flyout/0610-dvg-civ-flyout-b._V382016459_.png\"\n};\n_navbar.browsepromos[\"electronics-computers\"] = {\n width: 498,\n promoType: \"wide\",\n vertOffset: \"0\",\n horizOffset: \"0\",\n height: 228,\n image: \"http://g-ecx.images-amazon.com/images/G/01/img13/camera-photo/flyout/7-1_-confidential-canon_GNO._V379604226_.png\"\n};\n_navbar.browsepromos[\"grocery-health-beauty\"] = {\n width: 496,\n promoType: \"wide\",\n vertOffset: \"0\",\n horizOffset: \"0\",\n height: 471,\n image: \"http://g-ecx.images-amazon.com/images/G/01/img13/wine/flyout/0702_wine_international_flyout.v2._V379935612_.png\"\n};\n_navbar.browsepromos[\"home-garden-tools\"] = {\n width: 492,\n promoType: \"wide\",\n vertOffset: 0,\n horizOffset: 0,\n height: 287,\n image: \"http://g-ecx.images-amazon.com/images/G/01/img13/home/flyout/7-9_furniture-photo-shoot_flyout._V379916182_.png\"\n};\n_navbar.browsepromos[\"instant-video\"] = {\n width: 500,\n promoType: \"wide\",\n vertOffset: \"-10\",\n horizOffset: \"-20\",\n height: 495,\n image: \"http://g-ecx.images-amazon.com/images/G/01/digital/video/merch/UnderTheDome/AIV_GNO-Flyout_UTDPostLaunchV2._V381606810_.png\"\n};\n_navbar.browsepromos[\"kindle\"] = {\n width: 440,\n promoType: \"wide\",\n vertOffset: \"-35\",\n horizOffset: \"28\",\n height: 151,\n image: \"http://g-ecx.images-amazon.com/images/G/01/gno/beacon/merch/browse/gno-family-440x151._V389693769_.png\"\n};\n_navbar.browsepromos[\"movies-music-games\"] = {\n width: 524,\n promoType: \"wide\",\n vertOffset: \"-25\",\n horizOffset: \"-21\",\n height: 493,\n image: \"http://g-ecx.images-amazon.com/images/G/01/img13/movies-tv/flyout/0628b-bsf-movie-n-music-flyout._V380036698_.png\"\n};\n_navbar.browsepromos[\"mp3\"] = {\n width: 520,\n promoType: \"wide\",\n vertOffset: \"-20\",\n horizOffset: \"-21\",\n height: 492,\n image: \"http://g-ecx.images-amazon.com/images/G/01/digital/music/mp3/flyout/JayZ_Flyout_1._V380151426_.png\"\n};\n_navbar.browsepromos[\"sports-outdoors\"] = {\n width: 500,\n promoType: \"wide\",\n vertOffset: \"0\",\n horizOffset: \"-20\",\n height: 487,\n image: \"http://g-ecx.images-amazon.com/images/G/01/img13/sports-outdoors/flyout/sgfitness._V382533691_.png\"\n};\n_navbar.browsepromos[\"toys-kids-baby\"] = {\n width: 479,\n promoType: \"wide\",\n vertOffset: \"0\",\n horizOffset: \"0\",\n height: 395,\n image: \"http://g-ecx.images-amazon.com/images/G/01/img13/babyregistry/2013sweepstakes/flyout/baby_2013sweeps_flyout._V381448744_.jpg\"\n};\n((window.$Nav && $Nav.declare(\"config.browsePromos\", window._navbar.browsepromos)));\n((window.amznJQ && amznJQ.declareAvailable(\"navbarPromosContent\")));");
709 f881945950_65.returns.push(o5);
712 geval("(function() {\n var availableWidth = ((((window.JSBNG__innerWidth || JSBNG__document.body.offsetWidth)) - 1));\n;\n var widths = [1280,];\n var imageHashMain = [\"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg\",\"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg\",];\n var imageObj = new JSBNG__Image();\n var sz = 0;\n for (; ((((sz < widths.length)) && ((availableWidth >= widths[sz])))); sz++) {\n ;\n };\n;\n imageObj.src = imageHashMain[sz];\n})();");
714 geval("function eba5e792808f98ffad2199c25c3f252962a7697cd(JSBNG__event) {\n;\n if (((typeof measureATFDiff == \"function\"))) {\n measureATFDiff(new JSBNG__Date().getTime(), 0);\n }\n;\n;\n;\n if (((typeof setCSMReq == \"function\"))) {\n setCSMReq(\"af\");\n setCSMReq(\"cf\");\n }\n else if (((typeof uet == \"function\"))) {\n uet(\"af\");\n uet(\"cf\");\n amznJQ.completedStage(\"amznJQ.AboveTheFold\");\n }\n \n;\n;\n};\n;");
716 geval("function e5209abad2ea9a8e8a3d19b988fd4501696abff96(JSBNG__event) {\n return false;\n};\n;");
718 f881945950_406 = function() { return f881945950_406.returns[f881945950_406.inst++]; };
719 f881945950_406.returns = [];
720 f881945950_406.inst = 0;
722 o0.getElementById = f881945950_406;
726 f881945950_406.returns.push(o6);
730 f881945950_406.returns.push(o7);
732 o7.className = "size0 bottom-thumbs main-image-widget-for-dp standard";
742 geval("var colorImages = {\n initial: [{\n large: \"http://ecx.images-amazon.com/images/I/51gdVAEfPUL.jpg\",\n landing: [\"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg\",],\n hiRes: \"http://ecx.images-amazon.com/images/I/814biaGJWaL._SL1500_.jpg\",\n thumb: \"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._SS30_.jpg\",\n main: [\"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg\",\"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg\",]\n },]\n};\n(function(doc) {\n var mi = doc.getElementById(\"main-image\");\n var w = ((window.JSBNG__innerWidth || doc.body.offsetWidth));\n w--;\n var widths = [1280,];\n var sz = 0;\n for (; ((((sz < 1)) && ((w >= widths[sz])))); sz++) {\n ;\n };\n;\n if (((sz || 1))) {\n var miw = doc.getElementById(\"main-image-widget\");\n miw.className = miw.className.replace(/size[0-9]+/, ((\"size\" + sz)));\n if (((sz && 1))) {\n mi.width = 300;\n mi.height = 300;\n }\n else if (((!sz && 1))) {\n mi.width = 300;\n mi.height = 300;\n }\n \n ;\n ;\n amznJQ.onCompletion(\"amznJQ.AboveTheFold\", function() {\n var src = colorImages.initial[0].main[sz];\n var img = new JSBNG__Image();\n img.JSBNG__onload = function() {\n var clone = mi.cloneNode(true);\n clone.src = src;\n clone.removeAttribute(\"width\");\n clone.removeAttribute(\"height\");\n clone.removeAttribute(\"JSBNG__onload\");\n mi.parentNode.replaceChild(clone, mi);\n mi = clone;\n amznJQ.declareAvailable(\"ImageBlockATF\");\n };\n img.src = src;\n });\n }\n else {\n amznJQ.declareAvailable(\"ImageBlockATF\");\n }\n;\n;\n mi.style.display = \"inline\";\n})(JSBNG__document);");
744 geval("function ea61dd9757a317a235aa0212a7a482613abe637a5(JSBNG__event) {\n if (((typeof (SitbReader) != \"undefined\"))) {\n SitbReader.LightboxActions.openReader(\"sib_dp_ptu\");\n return false;\n }\n;\n;\n};\n;");
746 geval("var legacyOnSelectedQuantityChange = function() {\n if (((jQuery(\"#pricePlusShippingQty\").length > 0))) {\n jQuery.ajax({\n url: \"/gp/product/du/quantity-sip-update.html\",\n data: {\n qt: jQuery(\"#quantityDropdownDiv select\").val(),\n a: jQuery(\"#ASIN\").val(),\n me: jQuery(\"#merchantID\").val()\n },\n dataType: \"html\",\n success: function(sipHtml) {\n jQuery(\"#pricePlusShippingQty\").html(sipHtml);\n }\n });\n }\n;\n;\n};\namznJQ.onReady(\"jQuery\", function() {\n jQuery(\"#quantityDropdownDiv select\").change(legacyOnSelectedQuantityChange);\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n amznJQ.available(\"quantityDropDownJS\", function() {\n var qdd = new jQuery.fn.quantityDropDown();\n qdd.setPopoverContent(\"\\u003Cstrong\\u003EWe're sorry. This item is limited to %d per customer.\\u003C/strong\\u003E\", \"\\u003Cbr /\\u003E\\u003Cbr /\\u003EWe strive to provide customers with great prices, and sometimes that means we limit quantity to ensure that the majority of customers have an opportunity to order products that have very low prices or a limited supply.\\u003Cbr /\\u003E\\u003Cbr /\\u003EWe may also adjust quantity in checkout if you have recently purchased this item.\");\n });\n });\n});");
748 geval("amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n amznJQ.available(\"bbopCheckBoxJS\", function() {\n var bbopJS = new jQuery.fn.bbopCheckBox();\n bbopJS.initialize(1, 0, \"To get FREE Two-Day Shipping on this item, proceed to checkout using "Add to Cart"\");\n });\n});");
750 geval("var gbSecure1Click = true;\nif (((((typeof (gbSecure1Click) != \"undefined\")) && gbSecure1Click))) {\n amznJQ.onReady(\"jQuery\", function() {\n jQuery(\"#oneClickBuyButton\").click(function() {\n var hbbAction = jQuery(\"#handleBuy\").attr(\"action\").replace(\"http:\", \"https:\");\n jQuery(\"#handleBuy\").attr(\"action\", hbbAction);\n return true;\n });\n });\n}\n;\n;");
752 geval("if (window.gbvar) {\n amznJQ.onReady(\"jQuery\", function() {\n jQuery(\"#oneClickSignInLinkID\").attr(\"href\", window.gbvar);\n });\n}\n else {\n window.gbvar = \"http://jsbngssl.www.amazon.com/gp/product/utility/edit-one-click-pref.html?ie=UTF8&query=selectObb%3Dnew&returnPath=%2Fgp%2Fproduct%2F0596517742\";\n}\n;\n;");
756 f881945950_0.returns.push(o2);
758 o2.getTime = f881945950_397;
762 f881945950_397.returns.push(1373479178221);
766 f881945950_65.returns.push(o4);
772 geval("if (window.gbvar) {\n amznJQ.onReady(\"jQuery\", function() {\n jQuery(\"#oneClickSignInLinkID\").attr(\"href\", window.gbvar);\n });\n}\n else {\n window.gbvar = \"http://jsbngssl.www.amazon.com/gp/product/utility/edit-one-click-pref.html?ie=UTF8&query=selectObb%3Dnew&returnPath=%2Fgp%2Fproduct%2F0596517742\";\n}\n;\n;");
776 f881945950_65.returns.push(o5);
781 geval("(function() {\n var availableWidth = ((((window.JSBNG__innerWidth || JSBNG__document.body.offsetWidth)) - 1));\n;\n var widths = [1280,];\n var imageHashMain = [\"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg\",\"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg\",];\n var imageObj = new JSBNG__Image();\n var sz = 0;\n for (; ((((sz < widths.length)) && ((availableWidth >= widths[sz])))); sz++) {\n ;\n };\n;\n imageObj.src = imageHashMain[sz];\n})();");
783 geval("function eba5e792808f98ffad2199c25c3f252962a7697cd(JSBNG__event) {\n;\n if (((typeof measureATFDiff == \"function\"))) {\n measureATFDiff(new JSBNG__Date().getTime(), 0);\n }\n;\n;\n;\n if (((typeof setCSMReq == \"function\"))) {\n setCSMReq(\"af\");\n setCSMReq(\"cf\");\n }\n else if (((typeof uet == \"function\"))) {\n uet(\"af\");\n uet(\"cf\");\n amznJQ.completedStage(\"amznJQ.AboveTheFold\");\n }\n \n;\n;\n};\n;");
785 geval("function e5209abad2ea9a8e8a3d19b988fd4501696abff96(JSBNG__event) {\n return false;\n};\n;");
787 f881945950_406 = function() { return f881945950_406.returns[f881945950_406.inst++]; };
788 f881945950_406.returns = [];
789 f881945950_406.inst = 0;
793 f881945950_406.returns.push(o6);
797 f881945950_406.returns.push(o7);
799 o7.className = "size0 bottom-thumbs main-image-widget-for-dp standard";
815 geval("var colorImages = {\n initial: [{\n large: \"http://ecx.images-amazon.com/images/I/51gdVAEfPUL.jpg\",\n landing: [\"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg\",],\n hiRes: \"http://ecx.images-amazon.com/images/I/814biaGJWaL._SL1500_.jpg\",\n thumb: \"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._SS30_.jpg\",\n main: [\"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg\",\"http://ecx.images-amazon.com/images/I/51gdVAEfPUL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg\",]\n },]\n};\n(function(doc) {\n var mi = doc.getElementById(\"main-image\");\n var w = ((window.JSBNG__innerWidth || doc.body.offsetWidth));\n w--;\n var widths = [1280,];\n var sz = 0;\n for (; ((((sz < 1)) && ((w >= widths[sz])))); sz++) {\n ;\n };\n;\n if (((sz || 1))) {\n var miw = doc.getElementById(\"main-image-widget\");\n miw.className = miw.className.replace(/size[0-9]+/, ((\"size\" + sz)));\n if (((sz && 1))) {\n mi.width = 300;\n mi.height = 300;\n }\n else if (((!sz && 1))) {\n mi.width = 300;\n mi.height = 300;\n }\n \n ;\n ;\n amznJQ.onCompletion(\"amznJQ.AboveTheFold\", function() {\n var src = colorImages.initial[0].main[sz];\n var img = new JSBNG__Image();\n img.JSBNG__onload = function() {\n var clone = mi.cloneNode(true);\n clone.src = src;\n clone.removeAttribute(\"width\");\n clone.removeAttribute(\"height\");\n clone.removeAttribute(\"JSBNG__onload\");\n mi.parentNode.replaceChild(clone, mi);\n mi = clone;\n amznJQ.declareAvailable(\"ImageBlockATF\");\n };\n img.src = src;\n });\n }\n else {\n amznJQ.declareAvailable(\"ImageBlockATF\");\n }\n;\n;\n mi.style.display = \"inline\";\n})(JSBNG__document);");
817 geval("function ea61dd9757a317a235aa0212a7a482613abe637a5(JSBNG__event) {\n if (((typeof (SitbReader) != \"undefined\"))) {\n SitbReader.LightboxActions.openReader(\"sib_dp_ptu\");\n return false;\n }\n;\n;\n};\n;");
819 geval("var legacyOnSelectedQuantityChange = function() {\n if (((jQuery(\"#pricePlusShippingQty\").length > 0))) {\n jQuery.ajax({\n url: \"/gp/product/du/quantity-sip-update.html\",\n data: {\n qt: jQuery(\"#quantityDropdownDiv select\").val(),\n a: jQuery(\"#ASIN\").val(),\n me: jQuery(\"#merchantID\").val()\n },\n dataType: \"html\",\n success: function(sipHtml) {\n jQuery(\"#pricePlusShippingQty\").html(sipHtml);\n }\n });\n }\n;\n;\n};\namznJQ.onReady(\"jQuery\", function() {\n jQuery(\"#quantityDropdownDiv select\").change(legacyOnSelectedQuantityChange);\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n amznJQ.available(\"quantityDropDownJS\", function() {\n var qdd = new jQuery.fn.quantityDropDown();\n qdd.setPopoverContent(\"\\u003Cstrong\\u003EWe're sorry. This item is limited to %d per customer.\\u003C/strong\\u003E\", \"\\u003Cbr /\\u003E\\u003Cbr /\\u003EWe strive to provide customers with great prices, and sometimes that means we limit quantity to ensure that the majority of customers have an opportunity to order products that have very low prices or a limited supply.\\u003Cbr /\\u003E\\u003Cbr /\\u003EWe may also adjust quantity in checkout if you have recently purchased this item.\");\n });\n });\n});");
821 geval("amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n amznJQ.available(\"bbopCheckBoxJS\", function() {\n var bbopJS = new jQuery.fn.bbopCheckBox();\n bbopJS.initialize(1, 0, \"To get FREE Two-Day Shipping on this item, proceed to checkout using "Add to Cart"\");\n });\n});");
823 geval("var gbSecure1Click = true;\nif (((((typeof (gbSecure1Click) != \"undefined\")) && gbSecure1Click))) {\n amznJQ.onReady(\"jQuery\", function() {\n jQuery(\"#oneClickBuyButton\").click(function() {\n var hbbAction = jQuery(\"#handleBuy\").attr(\"action\").replace(\"http:\", \"https:\");\n jQuery(\"#handleBuy\").attr(\"action\", hbbAction);\n return true;\n });\n });\n}\n;\n;");
825 geval("if (window.gbvar) {\n amznJQ.onReady(\"jQuery\", function() {\n jQuery(\"#oneClickSignInLinkID\").attr(\"href\", window.gbvar);\n });\n}\n else {\n window.gbvar = \"http://jsbngssl.www.amazon.com/gp/product/utility/edit-one-click-pref.html?ie=UTF8&query=selectObb%3Dnew&returnPath=%2Fgp%2Fproduct%2F0596517742\";\n}\n;\n;");
831 geval("if (window.gbvar) {\n amznJQ.onReady(\"jQuery\", function() {\n jQuery(\"#oneClickSignInLinkID\").attr(\"href\", window.gbvar);\n });\n}\n else {\n window.gbvar = \"http://jsbngssl.www.amazon.com/gp/product/utility/edit-one-click-pref.html?ie=UTF8&query=selectObb%3Dnew&returnPath=%2Fgp%2Fproduct%2F0596517742\";\n}\n;\n;");
833 geval("amznJQ.onReady(\"jQuery\", function() {\n if (((((((typeof dpLdWidget !== \"undefined\")) && ((typeof dpLdWidget.deal !== \"undefined\")))) && ((typeof dpLdWidget.deal.asins !== \"undefined\"))))) {\n var dealPriceText;\n if (((((((typeof Deal !== \"undefined\")) && ((typeof Deal.Price !== \"undefined\")))) && ((typeof dpLdWidget.deal.asins[0] !== \"undefined\"))))) {\n var dp = dpLdWidget.deal.asins[0].dealPrice;\n if (((dp.price > 396))) {\n dealPriceText = Deal.Price.format(dp);\n jQuery(\"#rbb_bb_trigger .bb_price, #rentalPriceBlockGrid .buyNewOffers .rentPrice\").html(dealPriceText);\n }\n ;\n ;\n }\n ;\n ;\n }\n;\n;\n jQuery(\"#rbbContainer .rbb_section .rbb_header\").click(function(e) {\n var target = jQuery(e.target);\n if (!target.hasClass(\"rbb_header\")) {\n target.parents(\".rbbHeaderLink\").attr(\"href\", \"javascript:void(0);\");\n }\n ;\n ;\n var t = jQuery(this);\n var header = ((t.hasClass(\"rbb_header\") ? t : t.parents(\".rbb_header\")));\n if (header.parents(\".rbb_section\").hasClass(\"selected\")) {\n return false;\n }\n ;\n ;\n jQuery(\"#radiobuyboxDivId .bb_radio\").attr(\"checked\", false);\n header.JSBNG__find(\".bb_radio\").attr(\"checked\", \"checked\");\n header.parents(\".rbb_section\").removeClass(\"unselected\").addClass(\"selected\");\n jQuery(\"#radiobuyboxDivId .abbListInput\").attr(\"checked\", false);\n var bbClicked = jQuery(this).attr(\"id\");\n var slideMeDown, slideMeUp;\n jQuery(\"#radiobuyboxDivId .rbb_section\").each(function(i, bb) {\n if (((jQuery(bb).JSBNG__find(\".rbb_header\")[0].id == bbClicked))) {\n slideMeDown = jQuery(bb);\n }\n else if (jQuery(bb).hasClass(\"selected\")) {\n slideMeUp = jQuery(bb);\n }\n \n ;\n ;\n });\n slideMeUp.JSBNG__find(\".rbb_content\").slideUp(500, function() {\n slideMeUp.removeClass(\"selected\").addClass(\"unselected\");\n });\n slideMeDown.JSBNG__find(\".rbb_content\").slideDown(500);\n JSBNG__location.hash = ((\"#selectedObb=\" + header.attr(\"id\")));\n return true;\n });\n var locationHash = JSBNG__location.hash;\n if (((locationHash.length != 0))) {\n var selectObb = locationHash.substring(1).split(\"=\")[1];\n if (((typeof (selectObb) != \"undefined\"))) {\n var target = jQuery(((\"#\" + selectObb)));\n if (((target.length != 0))) {\n target.trigger(\"click\");\n }\n ;\n ;\n }\n ;\n ;\n }\n;\n;\n});");
835 geval("function e0ad247b2845d5a62f8d680c69024109c41a3aba5(JSBNG__event) {\n return false;\n};\n;");
837 geval("if (((typeof window.amznJQ != \"undefined\"))) {\n amznJQ.onReady(\"popover\", function() {\n jQuery(\"#tradeinBuyboxLearnMore\").amazonPopoverTrigger({\n closeText: \"Close\",\n width: 580,\n group: \"tradein\",\n destination: \"/gp/tradein/popovers/ajax-popover.html?ie=UTF8&name=howToTradeIn\",\n title: \"How to Trade In\"\n });\n });\n}\n;\n;");
839 geval("function ef6ad9c87b00e618dc7a9b5e5140bbc8ba2edd739(JSBNG__event) {\n window.open(this.href, \"_blank\", \"location=yes,width=700,height=400\");\n return false;\n};\n;");
841 geval("function ed3bd13821903ecb97b20e31910662670d650c5cb(JSBNG__event) {\n window.open(this.href, \"_blank\", \"location=yes,width=700,height=400\");\n return false;\n};\n;");
843 geval("function ea6dbd42abc1e9b3dbebd197268ce92a9b0e0b4ad(JSBNG__event) {\n window.open(this.href, \"_blank\", \"location=yes,width=700,height=570\");\n return false;\n};\n;");
845 geval("if (((typeof window.amznJQ != \"undefined\"))) {\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n amznJQ.available(\"share-with-friends-js-new\", function() {\n var popoverParams = {\n url: \"/gp/pdp/taf/dpPop.html/ref=cm_sw_p_view_dp_geA3rb04T691F?ie=UTF8&contentID=0596517742&contentName=item&contentType=asin&contentURI=%2Fdp%2F0596517742&emailCaptionStrID=&emailCustomMsgStrID=&emailDescStrID=&emailSubjectStrID=&emailTemplate=%2Fgp%2Fpdp%2Fcommon%2Femail%2Fshare-product&forceSprites=1&id=0596517742&imageURL=&isDynamicSWF=0&isEmail=0&learnMoreButton=&merchantID=&parentASIN=0596517742&placementID=dp_geA3rb04T691F&ra=taf&referer=http%253A%252F%252Fwww.amazon.com%252Fgp%252Fproduct%252F0596517742%252Fref%253D&relatedAccounts=amazondeals%2Camazonmp3&suppressPurchaseReqLogin=&titleText=&tt=sh&viaAccount=amazon\",\n title: \"Share this item via Email\",\n closeText: \"Close\",\n isCompact: false\n };\n amz_taf_triggers.swftext = popoverParams;\n amz_taf_generatePopover(\"swftext\", false);\n });\n });\n}\n;\n;");
847 geval("amznJQ.onReady(\"bylinePopover\", function() {\n\n});");
849 geval("function acrPopoverHover(e, h) {\n if (h) {\n window.acrAsinHover = e;\n }\n else {\n if (((window.acrAsinHover == e))) {\n window.acrAsinHover = null;\n }\n ;\n }\n;\n;\n};\n;\namznJQ.onReady(\"popover\", function() {\n (function($) {\n if ($.fn.acrPopover) {\n return;\n }\n ;\n ;\n var popoverConfig = {\n showOnHover: true,\n showCloseButton: true,\n width: null,\n JSBNG__location: \"bottom\",\n locationAlign: \"left\",\n locationOffset: [-20,0,],\n paddingLeft: 15,\n paddingBottom: 5,\n paddingRight: 15,\n group: \"reviewsPopover\",\n clone: false,\n hoverHideDelay: 300\n };\n $.fn.acrPopover = function() {\n return this.each(function() {\n var $this = $(this);\n if (!$this.data(\"init\")) {\n $this.data(\"init\", 1);\n var getargs = $this.attr(\"getargs\");\n var ajaxURL = ((((((((((((((\"/gp/customer-reviews/common/du/displayHistoPopAjax.html?\" + \"&ASIN=\")) + $this.attr(\"JSBNG__name\"))) + \"&link=1\")) + \"&seeall=1\")) + \"&ref=\")) + $this.attr(\"ref\"))) + ((((typeof getargs != \"undefined\")) ? ((\"&getargs=\" + getargs)) : \"\"))));\n var myConfig = $.extend(true, {\n destination: ajaxURL\n }, popoverConfig);\n $this.amazonPopoverTrigger(myConfig);\n var w = window.acrAsinHover;\n if (((w && (($(w).parents(\".asinReviewsSummary\").get(0) == this))))) {\n $this.trigger(\"mouseover.amzPopover\");\n window.acrAsinHover = null;\n }\n ;\n ;\n }\n ;\n ;\n });\n };\n window.reviewHistPopoverConfig = popoverConfig;\n var jqInit = window.jQueryInitHistoPopovers = function(asin) {\n $(((((\".acr-popover[name=\" + asin)) + \"]\"))).acrPopover();\n };\n window.doInit_average_customer_reviews = jqInit;\n window.onAjaxUpdate_average_customer_reviews = jqInit;\n window.onCacheUpdate_average_customer_reviews = jqInit;\n window.onCacheUpdateReselect_average_customer_reviews = jqInit;\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n JSBNG__setTimeout(function() {\n amznJQ.declareAvailable(\"acrPopover\");\n }, 10);\n });\n })(jQuery);\n});\namznJQ.onReady(\"acrPopover\", function() {\n jQuery(\".acr-popover,#searchTemplate .asinReviewsSummary\").each(function() {\n jQuery(this).acrPopover();\n });\n});");
851 geval("function ed2276bf20246f30c68990f23f81d89eadb38c166(JSBNG__event) {\n return acrPopoverHover(this, 1);\n};\n;");
853 geval("function ecf07c0edda27bc80d526213d7c6929ffbddc8bbc(JSBNG__event) {\n return acrPopoverHover(this, 0);\n};\n;");
855 geval("function efaf91b69248e7e79f131f7036cba56d101e7bfb6(JSBNG__event) {\n return acrPopoverHover(this, 1);\n};\n;");
857 geval("function efb799c660c9baca416793b32167d426e04dee131(JSBNG__event) {\n return acrPopoverHover(this, 0);\n};\n;");
859 geval("function e454b94055c2707a9784ef2ca3e2fe7a272f31974(JSBNG__event) {\n return amz_js_PopWin(\"/gp/help/customer/display.html/ref=mk_sss_dp_1?ie=UTF8&nodeId=527692&pop-up=1\", \"AmazonHelp\", \"width=550,height=550,resizable=1,scrollbars=1,toolbar=0,status=0\");\n};\n;");
861 geval("amznJQ.declareAvailable(\"gbPriceBlockFields\");");
865 f881945950_0.returns.push(o2);
867 f881945950_413 = function() { return f881945950_413.returns[f881945950_413.inst++]; };
868 f881945950_413.returns = [];
869 f881945950_413.inst = 0;
871 o2.getHours = f881945950_413;
873 f881945950_413.returns.push(13);
875 f881945950_414 = function() { return f881945950_414.returns[f881945950_414.inst++]; };
876 f881945950_414.returns = [];
877 f881945950_414.inst = 0;
879 o2.getMinutes = f881945950_414;
881 f881945950_414.returns.push(59);
883 f881945950_415 = function() { return f881945950_415.returns[f881945950_415.inst++]; };
884 f881945950_415.returns = [];
885 f881945950_415.inst = 0;
887 o2.getSeconds = f881945950_415;
889 f881945950_415.returns.push(38);
893 f881945950_0.returns.push(o4);
895 o4.getHours = f881945950_413;
897 f881945950_413.returns.push(13);
899 o4.getMinutes = f881945950_414;
901 f881945950_414.returns.push(59);
903 o4.getSeconds = f881945950_415;
905 f881945950_415.returns.push(38);
911 f881945950_406.returns.push(null);
913 f881945950_406.returns.push(null);
915 f881945950_16.returns.push(2);
917 geval("try {\n var ftCountdownElementIDs = new Array();\n var ftEntireMessageElementIDs = new Array();\n var FT_CurrentDisplayMin = new Array();\n var clientServerTimeDrift;\n var firstTimeUpdate = false;\n function ftRegisterCountdownElementID(elementID) {\n ftCountdownElementIDs[ftCountdownElementIDs.length] = elementID;\n };\n;\n function ftRegisterEntireMessageElementID(elementID) {\n ftEntireMessageElementIDs[ftEntireMessageElementIDs.length] = elementID;\n };\n;\n function getTimeRemainingString(hours, minutes) {\n var hourString = ((((hours == 1)) ? \"hr\" : \"hrs\"));\n var minuteString = ((((minutes == 1)) ? \"min\" : \"mins\"));\n if (((hours == 0))) {\n return ((((minutes + \" \")) + minuteString));\n }\n ;\n ;\n if (((minutes == 0))) {\n return ((((hours + \" \")) + hourString));\n }\n ;\n ;\n return ((((((((((((hours + \" \")) + hourString)) + \" \")) + minutes)) + \" \")) + minuteString));\n return ((((((((((((hours + \" \")) + hourString)) + \" \")) + minutes)) + \" \")) + minuteString));\n };\n;\n function FT_displayCountdown(forceUpdate) {\n if (((((!JSBNG__document.layers && !JSBNG__document.all)) && !JSBNG__document.getElementById))) {\n return;\n }\n ;\n ;\n FT_showHtmlElement(\"ftShipString\", true, \"inline\");\n var FT_remainSeconds = ((FT_givenSeconds - FT_actualSeconds));\n if (((FT_remainSeconds < 1))) {\n FT_showEntireMessageElement(false);\n }\n ;\n ;\n var FT_secondsPerDay = ((((24 * 60)) * 60));\n var FT_daysLong = ((FT_remainSeconds / FT_secondsPerDay));\n var FT_days = Math.floor(FT_daysLong);\n var FT_hoursLong = ((((FT_daysLong - FT_days)) * 24));\n var FT_hours = Math.floor(FT_hoursLong);\n var FT_minsLong = ((((FT_hoursLong - FT_hours)) * 60));\n var FT_mins = Math.floor(FT_minsLong);\n var FT_secsLong = ((((FT_minsLong - FT_mins)) * 60));\n var FT_secs = Math.floor(FT_secsLong);\n if (((FT_days > 0))) {\n FT_hours = ((((FT_days * 24)) + FT_hours));\n }\n ;\n ;\n window.JSBNG__setTimeout(\"FT_getTime()\", 1000);\n var ftCountdown = getTimeRemainingString(FT_hours, FT_mins);\n for (var i = 0; ((i < ftCountdownElementIDs.length)); i++) {\n var countdownElement = JSBNG__document.getElementById(ftCountdownElementIDs[i]);\n if (countdownElement) {\n if (((((((((FT_CurrentDisplayMin[i] != FT_mins)) || forceUpdate)) || ((countdownElement.innerHTML == \"\")))) || firstTimeUpdate))) {\n countdownElement.innerHTML = ftCountdown;\n FT_CurrentDisplayMin[i] = FT_mins;\n firstTimeUpdate = false;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n };\n;\n function FT_showEntireMessageElement(shouldShow) {\n for (var i = 0; ((i < ftEntireMessageElementIDs.length)); i++) {\n FT_showHtmlElement(ftEntireMessageElementIDs[i], shouldShow);\n };\n ;\n };\n;\n function FT_showHtmlElement(elementID, shouldShow, displayStyle) {\n var element = JSBNG__document.getElementById(elementID);\n if (element) {\n if (shouldShow) {\n element.style.display = ((((displayStyle != null)) ? displayStyle : \"\"));\n }\n else {\n element.style.display = \"none\";\n }\n ;\n ;\n }\n ;\n ;\n };\n;\n function FT_getAndClearCutOffEpochSeconds() {\n var ftCutOffEpochSecondsElementID = \"ftCutOffEpochSeconds\";\n var ftServerCurrentEpochSecondsElementID = \"ftServerCurrentEpochSeconds\";\n if (((((JSBNG__document.layers || JSBNG__document.all)) || JSBNG__document.getElementById))) {\n if (JSBNG__document.getElementById(ftCutOffEpochSecondsElementID)) {\n var cutOffEpochSeconds = JSBNG__document.getElementById(ftCutOffEpochSecondsElementID).innerHTML;\n if (((cutOffEpochSeconds != \"\"))) {\n JSBNG__document.getElementById(ftCutOffEpochSecondsElementID).innerHTML = \"\";\n if (((((clientServerTimeDrift == null)) && JSBNG__document.getElementById(ftServerCurrentEpochSecondsElementID)))) {\n var serverCurrentEpochSeconds = ((JSBNG__document.getElementById(ftServerCurrentEpochSecondsElementID).innerHTML * 1));\n clientServerTimeDrift = ((((new JSBNG__Date().getTime() / 1000)) - serverCurrentEpochSeconds));\n }\n ;\n ;\n return ((((((clientServerTimeDrift == null)) ? 0 : clientServerTimeDrift)) + ((cutOffEpochSeconds * 1))));\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n return 0;\n };\n;\n function FT_getCountdown(secondsLeft) {\n var FT_currentTime = new JSBNG__Date();\n var FT_currentHours = FT_currentTime.getHours();\n var FT_currentMins = FT_currentTime.getMinutes();\n var FT_currentSecs = FT_currentTime.getSeconds();\n FT_givenSeconds = ((((((FT_currentHours * 3600)) + ((FT_currentMins * 60)))) + FT_currentSecs));\n var FT_secondsFromCat = 18026;\n if (((secondsLeft != null))) {\n FT_secondsFromCat = secondsLeft;\n }\n ;\n ;\n FT_givenSeconds += FT_secondsFromCat;\n FT_getTime();\n };\n;\n function FT_getTime() {\n var FT_newCurrentTime = new JSBNG__Date();\n var FT_actualHours = FT_newCurrentTime.getHours();\n var FT_actualMins = FT_newCurrentTime.getMinutes();\n var FT_actualSecs = FT_newCurrentTime.getSeconds();\n FT_actualSeconds = ((((((FT_actualHours * 3600)) + ((FT_actualMins * 60)))) + FT_actualSecs));\n var cutOffTimeFromPageElement = FT_getAndClearCutOffEpochSeconds();\n if (cutOffTimeFromPageElement) {\n var countDownSeconds = ((cutOffTimeFromPageElement - ((FT_newCurrentTime.getTime() / 1000))));\n if (((countDownSeconds >= 1))) {\n FT_showEntireMessageElement(true);\n }\n ;\n ;\n FT_givenSeconds = ((countDownSeconds + FT_actualSeconds));\n }\n ;\n ;\n FT_displayCountdown();\n };\n;\n function onAjaxUpdate_fast_track(asin) {\n var timerDiv = JSBNG__document.getElementById(\"ftMessageTimer\");\n var cutOffElems = JSBNG__document.getElementsByName(((\"promise-cutoff-time.\" + asin)));\n if (((((cutOffElems == null)) || ((cutOffElems.length == 0))))) {\n return;\n }\n ;\n ;\n if (((timerDiv && timerDiv.style))) {\n timerDiv.style.display = \"inline\";\n }\n ;\n ;\n var cutOffTimeVal = cutOffElems[0].value;\n var cutOffTime = parseInt(cutOffTimeVal);\n var currSecs = ((new JSBNG__Date().getTime() / 1000));\n var secsLeft = ((cutOffTime - currSecs));\n FT_getCountdown(secsLeft);\n };\n;\n FT_getCountdown();\n} catch (JSBNG_ex) {\n\n};");
919 geval("ftRegisterCountdownElementID(\"ftCountdown\");\nftRegisterEntireMessageElementID(\"ftMessage\");");
921 geval("function e75b493e6089a201530187bf51690fe2bbd897fb3(JSBNG__event) {\n return amz_js_PopWin(\"/gp/help/customer/display.html/ref=ftinfo_dp_?ie=UTF8&nodeId=3510241&pop-up=1\", \"AmazonHelp\", \"width=550,height=600,resizable=1,scrollbars=1,toolbar=1,status=1\");\n};\n;");
925 f881945950_406.returns.push(o5);
932 geval("var timerDiv = JSBNG__document.getElementById(\"ftMessageTimer\");\nif (((timerDiv && timerDiv.style))) {\n timerDiv.style.display = \"inline\";\n}\n;\n;");
934 geval("if (((typeof measureATFDiff == \"function\"))) {\n measureATFDiff(0, new JSBNG__Date().getTime());\n}\n;\n;\n;\nif (((typeof setCSMReq == \"function\"))) {\n setCSMReq(\"af\");\n}\n else if (((typeof uet == \"function\"))) {\n uet(\"af\");\n}\n\n;\n;");
936 geval("function ee976dbac42452e3152d3a48f703b0a8e017fa4d8(JSBNG__event) {\n javascript:\n Vellum.h();\n};\n;");
938 geval("function ed771f07937fda9c8dd04b0376cf96f16a586029a(JSBNG__event) {\n javascript:\n Vellum.h();\n};\n;");
940 geval("amznJQ.available(\"jQuery\", function() {\n window.sitbWeblab = \"\";\n if (((typeof (Vellum) == \"undefined\"))) {\n Vellum = {\n js: \"http://z-ecx.images-amazon.com/images/G/01/digital/sitb/reader/v4/201305301526/en_US/sitb-library-js._V383092699_.js\",\n sj: \"/gp/search-inside/js?locale=en_US&version=201305301526\",\n css: \"http://z-ecx.images-amazon.com/images/G/01/digital/sitb/reader/v4/201305301526/en_US/sitb-library-css._V383092698_.css\",\n pl: function() {\n Vellum.lj(Vellum.js, Vellum.sj, Vellum.css);\n },\n lj: function(u, u2, uc) {\n if (window.vellumLjDone) {\n return;\n }\n ;\n ;\n window.vellumLjDone = true;\n var d = JSBNG__document;\n var s = d.createElement(\"link\");\n s.type = \"text/css\";\n s.rel = \"stylesheet\";\n s.href = uc;\n d.getElementsByTagName(\"head\")[0].appendChild(s);\n s = d.createElement(\"script\");\n s.type = \"text/javascript\";\n s.src = u2;\n d.getElementsByTagName(\"head\")[0].appendChild(s);\n },\n lj2: function(u) {\n var d = JSBNG__document;\n var s = d.createElement(\"script\");\n s.type = \"text/javascript\";\n s.src = u;\n d.getElementsByTagName(\"head\")[0].appendChild(s);\n },\n go: function() {\n sitbLodStart = new JSBNG__Date().getTime();\n jQuery(\"body\").css(\"overflow\", \"hidden\");\n var jqw = jQuery(window);\n var h = jqw.height();\n var w = jqw.width();\n var st = jqw.scrollTop();\n jQuery(\"#vellumShade\").css({\n JSBNG__top: st,\n height: h,\n width: w\n }).show();\n var vli = jQuery(\"#vellumLdgIco\");\n var nl = ((((w / 2)) - ((vli.width() / 2))));\n var nt = ((((st + ((h / 2)))) - ((vli.height() / 2))));\n vli.css({\n left: nl,\n JSBNG__top: nt\n }).show();\n JSBNG__setTimeout(\"Vellum.x()\", 20000);\n Vellum.pl();\n },\n x: function() {\n jQuery(\"#vellumMsgTxt\").html(\"An error occurred while trying to show this book.\");\n jQuery(\"#vellumMsgHdr\").html(\"Server Timeout\");\n jQuery(\"#vellumMsg\").show();\n var reftagImage = new JSBNG__Image();\n reftagImage.src = \"/gp/search-inside/reftag/ref=rdr_bar_jsto\";\n },\n h: function() {\n jQuery(\"#vellumMsg\").hide();\n jQuery(\"#vellumShade\").hide();\n jQuery(\"#vellumLdgIco\").hide();\n jQuery(\"body\").css(\"overflow\", \"auto\");\n },\n cf: function(a) {\n return function() {\n v.mt = a;\n v.rg = Array.prototype.slice.call(arguments);\n v.go();\n };\n },\n c: function(a) {\n var v = Vellum;\n v.mt = \"c\";\n v.rg = [a,];\n v.pl();\n }\n };\n var f = \"opqr\".split(\"\");\n {\n var fin7keys = ((window.top.JSBNG_Replay.forInKeys)((f))), fin7i = (0);\n var i;\n for (; (fin7i < fin7keys.length); (fin7i++)) {\n ((i) = (fin7keys[fin7i]));\n {\n var v = Vellum;\n v[f[i]] = v.cf(f[i]);\n };\n };\n };\n ;\n sitbAsin = \"0596517742\";\n SitbReader = {\n LightboxActions: {\n openReader: function(r) {\n Vellum.o(\"0596517742\", r);\n return false;\n },\n openReaderToRandomPage: function(r) {\n Vellum.r(\"0596517742\", r);\n return false;\n },\n openReaderToSearchResults: function(q, r) {\n Vellum.q(\"0596517742\", q, r);\n return false;\n },\n openReaderToPage: function(p, t, r) {\n Vellum.p(\"0596517742\", p, t, r);\n return false;\n }\n }\n };\n }\n;\n;\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n Vellum.c(\"0596517742\");\n });\n});");
944 f881945950_0.returns.push(o7);
948 f881945950_0.returns.push(o2);
950 f881945950_413 = function() { return f881945950_413.returns[f881945950_413.inst++]; };
951 f881945950_413.returns = [];
952 f881945950_413.inst = 0;
954 o2.getHours = f881945950_413;
956 f881945950_413.returns.push(13);
958 f881945950_414 = function() { return f881945950_414.returns[f881945950_414.inst++]; };
959 f881945950_414.returns = [];
960 f881945950_414.inst = 0;
962 o2.getMinutes = f881945950_414;
964 f881945950_414.returns.push(59);
966 f881945950_415 = function() { return f881945950_415.returns[f881945950_415.inst++]; };
967 f881945950_415.returns = [];
968 f881945950_415.inst = 0;
970 o2.getSeconds = f881945950_415;
972 f881945950_415.returns.push(38);
976 f881945950_0.returns.push(o4);
978 o4.getHours = f881945950_413;
980 f881945950_413.returns.push(13);
982 o4.getMinutes = f881945950_414;
984 f881945950_414.returns.push(59);
986 o4.getSeconds = f881945950_415;
988 f881945950_415.returns.push(38);
990 f881945950_406.returns.push(null);
992 f881945950_406.returns.push(null);
994 f881945950_16.returns.push(2);
996 geval("if (((typeof amznJQ != \"undefined\"))) {\n amznJQ.addLogical(\"twister-media-matrix\", [\"http://z-ecx.images-amazon.com/images/G/01/nav2/gamma/tmmJS/tmmJS-combined-core-4624._V1_.js\",]);\n window._tmm_1 = +new JSBNG__Date();\n}\n;\n;");
998 geval("ftRegisterCountdownElementID(\"ftCountdown\");\nftRegisterEntireMessageElementID(\"ftMessage\");");
1000 geval("function e75b493e6089a201530187bf51690fe2bbd897fb3(JSBNG__event) {\n return amz_js_PopWin(\"/gp/help/customer/display.html/ref=ftinfo_dp_?ie=UTF8&nodeId=3510241&pop-up=1\", \"AmazonHelp\", \"width=550,height=600,resizable=1,scrollbars=1,toolbar=1,status=1\");\n};\n;");
1004 f881945950_406.returns.push(o5);
1011 geval("var timerDiv = JSBNG__document.getElementById(\"ftMessageTimer\");\nif (((timerDiv && timerDiv.style))) {\n timerDiv.style.display = \"inline\";\n}\n;\n;");
1013 geval("try {\n if (((typeof measureATFDiff == \"function\"))) {\n measureATFDiff(0, new JSBNG__Date().getTime());\n }\n;\n;\n;\n if (((typeof setCSMReq == \"function\"))) {\n setCSMReq(\"af\");\n }\n else if (((typeof uet == \"function\"))) {\n uet(\"af\");\n }\n \n;\n;\n} catch (JSBNG_ex) {\n\n};");
1015 geval("function ee976dbac42452e3152d3a48f703b0a8e017fa4d8(JSBNG__event) {\n javascript:\n Vellum.h();\n};\n;");
1017 geval("function ed771f07937fda9c8dd04b0376cf96f16a586029a(JSBNG__event) {\n javascript:\n Vellum.h();\n};\n;");
1019 geval("amznJQ.available(\"jQuery\", function() {\n window.sitbWeblab = \"\";\n if (((typeof (Vellum) == \"undefined\"))) {\n Vellum = {\n js: \"http://z-ecx.images-amazon.com/images/G/01/digital/sitb/reader/v4/201305301526/en_US/sitb-library-js._V383092699_.js\",\n sj: \"/gp/search-inside/js?locale=en_US&version=201305301526\",\n css: \"http://z-ecx.images-amazon.com/images/G/01/digital/sitb/reader/v4/201305301526/en_US/sitb-library-css._V383092698_.css\",\n pl: function() {\n Vellum.lj(Vellum.js, Vellum.sj, Vellum.css);\n },\n lj: function(u, u2, uc) {\n if (window.vellumLjDone) {\n return;\n }\n ;\n ;\n window.vellumLjDone = true;\n var d = JSBNG__document;\n var s = d.createElement(\"link\");\n s.type = \"text/css\";\n s.rel = \"stylesheet\";\n s.href = uc;\n d.getElementsByTagName(\"head\")[0].appendChild(s);\n s = d.createElement(\"script\");\n s.type = \"text/javascript\";\n s.src = u2;\n d.getElementsByTagName(\"head\")[0].appendChild(s);\n },\n lj2: function(u) {\n var d = JSBNG__document;\n var s = d.createElement(\"script\");\n s.type = \"text/javascript\";\n s.src = u;\n d.getElementsByTagName(\"head\")[0].appendChild(s);\n },\n go: function() {\n sitbLodStart = new JSBNG__Date().getTime();\n jQuery(\"body\").css(\"overflow\", \"hidden\");\n var jqw = jQuery(window);\n var h = jqw.height();\n var w = jqw.width();\n var st = jqw.scrollTop();\n jQuery(\"#vellumShade\").css({\n JSBNG__top: st,\n height: h,\n width: w\n }).show();\n var vli = jQuery(\"#vellumLdgIco\");\n var nl = ((((w / 2)) - ((vli.width() / 2))));\n var nt = ((((st + ((h / 2)))) - ((vli.height() / 2))));\n vli.css({\n left: nl,\n JSBNG__top: nt\n }).show();\n JSBNG__setTimeout(\"Vellum.x()\", 20000);\n Vellum.pl();\n },\n x: function() {\n jQuery(\"#vellumMsgTxt\").html(\"An error occurred while trying to show this book.\");\n jQuery(\"#vellumMsgHdr\").html(\"Server Timeout\");\n jQuery(\"#vellumMsg\").show();\n var reftagImage = new JSBNG__Image();\n reftagImage.src = \"/gp/search-inside/reftag/ref=rdr_bar_jsto\";\n },\n h: function() {\n jQuery(\"#vellumMsg\").hide();\n jQuery(\"#vellumShade\").hide();\n jQuery(\"#vellumLdgIco\").hide();\n jQuery(\"body\").css(\"overflow\", \"auto\");\n },\n cf: function(a) {\n return function() {\n v.mt = a;\n v.rg = Array.prototype.slice.call(arguments);\n v.go();\n };\n },\n c: function(a) {\n var v = Vellum;\n v.mt = \"c\";\n v.rg = [a,];\n v.pl();\n }\n };\n var f = \"opqr\".split(\"\");\n {\n var fin8keys = ((window.top.JSBNG_Replay.forInKeys)((f))), fin8i = (0);\n var i;\n for (; (fin8i < fin8keys.length); (fin8i++)) {\n ((i) = (fin8keys[fin8i]));\n {\n var v = Vellum;\n v[f[i]] = v.cf(f[i]);\n };\n };\n };\n ;\n sitbAsin = \"0596517742\";\n SitbReader = {\n LightboxActions: {\n openReader: function(r) {\n Vellum.o(\"0596517742\", r);\n return false;\n },\n openReaderToRandomPage: function(r) {\n Vellum.r(\"0596517742\", r);\n return false;\n },\n openReaderToSearchResults: function(q, r) {\n Vellum.q(\"0596517742\", q, r);\n return false;\n },\n openReaderToPage: function(p, t, r) {\n Vellum.p(\"0596517742\", p, t, r);\n return false;\n }\n }\n };\n }\n;\n;\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n Vellum.c(\"0596517742\");\n });\n});");
1023 f881945950_0.returns.push(o7);
1029 f881945950_0.returns.push(o2);
1031 f881945950_413 = function() { return f881945950_413.returns[f881945950_413.inst++]; };
1032 f881945950_413.returns = [];
1033 f881945950_413.inst = 0;
1035 o2.getHours = f881945950_413;
1037 f881945950_413.returns.push(13);
1039 f881945950_414 = function() { return f881945950_414.returns[f881945950_414.inst++]; };
1040 f881945950_414.returns = [];
1041 f881945950_414.inst = 0;
1043 o2.getMinutes = f881945950_414;
1045 f881945950_414.returns.push(59);
1047 f881945950_415 = function() { return f881945950_415.returns[f881945950_415.inst++]; };
1048 f881945950_415.returns = [];
1049 f881945950_415.inst = 0;
1051 o2.getSeconds = f881945950_415;
1055 f881945950_415.returns.push(38);
1059 f881945950_0.returns.push(o4);
1061 o4.getHours = f881945950_413;
1063 f881945950_413.returns.push(13);
1065 o4.getMinutes = f881945950_414;
1067 f881945950_414.returns.push(59);
1069 o4.getSeconds = f881945950_415;
1073 f881945950_415.returns.push(38);
1075 f881945950_406.returns.push(null);
1077 f881945950_406.returns.push(null);
1079 f881945950_16.returns.push(2);
1081 geval("if (((typeof amznJQ != \"undefined\"))) {\n amznJQ.addLogical(\"twister-media-matrix\", [\"http://z-ecx.images-amazon.com/images/G/01/nav2/gamma/tmmJS/tmmJS-combined-core-4624._V1_.js\",]);\n window._tmm_1 = +new JSBNG__Date();\n}\n;\n;");
1083 geval("ftRegisterCountdownElementID(\"ftCountdown\");\nftRegisterEntireMessageElementID(\"ftMessage\");");
1085 geval("function e75b493e6089a201530187bf51690fe2bbd897fb3(JSBNG__event) {\n return amz_js_PopWin(\"/gp/help/customer/display.html/ref=ftinfo_dp_?ie=UTF8&nodeId=3510241&pop-up=1\", \"AmazonHelp\", \"width=550,height=600,resizable=1,scrollbars=1,toolbar=1,status=1\");\n};\n;");
1089 f881945950_406.returns.push(o5);
1100 geval("var timerDiv = JSBNG__document.getElementById(\"ftMessageTimer\");\nif (((timerDiv && timerDiv.style))) {\n timerDiv.style.display = \"inline\";\n}\n;\n;");
1102 geval("if (((typeof measureATFDiff == \"function\"))) {\n measureATFDiff(0, new JSBNG__Date().getTime());\n}\n;\n;\n;\nif (((typeof setCSMReq == \"function\"))) {\n setCSMReq(\"af\");\n}\n else if (((typeof uet == \"function\"))) {\n uet(\"af\");\n}\n\n;\n;");
1104 geval("function ee976dbac42452e3152d3a48f703b0a8e017fa4d8(JSBNG__event) {\n javascript:\n Vellum.h();\n};\n;");
1106 geval("function ed771f07937fda9c8dd04b0376cf96f16a586029a(JSBNG__event) {\n javascript:\n Vellum.h();\n};\n;");
1108 geval("amznJQ.available(\"jQuery\", function() {\n window.sitbWeblab = \"\";\n if (((typeof (Vellum) == \"undefined\"))) {\n Vellum = {\n js: \"http://z-ecx.images-amazon.com/images/G/01/digital/sitb/reader/v4/201305301526/en_US/sitb-library-js._V383092699_.js\",\n sj: \"/gp/search-inside/js?locale=en_US&version=201305301526\",\n css: \"http://z-ecx.images-amazon.com/images/G/01/digital/sitb/reader/v4/201305301526/en_US/sitb-library-css._V383092698_.css\",\n pl: function() {\n Vellum.lj(Vellum.js, Vellum.sj, Vellum.css);\n },\n lj: function(u, u2, uc) {\n if (window.vellumLjDone) {\n return;\n }\n ;\n ;\n window.vellumLjDone = true;\n var d = JSBNG__document;\n var s = d.createElement(\"link\");\n s.type = \"text/css\";\n s.rel = \"stylesheet\";\n s.href = uc;\n d.getElementsByTagName(\"head\")[0].appendChild(s);\n s = d.createElement(\"script\");\n s.type = \"text/javascript\";\n s.src = u2;\n d.getElementsByTagName(\"head\")[0].appendChild(s);\n },\n lj2: function(u) {\n var d = JSBNG__document;\n var s = d.createElement(\"script\");\n s.type = \"text/javascript\";\n s.src = u;\n d.getElementsByTagName(\"head\")[0].appendChild(s);\n },\n go: function() {\n sitbLodStart = new JSBNG__Date().getTime();\n jQuery(\"body\").css(\"overflow\", \"hidden\");\n var jqw = jQuery(window);\n var h = jqw.height();\n var w = jqw.width();\n var st = jqw.scrollTop();\n jQuery(\"#vellumShade\").css({\n JSBNG__top: st,\n height: h,\n width: w\n }).show();\n var vli = jQuery(\"#vellumLdgIco\");\n var nl = ((((w / 2)) - ((vli.width() / 2))));\n var nt = ((((st + ((h / 2)))) - ((vli.height() / 2))));\n vli.css({\n left: nl,\n JSBNG__top: nt\n }).show();\n JSBNG__setTimeout(\"Vellum.x()\", 20000);\n Vellum.pl();\n },\n x: function() {\n jQuery(\"#vellumMsgTxt\").html(\"An error occurred while trying to show this book.\");\n jQuery(\"#vellumMsgHdr\").html(\"Server Timeout\");\n jQuery(\"#vellumMsg\").show();\n var reftagImage = new JSBNG__Image();\n reftagImage.src = \"/gp/search-inside/reftag/ref=rdr_bar_jsto\";\n },\n h: function() {\n jQuery(\"#vellumMsg\").hide();\n jQuery(\"#vellumShade\").hide();\n jQuery(\"#vellumLdgIco\").hide();\n jQuery(\"body\").css(\"overflow\", \"auto\");\n },\n cf: function(a) {\n return function() {\n v.mt = a;\n v.rg = Array.prototype.slice.call(arguments);\n v.go();\n };\n },\n c: function(a) {\n var v = Vellum;\n v.mt = \"c\";\n v.rg = [a,];\n v.pl();\n }\n };\n var f = \"opqr\".split(\"\");\n {\n var fin9keys = ((window.top.JSBNG_Replay.forInKeys)((f))), fin9i = (0);\n var i;\n for (; (fin9i < fin9keys.length); (fin9i++)) {\n ((i) = (fin9keys[fin9i]));\n {\n var v = Vellum;\n v[f[i]] = v.cf(f[i]);\n };\n };\n };\n ;\n sitbAsin = \"0596517742\";\n SitbReader = {\n LightboxActions: {\n openReader: function(r) {\n Vellum.o(\"0596517742\", r);\n return false;\n },\n openReaderToRandomPage: function(r) {\n Vellum.r(\"0596517742\", r);\n return false;\n },\n openReaderToSearchResults: function(q, r) {\n Vellum.q(\"0596517742\", q, r);\n return false;\n },\n openReaderToPage: function(p, t, r) {\n Vellum.p(\"0596517742\", p, t, r);\n return false;\n }\n }\n };\n }\n;\n;\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n Vellum.c(\"0596517742\");\n });\n});");
1112 f881945950_0.returns.push(o7);
1124 geval("if (((typeof amznJQ != \"undefined\"))) {\n amznJQ.addLogical(\"twister-media-matrix\", [\"http://z-ecx.images-amazon.com/images/G/01/nav2/gamma/tmmJS/tmmJS-combined-core-4624._V1_.js\",]);\n window._tmm_1 = +new JSBNG__Date();\n}\n;\n;");
1128 f881945950_0.returns.push(o2);
1132 geval("window._tmm_3 = +new JSBNG__Date();\nif (((typeof amznJQ != \"undefined\"))) {\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n amznJQ.available(\"twister-media-matrix\", function() {\n window._tmm_2 = +new JSBNG__Date();\n TwisterMediaMatrix.initialize({\n kindle_meta_binding: {\n n: \"1\",\n start: \"1\"\n },\n paperback_meta_binding: {\n n: \"4\",\n start: \"1\"\n },\n other_meta_binding: {\n n: \"1\",\n start: \"1\"\n }\n }, \"3\", \"books\", \"0596517742\", \"B00279BLLE\", \"book_display_on_website\", \"Loading...\", \"Error. Please try again.\", \"http://g-ecx.images-amazon.com/images/G/01/x-locale/twister/tiny-snake._V192199047_.gif\", false, \"1-1\", \"1373479157\");\n });\n });\n}\n;\n;\nvar disableWinnerPopup;");
1134 geval("function e51d7970767549cda27023a52a400a94280d471f5(JSBNG__event) {\n amz_expandPostBodyDescription(\"PS\", [\"psGradient\",\"psPlaceHolder\",]);\n return false;\n};\n;");
1136 geval("function e5c5178e859fbed387086d382315ddf2817c1731d(JSBNG__event) {\n amz_collapsePostBodyDescription(\"PS\", [\"psGradient\",\"psPlaceHolder\",]);\n return false;\n};\n;");
1138 geval("function amz_expandPostBodyDescription(id, objects) {\n amznJQ.onReady(\"jQuery\", function() {\n for (var i = 0; ((i < objects.length)); i++) {\n jQuery(((\"#\" + objects[i]))).hide();\n };\n ;\n jQuery(((\"#outer_postBody\" + id))).animate({\n height: jQuery(((\"#postBody\" + id))).height()\n }, 500);\n jQuery(((\"#expand\" + id))).hide();\n jQuery(((\"#collapse\" + id))).show();\n jQuery.ajax({\n url: \"/gp/product/utility/ajax/impression-tracking.html\",\n data: {\n a: \"0596517742\",\n ref: \"dp_pd_showmore_b\"\n }\n });\n });\n};\n;\nfunction amz_collapsePostBodyDescription(id, objects) {\n amznJQ.onReady(\"jQuery\", function() {\n for (var i = 0; ((i < objects.length)); i++) {\n jQuery(((\"#\" + objects[i]))).show();\n };\n ;\n jQuery(((\"#outer_postBody\" + id))).animate({\n height: 200\n }, 500);\n jQuery(((\"#collapse\" + id))).hide();\n jQuery(((\"#expand\" + id))).show();\n jQuery.ajax({\n url: \"/gp/product/utility/ajax/impression-tracking.html\",\n data: {\n a: \"0596517742\",\n ref: \"dp_pd_showless_b\"\n }\n });\n });\n};\n;\namznJQ.onReady(\"jQuery\", function() {\n var psTotalHeight = jQuery(\"#postBodyPS\").height();\n if (((psTotalHeight > 200))) {\n jQuery(\"#outer_postBodyPS\").css(\"display\", \"block\").css(\"height\", 200);\n jQuery(\"#psPlaceHolder\").css(\"display\", \"block\");\n jQuery(\"#expandPS\").css(\"display\", \"block\");\n jQuery(\"#psGradient\").css(\"display\", \"block\");\n }\n else {\n jQuery(\"#outer_postBodyPS\").css(\"height\", \"auto\");\n jQuery(\"#psGradient\").hide();\n jQuery(\"#psPlaceHolder\").hide();\n }\n;\n;\n});");
1140 geval("function ef2d35c5b582d6058ac633b57d69c8b9ac542ebec(JSBNG__event) {\n return false;\n};\n;");
1142 geval("function ecf51729fd790a7ea3ccc34e61cae1ad6542b3ab2(JSBNG__event) {\n return false;\n};\n;");
1144 geval("function edd8e3d0178c67cf94e61d6831fdd582864ee9797(JSBNG__event) {\n return false;\n};\n;");
1146 f881945950_423 = function() { return f881945950_423.returns[f881945950_423.inst++]; };
1147 f881945950_423.returns = [];
1148 f881945950_423.inst = 0;
1150 o0.createElement = f881945950_423;
1154 f881945950_423.returns.push(o2);
1167 f881945950_427 = function() { return f881945950_427.returns[f881945950_427.inst++]; };
1168 f881945950_427.returns = [];
1169 f881945950_427.inst = 0;
1171 o4.insertBefore = f881945950_427;
1183 f881945950_427.returns.push(o2);
1187 geval("window.AmazonPopoverImages = {\n snake: \"http://g-ecx.images-amazon.com/images/G/01/javascripts/lib/popover/images/snake._V192571611_.gif\",\n btnClose: \"http://g-ecx.images-amazon.com/images/G/01/javascripts/lib/popover/images/btn_close._V192188154_.gif\",\n closeTan: \"http://g-ecx.images-amazon.com/images/G/01/nav2/images/close-tan-sm._V192185930_.gif\",\n closeTanDown: \"http://g-ecx.images-amazon.com/images/G/01/nav2/images/close-tan-sm-dn._V192185961_.gif\",\n loadingBar: \"http://g-ecx.images-amazon.com/images/G/01/javascripts/lib/popover/images/loading-bar-small._V192188123_.gif\",\n pixel: \"http://g-ecx.images-amazon.com/images/G/01/icons/blank-pixel._V192192429_.gif\"\n};\nvar container = JSBNG__document.createElement(\"DIV\");\ncontainer.id = \"ap_container\";\nif (JSBNG__document.body.childNodes.length) {\n JSBNG__document.body.insertBefore(container, JSBNG__document.body.childNodes[0]);\n}\n else {\n JSBNG__document.body.appendChild(container);\n}\n;\n;");
1195 f881945950_423.returns.push(o4);
1199 o2.insertBefore = f881945950_427;
1209 f881945950_427.returns.push(o4);
1213 geval("(function() {\n var h = ((((JSBNG__document.head || JSBNG__document.getElementsByTagName(\"head\")[0])) || JSBNG__document.documentElement));\n var s = JSBNG__document.createElement(\"script\");\n s.async = \"async\";\n s.src = \"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/site-wide-js-1.2.6-beacon/site-wide-11198044143._V1_.js\";\n h.insertBefore(s, h.firstChild);\n})();");
1215 geval("amznJQ.addLogical(\"popover\", []);\namznJQ.addLogical(\"navbarCSSUS-beacon\", []);\namznJQ.addLogical(\"search-js-autocomplete\", []);\namznJQ.addLogical(\"navbarJS-beacon\", []);\namznJQ.addLogical(\"LBHUCCSS-US\", []);\namznJQ.addLogical(\"CustomerPopover\", [\"http://z-ecx.images-amazon.com/images/G/01/x-locale/communities/profile/customer-popover/script-13-min._V224617671_.js\",]);\namznJQ.addLogical(\"amazonShoveler\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/amazonShoveler/amazonShoveler-1466453065._V1_.js\",]);\namznJQ.addLogical(\"dpCSS\", []);\namznJQ.addLogical(\"discussionsCSS\", []);\namznJQ.addLogical(\"bxgyCSS\", []);\namznJQ.addLogical(\"simCSS\", []);\namznJQ.addLogical(\"condProbCSS\", []);\namznJQ.addLogical(\"ciuAnnotations\", []);\namznJQ.addLogical(\"cmuAnnotations\", [\"http://z-ecx.images-amazon.com/images/G/01/nav2/gamma/cmuAnnotations/cmuAnnotations-cmuAnnotations-55262._V1_.js\",]);\namznJQ.addLogical(\"dpProductImage\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/dpProductImage/dpProductImage-2900646310._V1_.js\",]);\namznJQ.addLogical(\"search-csl\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/search-csl/search-csl-2400229912._V1_.js\",]);\namznJQ.addLogical(\"AmazonHistory\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/AmazonHistory/AmazonHistory-61973207._V1_.js\",]);\namznJQ.addLogical(\"AmazonCountdown\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/AmazonCountdownMerged/AmazonCountdownMerged-27059._V1_.js\",]);\namznJQ.addLogical(\"bylinePopover\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/bylinePopover/bylinePopover-1310866238._V1_.js\",]);\namznJQ.addLogical(\"simsJS\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/simsJSMerged/simsMerged-8063003390._V1_.js\",]);\namznJQ.addLogical(\"callOnVisible\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/callOnVisible/callOnVisible-3144292562._V1_.js\",]);\namznJQ.addLogical(\"p13nlogger\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/p13nlogger/p13nlogger-1808340331._V1_.js\",]);\namznJQ.addLogical(\"lazyLoadLib\", [\"http://z-ecx.images-amazon.com/images/G/01/nav2/gamma/lazyLoadLib/lazyLoadLib-lazyLoadLib-60357._V1_.js\",]);\namznJQ.addLogical(\"immersiveView\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/immersiveView/immersiveView-990982538._V1_.js\",]);\namznJQ.addLogical(\"imageBlock\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/imageBlock/imageBlock-1812119340._V1_.js\",]);\namznJQ.addLogical(\"quantityDropDownJS\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/quantityDropDownJSMerged/quantityDropDownJSMerged-63734._V1_.js\",]);\namznJQ.addLogical(\"bbopCheckBoxJS\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/bbopCheckBoxJSMerged/bbopCheckBoxJSMerged-33025._V1_.js\",]);\namznJQ.addLogical(\"share-with-friends-js-new\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/share-with-friends-js-new/share-with-friends-js-new-4128511603._V1_.js\",]);");
1217 geval("function acrPopoverHover(e, h) {\n if (h) {\n window.acrAsinHover = e;\n }\n else {\n if (((window.acrAsinHover == e))) {\n window.acrAsinHover = null;\n }\n ;\n }\n;\n;\n};\n;\namznJQ.onReady(\"popover\", function() {\n (function($) {\n if ($.fn.acrPopover) {\n return;\n }\n ;\n ;\n var popoverConfig = {\n showOnHover: true,\n showCloseButton: true,\n width: null,\n JSBNG__location: \"bottom\",\n locationAlign: \"left\",\n locationOffset: [-20,0,],\n paddingLeft: 15,\n paddingBottom: 5,\n paddingRight: 15,\n group: \"reviewsPopover\",\n clone: false,\n hoverHideDelay: 300\n };\n $.fn.acrPopover = function() {\n return this.each(function() {\n var $this = $(this);\n if (!$this.data(\"init\")) {\n $this.data(\"init\", 1);\n var getargs = $this.attr(\"getargs\");\n var ajaxURL = ((((((((((((((\"/gp/customer-reviews/common/du/displayHistoPopAjax.html?\" + \"&ASIN=\")) + $this.attr(\"JSBNG__name\"))) + \"&link=1\")) + \"&seeall=1\")) + \"&ref=\")) + $this.attr(\"ref\"))) + ((((typeof getargs != \"undefined\")) ? ((\"&getargs=\" + getargs)) : \"\"))));\n var myConfig = $.extend(true, {\n destination: ajaxURL\n }, popoverConfig);\n $this.amazonPopoverTrigger(myConfig);\n var w = window.acrAsinHover;\n if (((w && (($(w).parents(\".asinReviewsSummary\").get(0) == this))))) {\n $this.trigger(\"mouseover.amzPopover\");\n window.acrAsinHover = null;\n }\n ;\n ;\n }\n ;\n ;\n });\n };\n window.reviewHistPopoverConfig = popoverConfig;\n var jqInit = window.jQueryInitHistoPopovers = function(asin) {\n $(((((\".acr-popover[name=\" + asin)) + \"]\"))).acrPopover();\n };\n window.doInit_average_customer_reviews = jqInit;\n window.onAjaxUpdate_average_customer_reviews = jqInit;\n window.onCacheUpdate_average_customer_reviews = jqInit;\n window.onCacheUpdateReselect_average_customer_reviews = jqInit;\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n JSBNG__setTimeout(function() {\n amznJQ.declareAvailable(\"acrPopover\");\n }, 10);\n });\n })(jQuery);\n});\namznJQ.onReady(\"acrPopover\", function() {\n jQuery(\".acr-popover,#searchTemplate .asinReviewsSummary\").each(function() {\n jQuery(this).acrPopover();\n });\n});");
1219 geval("function e4a4bcedba65b380893f77d4dd29526130ee3b4d1(JSBNG__event) {\n return acrPopoverHover(this, 1);\n};\n;");
1221 geval("function edeb92174417d8dc1c0e6f67c4ca60200f797789e(JSBNG__event) {\n return acrPopoverHover(this, 0);\n};\n;");
1223 geval("function ed89eaa1f3ad51711a79f8d9d280a54d2800bbe33(JSBNG__event) {\n return acrPopoverHover(this, 1);\n};\n;");
1225 geval("function e6347802676af907c8a2f7c8d51ebf8ecb4cc78ea(JSBNG__event) {\n return acrPopoverHover(this, 0);\n};\n;");
1227 geval("var DEFAULT_RENDERING_TIME = 123;\namznJQ.onReady(\"popover\", function() {\n jQuery(\"#ns_0M4YTA6K9C1VFV7TYXNC_775_1_community_feedback_trigger_product-detail\").amazonPopoverTrigger({\n title: \"What product features are missing?\",\n destination: \"/gp/lwcf/light-weight-form.html?asin=0596517742&root=283155\",\n showOnHover: false,\n draggable: true,\n width: 650,\n paddingBottom: 0,\n onHide: function() {\n logCloseWidgetEvent(DEFAULT_RENDERING_TIME);\n cleanupSearchResults();\n }\n });\n});");
1229 geval("amznJQ.onReady(\"popover\", function() {\n jQuery(\"#ns_0M4YTA6K9C1VFV7TYXNC_774_1_hmd_pricing_feedback_trigger_product-detail\").amazonPopoverTrigger({\n title: \"Tell Us About a Lower Price\",\n destination: \"/gp/pdp/pf/pricingFeedbackForm.html/ref=sr_1_1_pfdpb?ie=UTF8&ASIN=0596517742&PREFIX=ns_0M4YTA6K9C1VFV7TYXNC_774_2_&from=product-detail&keywords=javascript%20the%20good%20parts&originalURI=%2Fgp%2Fproduct%2F0596517742&qid=1373479157&s=books&sr=1-1&storeID=books\",\n showOnHover: false,\n draggable: true\n });\n});");
1231 geval("amznJQ.onReady(\"lazyLoadLib\", function() {\n jQuery(\"#books-entity-teaser\").lazyLoadContent({\n url: \"/gp/product/features/entity-teaser/books-entity-teaser-ajax.html?ASIN=0596517742\",\n metrics: true,\n JSBNG__name: \"books-entity-teaser\",\n cache: true\n });\n});");
1233 geval("function e1e1dc54f9e2961eab4a6b364613e62cd51b69355(JSBNG__event) {\n return amz_js_PopWin(this.href, \"AmazonHelp\", \"width=340,height=340,resizable=1,scrollbars=1,toolbar=1,status=1\");\n};\n;");
1235 geval("var paCusRevAllURL = \"http://product-ads-portal.amazon.com/gp/synd/?asin=0596517742&pAsin=&gl=14&sq=javascript%20the%20good%20parts&sa=&se=Amazon&noo=&pt=Detail&spt=Glance&sn=customer-reviews-top&pRID=0M4YTA6K9C1VFV7TYXNC&ts=1373479174&h=0BA9078DD844F27758A20C195D68A922B6040AC2\";");
1239 f881945950_0.returns.push(o2);
1241 o2.getTime = f881945950_397;
1243 f881945950_397.returns.push(1373479178512);
1245 geval("try {\n (function(w, d, e, o) {\n var i = \"DAcrt\";\n if (w.uDA = ((((w.ues && w.uet)) && w.uex))) {\n ues(\"wb\", i, 1);\n uet(\"bb\", i, {\n wb: 1\n });\n }\n ;\n ;\n var methodToBind = \"amznJQ.onCompletion\";\n if (((((!w.amznJQ && ((methodToBind == \"amznJQ.onCompletion\")))) && ((typeof (P) != \"undefined\"))))) {\n P.when(\"amznJQ.criticalFeature\").execute(function() {\n o = w.DA;\n if (!o) {\n o = w.DA = [];\n e = d.createElement(\"script\");\n e.src = \"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/DA-us/DA-us-1527499158._V381226140_.js\";\n d.getElementsByTagName(\"head\")[0].appendChild(e);\n }\n ;\n ;\n o.push({\n c: 855,\n a: \"site=amazon.us;pt=Detail;slot=customer-reviews-top;pid=0596517742;prid=0M4YTA6K9C1VFV7TYXNC;arid=d9da736c99a54c90a1096fec27fb2394;ef=0.00\",\n f: 1,\n g: \"\",\n n: 1,\n r: 1,\n v: 1,\n y: \"na\",\n u: \"amzn.us.dp.books/computer_internet;sz=300x250;oe=ISO-8859-1;u=d9da736c99a54c90a1096fec27fb2394;s=i0;s=i1;s=i3;s=i4;s=i5;s=i6;s=i7;s=i8;s=i9;s=m1;s=m4;s=u4;s=u13;s=u10;s=u2;z=153;z=180;z=173;z=141;s=3072;s=32;s=3172a;s=3172;s=3;s=12;s=67;s=142;s=150;s=622;s=762;s=833;s=921;s=1009;s=1046;s=1324;s=3101;s=3102;s=3103;s=3174;s=3175;s=3176;dc_ref=http%3A%2F%2Fwww.amazon.com;tile=1;ord=0M4YTA6K9C1VFV7TYXNC\",\n q: \"N4215\"\n });\n });\n }\n else {\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n o = w.DA;\n if (!o) {\n o = w.DA = [];\n e = d.createElement(\"script\");\n e.src = \"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/DA-us/DA-us-1527499158._V381226140_.js\";\n d.getElementsByTagName(\"head\")[0].appendChild(e);\n }\n ;\n ;\n o.push({\n c: 855,\n a: \"site=amazon.us;pt=Detail;slot=customer-reviews-top;pid=0596517742;prid=0M4YTA6K9C1VFV7TYXNC;arid=d9da736c99a54c90a1096fec27fb2394;ef=0.00\",\n f: 1,\n g: \"\",\n n: 1,\n r: 1,\n v: 1,\n y: \"na\",\n u: \"amzn.us.dp.books/computer_internet;sz=300x250;oe=ISO-8859-1;u=d9da736c99a54c90a1096fec27fb2394;s=i0;s=i1;s=i3;s=i4;s=i5;s=i6;s=i7;s=i8;s=i9;s=m1;s=m4;s=u4;s=u13;s=u10;s=u2;z=153;z=180;z=173;z=141;s=3072;s=32;s=3172a;s=3172;s=3;s=12;s=67;s=142;s=150;s=622;s=762;s=833;s=921;s=1009;s=1046;s=1324;s=3101;s=3102;s=3103;s=3174;s=3175;s=3176;dc_ref=http%3A%2F%2Fwww.amazon.com;tile=1;ord=0M4YTA6K9C1VFV7TYXNC\",\n q: \"N4215\"\n });\n });\n }\n ;\n ;\n })(window, JSBNG__document);\n} catch (JSBNG_ex) {\n\n};");
1249 f881945950_0.returns.push(o4);
1251 geval("if (((typeof setCSMReq == \"function\"))) {\n setCSMReq(\"cf\");\n}\n else {\n if (((typeof uet == \"function\"))) {\n uet(\"cf\");\n }\n;\n;\n amznJQ.completedStage(\"amznJQ.criticalFeature\");\n}\n;\n;");
1253 geval("function acrPopoverHover(e, h) {\n if (h) {\n window.acrAsinHover = e;\n }\n else {\n if (((window.acrAsinHover == e))) {\n window.acrAsinHover = null;\n }\n ;\n }\n;\n;\n};\n;\namznJQ.onReady(\"popover\", function() {\n (function($) {\n if ($.fn.acrPopover) {\n return;\n }\n ;\n ;\n var popoverConfig = {\n showOnHover: true,\n showCloseButton: true,\n width: null,\n JSBNG__location: \"bottom\",\n locationAlign: \"left\",\n locationOffset: [-20,0,],\n paddingLeft: 15,\n paddingBottom: 5,\n paddingRight: 15,\n group: \"reviewsPopover\",\n clone: false,\n hoverHideDelay: 300\n };\n $.fn.acrPopover = function() {\n return this.each(function() {\n var $this = $(this);\n if (!$this.data(\"init\")) {\n $this.data(\"init\", 1);\n var getargs = $this.attr(\"getargs\");\n var ajaxURL = ((((((((((((((\"/gp/customer-reviews/common/du/displayHistoPopAjax.html?\" + \"&ASIN=\")) + $this.attr(\"JSBNG__name\"))) + \"&link=1\")) + \"&seeall=1\")) + \"&ref=\")) + $this.attr(\"ref\"))) + ((((typeof getargs != \"undefined\")) ? ((\"&getargs=\" + getargs)) : \"\"))));\n var myConfig = $.extend(true, {\n destination: ajaxURL\n }, popoverConfig);\n $this.amazonPopoverTrigger(myConfig);\n var w = window.acrAsinHover;\n if (((w && (($(w).parents(\".asinReviewsSummary\").get(0) == this))))) {\n $this.trigger(\"mouseover.amzPopover\");\n window.acrAsinHover = null;\n }\n ;\n ;\n }\n ;\n ;\n });\n };\n window.reviewHistPopoverConfig = popoverConfig;\n var jqInit = window.jQueryInitHistoPopovers = function(asin) {\n $(((((\".acr-popover[name=\" + asin)) + \"]\"))).acrPopover();\n };\n window.doInit_average_customer_reviews = jqInit;\n window.onAjaxUpdate_average_customer_reviews = jqInit;\n window.onCacheUpdate_average_customer_reviews = jqInit;\n window.onCacheUpdateReselect_average_customer_reviews = jqInit;\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n JSBNG__setTimeout(function() {\n amznJQ.declareAvailable(\"acrPopover\");\n }, 10);\n });\n })(jQuery);\n});\namznJQ.onReady(\"acrPopover\", function() {\n jQuery(\".acr-popover,#searchTemplate .asinReviewsSummary\").each(function() {\n jQuery(this).acrPopover();\n });\n});");
1255 geval("function e4a4bcedba65b380893f77d4dd29526130ee3b4d1(JSBNG__event) {\n return acrPopoverHover(this, 1);\n};\n;");
1257 geval("function edeb92174417d8dc1c0e6f67c4ca60200f797789e(JSBNG__event) {\n return acrPopoverHover(this, 0);\n};\n;");
1259 geval("function ed89eaa1f3ad51711a79f8d9d280a54d2800bbe33(JSBNG__event) {\n return acrPopoverHover(this, 1);\n};\n;");
1261 geval("function e6347802676af907c8a2f7c8d51ebf8ecb4cc78ea(JSBNG__event) {\n return acrPopoverHover(this, 0);\n};\n;");
1263 geval("var DEFAULT_RENDERING_TIME = 123;\namznJQ.onReady(\"popover\", function() {\n jQuery(\"#ns_0M4YTA6K9C1VFV7TYXNC_775_1_community_feedback_trigger_product-detail\").amazonPopoverTrigger({\n title: \"What product features are missing?\",\n destination: \"/gp/lwcf/light-weight-form.html?asin=0596517742&root=283155\",\n showOnHover: false,\n draggable: true,\n width: 650,\n paddingBottom: 0,\n onHide: function() {\n logCloseWidgetEvent(DEFAULT_RENDERING_TIME);\n cleanupSearchResults();\n }\n });\n});");
1265 geval("amznJQ.onReady(\"popover\", function() {\n jQuery(\"#ns_0M4YTA6K9C1VFV7TYXNC_774_1_hmd_pricing_feedback_trigger_product-detail\").amazonPopoverTrigger({\n title: \"Tell Us About a Lower Price\",\n destination: \"/gp/pdp/pf/pricingFeedbackForm.html/ref=sr_1_1_pfdpb?ie=UTF8&ASIN=0596517742&PREFIX=ns_0M4YTA6K9C1VFV7TYXNC_774_2_&from=product-detail&keywords=javascript%20the%20good%20parts&originalURI=%2Fgp%2Fproduct%2F0596517742&qid=1373479157&s=books&sr=1-1&storeID=books\",\n showOnHover: false,\n draggable: true\n });\n});");
1267 geval("amznJQ.onReady(\"lazyLoadLib\", function() {\n jQuery(\"#books-entity-teaser\").lazyLoadContent({\n url: \"/gp/product/features/entity-teaser/books-entity-teaser-ajax.html?ASIN=0596517742\",\n metrics: true,\n JSBNG__name: \"books-entity-teaser\",\n cache: true\n });\n});");
1269 geval("function e1e1dc54f9e2961eab4a6b364613e62cd51b69355(JSBNG__event) {\n return amz_js_PopWin(this.href, \"AmazonHelp\", \"width=340,height=340,resizable=1,scrollbars=1,toolbar=1,status=1\");\n};\n;");
1271 geval("var paCusRevAllURL = \"http://product-ads-portal.amazon.com/gp/synd/?asin=0596517742&pAsin=&gl=14&sq=javascript%20the%20good%20parts&sa=&se=Amazon&noo=&pt=Detail&spt=Glance&sn=customer-reviews-top&pRID=0M4YTA6K9C1VFV7TYXNC&ts=1373479174&h=0BA9078DD844F27758A20C195D68A922B6040AC2\";");
1275 f881945950_0.returns.push(o2);
1277 o2.getTime = f881945950_397;
1281 f881945950_397.returns.push(1373479178512);
1283 geval("try {\n (function(w, d, e, o) {\n var i = \"DAcrt\";\n if (w.uDA = ((((w.ues && w.uet)) && w.uex))) {\n ues(\"wb\", i, 1);\n uet(\"bb\", i, {\n wb: 1\n });\n }\n ;\n ;\n var methodToBind = \"amznJQ.onCompletion\";\n if (((((!w.amznJQ && ((methodToBind == \"amznJQ.onCompletion\")))) && ((typeof (P) != \"undefined\"))))) {\n P.when(\"amznJQ.criticalFeature\").execute(function() {\n o = w.DA;\n if (!o) {\n o = w.DA = [];\n e = d.createElement(\"script\");\n e.src = \"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/DA-us/DA-us-1527499158._V381226140_.js\";\n d.getElementsByTagName(\"head\")[0].appendChild(e);\n }\n ;\n ;\n o.push({\n c: 855,\n a: \"site=amazon.us;pt=Detail;slot=customer-reviews-top;pid=0596517742;prid=0M4YTA6K9C1VFV7TYXNC;arid=d9da736c99a54c90a1096fec27fb2394;ef=0.00\",\n f: 1,\n g: \"\",\n n: 1,\n r: 1,\n v: 1,\n y: \"na\",\n u: \"amzn.us.dp.books/computer_internet;sz=300x250;oe=ISO-8859-1;u=d9da736c99a54c90a1096fec27fb2394;s=i0;s=i1;s=i3;s=i4;s=i5;s=i6;s=i7;s=i8;s=i9;s=m1;s=m4;s=u4;s=u13;s=u10;s=u2;z=153;z=180;z=173;z=141;s=3072;s=32;s=3172a;s=3172;s=3;s=12;s=67;s=142;s=150;s=622;s=762;s=833;s=921;s=1009;s=1046;s=1324;s=3101;s=3102;s=3103;s=3174;s=3175;s=3176;dc_ref=http%3A%2F%2Fwww.amazon.com;tile=1;ord=0M4YTA6K9C1VFV7TYXNC\",\n q: \"N4215\"\n });\n });\n }\n else {\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n o = w.DA;\n if (!o) {\n o = w.DA = [];\n e = d.createElement(\"script\");\n e.src = \"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/DA-us/DA-us-1527499158._V381226140_.js\";\n d.getElementsByTagName(\"head\")[0].appendChild(e);\n }\n ;\n ;\n o.push({\n c: 855,\n a: \"site=amazon.us;pt=Detail;slot=customer-reviews-top;pid=0596517742;prid=0M4YTA6K9C1VFV7TYXNC;arid=d9da736c99a54c90a1096fec27fb2394;ef=0.00\",\n f: 1,\n g: \"\",\n n: 1,\n r: 1,\n v: 1,\n y: \"na\",\n u: \"amzn.us.dp.books/computer_internet;sz=300x250;oe=ISO-8859-1;u=d9da736c99a54c90a1096fec27fb2394;s=i0;s=i1;s=i3;s=i4;s=i5;s=i6;s=i7;s=i8;s=i9;s=m1;s=m4;s=u4;s=u13;s=u10;s=u2;z=153;z=180;z=173;z=141;s=3072;s=32;s=3172a;s=3172;s=3;s=12;s=67;s=142;s=150;s=622;s=762;s=833;s=921;s=1009;s=1046;s=1324;s=3101;s=3102;s=3103;s=3174;s=3175;s=3176;dc_ref=http%3A%2F%2Fwww.amazon.com;tile=1;ord=0M4YTA6K9C1VFV7TYXNC\",\n q: \"N4215\"\n });\n });\n }\n ;\n ;\n })(window, JSBNG__document);\n} catch (JSNBG_ex) {\n\n};");
1287 f881945950_0.returns.push(o4);
1289 geval("try {\n if (((typeof setCSMReq == \"function\"))) {\n setCSMReq(\"cf\");\n }\n else {\n if (((typeof uet == \"function\"))) {\n uet(\"cf\");\n }\n ;\n ;\n amznJQ.completedStage(\"amznJQ.criticalFeature\");\n }\n;\n;\n} catch (JSBNG_ex) {\n\n};");
1291 o4.getTime = f881945950_397;
1295 f881945950_397.returns.push(1373479178517);
1297 geval("try {\n (function() {\n var initJQuery = function() {\n var jQuery126PatchDelay = 13;\n var _jQuery = window.jQuery, _$ = window.$;\n var jQuery = window.jQuery = window.$ = function(selector, context) {\n return new jQuery.fn.init(selector, context);\n };\n var quickExpr = /^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/, isSimple = /^.[^:#\\[\\.]*$/, undefined;\n jQuery.fn = jQuery.prototype = {\n init: function(selector, context) {\n selector = ((selector || JSBNG__document));\n if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this;\n }\n ;\n ;\n if (((typeof selector == \"string\"))) {\n var match = quickExpr.exec(selector);\n if (((match && ((match[1] || !context))))) {\n if (match[1]) {\n selector = jQuery.clean([match[1],], context);\n }\n else {\n var elem = JSBNG__document.getElementById(match[3]);\n if (elem) {\n if (((elem.id != match[3]))) {\n return jQuery().JSBNG__find(selector);\n }\n ;\n ;\n return jQuery(elem);\n }\n ;\n ;\n selector = [];\n }\n ;\n ;\n }\n else {\n return jQuery(context).JSBNG__find(selector);\n }\n ;\n ;\n }\n else {\n if (jQuery.isFunction(selector)) {\n return jQuery(JSBNG__document)[((jQuery.fn.ready ? \"ready\" : \"load\"))](selector);\n }\n ;\n ;\n }\n ;\n ;\n return this.setArray(jQuery.makeArray(selector));\n },\n jquery: \"1.2.6\",\n size: function() {\n return this.length;\n },\n length: 0,\n get: function(num) {\n return ((((num == undefined)) ? jQuery.makeArray(this) : this[num]));\n },\n pushStack: function(elems) {\n var ret = jQuery(elems);\n ret.prevObject = this;\n return ret;\n },\n setArray: function(elems) {\n this.length = 0;\n Array.prototype.push.apply(this, elems);\n return this;\n },\n each: function(callback, args) {\n return jQuery.each(this, callback, args);\n },\n index: function(elem) {\n var ret = -1;\n return jQuery.inArray(((((elem && elem.jquery)) ? elem[0] : elem)), this);\n },\n attr: function(JSBNG__name, value, type) {\n var options = JSBNG__name;\n if (((JSBNG__name.constructor == String))) {\n if (((value === undefined))) {\n return ((this[0] && jQuery[((type || \"attr\"))](this[0], JSBNG__name)));\n }\n else {\n options = {\n };\n options[JSBNG__name] = value;\n }\n ;\n ;\n }\n ;\n ;\n return this.each(function(i) {\n {\n var fin10keys = ((window.top.JSBNG_Replay.forInKeys)((options))), fin10i = (0);\n (0);\n for (; (fin10i < fin10keys.length); (fin10i++)) {\n ((name) = (fin10keys[fin10i]));\n {\n jQuery.attr(((type ? this.style : this)), JSBNG__name, jQuery.prop(this, options[JSBNG__name], type, i, JSBNG__name));\n };\n };\n };\n ;\n });\n },\n css: function(key, value) {\n if (((((((key == \"width\")) || ((key == \"height\")))) && ((parseFloat(value) < 0))))) {\n value = undefined;\n }\n ;\n ;\n return this.attr(key, value, \"curCSS\");\n },\n text: function(text) {\n if (((((typeof text != \"object\")) && ((text != null))))) {\n return this.empty().append(((((this[0] && this[0].ownerDocument)) || JSBNG__document)).createTextNode(text));\n }\n ;\n ;\n var ret = \"\";\n jQuery.each(((text || this)), function() {\n jQuery.each(this.childNodes, function() {\n if (((this.nodeType != 8))) {\n ret += ((((this.nodeType != 1)) ? this.nodeValue : jQuery.fn.text([this,])));\n }\n ;\n ;\n });\n });\n return ret;\n },\n wrapAll: function(html) {\n if (this[0]) {\n jQuery(html, this[0].ownerDocument).clone().insertBefore(this[0]).map(function() {\n var elem = this;\n while (elem.firstChild) {\n elem = elem.firstChild;\n };\n ;\n return elem;\n }).append(this);\n }\n ;\n ;\n return this;\n },\n wrapInner: function(html) {\n return this.each(function() {\n jQuery(this).contents().wrapAll(html);\n });\n },\n wrap: function(html) {\n return this.each(function() {\n jQuery(this).wrapAll(html);\n });\n },\n append: function() {\n return this.domManip(arguments, true, false, function(elem) {\n if (((this.nodeType == 1))) {\n this.appendChild(elem);\n }\n ;\n ;\n });\n },\n prepend: function() {\n return this.domManip(arguments, true, true, function(elem) {\n if (((this.nodeType == 1))) {\n this.insertBefore(elem, this.firstChild);\n }\n ;\n ;\n });\n },\n before: function() {\n return this.domManip(arguments, false, false, function(elem) {\n this.parentNode.insertBefore(elem, this);\n });\n },\n after: function() {\n return this.domManip(arguments, false, true, function(elem) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n });\n },\n end: function() {\n return ((this.prevObject || jQuery([])));\n },\n JSBNG__find: function(selector) {\n var elems = jQuery.map(this, function(elem) {\n return jQuery.JSBNG__find(selector, elem);\n });\n return this.pushStack(((((/[^+>] [^+>]/.test(selector) || ((selector.indexOf(\"..\") > -1)))) ? jQuery.unique(elems) : elems)));\n },\n clone: function(events) {\n var ret = this.map(function() {\n if (((jQuery.browser.msie && !jQuery.isXMLDoc(this)))) {\n var clone = this.cloneNode(true), container = JSBNG__document.createElement(\"div\");\n container.appendChild(clone);\n return jQuery.clean([container.innerHTML,])[0];\n }\n else {\n return this.cloneNode(true);\n }\n ;\n ;\n });\n var clone = ret.JSBNG__find(\"*\").andSelf().each(function() {\n if (((this[expando] != undefined))) {\n this[expando] = null;\n }\n ;\n ;\n });\n if (((events === true))) {\n this.JSBNG__find(\"*\").andSelf().each(function(i) {\n if (((this.nodeType == 3))) {\n return;\n }\n ;\n ;\n var events = jQuery.data(this, \"events\");\n {\n var fin11keys = ((window.top.JSBNG_Replay.forInKeys)((events))), fin11i = (0);\n var type;\n for (; (fin11i < fin11keys.length); (fin11i++)) {\n ((type) = (fin11keys[fin11i]));\n {\n {\n var fin12keys = ((window.top.JSBNG_Replay.forInKeys)((events[type]))), fin12i = (0);\n var handler;\n for (; (fin12i < fin12keys.length); (fin12i++)) {\n ((handler) = (fin12keys[fin12i]));\n {\n jQuery.JSBNG__event.add(clone[i], type, events[type][handler], events[type][handler].data);\n };\n };\n };\n ;\n };\n };\n };\n ;\n });\n }\n ;\n ;\n return ret;\n },\n filter: function(selector) {\n return this.pushStack(((((jQuery.isFunction(selector) && jQuery.grep(this, function(elem, i) {\n return selector.call(elem, i);\n }))) || jQuery.multiFilter(selector, this))));\n },\n not: function(selector) {\n if (((selector.constructor == String))) {\n if (isSimple.test(selector)) {\n return this.pushStack(jQuery.multiFilter(selector, this, true));\n }\n else {\n selector = jQuery.multiFilter(selector, this);\n }\n ;\n ;\n }\n ;\n ;\n var isArrayLike = ((((selector.length && ((selector[((selector.length - 1))] !== undefined)))) && !selector.nodeType));\n return this.filter(function() {\n return ((isArrayLike ? ((jQuery.inArray(this, selector) < 0)) : ((this != selector))));\n });\n },\n add: function(selector) {\n return this.pushStack(jQuery.unique(jQuery.merge(this.get(), ((((typeof selector == \"string\")) ? jQuery(selector) : jQuery.makeArray(selector))))));\n },\n is: function(selector) {\n return ((!!selector && ((jQuery.multiFilter(selector, this).length > 0))));\n },\n hasClass: function(selector) {\n return this.is(((\".\" + selector)));\n },\n val: function(value) {\n if (((value == undefined))) {\n if (this.length) {\n var elem = this[0];\n if (jQuery.nodeName(elem, \"select\")) {\n var index = elem.selectedIndex, values = [], options = elem.options, one = ((elem.type == \"select-one\"));\n if (((index < 0))) {\n return null;\n }\n ;\n ;\n for (var i = ((one ? index : 0)), max = ((one ? ((index + 1)) : options.length)); ((i < max)); i++) {\n var option = options[i];\n if (option.selected) {\n value = ((((jQuery.browser.msie && !option.attributes.value.specified)) ? option.text : option.value));\n if (one) {\n return value;\n }\n ;\n ;\n values.push(value);\n }\n ;\n ;\n };\n ;\n return values;\n }\n else {\n return ((this[0].value || \"\")).replace(/\\r/g, \"\");\n }\n ;\n ;\n }\n ;\n ;\n return undefined;\n }\n ;\n ;\n if (((value.constructor == Number))) {\n value += \"\";\n }\n ;\n ;\n return this.each(function() {\n if (((this.nodeType != 1))) {\n return;\n }\n ;\n ;\n if (((((value.constructor == Array)) && /radio|checkbox/.test(this.type)))) {\n this.checked = ((((jQuery.inArray(this.value, value) >= 0)) || ((jQuery.inArray(this.JSBNG__name, value) >= 0))));\n }\n else {\n if (jQuery.nodeName(this, \"select\")) {\n var values = jQuery.makeArray(value);\n jQuery(\"option\", this).each(function() {\n this.selected = ((((jQuery.inArray(this.value, values) >= 0)) || ((jQuery.inArray(this.text, values) >= 0))));\n });\n if (!values.length) {\n this.selectedIndex = -1;\n }\n ;\n ;\n }\n else {\n this.value = value;\n }\n ;\n ;\n }\n ;\n ;\n });\n },\n html: function(value) {\n return ((((value == undefined)) ? ((this[0] ? this[0].innerHTML : null)) : this.empty().append(value)));\n },\n replaceWith: function(value) {\n return this.after(value).remove();\n },\n eq: function(i) {\n return this.slice(i, ((i + 1)));\n },\n slice: function() {\n return this.pushStack(Array.prototype.slice.apply(this, arguments));\n },\n map: function(callback) {\n return this.pushStack(jQuery.map(this, function(elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n andSelf: function() {\n return this.add(this.prevObject);\n },\n data: function(key, value) {\n var parts = key.split(\".\");\n parts[1] = ((parts[1] ? ((\".\" + parts[1])) : \"\"));\n if (((value === undefined))) {\n var data = this.triggerHandler(((((\"getData\" + parts[1])) + \"!\")), [parts[0],]);\n if (((((data === undefined)) && this.length))) {\n data = jQuery.data(this[0], key);\n }\n ;\n ;\n return ((((((data === undefined)) && parts[1])) ? this.data(parts[0]) : data));\n }\n else {\n return this.trigger(((((\"setData\" + parts[1])) + \"!\")), [parts[0],value,]).each(function() {\n jQuery.data(this, key, value);\n });\n }\n ;\n ;\n },\n removeData: function(key) {\n return this.each(function() {\n jQuery.removeData(this, key);\n });\n },\n domManip: function(args, table, reverse, callback) {\n var clone = ((this.length > 1)), elems;\n return this.each(function() {\n if (!elems) {\n elems = jQuery.clean(args, this.ownerDocument);\n if (reverse) {\n elems.reverse();\n }\n ;\n ;\n }\n ;\n ;\n var obj = this;\n if (((((table && jQuery.nodeName(this, \"table\"))) && jQuery.nodeName(elems[0], \"tr\")))) {\n obj = ((this.getElementsByTagName(\"tbody\")[0] || this.appendChild(this.ownerDocument.createElement(\"tbody\"))));\n }\n ;\n ;\n var scripts = jQuery([]);\n jQuery.each(elems, function() {\n var elem = ((clone ? jQuery(this).clone(true)[0] : this));\n if (jQuery.nodeName(elem, \"script\")) {\n scripts = scripts.add(elem);\n }\n else {\n if (((elem.nodeType == 1))) {\n scripts = scripts.add(jQuery(\"script\", elem).remove());\n }\n ;\n ;\n callback.call(obj, elem);\n }\n ;\n ;\n });\n scripts.each(evalScript);\n });\n }\n };\n jQuery.fn.init.prototype = jQuery.fn;\n function evalScript(i, elem) {\n if (elem.src) {\n jQuery.ajax({\n url: elem.src,\n async: false,\n dataType: \"script\"\n });\n }\n else {\n jQuery.globalEval(((((((elem.text || elem.textContent)) || elem.innerHTML)) || \"\")));\n }\n ;\n ;\n if (elem.parentNode) {\n elem.parentNode.removeChild(elem);\n }\n ;\n ;\n };\n ;\n function now() {\n return +new JSBNG__Date;\n };\n ;\n jQuery.extend = jQuery.fn.extend = function() {\n var target = ((arguments[0] || {\n })), i = 1, length = arguments.length, deep = false, options;\n if (((target.constructor == Boolean))) {\n deep = target;\n target = ((arguments[1] || {\n }));\n i = 2;\n }\n ;\n ;\n if (((((typeof target != \"object\")) && ((typeof target != \"function\"))))) {\n target = {\n };\n }\n ;\n ;\n if (((length == i))) {\n target = this;\n --i;\n }\n ;\n ;\n for (; ((i < length)); i++) {\n if ((((options = arguments[i]) != null))) {\n {\n var fin13keys = ((window.top.JSBNG_Replay.forInKeys)((options))), fin13i = (0);\n var JSBNG__name;\n for (; (fin13i < fin13keys.length); (fin13i++)) {\n ((name) = (fin13keys[fin13i]));\n {\n var src = target[JSBNG__name], copy = options[JSBNG__name];\n if (((target === copy))) {\n continue;\n }\n ;\n ;\n if (((((((deep && copy)) && ((typeof copy == \"object\")))) && !copy.nodeType))) {\n target[JSBNG__name] = jQuery.extend(deep, ((src || ((((copy.length != null)) ? [] : {\n })))), copy);\n }\n else {\n if (((copy !== undefined))) {\n target[JSBNG__name] = copy;\n }\n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n };\n ;\n return target;\n };\n var expando = ((\"jQuery\" + now())), uuid = 0, windowData = {\n }, exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, defaultView = ((JSBNG__document.defaultView || {\n }));\n jQuery.extend({\n noConflict: function(deep) {\n window.$ = _$;\n if (deep) {\n window.jQuery = _jQuery;\n }\n ;\n ;\n return jQuery;\n },\n isFunction: function(fn) {\n return ((((((((!!fn && ((typeof fn != \"string\")))) && !fn.nodeName)) && ((fn.constructor != Array)))) && /^[\\s[]?function/.test(((fn + \"\")))));\n },\n isXMLDoc: function(elem) {\n return ((((elem.documentElement && !elem.body)) || ((((elem.tagName && elem.ownerDocument)) && !elem.ownerDocument.body))));\n },\n globalEval: function(data) {\n data = jQuery.trim(data);\n if (data) {\n var head = ((JSBNG__document.getElementsByTagName(\"head\")[0] || JSBNG__document.documentElement)), script = JSBNG__document.createElement(\"script\");\n script.type = \"text/javascript\";\n if (jQuery.browser.msie) {\n script.text = data;\n }\n else {\n script.appendChild(JSBNG__document.createTextNode(data));\n }\n ;\n ;\n head.insertBefore(script, head.firstChild);\n head.removeChild(script);\n }\n ;\n ;\n },\n nodeName: function(elem, JSBNG__name) {\n return ((elem.nodeName && ((elem.nodeName.toUpperCase() == JSBNG__name.toUpperCase()))));\n },\n cache: {\n },\n data: function(elem, JSBNG__name, data) {\n elem = ((((elem == window)) ? windowData : elem));\n var id = elem[expando];\n if (!id) {\n id = elem[expando] = ++uuid;\n }\n ;\n ;\n if (((JSBNG__name && !jQuery.cache[id]))) {\n jQuery.cache[id] = {\n };\n }\n ;\n ;\n if (((data !== undefined))) {\n jQuery.cache[id][JSBNG__name] = data;\n }\n ;\n ;\n return ((JSBNG__name ? jQuery.cache[id][JSBNG__name] : id));\n },\n removeData: function(elem, JSBNG__name) {\n elem = ((((elem == window)) ? windowData : elem));\n var id = elem[expando];\n if (JSBNG__name) {\n if (jQuery.cache[id]) {\n delete jQuery.cache[id][JSBNG__name];\n JSBNG__name = \"\";\n {\n var fin14keys = ((window.top.JSBNG_Replay.forInKeys)((jQuery.cache[id]))), fin14i = (0);\n (0);\n for (; (fin14i < fin14keys.length); (fin14i++)) {\n ((name) = (fin14keys[fin14i]));\n {\n break;\n };\n };\n };\n ;\n if (!JSBNG__name) {\n jQuery.removeData(elem);\n }\n ;\n ;\n }\n ;\n ;\n }\n else {\n try {\n delete elem[expando];\n } catch (e) {\n if (elem.removeAttribute) {\n elem.removeAttribute(expando);\n }\n ;\n ;\n };\n ;\n delete jQuery.cache[id];\n }\n ;\n ;\n },\n each: function(object, callback, args) {\n var JSBNG__name, i = 0, length = object.length;\n if (args) {\n if (((length == undefined))) {\n {\n var fin15keys = ((window.top.JSBNG_Replay.forInKeys)((object))), fin15i = (0);\n (0);\n for (; (fin15i < fin15keys.length); (fin15i++)) {\n ((name) = (fin15keys[fin15i]));\n {\n if (((callback.apply(object[JSBNG__name], args) === false))) {\n break;\n }\n ;\n ;\n };\n };\n };\n ;\n }\n else {\n for (; ((i < length)); ) {\n if (((callback.apply(object[i++], args) === false))) {\n break;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n }\n else {\n if (((length == undefined))) {\n {\n var fin16keys = ((window.top.JSBNG_Replay.forInKeys)((object))), fin16i = (0);\n (0);\n for (; (fin16i < fin16keys.length); (fin16i++)) {\n ((name) = (fin16keys[fin16i]));\n {\n if (((callback.call(object[JSBNG__name], JSBNG__name, object[JSBNG__name]) === false))) {\n break;\n }\n ;\n ;\n };\n };\n };\n ;\n }\n else {\n for (var value = object[0]; ((((i < length)) && ((callback.call(value, i, value) !== false)))); value = object[++i]) {\n \n };\n ;\n }\n ;\n ;\n }\n ;\n ;\n return object;\n },\n prop: function(elem, value, type, i, JSBNG__name) {\n if (jQuery.isFunction(value)) {\n value = value.call(elem, i);\n }\n ;\n ;\n return ((((((((value && ((value.constructor == Number)))) && ((type == \"curCSS\")))) && !exclude.test(JSBNG__name))) ? ((value + \"px\")) : value));\n },\n className: {\n add: function(elem, classNames) {\n jQuery.each(((classNames || \"\")).split(/\\s+/), function(i, className) {\n if (((((elem.nodeType == 1)) && !jQuery.className.has(elem.className, className)))) {\n elem.className += ((((elem.className ? \" \" : \"\")) + className));\n }\n ;\n ;\n });\n },\n remove: function(elem, classNames) {\n if (((elem.nodeType == 1))) {\n elem.className = ((((classNames != undefined)) ? jQuery.grep(elem.className.split(/\\s+/), function(className) {\n return !jQuery.className.has(classNames, className);\n }).join(\" \") : \"\"));\n }\n ;\n ;\n },\n has: function(elem, className) {\n return ((jQuery.inArray(className, ((elem.className || elem)).toString().split(/\\s+/)) > -1));\n }\n },\n swap: function(elem, options, callback) {\n var old = {\n };\n {\n var fin17keys = ((window.top.JSBNG_Replay.forInKeys)((options))), fin17i = (0);\n var JSBNG__name;\n for (; (fin17i < fin17keys.length); (fin17i++)) {\n ((name) = (fin17keys[fin17i]));\n {\n old[JSBNG__name] = elem.style[JSBNG__name];\n elem.style[JSBNG__name] = options[JSBNG__name];\n };\n };\n };\n ;\n callback.call(elem);\n {\n var fin18keys = ((window.top.JSBNG_Replay.forInKeys)((options))), fin18i = (0);\n var JSBNG__name;\n for (; (fin18i < fin18keys.length); (fin18i++)) {\n ((name) = (fin18keys[fin18i]));\n {\n elem.style[JSBNG__name] = old[JSBNG__name];\n };\n };\n };\n ;\n },\n css: function(elem, JSBNG__name, force) {\n if (((((JSBNG__name == \"width\")) || ((JSBNG__name == \"height\"))))) {\n var val, props = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n }, which = ((((JSBNG__name == \"width\")) ? [\"Left\",\"Right\",] : [\"Top\",\"Bottom\",]));\n function getWH() {\n val = ((((JSBNG__name == \"width\")) ? elem.offsetWidth : elem.offsetHeight));\n var padding = 0, border = 0;\n jQuery.each(which, function() {\n padding += ((parseFloat(jQuery.curCSS(elem, ((\"padding\" + this)), true)) || 0));\n border += ((parseFloat(jQuery.curCSS(elem, ((((\"border\" + this)) + \"Width\")), true)) || 0));\n });\n val -= Math.round(((padding + border)));\n };\n ;\n if (jQuery(elem).is(\":visible\")) {\n getWH();\n }\n else {\n jQuery.swap(elem, props, getWH);\n }\n ;\n ;\n return Math.max(0, val);\n }\n ;\n ;\n return jQuery.curCSS(elem, JSBNG__name, force);\n },\n curCSS: function(elem, JSBNG__name, force) {\n var ret, style = elem.style;\n function color(elem) {\n if (!jQuery.browser.safari) {\n return false;\n }\n ;\n ;\n var ret = defaultView.JSBNG__getComputedStyle(elem, null);\n return ((!ret || ((ret.getPropertyValue(\"color\") == \"\"))));\n };\n ;\n if (((((JSBNG__name == \"opacity\")) && jQuery.browser.msie))) {\n ret = jQuery.attr(style, \"opacity\");\n return ((((ret == \"\")) ? \"1\" : ret));\n }\n ;\n ;\n if (((jQuery.browser.JSBNG__opera && ((JSBNG__name == \"display\"))))) {\n var save = style.outline;\n style.outline = \"0 solid black\";\n style.outline = save;\n }\n ;\n ;\n if (JSBNG__name.match(/float/i)) {\n JSBNG__name = styleFloat;\n }\n ;\n ;\n if (((((!force && style)) && style[JSBNG__name]))) {\n ret = style[JSBNG__name];\n }\n else {\n if (defaultView.JSBNG__getComputedStyle) {\n if (JSBNG__name.match(/float/i)) {\n JSBNG__name = \"float\";\n }\n ;\n ;\n JSBNG__name = JSBNG__name.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n var computedStyle = defaultView.JSBNG__getComputedStyle(elem, null);\n if (((computedStyle && !color(elem)))) {\n ret = computedStyle.getPropertyValue(JSBNG__name);\n }\n else {\n var swap = [], stack = [], a = elem, i = 0;\n for (; ((a && color(a))); a = a.parentNode) {\n stack.unshift(a);\n };\n ;\n for (; ((i < stack.length)); i++) {\n if (color(stack[i])) {\n swap[i] = stack[i].style.display;\n stack[i].style.display = \"block\";\n }\n ;\n ;\n };\n ;\n ret = ((((((JSBNG__name == \"display\")) && ((swap[((stack.length - 1))] != null)))) ? \"none\" : ((((computedStyle && computedStyle.getPropertyValue(JSBNG__name))) || \"\"))));\n for (i = 0; ((i < swap.length)); i++) {\n if (((swap[i] != null))) {\n stack[i].style.display = swap[i];\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n if (((((JSBNG__name == \"opacity\")) && ((ret == \"\"))))) {\n ret = \"1\";\n }\n ;\n ;\n }\n else {\n if (elem.currentStyle) {\n var camelCase = JSBNG__name.replace(/\\-(\\w)/g, function(all, letter) {\n return letter.toUpperCase();\n });\n ret = ((elem.currentStyle[JSBNG__name] || elem.currentStyle[camelCase]));\n if (((!/^\\d+(px)?$/i.test(ret) && /^\\d/.test(ret)))) {\n var left = style.left, rsLeft = elem.runtimeStyle.left;\n elem.runtimeStyle.left = elem.currentStyle.left;\n style.left = ((ret || 0));\n ret = ((style.pixelLeft + \"px\"));\n style.left = left;\n elem.runtimeStyle.left = rsLeft;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n return ret;\n },\n clean: function(elems, context) {\n var ret = [];\n context = ((context || JSBNG__document));\n if (((typeof context.createElement == \"undefined\"))) {\n context = ((((context.ownerDocument || ((context[0] && context[0].ownerDocument)))) || JSBNG__document));\n }\n ;\n ;\n jQuery.each(elems, function(i, elem) {\n if (!elem) {\n return;\n }\n ;\n ;\n if (((elem.constructor == Number))) {\n elem += \"\";\n }\n ;\n ;\n if (((typeof elem == \"string\"))) {\n elem = elem.replace(/(<(\\w+)[^>]*?)\\/>/g, function(all, front, tag) {\n return ((tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? all : ((((((front + \"\\u003E\\u003C/\")) + tag)) + \"\\u003E\"))));\n });\n var tags = jQuery.trim(elem).toLowerCase(), div = context.createElement(\"div\");\n var wrap = ((((((((((((((((!tags.indexOf(\"\\u003Copt\") && [1,\"\\u003Cselect multiple='multiple'\\u003E\",\"\\u003C/select\\u003E\",])) || ((!tags.indexOf(\"\\u003Cleg\") && [1,\"\\u003Cfieldset\\u003E\",\"\\u003C/fieldset\\u003E\",])))) || ((tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && [1,\"\\u003Ctable\\u003E\",\"\\u003C/table\\u003E\",])))) || ((!tags.indexOf(\"\\u003Ctr\") && [2,\"\\u003Ctable\\u003E\\u003Ctbody\\u003E\",\"\\u003C/tbody\\u003E\\u003C/table\\u003E\",])))) || ((((!tags.indexOf(\"\\u003Ctd\") || !tags.indexOf(\"\\u003Cth\"))) && [3,\"\\u003Ctable\\u003E\\u003Ctbody\\u003E\\u003Ctr\\u003E\",\"\\u003C/tr\\u003E\\u003C/tbody\\u003E\\u003C/table\\u003E\",])))) || ((!tags.indexOf(\"\\u003Ccol\") && [2,\"\\u003Ctable\\u003E\\u003Ctbody\\u003E\\u003C/tbody\\u003E\\u003Ccolgroup\\u003E\",\"\\u003C/colgroup\\u003E\\u003C/table\\u003E\",])))) || ((jQuery.browser.msie && [1,\"div\\u003Cdiv\\u003E\",\"\\u003C/div\\u003E\",])))) || [0,\"\",\"\",]));\n div.innerHTML = ((((wrap[1] + elem)) + wrap[2]));\n while (wrap[0]--) {\n div = div.lastChild;\n };\n ;\n if (jQuery.browser.msie) {\n var tbody = ((((!tags.indexOf(\"\\u003Ctable\") && ((tags.indexOf(\"\\u003Ctbody\") < 0)))) ? ((div.firstChild && div.firstChild.childNodes)) : ((((((wrap[1] == \"\\u003Ctable\\u003E\")) && ((tags.indexOf(\"\\u003Ctbody\") < 0)))) ? div.childNodes : []))));\n for (var j = ((tbody.length - 1)); ((j >= 0)); --j) {\n if (((jQuery.nodeName(tbody[j], \"tbody\") && !tbody[j].childNodes.length))) {\n tbody[j].parentNode.removeChild(tbody[j]);\n }\n ;\n ;\n };\n ;\n if (/^\\s/.test(elem)) {\n div.insertBefore(context.createTextNode(elem.match(/^\\s*/)[0]), div.firstChild);\n }\n ;\n ;\n }\n ;\n ;\n elem = jQuery.makeArray(div.childNodes);\n }\n ;\n ;\n if (((((elem.length === 0)) && ((!jQuery.nodeName(elem, \"form\") && !jQuery.nodeName(elem, \"select\")))))) {\n return;\n }\n ;\n ;\n if (((((((elem[0] == undefined)) || jQuery.nodeName(elem, \"form\"))) || elem.options))) {\n ret.push(elem);\n }\n else {\n ret = jQuery.merge(ret, elem);\n }\n ;\n ;\n });\n return ret;\n },\n attr: function(elem, JSBNG__name, value) {\n if (((((!elem || ((elem.nodeType == 3)))) || ((elem.nodeType == 8))))) {\n return undefined;\n }\n ;\n ;\n var notxml = !jQuery.isXMLDoc(elem), set = ((value !== undefined)), msie = jQuery.browser.msie;\n JSBNG__name = ((((notxml && jQuery.props[JSBNG__name])) || JSBNG__name));\n if (elem.tagName) {\n var special = /href|src|style/.test(JSBNG__name);\n if (((((JSBNG__name == \"selected\")) && jQuery.browser.safari))) {\n elem.parentNode.selectedIndex;\n }\n ;\n ;\n if (((((((JSBNG__name in elem)) && notxml)) && !special))) {\n if (set) {\n if (((((((JSBNG__name == \"type\")) && jQuery.nodeName(elem, \"input\"))) && elem.parentNode))) {\n throw \"type property can't be changed\";\n }\n ;\n ;\n elem[JSBNG__name] = value;\n }\n ;\n ;\n if (((jQuery.nodeName(elem, \"form\") && elem.getAttributeNode(JSBNG__name)))) {\n return elem.getAttributeNode(JSBNG__name).nodeValue;\n }\n ;\n ;\n return elem[JSBNG__name];\n }\n ;\n ;\n if (((((msie && notxml)) && ((JSBNG__name == \"style\"))))) {\n return jQuery.attr(elem.style, \"cssText\", value);\n }\n ;\n ;\n if (set) {\n elem.setAttribute(JSBNG__name, ((\"\" + value)));\n }\n ;\n ;\n var attr = ((((((msie && notxml)) && special)) ? elem.getAttribute(JSBNG__name, 2) : elem.getAttribute(JSBNG__name)));\n return ((((attr === null)) ? undefined : attr));\n }\n ;\n ;\n if (((msie && ((JSBNG__name == \"opacity\"))))) {\n if (set) {\n elem.zoom = 1;\n elem.filter = ((((elem.filter || \"\")).replace(/alpha\\([^)]*\\)/, \"\") + ((((((parseInt(value) + \"\")) == \"NaN\")) ? \"\" : ((((\"alpha(opacity=\" + ((value * 100)))) + \")\"))))));\n }\n ;\n ;\n return ((((elem.filter && ((elem.filter.indexOf(\"opacity=\") >= 0)))) ? ((((parseFloat(elem.filter.match(/opacity=([^)]*)/)[1]) / 100)) + \"\")) : \"\"));\n }\n ;\n ;\n JSBNG__name = JSBNG__name.replace(/-([a-z])/gi, function(all, letter) {\n return letter.toUpperCase();\n });\n if (set) {\n elem[JSBNG__name] = value;\n }\n ;\n ;\n return elem[JSBNG__name];\n },\n trim: function(text) {\n return ((text || \"\")).replace(/^\\s+|\\s+$/g, \"\");\n },\n makeArray: function(array) {\n var ret = [];\n if (((array != null))) {\n var i = array.length;\n if (((((((((i == null)) || array.split)) || array.JSBNG__setInterval)) || array.call))) {\n ret[0] = array;\n }\n else {\n while (i) {\n ret[--i] = array[i];\n };\n ;\n }\n ;\n ;\n }\n ;\n ;\n return ret;\n },\n inArray: function(elem, array) {\n for (var i = 0, length = array.length; ((i < length)); i++) {\n if (((array[i] === elem))) {\n return i;\n }\n ;\n ;\n };\n ;\n return -1;\n },\n merge: function(first, second) {\n var i = 0, elem, pos = first.length;\n if (jQuery.browser.msie) {\n while (elem = second[i++]) {\n if (((elem.nodeType != 8))) {\n first[pos++] = elem;\n }\n ;\n ;\n };\n ;\n }\n else {\n while (elem = second[i++]) {\n first[pos++] = elem;\n };\n ;\n }\n ;\n ;\n return first;\n },\n unique: function(array) {\n var ret = [], done = {\n };\n try {\n for (var i = 0, length = array.length; ((i < length)); i++) {\n var id = jQuery.data(array[i]);\n if (!done[id]) {\n done[id] = true;\n ret.push(array[i]);\n }\n ;\n ;\n };\n ;\n } catch (e) {\n ret = array;\n };\n ;\n return ret;\n },\n grep: function(elems, callback, inv) {\n var ret = [];\n for (var i = 0, length = elems.length; ((i < length)); i++) {\n if (((!inv != !callback(elems[i], i)))) {\n ret.push(elems[i]);\n }\n ;\n ;\n };\n ;\n return ret;\n },\n map: function(elems, callback) {\n var ret = [];\n for (var i = 0, length = elems.length; ((i < length)); i++) {\n var value = callback(elems[i], i);\n if (((value != null))) {\n ret[ret.length] = value;\n }\n ;\n ;\n };\n ;\n return ret.concat.apply([], ret);\n }\n });\n var userAgent = JSBNG__navigator.userAgent.toLowerCase();\n jQuery.browser = {\n version: ((userAgent.match(/.+(?:rv|it|ra|ie)[\\/: ]([\\d.]+)/) || []))[1],\n safari: /webkit/.test(userAgent),\n JSBNG__opera: /opera/.test(userAgent),\n msie: ((/msie/.test(userAgent) && !/opera/.test(userAgent))),\n mozilla: ((/mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)))\n };\n var styleFloat = ((jQuery.browser.msie ? \"styleFloat\" : \"cssFloat\"));\n jQuery.extend({\n boxModel: ((!jQuery.browser.msie || ((JSBNG__document.compatMode == \"CSS1Compat\")))),\n props: {\n \"for\": \"htmlFor\",\n class: \"className\",\n float: styleFloat,\n cssFloat: styleFloat,\n styleFloat: styleFloat,\n readonly: \"readOnly\",\n maxlength: \"maxLength\",\n cellspacing: \"cellSpacing\"\n }\n });\n jQuery.each({\n parent: function(elem) {\n return elem.parentNode;\n },\n parents: function(elem) {\n return jQuery.dir(elem, \"parentNode\");\n },\n next: function(elem) {\n return jQuery.nth(elem, 2, \"nextSibling\");\n },\n prev: function(elem) {\n return jQuery.nth(elem, 2, \"previousSibling\");\n },\n nextAll: function(elem) {\n return jQuery.dir(elem, \"nextSibling\");\n },\n prevAll: function(elem) {\n return jQuery.dir(elem, \"previousSibling\");\n },\n siblings: function(elem) {\n return jQuery.sibling(elem.parentNode.firstChild, elem);\n },\n children: function(elem) {\n return jQuery.sibling(elem.firstChild);\n },\n contents: function(elem) {\n return ((jQuery.nodeName(elem, \"div\") ? ((elem.contentDocument || elem.contentWindow.JSBNG__document)) : jQuery.makeArray(elem.childNodes)));\n }\n }, function(JSBNG__name, fn) {\n jQuery.fn[JSBNG__name] = function(selector) {\n var ret = jQuery.map(this, fn);\n if (((selector && ((typeof selector == \"string\"))))) {\n ret = jQuery.multiFilter(selector, ret);\n }\n ;\n ;\n return this.pushStack(jQuery.unique(ret));\n };\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function(JSBNG__name, original) {\n jQuery.fn[JSBNG__name] = function() {\n var args = arguments;\n return this.each(function() {\n for (var i = 0, length = args.length; ((i < length)); i++) {\n jQuery(args[i])[original](this);\n };\n ;\n });\n };\n });\n jQuery.each({\n removeAttr: function(JSBNG__name) {\n jQuery.attr(this, JSBNG__name, \"\");\n if (((this.nodeType == 1))) {\n this.removeAttribute(JSBNG__name);\n }\n ;\n ;\n },\n addClass: function(classNames) {\n jQuery.className.add(this, classNames);\n },\n removeClass: function(classNames) {\n jQuery.className.remove(this, classNames);\n },\n toggleClass: function(classNames) {\n jQuery.className[((jQuery.className.has(this, classNames) ? \"remove\" : \"add\"))](this, classNames);\n },\n remove: function(selector) {\n if (((!selector || jQuery.filter(selector, [this,]).r.length))) {\n jQuery(\"*\", this).add(this).each(function() {\n jQuery.JSBNG__event.remove(this);\n jQuery.removeData(this);\n });\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n ;\n ;\n }\n ;\n ;\n },\n empty: function() {\n jQuery(\"\\u003E*\", this).remove();\n while (this.firstChild) {\n this.removeChild(this.firstChild);\n };\n ;\n }\n }, function(JSBNG__name, fn) {\n jQuery.fn[JSBNG__name] = function() {\n return this.each(fn, arguments);\n };\n });\n jQuery.each([\"Height\",\"Width\",], function(i, JSBNG__name) {\n var type = JSBNG__name.toLowerCase();\n jQuery.fn[type] = function(size) {\n return ((((this[0] == window)) ? ((((((((jQuery.browser.JSBNG__opera && JSBNG__document.body[((\"client\" + JSBNG__name))])) || ((jQuery.browser.safari && window[((\"JSBNG__inner\" + JSBNG__name))])))) || ((((JSBNG__document.compatMode == \"CSS1Compat\")) && JSBNG__document.documentElement[((\"client\" + JSBNG__name))])))) || JSBNG__document.body[((\"client\" + JSBNG__name))])) : ((((this[0] == JSBNG__document)) ? Math.max(Math.max(JSBNG__document.body[((\"JSBNG__scroll\" + JSBNG__name))], JSBNG__document.documentElement[((\"JSBNG__scroll\" + JSBNG__name))]), Math.max(JSBNG__document.body[((\"offset\" + JSBNG__name))], JSBNG__document.documentElement[((\"offset\" + JSBNG__name))])) : ((((size == undefined)) ? ((this.length ? jQuery.css(this[0], type) : null)) : this.css(type, ((((size.constructor == String)) ? size : ((size + \"px\")))))))))));\n };\n });\n function num(elem, prop) {\n return ((((elem[0] && parseInt(jQuery.curCSS(elem[0], prop, true), 10))) || 0));\n };\n ;\n var chars = ((((jQuery.browser.safari && ((parseInt(jQuery.browser.version) < 417)))) ? \"(?:[\\\\w*_-]|\\\\\\\\.)\" : \"(?:[\\\\w\\u0128-\\uffff*_-]|\\\\\\\\.)\")), quickChild = new RegExp(((((\"^\\u003E\\\\s*(\" + chars)) + \"+)\"))), quickID = new RegExp(((((((((\"^(\" + chars)) + \"+)(#)(\")) + chars)) + \"+)\"))), quickClass = new RegExp(((((\"^([#.]?)(\" + chars)) + \"*)\")));\n jQuery.extend({\n expr: {\n \"\": function(a, i, m) {\n return ((((m[2] == \"*\")) || jQuery.nodeName(a, m[2])));\n },\n \"#\": function(a, i, m) {\n return ((a.getAttribute(\"id\") == m[2]));\n },\n \":\": {\n lt: function(a, i, m) {\n return ((i < ((m[3] - 0))));\n },\n gt: function(a, i, m) {\n return ((i > ((m[3] - 0))));\n },\n nth: function(a, i, m) {\n return ((((m[3] - 0)) == i));\n },\n eq: function(a, i, m) {\n return ((((m[3] - 0)) == i));\n },\n first: function(a, i) {\n return ((i == 0));\n },\n last: function(a, i, m, r) {\n return ((i == ((r.length - 1))));\n },\n even: function(a, i) {\n return ((((i % 2)) == 0));\n },\n odd: function(a, i) {\n return ((i % 2));\n },\n \"first-child\": function(a) {\n return ((a.parentNode.getElementsByTagName(\"*\")[0] == a));\n },\n \"last-child\": function(a) {\n return ((jQuery.nth(a.parentNode.lastChild, 1, \"previousSibling\") == a));\n },\n \"only-child\": function(a) {\n return !jQuery.nth(a.parentNode.lastChild, 2, \"previousSibling\");\n },\n parent: function(a) {\n return a.firstChild;\n },\n empty: function(a) {\n return !a.firstChild;\n },\n contains: function(a, i, m) {\n return ((((((((a.textContent || a.innerText)) || jQuery(a).text())) || \"\")).indexOf(m[3]) >= 0));\n },\n visible: function(a) {\n return ((((((\"hidden\" != a.type)) && ((jQuery.css(a, \"display\") != \"none\")))) && ((jQuery.css(a, \"visibility\") != \"hidden\"))));\n },\n hidden: function(a) {\n return ((((((\"hidden\" == a.type)) || ((jQuery.css(a, \"display\") == \"none\")))) || ((jQuery.css(a, \"visibility\") == \"hidden\"))));\n },\n enabled: function(a) {\n return !a.disabled;\n },\n disabled: function(a) {\n return a.disabled;\n },\n checked: function(a) {\n return a.checked;\n },\n selected: function(a) {\n return ((a.selected || jQuery.attr(a, \"selected\")));\n },\n text: function(a) {\n return ((\"text\" == a.type));\n },\n radio: function(a) {\n return ((\"radio\" == a.type));\n },\n checkbox: function(a) {\n return ((\"checkbox\" == a.type));\n },\n file: function(a) {\n return ((\"file\" == a.type));\n },\n password: function(a) {\n return ((\"password\" == a.type));\n },\n submit: function(a) {\n return ((\"submit\" == a.type));\n },\n image: function(a) {\n return ((\"image\" == a.type));\n },\n reset: function(a) {\n return ((\"reset\" == a.type));\n },\n button: function(a) {\n return ((((\"button\" == a.type)) || jQuery.nodeName(a, \"button\")));\n },\n input: function(a) {\n return /input|select|textarea|button/i.test(a.nodeName);\n },\n has: function(a, i, m) {\n return jQuery.JSBNG__find(m[3], a).length;\n },\n header: function(a) {\n return /h\\d/i.test(a.nodeName);\n },\n animated: function(a) {\n return jQuery.grep(jQuery.timers, function(fn) {\n return ((a == fn.elem));\n }).length;\n }\n }\n },\n parse: [/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *('?\"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\(\"?'?(.*?(\\(.*?\\))?[^(]*?)\"?'?\\)/,new RegExp(((((\"^([:.#]*)(\" + chars)) + \"+)\"))),],\n multiFilter: function(expr, elems, not) {\n var old, cur = [];\n while (((expr && ((expr != old))))) {\n old = expr;\n var f = jQuery.filter(expr, elems, not);\n expr = f.t.replace(/^\\s*,\\s*/, \"\");\n cur = ((not ? elems = f.r : jQuery.merge(cur, f.r)));\n };\n ;\n return cur;\n },\n JSBNG__find: function(t, context) {\n if (((typeof t != \"string\"))) {\n return [t,];\n }\n ;\n ;\n if (((((context && ((context.nodeType != 1)))) && ((context.nodeType != 9))))) {\n return [];\n }\n ;\n ;\n context = ((context || JSBNG__document));\n var ret = [context,], done = [], last, nodeName;\n while (((t && ((last != t))))) {\n var r = [];\n last = t;\n t = jQuery.trim(t);\n var foundToken = false, re = quickChild, m = re.exec(t);\n if (m) {\n nodeName = m[1].toUpperCase();\n for (var i = 0; ret[i]; i++) {\n for (var c = ret[i].firstChild; c; c = c.nextSibling) {\n if (((((c.nodeType == 1)) && ((((nodeName == \"*\")) || ((c.nodeName.toUpperCase() == nodeName))))))) {\n r.push(c);\n }\n ;\n ;\n };\n ;\n };\n ;\n ret = r;\n t = t.replace(re, \"\");\n if (((t.indexOf(\" \") == 0))) {\n continue;\n }\n ;\n ;\n foundToken = true;\n }\n else {\n re = /^([>+~])\\s*(\\w*)/i;\n if ((((m = re.exec(t)) != null))) {\n r = [];\n var merge = {\n };\n nodeName = m[2].toUpperCase();\n m = m[1];\n for (var j = 0, rl = ret.length; ((j < rl)); j++) {\n var n = ((((((m == \"~\")) || ((m == \"+\")))) ? ret[j].nextSibling : ret[j].firstChild));\n for (; n; n = n.nextSibling) {\n if (((n.nodeType == 1))) {\n var id = jQuery.data(n);\n if (((((m == \"~\")) && merge[id]))) {\n break;\n }\n ;\n ;\n if (((!nodeName || ((n.nodeName.toUpperCase() == nodeName))))) {\n if (((m == \"~\"))) {\n merge[id] = true;\n }\n ;\n ;\n r.push(n);\n }\n ;\n ;\n if (((m == \"+\"))) {\n break;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n };\n ;\n ret = r;\n t = jQuery.trim(t.replace(re, \"\"));\n foundToken = true;\n }\n ;\n ;\n }\n ;\n ;\n if (((t && !foundToken))) {\n if (!t.indexOf(\",\")) {\n if (((context == ret[0]))) {\n ret.shift();\n }\n ;\n ;\n done = jQuery.merge(done, ret);\n r = ret = [context,];\n t = ((\" \" + t.substr(1, t.length)));\n }\n else {\n var re2 = quickID;\n var m = re2.exec(t);\n if (m) {\n m = [0,m[2],m[3],m[1],];\n }\n else {\n re2 = quickClass;\n m = re2.exec(t);\n }\n ;\n ;\n m[2] = m[2].replace(/\\\\/g, \"\");\n var elem = ret[((ret.length - 1))];\n if (((((((((m[1] == \"#\")) && elem)) && elem.getElementById)) && !jQuery.isXMLDoc(elem)))) {\n var oid = elem.getElementById(m[2]);\n if (((((((((jQuery.browser.msie || jQuery.browser.JSBNG__opera)) && oid)) && ((typeof oid.id == \"string\")))) && ((oid.id != m[2]))))) {\n oid = jQuery(((((\"[@id=\\\"\" + m[2])) + \"\\\"]\")), elem)[0];\n }\n ;\n ;\n ret = r = ((((oid && ((!m[3] || jQuery.nodeName(oid, m[3]))))) ? [oid,] : []));\n }\n else {\n for (var i = 0; ret[i]; i++) {\n var tag = ((((((m[1] == \"#\")) && m[3])) ? m[3] : ((((((m[1] != \"\")) || ((m[0] == \"\")))) ? \"*\" : m[2]))));\n if (((((tag == \"*\")) && ((ret[i].nodeName.toLowerCase() == \"object\"))))) {\n tag = \"param\";\n }\n ;\n ;\n r = jQuery.merge(r, ret[i].getElementsByTagName(tag));\n };\n ;\n if (((m[1] == \".\"))) {\n r = jQuery.classFilter(r, m[2]);\n }\n ;\n ;\n if (((m[1] == \"#\"))) {\n var tmp = [];\n for (var i = 0; r[i]; i++) {\n if (((r[i].getAttribute(\"id\") == m[2]))) {\n tmp = [r[i],];\n break;\n }\n ;\n ;\n };\n ;\n r = tmp;\n }\n ;\n ;\n ret = r;\n }\n ;\n ;\n t = t.replace(re2, \"\");\n }\n ;\n ;\n }\n ;\n ;\n if (t) {\n var val = jQuery.filter(t, r);\n ret = r = val.r;\n t = jQuery.trim(val.t);\n }\n ;\n ;\n };\n ;\n if (t) {\n ret = [];\n }\n ;\n ;\n if (((ret && ((context == ret[0]))))) {\n ret.shift();\n }\n ;\n ;\n done = jQuery.merge(done, ret);\n return done;\n },\n classFilter: function(r, m, not) {\n m = ((((\" \" + m)) + \" \"));\n var tmp = [];\n for (var i = 0; r[i]; i++) {\n var pass = ((((((\" \" + r[i].className)) + \" \")).indexOf(m) >= 0));\n if (((((!not && pass)) || ((not && !pass))))) {\n tmp.push(r[i]);\n }\n ;\n ;\n };\n ;\n return tmp;\n },\n filter: function(t, r, not) {\n var last;\n while (((t && ((t != last))))) {\n last = t;\n var p = jQuery.parse, m;\n for (var i = 0; p[i]; i++) {\n m = p[i].exec(t);\n if (m) {\n t = t.substring(m[0].length);\n m[2] = m[2].replace(/\\\\/g, \"\");\n break;\n }\n ;\n ;\n };\n ;\n if (!m) {\n break;\n }\n ;\n ;\n if (((((m[1] == \":\")) && ((m[2] == \"not\"))))) {\n r = ((isSimple.test(m[3]) ? jQuery.filter(m[3], r, true).r : jQuery(r).not(m[3])));\n }\n else {\n if (((m[1] == \".\"))) {\n r = jQuery.classFilter(r, m[2], not);\n }\n else {\n if (((m[1] == \"[\"))) {\n var tmp = [], type = m[3];\n for (var i = 0, rl = r.length; ((i < rl)); i++) {\n var a = r[i], z = a[((jQuery.props[m[2]] || m[2]))];\n if (((((z == null)) || /href|src|selected/.test(m[2])))) {\n z = ((jQuery.attr(a, m[2]) || \"\"));\n }\n ;\n ;\n if (((((((((((((((((type == \"\")) && !!z)) || ((((type == \"=\")) && ((z == m[5])))))) || ((((type == \"!=\")) && ((z != m[5])))))) || ((((((type == \"^=\")) && z)) && !z.indexOf(m[5]))))) || ((((type == \"$=\")) && ((z.substr(((z.length - m[5].length))) == m[5])))))) || ((((((type == \"*=\")) || ((type == \"~=\")))) && ((z.indexOf(m[5]) >= 0)))))) ^ not))) {\n tmp.push(a);\n }\n ;\n ;\n };\n ;\n r = tmp;\n }\n else {\n if (((((m[1] == \":\")) && ((m[2] == \"nth-child\"))))) {\n var merge = {\n }, tmp = [], test = /(-?)(\\d*)n((?:\\+|-)?\\d*)/.exec(((((((((((m[3] == \"even\")) && \"2n\")) || ((((m[3] == \"odd\")) && \"2n+1\")))) || ((!/\\D/.test(m[3]) && ((\"0n+\" + m[3])))))) || m[3]))), first = ((((test[1] + ((test[2] || 1)))) - 0)), last = ((test[3] - 0));\n for (var i = 0, rl = r.length; ((i < rl)); i++) {\n var node = r[i], parentNode = node.parentNode, id = jQuery.data(parentNode);\n if (!merge[id]) {\n var c = 1;\n for (var n = parentNode.firstChild; n; n = n.nextSibling) {\n if (((n.nodeType == 1))) {\n n.nodeIndex = c++;\n }\n ;\n ;\n };\n ;\n merge[id] = true;\n }\n ;\n ;\n var add = false;\n if (((first == 0))) {\n if (((node.nodeIndex == last))) {\n add = true;\n }\n ;\n ;\n }\n else {\n if (((((((((node.nodeIndex - last)) % first)) == 0)) && ((((((node.nodeIndex - last)) / first)) >= 0))))) {\n add = true;\n }\n ;\n ;\n }\n ;\n ;\n if (((add ^ not))) {\n tmp.push(node);\n }\n ;\n ;\n };\n ;\n r = tmp;\n }\n else {\n var fn = jQuery.expr[m[1]];\n if (((typeof fn == \"object\"))) {\n fn = fn[m[2]];\n }\n ;\n ;\n if (((typeof fn == \"string\"))) {\n fn = eval(((((\"false||function(a,i){return \" + fn)) + \";}\")));\n }\n ;\n ;\n r = jQuery.grep(r, function(elem, i) {\n return fn(elem, i, m, r);\n }, not);\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n return {\n r: r,\n t: t\n };\n },\n dir: function(elem, dir) {\n var matched = [], cur = elem[dir];\n while (((cur && ((cur != JSBNG__document))))) {\n if (((cur.nodeType == 1))) {\n matched.push(cur);\n }\n ;\n ;\n cur = cur[dir];\n };\n ;\n return matched;\n },\n nth: function(cur, result, dir, elem) {\n result = ((result || 1));\n var num = 0;\n for (; cur; cur = cur[dir]) {\n if (((((cur.nodeType == 1)) && ((++num == result))))) {\n break;\n }\n ;\n ;\n };\n ;\n return cur;\n },\n sibling: function(n, elem) {\n var r = [];\n for (; n; n = n.nextSibling) {\n if (((((n.nodeType == 1)) && ((n != elem))))) {\n r.push(n);\n }\n ;\n ;\n };\n ;\n return r;\n }\n });\n jQuery.JSBNG__event = {\n add: function(elem, types, handler, data) {\n if (((((elem.nodeType == 3)) || ((elem.nodeType == 8))))) {\n return;\n }\n ;\n ;\n if (((jQuery.browser.msie && elem.JSBNG__setInterval))) {\n elem = window;\n }\n ;\n ;\n if (!handler.guid) {\n handler.guid = this.guid++;\n }\n ;\n ;\n if (((data != undefined))) {\n var fn = handler;\n handler = this.proxy(fn, function() {\n return fn.apply(this, arguments);\n });\n handler.data = data;\n }\n ;\n ;\n var events = ((jQuery.data(elem, \"events\") || jQuery.data(elem, \"events\", {\n }))), handle = ((jQuery.data(elem, \"handle\") || jQuery.data(elem, \"handle\", function() {\n if (((((typeof jQuery != \"undefined\")) && !jQuery.JSBNG__event.triggered))) {\n return jQuery.JSBNG__event.handle.apply(arguments.callee.elem, arguments);\n }\n ;\n ;\n })));\n handle.elem = elem;\n jQuery.each(types.split(/\\s+/), function(index, type) {\n var parts = type.split(\".\");\n type = parts[0];\n handler.type = parts[1];\n var handlers = events[type];\n if (!handlers) {\n handlers = events[type] = {\n };\n if (((!jQuery.JSBNG__event.special[type] || ((jQuery.JSBNG__event.special[type].setup.call(elem) === false))))) {\n if (elem.JSBNG__addEventListener) {\n elem.JSBNG__addEventListener(type, handle, false);\n }\n else {\n if (elem.JSBNG__attachEvent) {\n elem.JSBNG__attachEvent(((\"JSBNG__on\" + type)), handle);\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n handlers[handler.guid] = handler;\n jQuery.JSBNG__event.global[type] = true;\n });\n elem = null;\n },\n guid: 1,\n global: {\n },\n remove: function(elem, types, handler) {\n if (((((elem.nodeType == 3)) || ((elem.nodeType == 8))))) {\n return;\n }\n ;\n ;\n var events = jQuery.data(elem, \"events\"), ret, index;\n if (events) {\n if (((((types == undefined)) || ((((typeof types == \"string\")) && ((types.charAt(0) == \".\"))))))) {\n {\n var fin19keys = ((window.top.JSBNG_Replay.forInKeys)((events))), fin19i = (0);\n var type;\n for (; (fin19i < fin19keys.length); (fin19i++)) {\n ((type) = (fin19keys[fin19i]));\n {\n this.remove(elem, ((type + ((types || \"\")))));\n };\n };\n };\n ;\n }\n else {\n if (types.type) {\n handler = types.handler;\n types = types.type;\n }\n ;\n ;\n jQuery.each(types.split(/\\s+/), function(index, type) {\n var parts = type.split(\".\");\n type = parts[0];\n if (events[type]) {\n if (handler) {\n delete events[type][handler.guid];\n }\n else {\n {\n var fin20keys = ((window.top.JSBNG_Replay.forInKeys)((events[type]))), fin20i = (0);\n (0);\n for (; (fin20i < fin20keys.length); (fin20i++)) {\n ((handler) = (fin20keys[fin20i]));\n {\n if (((!parts[1] || ((events[type][handler].type == parts[1]))))) {\n delete events[type][handler];\n }\n ;\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n {\n var fin21keys = ((window.top.JSBNG_Replay.forInKeys)((events[type]))), fin21i = (0);\n (0);\n for (; (fin21i < fin21keys.length); (fin21i++)) {\n ((ret) = (fin21keys[fin21i]));\n {\n break;\n };\n };\n };\n ;\n if (!ret) {\n if (((!jQuery.JSBNG__event.special[type] || ((jQuery.JSBNG__event.special[type].teardown.call(elem) === false))))) {\n if (elem.JSBNG__removeEventListener) {\n elem.JSBNG__removeEventListener(type, jQuery.data(elem, \"handle\"), false);\n }\n else {\n if (elem.JSBNG__detachEvent) {\n elem.JSBNG__detachEvent(((\"JSBNG__on\" + type)), jQuery.data(elem, \"handle\"));\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n ret = null;\n delete events[type];\n }\n ;\n ;\n }\n ;\n ;\n });\n }\n ;\n ;\n {\n var fin22keys = ((window.top.JSBNG_Replay.forInKeys)((events))), fin22i = (0);\n (0);\n for (; (fin22i < fin22keys.length); (fin22i++)) {\n ((ret) = (fin22keys[fin22i]));\n {\n break;\n };\n };\n };\n ;\n if (!ret) {\n var handle = jQuery.data(elem, \"handle\");\n if (handle) {\n handle.elem = null;\n }\n ;\n ;\n jQuery.removeData(elem, \"events\");\n jQuery.removeData(elem, \"handle\");\n }\n ;\n ;\n }\n ;\n ;\n },\n trigger: function(type, data, elem, donative, extra) {\n data = jQuery.makeArray(data);\n if (((type.indexOf(\"!\") >= 0))) {\n type = type.slice(0, -1);\n var exclusive = true;\n }\n ;\n ;\n if (!elem) {\n if (this.global[type]) {\n jQuery(\"*\").add([window,JSBNG__document,]).trigger(type, data);\n }\n ;\n ;\n }\n else {\n if (((((elem.nodeType == 3)) || ((elem.nodeType == 8))))) {\n return undefined;\n }\n ;\n ;\n var val, ret, fn = jQuery.isFunction(((elem[type] || null))), JSBNG__event = ((!data[0] || !data[0].preventDefault));\n if (JSBNG__event) {\n data.unshift({\n type: type,\n target: elem,\n preventDefault: function() {\n \n },\n stopPropagation: function() {\n \n },\n timeStamp: now()\n });\n data[0][expando] = true;\n }\n ;\n ;\n data[0].type = type;\n if (exclusive) {\n data[0].exclusive = true;\n }\n ;\n ;\n var handle = jQuery.data(elem, \"handle\");\n if (handle) {\n val = handle.apply(elem, data);\n }\n ;\n ;\n if (((((((!fn || ((jQuery.nodeName(elem, \"a\") && ((type == \"click\")))))) && elem[((\"JSBNG__on\" + type))])) && ((elem[((\"JSBNG__on\" + type))].apply(elem, data) === false))))) {\n val = false;\n }\n ;\n ;\n if (JSBNG__event) {\n data.shift();\n }\n ;\n ;\n if (((extra && jQuery.isFunction(extra)))) {\n ret = extra.apply(elem, ((((val == null)) ? data : data.concat(val))));\n if (((ret !== undefined))) {\n val = ret;\n }\n ;\n ;\n }\n ;\n ;\n if (((((((fn && ((donative !== false)))) && ((val !== false)))) && !((jQuery.nodeName(elem, \"a\") && ((type == \"click\"))))))) {\n this.triggered = true;\n try {\n elem[type]();\n } catch (e) {\n \n };\n ;\n }\n ;\n ;\n this.triggered = false;\n }\n ;\n ;\n return val;\n },\n handle: function(JSBNG__event) {\n var val, ret, namespace, all, handlers;\n JSBNG__event = arguments[0] = jQuery.JSBNG__event.fix(((JSBNG__event || window.JSBNG__event)));\n namespace = JSBNG__event.type.split(\".\");\n JSBNG__event.type = namespace[0];\n namespace = namespace[1];\n all = ((!namespace && !JSBNG__event.exclusive));\n handlers = ((jQuery.data(this, \"events\") || {\n }))[JSBNG__event.type];\n {\n var fin23keys = ((window.top.JSBNG_Replay.forInKeys)((handlers))), fin23i = (0);\n var j;\n for (; (fin23i < fin23keys.length); (fin23i++)) {\n ((j) = (fin23keys[fin23i]));\n {\n var handler = handlers[j];\n if (((all || ((handler.type == namespace))))) {\n JSBNG__event.handler = handler;\n JSBNG__event.data = handler.data;\n ret = handler.apply(this, arguments);\n if (((val !== false))) {\n val = ret;\n }\n ;\n ;\n if (((ret === false))) {\n JSBNG__event.preventDefault();\n JSBNG__event.stopPropagation();\n }\n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n return val;\n },\n fix: function(JSBNG__event) {\n if (((JSBNG__event[expando] == true))) {\n return JSBNG__event;\n }\n ;\n ;\n var originalEvent = JSBNG__event;\n JSBNG__event = {\n originalEvent: originalEvent\n };\n var props = \"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which\".split(\" \");\n for (var i = props.length; i; i--) {\n JSBNG__event[props[i]] = originalEvent[props[i]];\n };\n ;\n JSBNG__event[expando] = true;\n JSBNG__event.preventDefault = function() {\n if (originalEvent.preventDefault) {\n originalEvent.preventDefault();\n }\n ;\n ;\n originalEvent.returnValue = false;\n };\n JSBNG__event.stopPropagation = function() {\n if (originalEvent.stopPropagation) {\n originalEvent.stopPropagation();\n }\n ;\n ;\n originalEvent.cancelBubble = true;\n };\n JSBNG__event.timeStamp = ((JSBNG__event.timeStamp || now()));\n if (!JSBNG__event.target) {\n JSBNG__event.target = ((JSBNG__event.srcElement || JSBNG__document));\n }\n ;\n ;\n if (((JSBNG__event.target.nodeType == 3))) {\n JSBNG__event.target = JSBNG__event.target.parentNode;\n }\n ;\n ;\n if (((!JSBNG__event.relatedTarget && JSBNG__event.fromElement))) {\n JSBNG__event.relatedTarget = ((((JSBNG__event.fromElement == JSBNG__event.target)) ? JSBNG__event.toElement : JSBNG__event.fromElement));\n }\n ;\n ;\n if (((((JSBNG__event.pageX == null)) && ((JSBNG__event.clientX != null))))) {\n var doc = JSBNG__document.documentElement, body = JSBNG__document.body;\n JSBNG__event.pageX = ((((JSBNG__event.clientX + ((((((doc && doc.scrollLeft)) || ((body && body.scrollLeft)))) || 0)))) - ((doc.clientLeft || 0))));\n JSBNG__event.pageY = ((((JSBNG__event.clientY + ((((((doc && doc.scrollTop)) || ((body && body.scrollTop)))) || 0)))) - ((doc.clientTop || 0))));\n }\n ;\n ;\n if (((!JSBNG__event.which && ((((JSBNG__event.charCode || ((JSBNG__event.charCode === 0)))) ? JSBNG__event.charCode : JSBNG__event.keyCode))))) {\n JSBNG__event.which = ((JSBNG__event.charCode || JSBNG__event.keyCode));\n }\n ;\n ;\n if (((!JSBNG__event.metaKey && JSBNG__event.ctrlKey))) {\n JSBNG__event.metaKey = JSBNG__event.ctrlKey;\n }\n ;\n ;\n if (((!JSBNG__event.which && JSBNG__event.button))) {\n JSBNG__event.which = ((((JSBNG__event.button & 1)) ? 1 : ((((JSBNG__event.button & 2)) ? 3 : ((((JSBNG__event.button & 4)) ? 2 : 0))))));\n }\n ;\n ;\n return JSBNG__event;\n },\n proxy: function(fn, proxy) {\n proxy.guid = fn.guid = ((((fn.guid || proxy.guid)) || this.guid++));\n return proxy;\n },\n special: {\n ready: {\n setup: function() {\n bindReady();\n return;\n },\n teardown: function() {\n return;\n }\n },\n mouseenter: {\n setup: function() {\n if (jQuery.browser.msie) {\n return false;\n }\n ;\n ;\n jQuery(this).bind(\"mouseover\", jQuery.JSBNG__event.special.mouseenter.handler);\n return true;\n },\n teardown: function() {\n if (jQuery.browser.msie) {\n return false;\n }\n ;\n ;\n jQuery(this).unbind(\"mouseover\", jQuery.JSBNG__event.special.mouseenter.handler);\n return true;\n },\n handler: function(JSBNG__event) {\n if (withinElement(JSBNG__event, this)) {\n return true;\n }\n ;\n ;\n JSBNG__event.type = \"mouseenter\";\n return jQuery.JSBNG__event.handle.apply(this, arguments);\n }\n },\n mouseleave: {\n setup: function() {\n if (jQuery.browser.msie) {\n return false;\n }\n ;\n ;\n jQuery(this).bind(\"mouseout\", jQuery.JSBNG__event.special.mouseleave.handler);\n return true;\n },\n teardown: function() {\n if (jQuery.browser.msie) {\n return false;\n }\n ;\n ;\n jQuery(this).unbind(\"mouseout\", jQuery.JSBNG__event.special.mouseleave.handler);\n return true;\n },\n handler: function(JSBNG__event) {\n if (withinElement(JSBNG__event, this)) {\n return true;\n }\n ;\n ;\n JSBNG__event.type = \"mouseleave\";\n return jQuery.JSBNG__event.handle.apply(this, arguments);\n }\n }\n }\n };\n jQuery.fn.extend({\n bind: function(type, data, fn) {\n return ((((type == \"unload\")) ? this.one(type, data, fn) : this.each(function() {\n jQuery.JSBNG__event.add(this, type, ((fn || data)), ((fn && data)));\n })));\n },\n one: function(type, data, fn) {\n var one = jQuery.JSBNG__event.proxy(((fn || data)), function(JSBNG__event) {\n jQuery(this).unbind(JSBNG__event, one);\n return ((fn || data)).apply(this, arguments);\n });\n return this.each(function() {\n jQuery.JSBNG__event.add(this, type, one, ((fn && data)));\n });\n },\n unbind: function(type, fn) {\n return this.each(function() {\n jQuery.JSBNG__event.remove(this, type, fn);\n });\n },\n trigger: function(type, data, fn) {\n return this.each(function() {\n jQuery.JSBNG__event.trigger(type, data, this, true, fn);\n });\n },\n triggerHandler: function(type, data, fn) {\n return ((this[0] && jQuery.JSBNG__event.trigger(type, data, this[0], false, fn)));\n },\n toggle: function(fn) {\n var args = arguments, i = 1;\n while (((i < args.length))) {\n jQuery.JSBNG__event.proxy(fn, args[i++]);\n };\n ;\n return this.click(jQuery.JSBNG__event.proxy(fn, function(JSBNG__event) {\n this.lastToggle = ((((this.lastToggle || 0)) % i));\n JSBNG__event.preventDefault();\n return ((args[this.lastToggle++].apply(this, arguments) || false));\n }));\n },\n hover: function(fnOver, fnOut) {\n return this.bind(\"mouseenter\", fnOver).bind(\"mouseleave\", fnOut);\n },\n ready: function(fn) {\n bindReady();\n if (jQuery.isReady) {\n fn.call(JSBNG__document, jQuery);\n }\n else {\n jQuery.readyList.push(function() {\n return fn.call(this, jQuery);\n });\n }\n ;\n ;\n return this;\n }\n });\n jQuery.extend({\n isReady: false,\n readyList: [],\n ready: function() {\n if (!jQuery.isReady) {\n jQuery.isReady = true;\n if (jQuery.readyList) {\n jQuery.each(jQuery.readyList, function() {\n this.call(JSBNG__document);\n });\n jQuery.readyList = null;\n }\n ;\n ;\n jQuery(JSBNG__document).triggerHandler(\"ready\");\n }\n ;\n ;\n }\n });\n var readyBound = false;\n function bindReady() {\n if (readyBound) {\n return;\n }\n ;\n ;\n readyBound = true;\n if (((JSBNG__document.JSBNG__addEventListener && !jQuery.browser.JSBNG__opera))) {\n JSBNG__document.JSBNG__addEventListener(\"DOMContentLoaded\", jQuery.ready, false);\n }\n ;\n ;\n if (((jQuery.browser.msie && ((window == JSBNG__top))))) {\n (function() {\n if (jQuery.isReady) {\n return;\n }\n ;\n ;\n try {\n JSBNG__document.documentElement.doScroll(\"left\");\n } catch (error) {\n JSBNG__setTimeout(arguments.callee, jQuery126PatchDelay);\n return;\n };\n ;\n jQuery.ready();\n })();\n }\n ;\n ;\n if (jQuery.browser.JSBNG__opera) {\n JSBNG__document.JSBNG__addEventListener(\"DOMContentLoaded\", function() {\n if (jQuery.isReady) {\n return;\n }\n ;\n ;\n for (var i = 0; ((i < JSBNG__document.styleSheets.length)); i++) {\n if (JSBNG__document.styleSheets[i].disabled) {\n JSBNG__setTimeout(arguments.callee, jQuery126PatchDelay);\n return;\n }\n ;\n ;\n };\n ;\n jQuery.ready();\n }, false);\n }\n ;\n ;\n if (jQuery.browser.safari) {\n var numStyles;\n (function() {\n if (jQuery.isReady) {\n return;\n }\n ;\n ;\n if (((((JSBNG__document.readyState != \"loaded\")) && ((JSBNG__document.readyState != \"complete\"))))) {\n JSBNG__setTimeout(arguments.callee, jQuery126PatchDelay);\n return;\n }\n ;\n ;\n if (((numStyles === undefined))) {\n numStyles = jQuery(\"style, link[rel=stylesheet]\").length;\n }\n ;\n ;\n if (((JSBNG__document.styleSheets.length != numStyles))) {\n JSBNG__setTimeout(arguments.callee, jQuery126PatchDelay);\n return;\n }\n ;\n ;\n jQuery.ready();\n })();\n }\n ;\n ;\n jQuery.JSBNG__event.add(window, \"load\", jQuery.ready);\n };\n ;\n jQuery.each(((((\"blur,focus,load,resize,scroll,unload,click,dblclick,\" + \"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,\")) + \"submit,keydown,keypress,keyup,error\")).split(\",\"), function(i, JSBNG__name) {\n jQuery.fn[JSBNG__name] = function(fn) {\n return ((fn ? this.bind(JSBNG__name, fn) : this.trigger(JSBNG__name)));\n };\n });\n var withinElement = function(JSBNG__event, elem) {\n var parent = JSBNG__event.relatedTarget;\n while (((parent && ((parent != elem))))) {\n try {\n parent = parent.parentNode;\n } catch (error) {\n parent = elem;\n };\n ;\n };\n ;\n return ((parent == elem));\n };\n jQuery(window).bind(\"unload\", function() {\n jQuery(\"*\").add(JSBNG__document).unbind();\n });\n jQuery.fn.extend({\n _load: jQuery.fn.load,\n load: function(url, params, callback) {\n if (((typeof url != \"string\"))) {\n return this._load(url);\n }\n ;\n ;\n var off = url.indexOf(\" \");\n if (((off >= 0))) {\n var selector = url.slice(off, url.length);\n url = url.slice(0, off);\n }\n ;\n ;\n callback = ((callback || function() {\n \n }));\n var type = \"GET\";\n if (params) {\n if (jQuery.isFunction(params)) {\n callback = params;\n params = null;\n }\n else {\n params = jQuery.param(params);\n type = \"POST\";\n }\n ;\n ;\n }\n ;\n ;\n var JSBNG__self = this;\n jQuery.ajax({\n url: url,\n type: type,\n dataType: \"html\",\n data: params,\n complete: function(res, JSBNG__status) {\n if (((((JSBNG__status == \"success\")) || ((JSBNG__status == \"notmodified\"))))) {\n JSBNG__self.html(((selector ? jQuery(\"\\u003Cdiv/\\u003E\").append(res.responseText.replace(/<script(.|\\s)*?\\/script>/g, \"\")).JSBNG__find(selector) : res.responseText)));\n }\n ;\n ;\n JSBNG__self.each(callback, [res.responseText,JSBNG__status,res,]);\n }\n });\n return this;\n },\n serialize: function() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function() {\n return this.map(function() {\n return ((jQuery.nodeName(this, \"form\") ? jQuery.makeArray(this.elements) : this));\n }).filter(function() {\n return ((((this.JSBNG__name && !this.disabled)) && ((((this.checked || /select|textarea/i.test(this.nodeName))) || /text|hidden|password/i.test(this.type)))));\n }).map(function(i, elem) {\n var val = jQuery(this).val();\n return ((((val == null)) ? null : ((((val.constructor == Array)) ? jQuery.map(val, function(val, i) {\n return {\n JSBNG__name: elem.JSBNG__name,\n value: val\n };\n }) : {\n JSBNG__name: elem.JSBNG__name,\n value: val\n }))));\n }).get();\n }\n });\n jQuery.each(\"ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend\".split(\",\"), function(i, o) {\n jQuery.fn[o] = function(f) {\n return this.bind(o, f);\n };\n });\n var jsc = now();\n jQuery.extend({\n get: function(url, data, callback, type) {\n if (jQuery.isFunction(data)) {\n callback = data;\n data = null;\n }\n ;\n ;\n return jQuery.ajax({\n type: \"GET\",\n url: url,\n data: data,\n success: callback,\n dataType: type\n });\n },\n getScript: function(url, callback) {\n return jQuery.get(url, null, callback, \"script\");\n },\n getJSON: function(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n post: function(url, data, callback, type) {\n if (jQuery.isFunction(data)) {\n callback = data;\n data = {\n };\n }\n ;\n ;\n return jQuery.ajax({\n type: \"POST\",\n url: url,\n data: data,\n success: callback,\n dataType: type\n });\n },\n ajaxSetup: function(settings) {\n jQuery.extend(jQuery.ajaxSettings, settings);\n },\n ajaxSettings: {\n url: JSBNG__location.href,\n global: true,\n type: \"GET\",\n timeout: 0,\n contentType: \"application/x-www-form-urlencoded\",\n processData: true,\n async: true,\n data: null,\n username: null,\n password: null,\n accepts: {\n xml: \"application/xml, text/xml\",\n html: \"text/html\",\n script: \"text/javascript, application/javascript\",\n json: \"application/json, text/javascript\",\n text: \"text/plain\",\n _default: \"*/*\"\n }\n },\n lastModified: {\n },\n ajax: function(s) {\n s = jQuery.extend(true, s, jQuery.extend(true, {\n }, jQuery.ajaxSettings, s));\n var jsonp, jsre = /=\\?(&|$)/g, JSBNG__status, data, type = s.type.toUpperCase();\n if (((((s.data && s.processData)) && ((typeof s.data != \"string\"))))) {\n s.data = jQuery.param(s.data);\n }\n ;\n ;\n if (((s.dataType == \"jsonp\"))) {\n if (((type == \"GET\"))) {\n if (!s.url.match(jsre)) {\n s.url += ((((((s.url.match(/\\?/) ? \"&\" : \"?\")) + ((s.jsonp || \"callback\")))) + \"=?\"));\n }\n ;\n ;\n }\n else {\n if (((!s.data || !s.data.match(jsre)))) {\n s.data = ((((((s.data ? ((s.data + \"&\")) : \"\")) + ((s.jsonp || \"callback\")))) + \"=?\"));\n }\n ;\n ;\n }\n ;\n ;\n s.dataType = \"json\";\n }\n ;\n ;\n if (((((s.dataType == \"json\")) && ((((s.data && s.data.match(jsre))) || s.url.match(jsre)))))) {\n jsonp = ((\"jsonp\" + jsc++));\n if (s.data) {\n s.data = ((s.data + \"\")).replace(jsre, ((((\"=\" + jsonp)) + \"$1\")));\n }\n ;\n ;\n s.url = s.url.replace(jsre, ((((\"=\" + jsonp)) + \"$1\")));\n s.dataType = \"script\";\n window[jsonp] = function(tmp) {\n data = tmp;\n success();\n complete();\n window[jsonp] = undefined;\n try {\n delete window[jsonp];\n } catch (e) {\n \n };\n ;\n if (head) {\n head.removeChild(script);\n }\n ;\n ;\n };\n }\n ;\n ;\n if (((((s.dataType == \"script\")) && ((s.cache == null))))) {\n s.cache = false;\n }\n ;\n ;\n if (((((s.cache === false)) && ((type == \"GET\"))))) {\n var ts = now();\n var ret = s.url.replace(/(\\?|&)_=.*?(&|$)/, ((((\"$1_=\" + ts)) + \"$2\")));\n s.url = ((ret + ((((ret == s.url)) ? ((((((s.url.match(/\\?/) ? \"&\" : \"?\")) + \"_=\")) + ts)) : \"\"))));\n }\n ;\n ;\n if (((s.data && ((type == \"GET\"))))) {\n s.url += ((((s.url.match(/\\?/) ? \"&\" : \"?\")) + s.data));\n s.data = null;\n }\n ;\n ;\n if (((s.global && !jQuery.active++))) {\n jQuery.JSBNG__event.trigger(\"ajaxStart\");\n }\n ;\n ;\n var remote = /^(?:\\w+:)?\\/\\/([^\\/?#]+)/;\n if (((((((((s.dataType == \"script\")) && ((type == \"GET\")))) && remote.test(s.url))) && ((remote.exec(s.url)[1] != JSBNG__location.host))))) {\n var head = JSBNG__document.getElementsByTagName(\"head\")[0];\n var script = JSBNG__document.createElement(\"script\");\n script.src = s.url;\n if (s.scriptCharset) {\n script.charset = s.scriptCharset;\n }\n ;\n ;\n if (!jsonp) {\n var done = false;\n script.JSBNG__onload = script.onreadystatechange = function() {\n if (((!done && ((((!this.readyState || ((this.readyState == \"loaded\")))) || ((this.readyState == \"complete\"))))))) {\n done = true;\n success();\n complete();\n head.removeChild(script);\n }\n ;\n ;\n };\n }\n ;\n ;\n head.appendChild(script);\n return undefined;\n }\n ;\n ;\n var requestDone = false;\n var xhr = ((window.ActiveXObject ? new ActiveXObject(\"Microsoft.XMLHTTP\") : new JSBNG__XMLHttpRequest()));\n if (s.username) {\n xhr.open(type, s.url, s.async, s.username, s.password);\n }\n else {\n xhr.open(type, s.url, s.async);\n }\n ;\n ;\n try {\n if (s.data) {\n xhr.setRequestHeader(\"Content-Type\", s.contentType);\n }\n ;\n ;\n if (s.ifModified) {\n xhr.setRequestHeader(\"If-Modified-Since\", ((jQuery.lastModified[s.url] || \"Thu, 01 Jan 1970 00:00:00 GMT\")));\n }\n ;\n ;\n xhr.setRequestHeader(\"X-Requested-With\", \"JSBNG__XMLHttpRequest\");\n xhr.setRequestHeader(\"Accept\", ((((s.dataType && s.accepts[s.dataType])) ? ((s.accepts[s.dataType] + \", */*\")) : s.accepts._default)));\n } catch (e) {\n \n };\n ;\n if (((s.beforeSend && ((s.beforeSend(xhr, s) === false))))) {\n ((s.global && jQuery.active--));\n xhr.abort();\n return false;\n }\n ;\n ;\n if (s.global) {\n jQuery.JSBNG__event.trigger(\"ajaxSend\", [xhr,s,]);\n }\n ;\n ;\n var onreadystatechange = function(isTimeout) {\n if (((((!requestDone && xhr)) && ((((xhr.readyState == 4)) || ((isTimeout == \"timeout\"))))))) {\n requestDone = true;\n if (ival) {\n JSBNG__clearInterval(ival);\n ival = null;\n }\n ;\n ;\n JSBNG__status = ((((((((((isTimeout == \"timeout\")) && \"timeout\")) || ((!jQuery.httpSuccess(xhr) && \"error\")))) || ((((s.ifModified && jQuery.httpNotModified(xhr, s.url))) && \"notmodified\")))) || \"success\"));\n if (((JSBNG__status == \"success\"))) {\n try {\n data = jQuery.httpData(xhr, s.dataType, s.dataFilter);\n } catch (e) {\n JSBNG__status = \"parsererror\";\n };\n ;\n }\n ;\n ;\n if (((JSBNG__status == \"success\"))) {\n var modRes;\n try {\n modRes = xhr.getResponseHeader(\"Last-Modified\");\n } catch (e) {\n \n };\n ;\n if (((s.ifModified && modRes))) {\n jQuery.lastModified[s.url] = modRes;\n }\n ;\n ;\n if (!jsonp) {\n success();\n }\n ;\n ;\n }\n else {\n jQuery.handleError(s, xhr, JSBNG__status);\n }\n ;\n ;\n complete();\n if (s.async) {\n xhr = null;\n }\n ;\n ;\n }\n ;\n ;\n };\n if (s.async) {\n var ival = JSBNG__setInterval(onreadystatechange, 13);\n if (((s.timeout > 0))) {\n JSBNG__setTimeout(function() {\n if (xhr) {\n xhr.abort();\n if (!requestDone) {\n onreadystatechange(\"timeout\");\n }\n ;\n ;\n }\n ;\n ;\n }, s.timeout);\n }\n ;\n ;\n }\n ;\n ;\n try {\n xhr.send(s.data);\n } catch (e) {\n jQuery.handleError(s, xhr, null, e);\n };\n ;\n if (!s.async) {\n onreadystatechange();\n }\n ;\n ;\n function success() {\n if (s.success) {\n s.success(data, JSBNG__status);\n }\n ;\n ;\n if (s.global) {\n jQuery.JSBNG__event.trigger(\"ajaxSuccess\", [xhr,s,]);\n }\n ;\n ;\n };\n ;\n function complete() {\n if (s.complete) {\n s.complete(xhr, JSBNG__status);\n }\n ;\n ;\n if (s.global) {\n jQuery.JSBNG__event.trigger(\"ajaxComplete\", [xhr,s,]);\n }\n ;\n ;\n if (((s.global && !--jQuery.active))) {\n jQuery.JSBNG__event.trigger(\"ajaxStop\");\n }\n ;\n ;\n };\n ;\n return xhr;\n },\n handleError: function(s, xhr, JSBNG__status, e) {\n if (s.error) {\n s.error(xhr, JSBNG__status, e);\n }\n ;\n ;\n if (s.global) {\n jQuery.JSBNG__event.trigger(\"ajaxError\", [xhr,s,e,]);\n }\n ;\n ;\n },\n active: 0,\n httpSuccess: function(xhr) {\n try {\n return ((((((((((!xhr.JSBNG__status && ((JSBNG__location.protocol == \"file:\")))) || ((((xhr.JSBNG__status >= 200)) && ((xhr.JSBNG__status < 300)))))) || ((xhr.JSBNG__status == 304)))) || ((xhr.JSBNG__status == 1223)))) || ((jQuery.browser.safari && ((xhr.JSBNG__status == undefined))))));\n } catch (e) {\n \n };\n ;\n return false;\n },\n httpNotModified: function(xhr, url) {\n try {\n var xhrRes = xhr.getResponseHeader(\"Last-Modified\");\n return ((((((xhr.JSBNG__status == 304)) || ((xhrRes == jQuery.lastModified[url])))) || ((jQuery.browser.safari && ((xhr.JSBNG__status == undefined))))));\n } catch (e) {\n \n };\n ;\n return false;\n },\n httpData: function(xhr, type, filter) {\n var ct = xhr.getResponseHeader(\"content-type\"), xml = ((((type == \"xml\")) || ((((!type && ct)) && ((ct.indexOf(\"xml\") >= 0)))))), data = ((xml ? xhr.responseXML : xhr.responseText));\n if (((xml && ((data.documentElement.tagName == \"parsererror\"))))) {\n throw \"parsererror\";\n }\n ;\n ;\n if (filter) {\n data = filter(data, type);\n }\n ;\n ;\n if (((type == \"script\"))) {\n jQuery.globalEval(data);\n }\n ;\n ;\n if (((type == \"json\"))) {\n data = eval(((((\"(\" + data)) + \")\")));\n }\n ;\n ;\n return data;\n },\n param: function(a) {\n var s = [];\n if (((((a.constructor == Array)) || a.jquery))) {\n jQuery.each(a, function() {\n s.push(((((encodeURIComponent(this.JSBNG__name) + \"=\")) + encodeURIComponent(this.value))));\n });\n }\n else {\n {\n var fin24keys = ((window.top.JSBNG_Replay.forInKeys)((a))), fin24i = (0);\n var j;\n for (; (fin24i < fin24keys.length); (fin24i++)) {\n ((j) = (fin24keys[fin24i]));\n {\n if (((a[j] && ((a[j].constructor == Array))))) {\n jQuery.each(a[j], function() {\n s.push(((((encodeURIComponent(j) + \"=\")) + encodeURIComponent(this))));\n });\n }\n else {\n s.push(((((encodeURIComponent(j) + \"=\")) + encodeURIComponent(((jQuery.isFunction(a[j]) ? a[j]() : a[j]))))));\n }\n ;\n ;\n };\n };\n };\n ;\n }\n ;\n ;\n return s.join(\"&\").replace(/%20/g, \"+\");\n }\n });\n jQuery.fn.extend({\n show: function(speed, callback) {\n return ((speed ? this.animate({\n height: \"show\",\n width: \"show\",\n opacity: \"show\"\n }, speed, callback) : this.filter(\":hidden\").each(function() {\n this.style.display = ((this.oldblock || \"\"));\n if (((jQuery.css(this, \"display\") == \"none\"))) {\n var elem = jQuery(((((\"\\u003C\" + this.tagName)) + \" /\\u003E\"))).appendTo(\"body\");\n this.style.display = elem.css(\"display\");\n if (((this.style.display == \"none\"))) {\n this.style.display = \"block\";\n }\n ;\n ;\n elem.remove();\n }\n ;\n ;\n }).end()));\n },\n hide: function(speed, callback) {\n return ((speed ? this.animate({\n height: \"hide\",\n width: \"hide\",\n opacity: \"hide\"\n }, speed, callback) : this.filter(\":visible\").each(function() {\n this.oldblock = ((this.oldblock || jQuery.css(this, \"display\")));\n this.style.display = \"none\";\n }).end()));\n },\n _toggle: jQuery.fn.toggle,\n toggle: function(fn, fn2) {\n return ((((jQuery.isFunction(fn) && jQuery.isFunction(fn2))) ? this._toggle.apply(this, arguments) : ((fn ? this.animate({\n height: \"toggle\",\n width: \"toggle\",\n opacity: \"toggle\"\n }, fn, fn2) : this.each(function() {\n jQuery(this)[((jQuery(this).is(\":hidden\") ? \"show\" : \"hide\"))]();\n })))));\n },\n slideDown: function(speed, callback) {\n return this.animate({\n height: \"show\"\n }, speed, callback);\n },\n slideUp: function(speed, callback) {\n return this.animate({\n height: \"hide\"\n }, speed, callback);\n },\n slideToggle: function(speed, callback) {\n return this.animate({\n height: \"toggle\"\n }, speed, callback);\n },\n fadeIn: function(speed, callback) {\n return this.animate({\n opacity: \"show\"\n }, speed, callback);\n },\n fadeOut: function(speed, callback) {\n return this.animate({\n opacity: \"hide\"\n }, speed, callback);\n },\n fadeTo: function(speed, to, callback) {\n return this.animate({\n opacity: to\n }, speed, callback);\n },\n animate: function(prop, speed, easing, callback) {\n var optall = jQuery.speed(speed, easing, callback);\n return this[((((optall.queue === false)) ? \"each\" : \"queue\"))](function() {\n if (((this.nodeType != 1))) {\n return false;\n }\n ;\n ;\n var opt = jQuery.extend({\n }, optall), p, hidden = jQuery(this).is(\":hidden\"), JSBNG__self = this;\n {\n var fin25keys = ((window.top.JSBNG_Replay.forInKeys)((prop))), fin25i = (0);\n (0);\n for (; (fin25i < fin25keys.length); (fin25i++)) {\n ((p) = (fin25keys[fin25i]));\n {\n if (((((((prop[p] == \"hide\")) && hidden)) || ((((prop[p] == \"show\")) && !hidden))))) {\n return opt.complete.call(this);\n }\n ;\n ;\n if (((((p == \"height\")) || ((p == \"width\"))))) {\n opt.display = jQuery.css(this, \"display\");\n opt.overflow = this.style.overflow;\n }\n ;\n ;\n };\n };\n };\n ;\n if (((opt.overflow != null))) {\n this.style.overflow = \"hidden\";\n }\n ;\n ;\n opt.curAnim = jQuery.extend({\n }, prop);\n jQuery.each(prop, function(JSBNG__name, val) {\n var e = new jQuery.fx(JSBNG__self, opt, JSBNG__name);\n if (/toggle|show|hide/.test(val)) {\n e[((((val == \"toggle\")) ? ((hidden ? \"show\" : \"hide\")) : val))](prop);\n }\n else {\n var parts = val.toString().match(/^([+-]=)?([\\d+-.]+)(.*)$/), start = ((e.cur(true) || 0));\n if (parts) {\n var end = parseFloat(parts[2]), unit = ((parts[3] || \"px\"));\n if (((unit != \"px\"))) {\n JSBNG__self.style[JSBNG__name] = ((((end || 1)) + unit));\n start = ((((((end || 1)) / e.cur(true))) * start));\n JSBNG__self.style[JSBNG__name] = ((start + unit));\n }\n ;\n ;\n if (parts[1]) {\n end = ((((((((parts[1] == \"-=\")) ? -1 : 1)) * end)) + start));\n }\n ;\n ;\n e.custom(start, end, unit);\n }\n else {\n e.custom(start, val, \"\");\n }\n ;\n ;\n }\n ;\n ;\n });\n return true;\n });\n },\n queue: function(type, fn) {\n if (((jQuery.isFunction(type) || ((type && ((type.constructor == Array))))))) {\n fn = type;\n type = \"fx\";\n }\n ;\n ;\n if (((!type || ((((typeof type == \"string\")) && !fn))))) {\n return queue(this[0], type);\n }\n ;\n ;\n return this.each(function() {\n if (((fn.constructor == Array))) {\n queue(this, type, fn);\n }\n else {\n queue(this, type).push(fn);\n if (((queue(this, type).length == 1))) {\n fn.call(this);\n }\n ;\n ;\n }\n ;\n ;\n });\n },\n JSBNG__stop: function(clearQueue, gotoEnd) {\n var timers = jQuery.timers;\n if (clearQueue) {\n this.queue([]);\n }\n ;\n ;\n this.each(function() {\n for (var i = ((timers.length - 1)); ((i >= 0)); i--) {\n if (((timers[i].elem == this))) {\n if (gotoEnd) {\n timers[i](true);\n }\n ;\n ;\n timers.splice(i, 1);\n }\n ;\n ;\n };\n ;\n });\n if (!gotoEnd) {\n this.dequeue();\n }\n ;\n ;\n return this;\n }\n });\n var queue = function(elem, type, array) {\n if (elem) {\n type = ((type || \"fx\"));\n var q = jQuery.data(elem, ((type + \"queue\")));\n if (((!q || array))) {\n q = jQuery.data(elem, ((type + \"queue\")), jQuery.makeArray(array));\n }\n ;\n ;\n }\n ;\n ;\n return q;\n };\n jQuery.fn.dequeue = function(type) {\n type = ((type || \"fx\"));\n return this.each(function() {\n var q = queue(this, type);\n q.shift();\n if (q.length) {\n q[0].call(this);\n }\n ;\n ;\n });\n };\n jQuery.extend({\n speed: function(speed, easing, fn) {\n var opt = ((((speed && ((speed.constructor == Object)))) ? speed : {\n complete: ((((fn || ((!fn && easing)))) || ((jQuery.isFunction(speed) && speed)))),\n duration: speed,\n easing: ((((fn && easing)) || ((((easing && ((easing.constructor != Function)))) && easing))))\n }));\n opt.duration = ((((((opt.duration && ((opt.duration.constructor == Number)))) ? opt.duration : jQuery.fx.speeds[opt.duration])) || jQuery.fx.speeds.def));\n opt.old = opt.complete;\n opt.complete = function() {\n if (((opt.queue !== false))) {\n jQuery(this).dequeue();\n }\n ;\n ;\n if (jQuery.isFunction(opt.old)) {\n opt.old.call(this);\n }\n ;\n ;\n };\n return opt;\n },\n easing: {\n linear: function(p, n, firstNum, diff) {\n return ((firstNum + ((diff * p))));\n },\n swing: function(p, n, firstNum, diff) {\n return ((((((((-Math.cos(((p * Math.PI))) / 2)) + 51337)) * diff)) + firstNum));\n }\n },\n timers: [],\n timerId: null,\n fx: function(elem, options, prop) {\n this.options = options;\n this.elem = elem;\n this.prop = prop;\n if (!options.orig) {\n options.orig = {\n };\n }\n ;\n ;\n }\n });\n jQuery.fx.prototype = {\n update: function() {\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n ;\n ;\n ((jQuery.fx.step[this.prop] || jQuery.fx.step._default))(this);\n if (((((this.prop == \"height\")) || ((this.prop == \"width\"))))) {\n this.elem.style.display = \"block\";\n }\n ;\n ;\n },\n cur: function(force) {\n if (((((this.elem[this.prop] != null)) && ((this.elem.style[this.prop] == null))))) {\n return this.elem[this.prop];\n }\n ;\n ;\n var r = parseFloat(jQuery.css(this.elem, this.prop, force));\n return ((((r && ((r > -10000)))) ? r : ((parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0))));\n },\n custom: function(from, to, unit) {\n this.startTime = now();\n this.start = from;\n this.end = to;\n this.unit = ((((unit || this.unit)) || \"px\"));\n this.now = this.start;\n this.pos = this.state = 0;\n this.update();\n var JSBNG__self = this;\n function t(gotoEnd) {\n return JSBNG__self.step(gotoEnd);\n };\n ;\n t.elem = this.elem;\n jQuery.timers.push(t);\n if (((jQuery.timerId == null))) {\n jQuery.timerId = JSBNG__setInterval(function() {\n var timers = jQuery.timers;\n for (var i = 0; ((i < timers.length)); i++) {\n if (!timers[i]()) {\n timers.splice(i--, 1);\n }\n ;\n ;\n };\n ;\n if (!timers.length) {\n JSBNG__clearInterval(jQuery.timerId);\n jQuery.timerId = null;\n }\n ;\n ;\n }, 13);\n }\n ;\n ;\n },\n show: function() {\n this.options.orig[this.prop] = jQuery.attr(this.elem.style, this.prop);\n this.options.show = true;\n this.custom(0, this.cur());\n if (((((this.prop == \"width\")) || ((this.prop == \"height\"))))) {\n this.elem.style[this.prop] = \"1px\";\n }\n ;\n ;\n jQuery(this.elem).show();\n },\n hide: function() {\n this.options.orig[this.prop] = jQuery.attr(this.elem.style, this.prop);\n this.options.hide = true;\n this.custom(this.cur(), 0);\n },\n step: function(gotoEnd) {\n var t = now();\n if (((gotoEnd || ((t > ((this.options.duration + this.startTime))))))) {\n this.now = this.end;\n this.pos = this.state = 1;\n this.update();\n this.options.curAnim[this.prop] = true;\n var done = true;\n {\n var fin26keys = ((window.top.JSBNG_Replay.forInKeys)((this.options.curAnim))), fin26i = (0);\n var i;\n for (; (fin26i < fin26keys.length); (fin26i++)) {\n ((i) = (fin26keys[fin26i]));\n {\n if (((this.options.curAnim[i] !== true))) {\n done = false;\n }\n ;\n ;\n };\n };\n };\n ;\n if (done) {\n if (((this.options.display != null))) {\n this.elem.style.overflow = this.options.overflow;\n this.elem.style.display = this.options.display;\n if (((jQuery.css(this.elem, \"display\") == \"none\"))) {\n this.elem.style.display = \"block\";\n }\n ;\n ;\n }\n ;\n ;\n if (this.options.hide) {\n this.elem.style.display = \"none\";\n }\n ;\n ;\n if (((this.options.hide || this.options.show))) {\n {\n var fin27keys = ((window.top.JSBNG_Replay.forInKeys)((this.options.curAnim))), fin27i = (0);\n var p;\n for (; (fin27i < fin27keys.length); (fin27i++)) {\n ((p) = (fin27keys[fin27i]));\n {\n jQuery.attr(this.elem.style, p, this.options.orig[p]);\n };\n };\n };\n ;\n }\n ;\n ;\n }\n ;\n ;\n if (done) {\n this.options.complete.call(this.elem);\n }\n ;\n ;\n return false;\n }\n else {\n var n = ((t - this.startTime));\n this.state = ((n / this.options.duration));\n this.pos = jQuery.easing[((this.options.easing || ((jQuery.easing.swing ? \"swing\" : \"linear\"))))](this.state, n, 0, 1, this.options.duration);\n this.now = ((this.start + ((((this.end - this.start)) * this.pos))));\n this.update();\n }\n ;\n ;\n return true;\n }\n };\n jQuery.extend(jQuery.fx, {\n speeds: {\n slow: 600,\n fast: 200,\n def: 400\n },\n step: {\n scrollLeft: function(fx) {\n fx.elem.scrollLeft = fx.now;\n },\n scrollTop: function(fx) {\n fx.elem.scrollTop = fx.now;\n },\n opacity: function(fx) {\n jQuery.attr(fx.elem.style, \"opacity\", fx.now);\n },\n _default: function(fx) {\n fx.elem.style[fx.prop] = ((fx.now + fx.unit));\n }\n }\n });\n jQuery.fn.offset = function() {\n var left = 0, JSBNG__top = 0, elem = this[0], results;\n if (elem) {\n with (jQuery.browser) {\n var parent = elem.parentNode, offsetChild = elem, offsetParent = elem.offsetParent, doc = elem.ownerDocument, safari2 = ((((safari && ((parseInt(version) < 522)))) && !/adobeair/i.test(userAgent))), css = jQuery.curCSS, fixed = ((css(elem, \"position\") == \"fixed\"));\n if (elem.getBoundingClientRect) {\n var box = elem.getBoundingClientRect();\n add(((box.left + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft))), ((box.JSBNG__top + Math.max(doc.documentElement.scrollTop, doc.body.scrollTop))));\n add(-doc.documentElement.clientLeft, -doc.documentElement.clientTop);\n }\n else {\n add(elem.offsetLeft, elem.offsetTop);\n while (offsetParent) {\n add(offsetParent.offsetLeft, offsetParent.offsetTop);\n if (((((mozilla && !/^t(able|d|h)$/i.test(offsetParent.tagName))) || ((safari && !safari2))))) {\n border(offsetParent);\n }\n ;\n ;\n if (((!fixed && ((css(offsetParent, \"position\") == \"fixed\"))))) {\n fixed = true;\n }\n ;\n ;\n offsetChild = ((/^body$/i.test(offsetParent.tagName) ? offsetChild : offsetParent));\n offsetParent = offsetParent.offsetParent;\n };\n ;\n while (((((parent && parent.tagName)) && !/^body|html$/i.test(parent.tagName)))) {\n if (!/^inline|table.*$/i.test(css(parent, \"display\"))) {\n add(-parent.scrollLeft, -parent.scrollTop);\n }\n ;\n ;\n if (((mozilla && ((css(parent, \"overflow\") != \"visible\"))))) {\n border(parent);\n }\n ;\n ;\n parent = parent.parentNode;\n };\n ;\n if (((((safari2 && ((fixed || ((css(offsetChild, \"position\") == \"absolute\")))))) || ((mozilla && ((css(offsetChild, \"position\") != \"absolute\"))))))) {\n add(-doc.body.offsetLeft, -doc.body.offsetTop);\n }\n ;\n ;\n if (fixed) {\n add(Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft), Math.max(doc.documentElement.scrollTop, doc.body.scrollTop));\n }\n ;\n ;\n }\n ;\n ;\n results = {\n JSBNG__top: JSBNG__top,\n left: left\n };\n };\n ;\n }\n ;\n ;\n function border(elem) {\n add(jQuery.curCSS(elem, \"borderLeftWidth\", true), jQuery.curCSS(elem, \"borderTopWidth\", true));\n };\n ;\n function add(l, t) {\n left += ((parseInt(l, 10) || 0));\n JSBNG__top += ((parseInt(t, 10) || 0));\n };\n ;\n return results;\n };\n jQuery.fn.extend({\n position: function() {\n var left = 0, JSBNG__top = 0, results;\n if (this[0]) {\n var offsetParent = this.offsetParent(), offset = this.offset(), parentOffset = ((/^body|html$/i.test(offsetParent[0].tagName) ? {\n JSBNG__top: 0,\n left: 0\n } : offsetParent.offset()));\n offset.JSBNG__top -= num(this, \"marginTop\");\n offset.left -= num(this, \"marginLeft\");\n parentOffset.JSBNG__top += num(offsetParent, \"borderTopWidth\");\n parentOffset.left += num(offsetParent, \"borderLeftWidth\");\n results = {\n JSBNG__top: ((offset.JSBNG__top - parentOffset.JSBNG__top)),\n left: ((offset.left - parentOffset.left))\n };\n }\n ;\n ;\n return results;\n },\n offsetParent: function() {\n var offsetParent = this[0].offsetParent;\n while (((offsetParent && ((!/^body|html$/i.test(offsetParent.tagName) && ((jQuery.css(offsetParent, \"position\") == \"static\"))))))) {\n offsetParent = offsetParent.offsetParent;\n };\n ;\n return jQuery(offsetParent);\n }\n });\n jQuery.each([\"Left\",\"Top\",], function(i, JSBNG__name) {\n var method = ((\"JSBNG__scroll\" + JSBNG__name));\n jQuery.fn[method] = function(val) {\n if (!this[0]) {\n return;\n }\n ;\n ;\n return ((((val != undefined)) ? this.each(function() {\n ((((((this == window)) || ((this == JSBNG__document)))) ? window.JSBNG__scrollTo(((!i ? val : jQuery(window).scrollLeft())), ((i ? val : jQuery(window).scrollTop()))) : this[method] = val));\n }) : ((((((this[0] == window)) || ((this[0] == JSBNG__document)))) ? ((((JSBNG__self[((i ? \"JSBNG__pageYOffset\" : \"JSBNG__pageXOffset\"))] || ((jQuery.boxModel && JSBNG__document.documentElement[method])))) || JSBNG__document.body[method])) : this[0][method]))));\n };\n });\n jQuery.each([\"Height\",\"Width\",], function(i, JSBNG__name) {\n var tl = ((i ? \"Left\" : \"Top\")), br = ((i ? \"Right\" : \"Bottom\"));\n jQuery.fn[((\"JSBNG__inner\" + JSBNG__name))] = function() {\n return ((((this[JSBNG__name.toLowerCase()]() + num(this, ((\"padding\" + tl))))) + num(this, ((\"padding\" + br)))));\n };\n jQuery.fn[((\"JSBNG__outer\" + JSBNG__name))] = function(margin) {\n return ((((((this[((\"JSBNG__inner\" + JSBNG__name))]() + num(this, ((((\"border\" + tl)) + \"Width\"))))) + num(this, ((((\"border\" + br)) + \"Width\"))))) + ((margin ? ((num(this, ((\"margin\" + tl))) + num(this, ((\"margin\" + br))))) : 0))));\n };\n });\n };\n if (window.amznJQ) {\n amznJQ.initJQuery = initJQuery;\n }\n else {\n initJQuery();\n }\n ;\n ;\n })();\n (function() {\n var patchJQuery = function(jQuery) {\n var $ = jQuery;\n if (!jQuery) {\n return;\n }\n ;\n ;\n jQuery.fn.offset126 = jQuery.fn.offset;\n if (JSBNG__document.documentElement[\"getBoundingClientRect\"]) {\n jQuery.fn.offset = function() {\n if (!this[0]) {\n return {\n JSBNG__top: 0,\n left: 0\n };\n }\n ;\n ;\n if (((this[0] === this[0].ownerDocument.body))) {\n return jQuery.offset.bodyOffset(this[0]);\n }\n ;\n ;\n var box = this[0].getBoundingClientRect(), doc = this[0].ownerDocument, body = doc.body, docElem = doc.documentElement, ieTouch = ((JSBNG__navigator.msMaxTouchPoints > 0)), clientTop = ((((docElem.clientTop || body.clientTop)) || 0)), clientLeft = ((((docElem.clientLeft || body.clientLeft)) || 0)), JSBNG__top = ((((box.JSBNG__top + ((((((!ieTouch && JSBNG__self.JSBNG__pageYOffset)) || ((jQuery.boxModel && docElem.scrollTop)))) || body.scrollTop)))) - clientTop)), left = ((((box.left + ((((((!ieTouch && JSBNG__self.JSBNG__pageXOffset)) || ((jQuery.boxModel && docElem.scrollLeft)))) || body.scrollLeft)))) - clientLeft));\n return {\n JSBNG__top: JSBNG__top,\n left: left\n };\n };\n }\n else {\n jQuery.fn.offset = function() {\n if (!this[0]) {\n return {\n JSBNG__top: 0,\n left: 0\n };\n }\n ;\n ;\n if (((this[0] === this[0].ownerDocument.body))) {\n return jQuery.offset.bodyOffset(this[0]);\n }\n ;\n ;\n ((jQuery.offset.initialized || jQuery.offset.initialize()));\n var elem = this[0], offsetParent = elem.offsetParent, prevOffsetParent = elem, doc = elem.ownerDocument, computedStyle, docElem = doc.documentElement, body = doc.body, defaultView = doc.defaultView, prevComputedStyle = defaultView.JSBNG__getComputedStyle(elem, null), JSBNG__top = elem.offsetTop, left = elem.offsetLeft;\n while ((((((elem = elem.parentNode) && ((elem !== body)))) && ((elem !== docElem))))) {\n computedStyle = defaultView.JSBNG__getComputedStyle(elem, null);\n JSBNG__top -= elem.scrollTop, left -= elem.scrollLeft;\n if (((elem === offsetParent))) {\n JSBNG__top += elem.offsetTop, left += elem.offsetLeft;\n if (((jQuery.offset.doesNotAddBorder && !((jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.tagName)))))) {\n JSBNG__top += ((parseInt(computedStyle.borderTopWidth, 10) || 0)), left += ((parseInt(computedStyle.borderLeftWidth, 10) || 0));\n }\n ;\n ;\n prevOffsetParent = offsetParent, offsetParent = elem.offsetParent;\n }\n ;\n ;\n if (((jQuery.offset.subtractsBorderForOverflowNotVisible && ((computedStyle.overflow !== \"visible\"))))) {\n JSBNG__top += ((parseInt(computedStyle.borderTopWidth, 10) || 0)), left += ((parseInt(computedStyle.borderLeftWidth, 10) || 0));\n }\n ;\n ;\n prevComputedStyle = computedStyle;\n };\n ;\n if (((((prevComputedStyle.position === \"relative\")) || ((prevComputedStyle.position === \"static\"))))) {\n JSBNG__top += body.offsetTop, left += body.offsetLeft;\n }\n ;\n ;\n if (((prevComputedStyle.position === \"fixed\"))) {\n JSBNG__top += Math.max(docElem.scrollTop, body.scrollTop), left += Math.max(docElem.scrollLeft, body.scrollLeft);\n }\n ;\n ;\n return {\n JSBNG__top: JSBNG__top,\n left: left\n };\n };\n }\n ;\n ;\n jQuery.offset = {\n initialize: function() {\n if (this.initialized) {\n return;\n }\n ;\n ;\n var body = JSBNG__document.body, container = JSBNG__document.createElement(\"div\"), innerDiv, checkDiv, table, rules, prop, bodyMarginTop = body.style.marginTop, html = \"\\u003Cdiv style=\\\"position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;\\\"\\u003E\\u003Cdiv\\u003E\\u003C/div\\u003E\\u003C/div\\u003E\\u003Ctable style=\\\"position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;\\\"cellpadding=\\\"0\\\"cellspacing=\\\"0\\\"\\u003E\\u003Ctr\\u003E\\u003Ctd\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\\u003C/table\\u003E\";\n rules = {\n position: \"absolute\",\n JSBNG__top: 0,\n left: 0,\n margin: 0,\n border: 0,\n width: \"1px\",\n height: \"1px\",\n visibility: \"hidden\"\n };\n {\n var fin28keys = ((window.top.JSBNG_Replay.forInKeys)((rules))), fin28i = (0);\n (0);\n for (; (fin28i < fin28keys.length); (fin28i++)) {\n ((prop) = (fin28keys[fin28i]));\n {\n container.style[prop] = rules[prop];\n };\n };\n };\n ;\n container.innerHTML = html;\n body.insertBefore(container, body.firstChild);\n innerDiv = container.firstChild, checkDiv = innerDiv.firstChild, td = innerDiv.nextSibling.firstChild.firstChild;\n this.doesNotAddBorder = ((checkDiv.offsetTop !== 5));\n this.doesAddBorderForTableAndCells = ((td.offsetTop === 5));\n innerDiv.style.overflow = \"hidden\", innerDiv.style.position = \"relative\";\n this.subtractsBorderForOverflowNotVisible = ((checkDiv.offsetTop === -5));\n body.style.marginTop = \"1px\";\n this.doesNotIncludeMarginInBodyOffset = ((body.offsetTop === 0));\n body.style.marginTop = bodyMarginTop;\n body.removeChild(container);\n this.initialized = true;\n },\n bodyOffset: function(body) {\n ((jQuery.offset.initialized || jQuery.offset.initialize()));\n var JSBNG__top = body.offsetTop, left = body.offsetLeft;\n if (jQuery.offset.doesNotIncludeMarginInBodyOffset) {\n JSBNG__top += ((parseInt(jQuery.curCSS(body, \"marginTop\", true), 10) || 0)), left += ((parseInt(jQuery.curCSS(body, \"marginLeft\", true), 10) || 0));\n }\n ;\n ;\n return {\n JSBNG__top: JSBNG__top,\n left: left\n };\n }\n };\n if (((jQuery.browser.msie && ((JSBNG__document.compatMode == \"BackCompat\"))))) {\n var fixOriginal = jQuery.JSBNG__event.fix;\n jQuery.JSBNG__event.fix = function(JSBNG__event) {\n var e = fixOriginal(JSBNG__event);\n e.pageX -= 2;\n e.pageY -= 2;\n return e;\n };\n }\n ;\n ;\n jQuery.fn.offsetNoIPadFix = jQuery.fn.offset;\n jQuery.fn.offsetIPadFix = jQuery.fn.offset;\n if (((((/webkit.*mobile/i.test(JSBNG__navigator.userAgent) && ((parseFloat($.browser.version) < 532.9)))) && ((\"getBoundingClientRect\" in JSBNG__document.documentElement))))) {\n jQuery.fn.offsetIPadFix = function() {\n var result = this.offsetNoIPadFix();\n result.JSBNG__top -= window.JSBNG__scrollY;\n result.left -= window.JSBNG__scrollX;\n return result;\n };\n if (((((typeof window.jQueryPatchIPadOffset != \"undefined\")) && window.jQueryPatchIPadOffset))) {\n jQuery.fn.offset = jQuery.fn.offsetIPadFix;\n }\n ;\n ;\n }\n ;\n ;\n };\n if (((window.amznJQ && amznJQ.initJQuery))) {\n var initJQuery = amznJQ.initJQuery;\n amznJQ.initJQuery = function() {\n initJQuery();\n patchJQuery(jQuery);\n };\n }\n else {\n patchJQuery(jQuery);\n }\n ;\n ;\n })();\n (function() {\n var timesliceJS, initJQuery;\n if (window.amznJQ) {\n timesliceJS = amznJQ._timesliceJS;\n initJQuery = amznJQ.initJQuery;\n delete amznJQ._timesliceJS;\n delete amznJQ.initJQuery;\n }\n ;\n ;\n var isRunning = false, cbsWaiting = [];\n var doDeferred = function() {\n ;\n isRunning = true;\n var stopTime = (((new JSBNG__Date()).getTime() + 40));\n var callingCB;\n try {\n while (((cbsWaiting.length && (((new JSBNG__Date()).getTime() <= stopTime))))) {\n var cb = cbsWaiting.shift();\n callingCB = true;\n cb();\n callingCB = false;\n };\n ;\n } finally {\n if (callingCB) {\n ;\n }\n ;\n ;\n if (cbsWaiting.length) {\n ;\n JSBNG__setTimeout(doDeferred, 0);\n }\n else {\n ;\n isRunning = false;\n }\n ;\n ;\n };\n ;\n };\n var callInTimeslice = function(cbOrArray) {\n if (((typeof cbOrArray === \"function\"))) {\n cbsWaiting.push(cbOrArray);\n }\n else {\n cbsWaiting = cbsWaiting.concat(cbOrArray);\n }\n ;\n ;\n if (!isRunning) {\n isRunning = true;\n JSBNG__setTimeout(doDeferred, 0);\n }\n ;\n ;\n };\n var initAmznJQ = function() {\n var $ = window.jQuery, jQuery = $;\n if (!jQuery) {\n return;\n }\n ;\n ;\n var bootstrapAmznJQ = window.amznJQ;\n if (!window.goN2Debug) {\n window.goN2Debug = new function() {\n this.info = function() {\n \n };\n return this;\n };\n }\n ;\n ;\n window.amznJQ = new function() {\n ;\n var me = this;\n me.jQuery = jQuery;\n jQuery.noConflict(true);\n if (window.jQuery) {\n ;\n }\n else {\n window.jQuery = jQuery;\n }\n ;\n ;\n var _logicalToPhysical = {\n JQuery: {\n functionality: \"JQuery\",\n urls: null\n },\n popover: {\n functionality: \"popover\",\n urls: null\n }\n };\n var _func_loaded = {\n };\n var _url_loaded = {\n };\n var _loading = {\n };\n function _loadFunctionality(functionality) {\n var urls = _logicalToPhysical[functionality].urls;\n if (urls) {\n ;\n $.each(urls, function() {\n if (!_url_loaded[this]) {\n _loadURL(this, functionality);\n }\n ;\n ;\n });\n }\n else {\n ;\n }\n ;\n ;\n };\n ;\n function _loadURL(url, functionality) {\n ;\n $.ajax({\n type: \"GET\",\n url: url,\n success: _onUrlLoadedFcn(url, functionality),\n dataType: \"script\",\n cache: true\n });\n };\n ;\n function _onUrlLoadedFcn(url, functionality) {\n return function() {\n ;\n _url_loaded[url] = true;\n var all_loaded = true;\n $.each(_logicalToPhysical[functionality].urls, function() {\n all_loaded = ((all_loaded && !!_url_loaded[this]));\n });\n if (all_loaded) {\n \n }\n ;\n ;\n };\n };\n ;\n me.addLogical = function(functionality, urls) {\n var ul = ((urls ? urls.length : \"no\"));\n ;\n _logicalToPhysical[functionality] = {\n functionality: functionality,\n urls: urls\n };\n if (!urls) {\n me.declareAvailable(functionality);\n return;\n }\n ;\n ;\n if (_loading[functionality]) {\n _loadFunctionality(functionality);\n }\n ;\n ;\n };\n me.declareAvailable = function(functionality) {\n ;\n if (((typeof _logicalToPhysical[functionality] == \"undefined\"))) {\n _logicalToPhysical[functionality] = {\n functionality: functionality,\n urls: null\n };\n }\n ;\n ;\n _func_loaded[functionality] = true;\n triggerEventCallbacks(((functionality + \".loaded\")));\n };\n me.addStyle = function(css_url) {\n var dcss = JSBNG__document.styleSheets[0];\n if (((dcss && dcss.addImport))) {\n while (((dcss.imports.length >= 31))) {\n dcss = dcss.imports[0];\n };\n ;\n dcss.addImport(css_url);\n }\n else {\n $(\"style[type='text/css']:first\").append(((((\"@import url(\\\"\" + css_url)) + \"\\\");\")));\n }\n ;\n ;\n };\n me.addStyles = function(args) {\n var urls = ((args.urls || []));\n var styles = ((args.styles || []));\n var dcss = JSBNG__document.styleSheets;\n if (((((dcss && !dcss.length)) && JSBNG__document.createStyleSheet))) {\n JSBNG__document.createStyleSheet();\n }\n ;\n ;\n dcss = dcss[0];\n if (((dcss && dcss.addImport))) {\n $.each(urls, function() {\n while (((dcss.imports.length >= 31))) {\n dcss = dcss.imports[0];\n };\n ;\n dcss.addImport(this);\n });\n }\n else {\n $.each(urls, function() {\n var attrs = {\n type: \"text/css\",\n rel: \"stylesheet\",\n href: this\n };\n $(\"head\").append($(\"\\u003Clink/\\u003E\").attr(attrs));\n });\n }\n ;\n ;\n var css = \"\";\n $.each(styles, function() {\n css += this;\n });\n if (css) {\n if (JSBNG__document.createStyleSheet) {\n try {\n var sheet = JSBNG__document.createStyleSheet();\n sheet.cssText = css;\n } catch (e) {\n \n };\n ;\n }\n else {\n $(\"head\").append($(\"\\u003Cstyle/\\u003E\").attr({\n type: \"text/css\"\n }).append(css));\n }\n ;\n ;\n }\n ;\n ;\n };\n var eventCBQueue = {\n };\n var enqueueEventCallback = function(eventName, cb) {\n if (!timesliceJS) {\n $(JSBNG__document).one(eventName, cb);\n return;\n }\n ;\n ;\n var queue = ((eventCBQueue[eventName] || []));\n queue.push(function() {\n cb(jQuery.JSBNG__event.fix({\n type: eventName\n }));\n });\n eventCBQueue[eventName] = queue;\n };\n var triggerEventCallbacks = function(eventName) {\n if (!timesliceJS) {\n $(JSBNG__document).trigger(eventName);\n return;\n }\n ;\n ;\n var queue = eventCBQueue[eventName];\n if (queue) {\n callInTimeslice(queue);\n delete eventCBQueue[eventName];\n }\n ;\n ;\n };\n var doEventCallbackNow = function(eventName, cb) {\n if (!timesliceJS) {\n $(JSBNG__document).one(eventName, cb);\n $(JSBNG__document).trigger(eventName);\n }\n else {\n if (eventCBQueue[eventName]) {\n enqueueEventCallback(eventName, cb);\n triggerEventCallbacks(eventName);\n }\n else {\n callInTimeslice(function() {\n cb(jQuery.JSBNG__event.fix({\n type: eventName\n }));\n });\n }\n ;\n ;\n }\n ;\n ;\n };\n me.available = function(functionality, eventCallbackFunction) {\n if (_func_loaded[functionality]) {\n ;\n doEventCallbackNow(((functionality + \".loaded\")), eventCallbackFunction);\n }\n else {\n if (_loading[functionality]) {\n ;\n enqueueEventCallback(((functionality + \".loaded\")), eventCallbackFunction);\n }\n else {\n if (_logicalToPhysical[functionality]) {\n ;\n _loading[functionality] = true;\n enqueueEventCallback(((functionality + \".loaded\")), eventCallbackFunction);\n _loadFunctionality(functionality);\n }\n else {\n ;\n _loading[functionality] = true;\n enqueueEventCallback(((functionality + \".loaded\")), eventCallbackFunction);\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n me.onReady = function(functionality, eventCallbackFunction) {\n var ajq = this;\n $(function() {\n ajq.available(functionality, eventCallbackFunction);\n });\n };\n var _stage_completed = {\n };\n var _fail_safe_stages = [\"amznJQ.theFold\",\"amznJQ.criticalFeature\",];\n me.onCompletion = function(stage, callbackFn) {\n if (_stage_completed[stage]) {\n ;\n doEventCallbackNow(stage, callbackFn);\n }\n else {\n ;\n enqueueEventCallback(stage, callbackFn);\n }\n ;\n ;\n };\n me.completedStage = function(stage) {\n if (!_stage_completed[stage]) {\n ;\n _stage_completed[stage] = true;\n triggerEventCallbacks(stage);\n }\n ;\n ;\n };\n me.windowOnLoad = function() {\n ;\n $.each(_fail_safe_stages, function() {\n if (!_stage_completed[this]) {\n ;\n _stage_completed[this] = true;\n triggerEventCallbacks(this);\n }\n ;\n ;\n });\n };\n (function() {\n var plUrls = [], lowPriUrls = [], hiPriUrls = [], isLowPriEligibleYet = false, ST = JSBNG__setTimeout, doc = JSBNG__document, docElem = doc.documentElement, styleObj = docElem.style, nav = JSBNG__navigator, isGecko = ((\"MozAppearance\" in styleObj)), isWebkit = ((!isGecko && ((\"webkitAppearance\" in styleObj)))), isSafari = ((isWebkit && ((nav.vendor.indexOf(\"Apple\") === 0)))), isIE = ((((!isGecko && !isWebkit)) && ((nav.appName.indexOf(\"Microsoft\") === 0)))), isMobile = ((nav.userAgent.indexOf(\"Mobile\") != -1)), allowedLoaders = ((((window.plCount !== undefined)) ? window.plCount() : ((((((!isMobile && ((isWebkit || isGecko)))) || ((isIE && ((typeof XDomainRequest === \"object\")))))) ? 5 : 2)))), currentLoaders = 0, timeout = 2500;\n function setLoadState() {\n if (((hiPriUrls.length > 0))) {\n plUrls = hiPriUrls;\n }\n else {\n plUrls = lowPriUrls;\n if (((((plUrls.length === 0)) || !isLowPriEligibleYet))) {\n return false;\n }\n ;\n ;\n }\n ;\n ;\n if (((currentLoaders >= allowedLoaders))) {\n return false;\n }\n ;\n ;\n currentLoaders++;\n return true;\n };\n ;\n function loaderDone(loader, timer) {\n JSBNG__clearTimeout(timer);\n currentLoaders = ((((currentLoaders < 1)) ? 0 : ((currentLoaders - 1))));\n destroyLoader(loader);\n if (!isIE) {\n load();\n }\n else {\n ST(load, 0);\n }\n ;\n ;\n };\n ;\n function destroyElement(el) {\n if (el) {\n var p = el.parentElement;\n if (p) {\n p.removeChild(el);\n }\n ;\n ;\n el = null;\n }\n ;\n ;\n };\n ;\n var destroyLoader = function(loader) {\n if (isGecko) {\n JSBNG__setTimeout(function() {\n destroyElement(loader);\n }, 5);\n }\n else {\n destroyElement(loader);\n }\n ;\n ;\n };\n var load = ((!((((isIE || isGecko)) || isWebkit)) ? function() {\n ;\n } : function() {\n if (!setLoadState()) {\n return;\n }\n ;\n ;\n var url = plUrls.pop(), loader, hL = ((((plUrls === hiPriUrls)) ? \"H\" : \"L\")), timer;\n ;\n if (isGecko) {\n loader = doc.createElement(\"object\");\n }\n else {\n if (isSafari) {\n var end = url.indexOf(\"?\");\n end = ((((end > 0)) ? end : url.length));\n var posDot = url.lastIndexOf(\".\", end);\n if (posDot) {\n switch (url.substring(((posDot + 1)), end).toLowerCase()) {\n case \"js\":\n loader = doc.createElement(\"script\");\n loader.type = \"f\";\n break;\n case \"png\":\n \n case \"jpg\":\n \n case \"jpeg\":\n \n case \"gif\":\n loader = new JSBNG__Image();\n break;\n };\n ;\n }\n ;\n ;\n if (!loader) {\n ;\n loaderDone(url);\n return;\n }\n ;\n ;\n }\n else {\n loader = new JSBNG__Image();\n }\n ;\n ;\n }\n ;\n ;\n loader.JSBNG__onerror = function() {\n ;\n loaderDone(loader, timer);\n };\n loader.JSBNG__onload = function() {\n ;\n loaderDone(loader, timer);\n };\n if (((isGecko || ((isSafari && ((loader.tagName == \"SCRIPT\"))))))) {\n timer = ST(function() {\n ;\n loaderDone(loader, timer);\n }, ((timeout + ((Math.JSBNG__random() * 100)))));\n }\n ;\n ;\n if (isGecko) {\n loader.data = url;\n }\n else {\n loader.src = url;\n }\n ;\n ;\n if (!isIE) {\n loader.width = loader.height = 0;\n loader.style.display = \"none\";\n docElem.appendChild(loader);\n }\n ;\n ;\n if (((currentLoaders < allowedLoaders))) {\n load();\n }\n ;\n ;\n }));\n function processUrlList(urlList, target) {\n if (((typeof (urlList) === \"string\"))) {\n urlList = [urlList,];\n }\n else {\n if (((((typeof (urlList) !== \"object\")) || ((urlList === null))))) {\n return;\n }\n ;\n ;\n }\n ;\n ;\n var i, u;\n for (i = 0; ((i < urlList.length)); i++) {\n u = urlList[i];\n if (((u && ((typeof (u) !== \"string\"))))) {\n processUrlList(u, target);\n }\n else {\n if (((u && !((u[0] == \" \"))))) {\n target.splice(Math.round(((Math.JSBNG__random() * target.length))), 0, u);\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n };\n ;\n me._getPLStat = function() {\n return {\n H: hiPriUrls.length,\n L: lowPriUrls.length,\n P: plUrls.length,\n CL: currentLoaders,\n AL: allowedLoaders\n };\n };\n me.addPL = function(urlList) {\n processUrlList(urlList, lowPriUrls);\n load();\n };\n me.PLNow = function(urlList) {\n processUrlList(urlList, hiPriUrls);\n load();\n };\n function triggerPagePreloads() {\n isLowPriEligibleYet = true;\n load();\n };\n ;\n if (((typeof bootstrapAmznJQ.PLTriggerName !== \"undefined\"))) {\n amznJQ.available(bootstrapAmznJQ.PLTriggerName, triggerPagePreloads);\n }\n else {\n $(window).load(function() {\n ST(triggerPagePreloads, 1000);\n });\n }\n ;\n ;\n }());\n me.strings = {\n };\n me.chars = {\n };\n if (bootstrapAmznJQ) {\n $.extend(this.strings, bootstrapAmznJQ.strings);\n $.extend(this.chars, bootstrapAmznJQ.chars);\n }\n ;\n ;\n }();\n $(window).load(function() {\n amznJQ.windowOnLoad();\n });\n if (((((((window.ue && bootstrapAmznJQ)) && window.ues)) && window.uex))) {\n ues(\"wb\", \"jQueryActive\", 1);\n uex(\"ld\", \"jQueryActive\");\n }\n ;\n ;\n amznJQ.declareAvailable(\"JQuery\");\n amznJQ.declareAvailable(\"jQuery\");\n if (bootstrapAmznJQ) {\n ;\n $.each(bootstrapAmznJQ._l, function() {\n amznJQ.addLogical(this[0], this[1]);\n });\n $.each(bootstrapAmznJQ._s, function() {\n amznJQ.addStyle(this[0]);\n });\n $.each(bootstrapAmznJQ._d, function() {\n amznJQ.declareAvailable(this[0], this[1]);\n });\n $.each(bootstrapAmznJQ._a, function() {\n amznJQ.available(this[0], this[1]);\n });\n $.each(((bootstrapAmznJQ._t || [])), function() {\n callInTimeslice(this[0]);\n });\n $.each(bootstrapAmznJQ._o, function() {\n amznJQ.onReady(this[0], this[1]);\n });\n $.each(bootstrapAmznJQ._c, function() {\n amznJQ.onCompletion(this[0], this[1]);\n });\n $.each(bootstrapAmznJQ._cs, function() {\n amznJQ.completedStage(this[0], this[1]);\n });\n amznJQ.addPL(bootstrapAmznJQ._pl);\n }\n ;\n ;\n };\n if (!initJQuery) {\n initAmznJQ();\n }\n else {\n if (!timesliceJS) {\n initJQuery();\n initAmznJQ();\n }\n else {\n callInTimeslice(initJQuery);\n callInTimeslice(initAmznJQ);\n }\n ;\n ;\n }\n ;\n ;\n })();\n (function() {\n if (window.amznJQ) {\n window.amznJQ.available(\"jQuery\", function() {\n initAmazonPopover(((window.amznJQ.jQuery || window.jQuery)));\n window.amznJQ.declareAvailable(\"popover\");\n });\n }\n ;\n ;\n if (((((typeof window.P === \"object\")) && ((typeof window.P.when === \"function\"))))) {\n window.P.when(\"jQuery\").register(\"legacy-popover\", function($) {\n initAmazonPopover($);\n return null;\n });\n }\n ;\n ;\n function initAmazonPopover($) {\n if (((!$ || $.AmazonPopover))) {\n return;\n }\n ;\n ;\n var rootElement = function() {\n var container = $(\"#ap_container\");\n return ((((container.length && container)) || $(\"body\")));\n };\n var viewport = {\n width: function() {\n return Math.min($(window).width(), $(JSBNG__document).width());\n },\n height: function() {\n return $(window).height();\n }\n };\n var mouseTracker = function() {\n var regions = [], n = 3, cursor = [{\n x: 0,\n y: 0\n },], c = 0, JSBNG__scroll = [0,0,], listening = false;\n var callbackArgs = function() {\n var pCursors = [];\n for (var i = 1; ((i < n)); i++) {\n pCursors.push(cursor[((((((c - i)) + n)) % n))]);\n };\n ;\n return $.extend(true, {\n }, {\n cursor: cursor[c],\n priorCursors: pCursors\n });\n };\n var check = function(immediately) {\n for (var i = 0; ((i < regions.length)); i++) {\n var r = regions[i];\n var inside = (($.grep(r.rects, function(n) {\n return ((((((((cursor[c].x >= n[0])) && ((cursor[c].y >= n[1])))) && ((cursor[c].x < ((n[0] + n[2])))))) && ((cursor[c].y < ((n[1] + n[3]))))));\n }).length > 0));\n if (((((((((r.inside !== null)) && inside)) && !r.inside)) && r.mouseEnter))) {\n r.inside = r.mouseEnter(callbackArgs());\n }\n else {\n if (((((((((r.inside !== null)) && !inside)) && r.inside)) && r.mouseLeave))) {\n r.inside = !r.mouseLeave(immediately, callbackArgs());\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n };\n var startListening = function() {\n JSBNG__scroll = [$(window).scrollLeft(),$(window).scrollTop(),];\n $(JSBNG__document).mousemove(function(e) {\n if (((typeof e.pageY !== \"undefined\"))) {\n c = ((((c + 1)) % n));\n cursor[c] = {\n x: e.pageX,\n y: e.pageY\n };\n }\n ;\n ;\n check();\n });\n if (!isMobileAgent(true)) {\n $(JSBNG__document).JSBNG__scroll(function(e) {\n cursor[c].x += (($(window).scrollLeft() - JSBNG__scroll[0]));\n cursor[c].y += (($(window).scrollTop() - JSBNG__scroll[1]));\n JSBNG__scroll = [$(window).scrollLeft(),$(window).scrollTop(),];\n check();\n });\n }\n ;\n ;\n listening = true;\n };\n return {\n add: function(rectsArray, options) {\n if (!listening) {\n startListening();\n }\n ;\n ;\n var r = $.extend({\n rects: rectsArray\n }, options);\n regions.push(r);\n return r;\n },\n remove: function(region) {\n for (var i = 0; ((i < regions.length)); i++) {\n if (((regions[i] === region))) {\n regions.splice(i, 1);\n return;\n }\n ;\n ;\n };\n ;\n },\n checkNow: function() {\n check(true);\n },\n getCallbackArgs: function() {\n return callbackArgs();\n }\n };\n }();\n var iframePool = function() {\n var ie6 = (($.browser.msie && ((parseInt($.browser.version) <= 6))));\n var src = ((ie6 ? window.AmazonPopoverImages.pixel : \"javascript:void(false)\"));\n var HTML = ((((\"\\u003Ciframe frameborder=\\\"0\\\" tabindex=\\\"-1\\\" src=\\\"\" + src)) + \"\\\" style=\\\"display:none;position:absolute;z-index:0;filter:Alpha(Opacity='0');opacity:0;\\\" /\\u003E\"));\n var pool = [];\n var addToLib = function(n) {\n for (i = 0; ((i < n)); i++) {\n pool.push($(HTML).prependTo(rootElement()));\n };\n ;\n };\n $(JSBNG__document).ready(function() {\n addToLib(3);\n });\n return {\n checkout: function(jqObj) {\n if (!pool.length) {\n addToLib(1);\n }\n ;\n ;\n return pool.pop().css({\n display: \"block\",\n JSBNG__top: jqObj.offset().JSBNG__top,\n left: jqObj.offset().left,\n width: jqObj.JSBNG__outerWidth(),\n height: jqObj.JSBNG__outerHeight(),\n zIndex: ((Number(jqObj.css(\"z-index\")) - 1))\n });\n },\n checkin: function(iframe) {\n pool.push(iframe.css(\"display\", \"none\"));\n }\n };\n }();\n var elementHidingManager = function() {\n var hiddenElements = [];\n var win = /Win/.test(JSBNG__navigator.platform);\n var mac = /Mac/.test(JSBNG__navigator.platform);\n var linux = /Linux/.test(JSBNG__navigator.platform);\n var version = parseInt($.browser.version);\n var canOverlayWmodeWindow = false;\n var intersectingPopovers = function(obj) {\n var bounds = [obj.offset().left,obj.offset().JSBNG__top,obj.JSBNG__outerWidth(),obj.JSBNG__outerHeight(),];\n var intersecting = [];\n for (var i = 0; ((i < popovers.length)); i++) {\n var disparate = false;\n if (!popovers[i].settings.modal) {\n var r = popovers[i].bounds;\n disparate = ((((((((bounds[0] > ((r[0] + r[2])))) || ((r[0] > ((bounds[0] + bounds[2])))))) || ((bounds[1] > ((r[1] + r[3])))))) || ((r[1] > ((bounds[1] + bounds[3]))))));\n }\n ;\n ;\n if (!disparate) {\n intersecting.push(popovers[i]);\n }\n ;\n ;\n };\n ;\n return intersecting;\n };\n var shouldBeVisible = function(obj) {\n if (obj.hasClass(\"ap_never_hide\")) {\n return true;\n }\n ;\n ;\n if (intersectingPopovers(obj).length) {\n if (obj.is(\"object,embed\")) {\n var wmode = ((((((obj.attr(\"wmode\") || obj.children(\"object,embed\").attr(\"wmode\"))) || obj.parent(\"object,embed\").attr(\"wmode\"))) || \"window\"));\n if (((((wmode.toLowerCase() == \"window\")) && !canOverlayWmodeWindow))) {\n return false;\n }\n ;\n ;\n }\n ;\n ;\n if (obj.is(\"div\")) {\n if ($.browser.safari) {\n return false;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n return true;\n };\n var setVisibility = function(elementQuery, shouldBecomeVisible) {\n if (elementQuery.is(\"iframe[id^=DA],iframe[id^=cachebust]\")) {\n elementQuery.css({\n display: ((shouldBecomeVisible ? \"block\" : \"none\"))\n });\n }\n else {\n elementQuery.css({\n visibility: ((shouldBecomeVisible ? \"visible\" : \"hidden\"))\n });\n }\n ;\n ;\n };\n return {\n update: function() {\n var HIDDEN = 0;\n var VISIBLE = 1;\n var stillHidden = [];\n for (var i = 0; ((i < hiddenElements.length)); i++) {\n var hiddenElement = hiddenElements[i];\n if (!shouldBeVisible(hiddenElement)) {\n stillHidden.push(hiddenElement);\n }\n else {\n setVisibility(hiddenElement, VISIBLE);\n }\n ;\n ;\n };\n ;\n hiddenElements = stillHidden;\n $(\"object:visible,embed:visible,iframe:visible\").each(function() {\n var obj = jQuery(this);\n if (!shouldBeVisible(obj)) {\n hiddenElements.push(obj);\n setVisibility(obj, HIDDEN);\n }\n ;\n ;\n });\n }\n };\n }();\n var applyBacking = function(popover, options) {\n var region = null;\n var iframe = null;\n options = ((options || {\n }));\n var destroy = function() {\n if (region) {\n mouseTracker.remove(region);\n region = null;\n }\n ;\n ;\n if (iframe) {\n iframePool.checkin(iframe);\n iframe = null;\n }\n ;\n ;\n elementHidingManager.update();\n };\n var refreshBounds = function() {\n var newBounds = [popover.offset().left,popover.offset().JSBNG__top,popover.JSBNG__outerWidth(),popover.JSBNG__outerHeight(),];\n if (region) {\n region.rects[0] = newBounds;\n }\n ;\n ;\n if (iframe) {\n iframe.css({\n left: newBounds[0],\n JSBNG__top: newBounds[1],\n width: newBounds[2],\n height: newBounds[3]\n });\n }\n ;\n ;\n elementHidingManager.update();\n };\n var reposition = function(x, y) {\n if (iframe) {\n iframe.css({\n left: x,\n JSBNG__top: y\n });\n }\n ;\n ;\n if (region) {\n region.rects[0][0] = x;\n region.rects[0][1] = y;\n }\n ;\n ;\n };\n if (((options.useIFrame !== false))) {\n iframe = iframePool.checkout(popover);\n }\n ;\n ;\n var bounds = [[popover.offset().left,popover.offset().JSBNG__top,popover.JSBNG__outerWidth(),popover.JSBNG__outerHeight(),],];\n if (options.additionalCursorRects) {\n for (var i = 0; ((i < options.additionalCursorRects.length)); i++) {\n bounds.push(options.additionalCursorRects[i]);\n };\n ;\n }\n ;\n ;\n region = mouseTracker.add(bounds, options);\n elementHidingManager.update();\n popover.backing = {\n destroy: destroy,\n refreshBounds: refreshBounds,\n reposition: reposition,\n iframe: iframe\n };\n };\n var defaultSettings = {\n width: 500,\n followScroll: false,\n locationMargin: 4,\n alignMargin: 0,\n windowMargin: 4,\n locationFitInWindow: true,\n focusOnShow: true,\n modal: false,\n draggable: false,\n zIndex: 200,\n showOnHover: false,\n hoverShowDelay: 400,\n hoverHideDelay: 200,\n skin: \"default\",\n useIFrame: true,\n clone: false,\n ajaxSlideDuration: 400,\n ajaxErrorContent: null,\n paddingLeft: 17,\n paddingRight: 17,\n paddingBottom: 8\n };\n var overlay = null;\n var popovers = [];\n var et = {\n MOUSE_ENTER: 1,\n MOUSE_LEAVE: 2,\n CLICK_TRIGGER: 4,\n CLICK_OUTSIDE: 8,\n fromStrings: function(s) {\n var flags = 0;\n var JSBNG__self = this;\n if (s) {\n $.each($.makeArray(s), function() {\n flags = ((flags | JSBNG__self[this]));\n });\n }\n ;\n ;\n return flags;\n }\n };\n var ajaxCache = {\n };\n var preparedPopover = null;\n var openGroupPopover = {\n };\n var skins = {\n \"default\": ((((\"\\u003Cdiv class=\\\"ap_popover ap_popover_sprited\\\" surround=\\\"6,16,18,16\\\" tabindex=\\\"0\\\"\\u003E \\u003Cdiv class=\\\"ap_header\\\"\\u003E \\u003Cdiv class=\\\"ap_left\\\"/\\u003E \\u003Cdiv class=\\\"ap_middle\\\"/\\u003E \\u003Cdiv class=\\\"ap_right\\\"/\\u003E \\u003C/div\\u003E \\u003Cdiv class=\\\"ap_body\\\"\\u003E \\u003Cdiv class=\\\"ap_left\\\"/\\u003E \\u003Cdiv class=\\\"ap_content\\\"\\u003E\\u003Cimg src=\\\"\" + window.AmazonPopoverImages.snake)) + \"\\\"/\\u003E\\u003C/div\\u003E \\u003Cdiv class=\\\"ap_right\\\"/\\u003E \\u003C/div\\u003E \\u003Cdiv class=\\\"ap_footer\\\"\\u003E \\u003Cdiv class=\\\"ap_left\\\"/\\u003E \\u003Cdiv class=\\\"ap_middle\\\"/\\u003E \\u003Cdiv class=\\\"ap_right\\\"/\\u003E \\u003C/div\\u003E \\u003Cdiv class=\\\"ap_titlebar\\\"\\u003E \\u003Cdiv class=\\\"ap_title\\\"/\\u003E \\u003C/div\\u003E \\u003Cdiv class=\\\"ap_close\\\"\\u003E\\u003Ca href=\\\"#\\\"\\u003E\\u003Cspan class=\\\"ap_closetext\\\"/\\u003E\\u003Cspan class=\\\"ap_closebutton\\\"\\u003E\\u003Cspan\\u003E\\u003C/span\\u003E\\u003C/span\\u003E\\u003C/a\\u003E\\u003C/div\\u003E \\u003C/div\\u003E\")),\n default_non_sprited: ((((((((\"\\u003Cdiv class=\\\"ap_popover ap_popover_unsprited\\\" surround=\\\"6,16,18,16\\\" tabindex=\\\"0\\\"\\u003E \\u003Cdiv class=\\\"ap_header\\\"\\u003E \\u003Cdiv class=\\\"ap_left\\\"/\\u003E \\u003Cdiv class=\\\"ap_middle\\\"/\\u003E \\u003Cdiv class=\\\"ap_right\\\"/\\u003E \\u003C/div\\u003E \\u003Cdiv class=\\\"ap_body\\\"\\u003E \\u003Cdiv class=\\\"ap_left\\\"/\\u003E \\u003Cdiv class=\\\"ap_content\\\"\\u003E\\u003Cimg src=\\\"\" + window.AmazonPopoverImages.snake)) + \"\\\"/\\u003E\\u003C/div\\u003E \\u003Cdiv class=\\\"ap_right\\\"/\\u003E \\u003C/div\\u003E \\u003Cdiv class=\\\"ap_footer\\\"\\u003E \\u003Cdiv class=\\\"ap_left\\\"/\\u003E \\u003Cdiv class=\\\"ap_middle\\\"/\\u003E \\u003Cdiv class=\\\"ap_right\\\"/\\u003E \\u003C/div\\u003E \\u003Cdiv class=\\\"ap_titlebar\\\"\\u003E \\u003Cdiv class=\\\"ap_title\\\"/\\u003E \\u003C/div\\u003E \\u003Cdiv class=\\\"ap_close\\\"\\u003E\\u003Ca href=\\\"#\\\"\\u003E\\u003Cspan class=\\\"ap_closetext\\\"/\\u003E\\u003Cimg border=\\\"0\\\" src=\\\"\")) + window.AmazonPopoverImages.btnClose)) + \"\\\"/\\u003E\\u003C/a\\u003E\\u003C/div\\u003E \\u003C/div\\u003E\")),\n classic: ((((((((((((((((((((\"\\u003Cdiv class=\\\"ap_classic\\\"\\u003E \\u003Cdiv class=\\\"ap_titlebar\\\"\\u003E \\u003Cdiv class=\\\"ap_close\\\"\\u003E \\u003Cimg width=\\\"46\\\" height=\\\"16\\\" border=\\\"0\\\" alt=\\\"close\\\" onmouseup='this.src=\\\"\" + window.AmazonPopoverImages.closeTan)) + \"\\\";' onmouseout='this.src=\\\"\")) + window.AmazonPopoverImages.closeTan)) + \"\\\";' onmousedown='this.src=\\\"\")) + window.AmazonPopoverImages.closeTanDown)) + \"\\\";' src=\\\"\")) + window.AmazonPopoverImages.closeTan)) + \"\\\" /\\u003E \\u003C/div\\u003E \\u003Cspan class=\\\"ap_title\\\"\\u003E\\u003C/span\\u003E \\u003C/div\\u003E \\u003Cdiv class=\\\"ap_content\\\"\\u003E\\u003Cimg src=\\\"\")) + window.AmazonPopoverImages.loadingBar)) + \"\\\"/\\u003E\\u003C/div\\u003E \\u003C/div\\u003E\"))\n };\n var boundingRectangle = function(set) {\n var b = {\n left: Infinity,\n JSBNG__top: Infinity,\n right: -Infinity,\n bottom: -Infinity\n };\n set.each(function() {\n try {\n var t = $(this);\n var o = t.offset();\n var w = t.JSBNG__outerWidth();\n var h = t.JSBNG__outerHeight();\n if (t.is(\"area\")) {\n var ab = boundsOfAreaElement(t);\n o = {\n left: ab[0],\n JSBNG__top: ab[1]\n };\n w = ((ab[2] - ab[0]));\n h = ((ab[3] - ab[1]));\n }\n ;\n ;\n if (((o.left < b.left))) {\n b.left = o.left;\n }\n ;\n ;\n if (((o.JSBNG__top < b.JSBNG__top))) {\n b.JSBNG__top = o.JSBNG__top;\n }\n ;\n ;\n if (((((o.left + w)) > b.right))) {\n b.right = ((o.left + w));\n }\n ;\n ;\n if (((((o.JSBNG__top + h)) > b.bottom))) {\n b.bottom = ((o.JSBNG__top + h));\n }\n ;\n ;\n } catch (e) {\n \n };\n ;\n });\n return b;\n };\n var bringToFront = function(popover) {\n if (((popovers.length <= 1))) {\n return;\n }\n ;\n ;\n var maxZ = Math.max.apply(Math, $.map(popovers, function(p) {\n return Number(p.css(\"z-index\"));\n }));\n if (((Number(popover.css(\"z-index\")) == maxZ))) {\n return;\n }\n ;\n ;\n popover.css(\"z-index\", ((maxZ + 2)));\n ((popover.backing && popover.backing.iframe.css(\"z-index\", ((maxZ + 1)))));\n };\n $.fn.removeAmazonPopoverTrigger = function() {\n this.unbind(\"click.amzPopover\");\n this.unbind(\"mouseover.amzPopover\");\n this.unbind(\"mouseout.amzPopover\");\n return this;\n };\n $.fn.amazonPopoverTrigger = function(customSettings) {\n var settings = $.extend({\n }, defaultSettings, customSettings);\n var triggers = this;\n var popover = null;\n if (((!settings.showOnHover && ((settings.skin == \"default\"))))) {\n this.bind(\"mouseover.amzPopover\", preparePopover);\n }\n ;\n ;\n if (((typeof settings.showOnHover == \"string\"))) {\n var hoverSet = triggers.filter(settings.showOnHover);\n }\n else {\n var hoverSet = ((settings.showOnHover ? triggers : jQuery([])));\n }\n ;\n ;\n var timerID = null;\n hoverSet.bind(\"mouseover.amzPopover\", function(e) {\n if (((!popover && !timerID))) {\n timerID = JSBNG__setTimeout(function() {\n if (!popover) {\n var parent = triggers.parent(), length = parent.length, tagName = ((length ? ((parent.attr(\"tagName\") || parent.get(0).tagName)) : undefined));\n if (((length && tagName))) {\n if (((!settings.triggeringEnabled || settings.triggeringEnabled.call(triggers)))) {\n popover = displayPopover(settings, triggers, function() {\n popover = null;\n });\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n timerID = null;\n }, settings.hoverShowDelay);\n }\n ;\n ;\n return false;\n });\n hoverSet.bind(\"mouseout.amzPopover\", function(e) {\n if (((!popover && timerID))) {\n JSBNG__clearTimeout(timerID);\n timerID = null;\n }\n ;\n ;\n });\n triggers.bind(\"click.amzPopover\", function(e) {\n var followLink = ((((settings.followLink === true)) || ((((typeof settings.followLink == \"function\")) && settings.followLink.call(triggers, popover, settings)))));\n if (followLink) {\n return true;\n }\n ;\n ;\n if (popover) {\n popover.triggerClicked();\n }\n else {\n if (((!settings.triggeringEnabled || settings.triggeringEnabled.call(triggers)))) {\n popover = displayPopover(settings, triggers, function() {\n popover = null;\n });\n }\n ;\n ;\n }\n ;\n ;\n return false;\n });\n this.amznPopoverHide = function() {\n ((popover && popover.close()));\n };\n this.amznPopoverVisible = function() {\n return !!popover;\n };\n return this;\n };\n var updateBacking = function(group) {\n if (((group && openGroupPopover[group]))) {\n var popover = openGroupPopover[group];\n if (popover.backing) {\n popover.backing.refreshBounds();\n }\n ;\n ;\n }\n ;\n ;\n };\n var displayPopover = function(settings, triggers, destroyFunction) {\n addAliases(settings);\n var parent = null;\n if (triggers) {\n var parents = triggers.eq(0).parents().get();\n for (var t = 0; ((((t < parents.length)) && !parent)); t++) {\n for (var i = 0; ((((i < popovers.length)) && !parent)); i++) {\n if (((popovers[i].get(0) == parents[t]))) {\n parent = popovers[i];\n }\n ;\n ;\n };\n ;\n };\n ;\n }\n ;\n ;\n var children = [];\n children.remove = function(p) {\n for (var i = 0; ((i < this.length)); i++) {\n if (((this[i] === p))) {\n this.splice(i, 1);\n return;\n }\n ;\n ;\n };\n ;\n };\n var interactedWith = false;\n $.each(defaultSettings, function(k, v) {\n if (((typeof settings[k] == \"undefined\"))) {\n settings[k] = v;\n }\n ;\n ;\n });\n if (!settings.JSBNG__location) {\n settings.JSBNG__location = ((((settings.modal || !triggers)) ? \"centered\" : \"auto\"));\n }\n ;\n ;\n if (((settings.showCloseButton === null))) {\n settings.showCloseButton = !settings.showOnHover;\n }\n ;\n ;\n $.each(popovers, function() {\n settings.zIndex = Math.max(settings.zIndex, ((Number(this.css(\"z-index\")) + 2)));\n });\n var closeEvent = ((((settings.showOnHover ? et.MOUSE_LEAVE : et.CLICK_TRIGGER)) | ((settings.modal ? et.CLICK_OUTSIDE : 0))));\n closeEvent = ((((closeEvent | et.fromStrings(settings.closeEventInclude))) & ~et.fromStrings(settings.closeEventExclude)));\n var clickAwayHandler;\n var reposition = function() {\n position(popover, settings, triggers);\n };\n var close = function() {\n if (settings.group) {\n openGroupPopover[settings.group] = null;\n }\n ;\n ;\n if (((original && original.parents(\"body\").length))) {\n if (((ballMarker && ballMarker.parents(\"body\").length))) {\n original.hide().insertAfter(ballMarker);\n ballMarker.remove();\n ballMarker = null;\n }\n else {\n original.hide().appendTo(rootElement());\n }\n ;\n ;\n }\n ;\n ;\n if (((original != popover))) {\n popover.remove();\n }\n ;\n ;\n if (parent) {\n parent.children.remove(popover);\n }\n ;\n ;\n for (var i = 0; ((i < popovers.length)); i++) {\n if (((popovers[i] === popover))) {\n popovers.splice(i, 1);\n break;\n }\n ;\n ;\n };\n ;\n if (popover.backing) {\n popover.backing.destroy();\n popover.backing = null;\n }\n ;\n ;\n mouseTracker.checkNow();\n if (destroyFunction) {\n destroyFunction();\n }\n ;\n ;\n if (settings.onHide) {\n settings.onHide.call(triggers, popover, settings);\n }\n ;\n ;\n if (((settings.modal && overlay))) {\n if (overlay.fitToScreen) {\n $(window).unbind(\"resize\", overlay.fitToScreen);\n }\n ;\n ;\n overlay.remove();\n overlay = null;\n }\n ;\n ;\n $(JSBNG__document).unbind(\"JSBNG__scroll.AmazonPopover\");\n $(JSBNG__document).unbind(\"click\", clickAwayHandler);\n for (var i = 0; ((i < children.length)); i++) {\n children[i].close();\n };\n ;\n children = [];\n return false;\n };\n var fill = function(JSBNG__content, autoshow) {\n var container = popover.JSBNG__find(\".ap_sub_content\");\n if (((container.length == 0))) {\n container = popover.JSBNG__find(\".ap_content\");\n }\n ;\n ;\n if (((typeof JSBNG__content == \"string\"))) {\n container.html(JSBNG__content);\n }\n else {\n container.empty().append(JSBNG__content);\n }\n ;\n ;\n if (((((typeof settings.autoshow == \"boolean\")) ? settings.autoshow : autoshow))) {\n if ($.browser.msie) {\n container.children().show().hide();\n }\n ;\n ;\n container.children(\":not(style)\").show();\n }\n ;\n ;\n container.JSBNG__find(\".ap_custom_close\").click(close);\n if (settings.onFilled) {\n settings.onFilled.call(triggers, popover, settings);\n }\n ;\n ;\n return container;\n };\n if (((settings.modal && !overlay))) {\n overlay = showOverlay(close, settings.zIndex);\n }\n ;\n ;\n var popover = null;\n var original = null;\n var ballMarker = null;\n if (((settings.skin == \"default\"))) {\n preparePopover();\n popover = preparedPopover;\n preparedPopover = null;\n }\n else {\n var skin = (($.isFunction(settings.skin) ? settings.skin() : settings.skin));\n skin = ((skin || \"\\u003Cdiv\\u003E\\u003Cdiv class='ap_content' /\\u003E\\u003C/div\\u003E\"));\n var skinIsHtml = /^[^<]*(<(.|\\s)+>)[^>]*$/.test(skin);\n var skinHtml = ((skinIsHtml ? skin : skins[skin]));\n popover = $(skinHtml);\n }\n ;\n ;\n if ((($.browser.msie && ((parseInt($.browser.version) == 6))))) {\n fixPngs(popover);\n }\n ;\n ;\n if (((settings.skin == \"default\"))) {\n popover.JSBNG__find(\".ap_content\").css({\n paddingLeft: settings.paddingLeft,\n paddingRight: settings.paddingRight,\n paddingBottom: settings.paddingBottom\n });\n }\n ;\n ;\n if (settings.localContent) {\n if (settings.clone) {\n fill($(settings.localContent).clone(true), true);\n }\n else {\n original = $(settings.localContent);\n ballMarker = $(\"\\u003Cspan style='display:none' /\\u003E\").insertBefore(original);\n fill(original, true);\n }\n ;\n ;\n }\n else {\n if (settings.literalContent) {\n fill(settings.literalContent);\n }\n ;\n ;\n }\n ;\n ;\n if (settings.destination) {\n var destinationUrl = ((((typeof settings.destination == \"function\")) ? settings.destination() : settings.destination));\n if (((((settings.cacheable !== false)) && ajaxCache[destinationUrl]))) {\n fill(ajaxCache[destinationUrl]);\n }\n else {\n $.ajax({\n url: destinationUrl,\n timeout: settings.ajaxTimeout,\n success: function(data) {\n if (settings.onAjaxSuccess) {\n settings.onAjaxSuccess.apply(settings, arguments);\n }\n ;\n ;\n var contentCacheable = ((data.match(/^(\\s|<!--[\\s\\S]*?-->)*<\\w+[^>]*\\s+cacheable=\"(.*?)\"/i) || data.match(/^(\\s|<!--[\\s\\S]*?-->)*<\\w+[^>]*\\s+cacheable='(.*?)'/i)));\n if (((((settings.cacheable !== false)) && ((!contentCacheable || ((contentCacheable[2] !== \"0\"))))))) {\n ajaxCache[destinationUrl] = data;\n }\n ;\n ;\n var title = ((data.match(/^(\\s|<!--[\\s\\S]*?-->)*<\\w+[^>]*\\s+popoverTitle=\"(.*?)\"/i) || data.match(/^(\\s|<!--[\\s\\S]*?-->)*<\\w+[^>]*\\s+popoverTitle='(.*?)'/i)));\n if (title) {\n settings.title = title[2];\n popover.JSBNG__find(\".ap_title\").html(settings.title);\n }\n ;\n ;\n if (((((settings.ajaxSlideDuration > 0)) && !(($.browser.msie && ((JSBNG__document.compatMode == \"BackCompat\"))))))) {\n popover.JSBNG__find(\".ap_content\").hide();\n fill(data);\n if (!settings.width) {\n position(popover, settings, triggers);\n }\n ;\n ;\n if (settings.onAjaxShow) {\n settings.onAjaxShow.call(triggers, popover, settings);\n }\n ;\n ;\n popover.JSBNG__find(\".ap_content\").slideDown(settings.ajaxSlideDuration, function() {\n position(popover, settings, triggers);\n });\n }\n else {\n fill(data);\n if (settings.onAjaxShow) {\n settings.onAjaxShow.call(triggers, popover, settings);\n }\n ;\n ;\n position(popover, settings, triggers);\n }\n ;\n ;\n },\n error: function() {\n var data = null;\n if (((typeof settings.ajaxErrorContent == \"function\"))) {\n data = settings.ajaxErrorContent.apply(settings, arguments);\n }\n else {\n data = settings.ajaxErrorContent;\n }\n ;\n ;\n if (((data !== null))) {\n var container = fill(data);\n var title = container.children(\"[popoverTitle]\").attr(\"popoverTitle\");\n if (title) {\n popover.JSBNG__find(\".ap_title\").html(title);\n }\n ;\n ;\n position(popover, settings, triggers);\n }\n ;\n ;\n }\n });\n }\n ;\n ;\n }\n ;\n ;\n if (((((!settings.localContent && !settings.literalContent)) && !settings.destination))) {\n throw (\"AmazonPopover wasn't provided a source of content.\");\n }\n ;\n ;\n if (parent) {\n parent.children.push(popover);\n }\n ;\n ;\n settings.surround = jQuery.map(((popover.attr(\"surround\") || \"0,0,0,0\")).split(\",\"), function(n) {\n return Number(n);\n });\n popover.css({\n zIndex: settings.zIndex,\n position: \"absolute\",\n left: -2000,\n JSBNG__top: -2000\n });\n popover.click(function(e) {\n if (!e.metaKey) {\n e.stopPropagation();\n }\n ;\n ;\n interactedWith = true;\n });\n clickAwayHandler = function(e) {\n var leftButton = ((((e.button === 0)) || ((e.which == 1))));\n if (((leftButton && !e.metaKey))) {\n close();\n }\n ;\n ;\n };\n if (((closeEvent & et.CLICK_OUTSIDE))) {\n $(JSBNG__document).click(clickAwayHandler);\n }\n ;\n ;\n popover.mousedown(function(e) {\n if (!children.length) {\n bringToFront(popover);\n }\n ;\n ;\n });\n var width = ((settings.width && ((((typeof settings.width == \"function\")) ? settings.width() : settings.width))));\n if (!width) {\n width = ((getDynamicWidth(popover, settings) || popover.JSBNG__outerWidth()));\n }\n ;\n ;\n if (width) {\n popover.css(\"width\", width);\n }\n ;\n ;\n if (settings.followScroll) {\n $(JSBNG__document).bind(\"JSBNG__scroll.AmazonPopover\", function(e) {\n followScroll(e);\n });\n }\n ;\n ;\n if (((((settings.title !== null)) && ((settings.title !== undefined))))) {\n var titleBar = popover.JSBNG__find(\".ap_titlebar\");\n if (((settings.skin == \"default\"))) {\n titleBar.css({\n width: ((width - 36))\n });\n titleBar.JSBNG__find(\".ap_title\").css(\"width\", ((width - 70)));\n popover.JSBNG__find(\".ap_content\").css({\n paddingTop: 18\n });\n }\n ;\n ;\n popover.JSBNG__find(\".ap_title\").html(settings.title);\n if (((settings.draggable && !settings.modal))) {\n enableDragAndDrop(titleBar, popover);\n }\n ;\n ;\n titleBar.show();\n if (((((settings.skin == \"default\")) && settings.wrapTitlebar))) {\n titleBar.addClass(\"multiline\");\n popover.JSBNG__find(\".ap_content\").css({\n paddingTop: ((titleBar.JSBNG__outerHeight() - 9))\n });\n }\n ;\n ;\n }\n else {\n popover.JSBNG__find(\".ap_titlebar\").hide();\n }\n ;\n ;\n if (((settings.showCloseButton !== false))) {\n popover.JSBNG__find(\".ap_close\").show().click(close).mousedown(function(e) {\n e.preventDefault();\n e.stopPropagation();\n return false;\n }).css(\"cursor\", \"default\");\n if (!settings.title) {\n popover.JSBNG__find(\".ap_content\").css({\n paddingTop: 10\n });\n }\n ;\n ;\n popover.keydown(function(e) {\n if (((e.keyCode == 27))) {\n close();\n }\n ;\n ;\n });\n }\n else {\n popover.JSBNG__find(\".ap_close\").css(\"display\", \"none\");\n }\n ;\n ;\n if (settings.closeText) {\n popover.JSBNG__find(\".ap_closetext\").text(settings.closeText).show();\n }\n else {\n popover.JSBNG__find(\".ap_closebutton span\").text(\"Close\");\n }\n ;\n ;\n popover.appendTo(rootElement());\n position(popover, settings, triggers);\n $(JSBNG__document.activeElement).filter(\"input[type=text], select\").JSBNG__blur();\n popover.close = close;\n if (settings.group) {\n if (openGroupPopover[settings.group]) {\n openGroupPopover[settings.group].close();\n }\n ;\n ;\n openGroupPopover[settings.group] = popover;\n }\n ;\n ;\n popover.show();\n if (settings.focusOnShow) {\n popover.get(0).hideFocus = true;\n popover.JSBNG__focus();\n }\n ;\n ;\n if (((overlay && overlay.snapToLeft))) {\n overlay.snapToLeft();\n }\n ;\n ;\n if (settings.onShow) {\n settings.onShow.call(triggers, popover, settings);\n }\n ;\n ;\n popover.bounds = [popover.offset().left,popover.offset().JSBNG__top,popover.JSBNG__outerWidth(),popover.JSBNG__outerHeight(),];\n popovers.push(popover);\n popover.reposition = reposition;\n popover.close = close;\n popover.settings = settings;\n popover.triggerClicked = function() {\n if (((closeEvent & et.CLICK_TRIGGER))) {\n close();\n }\n ;\n ;\n };\n popover.children = children;\n if (((closeEvent & et.MOUSE_LEAVE))) {\n var timerID = null;\n var triggerRects = [];\n $.each(triggers, function() {\n var n = $(this);\n if (n.is(\"area\")) {\n var b = boundsOfAreaElement(n);\n triggerRects.push([b[0],b[1],((b[2] - b[0])),((b[3] - b[1])),]);\n }\n else {\n triggerRects.push([n.offset().left,n.offset().JSBNG__top,n.JSBNG__outerWidth(),n.JSBNG__outerHeight(),]);\n }\n ;\n ;\n });\n if (settings.additionalCursorRects) {\n $(settings.additionalCursorRects).each(function() {\n var n = $(this);\n triggerRects.push([n.offset().left,n.offset().JSBNG__top,n.JSBNG__outerWidth(),n.JSBNG__outerHeight(),]);\n });\n }\n ;\n ;\n applyBacking(popover, {\n solidRectangle: settings.solidRectangle,\n useIFrame: settings.useIFrame,\n mouseEnter: function() {\n if (timerID) {\n JSBNG__clearTimeout(timerID);\n timerID = null;\n }\n ;\n ;\n return true;\n },\n mouseLeave: function(immediately) {\n if (((settings.semiStatic && interactedWith))) {\n return !children.length;\n }\n ;\n ;\n if (timerID) {\n JSBNG__clearTimeout(timerID);\n timerID = null;\n }\n ;\n ;\n if (((children.length == 0))) {\n if (immediately) {\n close();\n }\n else {\n timerID = JSBNG__setTimeout(function() {\n close();\n timerID = null;\n }, settings.hoverHideDelay);\n }\n ;\n ;\n return true;\n }\n ;\n ;\n return false;\n },\n additionalCursorRects: triggerRects,\n inside: true\n });\n }\n else {\n applyBacking(popover, {\n solidRectangle: settings.solidRectangle,\n useIFrame: settings.useIFrame\n });\n }\n ;\n ;\n $(function() {\n for (var i = 0; ((i < popovers.length)); i++) {\n if (popovers[i].settings.modal) {\n popovers[i].backing.refreshBounds();\n }\n ;\n ;\n };\n ;\n });\n return popover;\n };\n var isMobileAgent = function(inclusive) {\n var reAry = [\"iPhone\",\"iPad\",];\n if (inclusive) {\n reAry.push(\"Silk/\", \"Kindle Fire\", \"Android\", \"\\\\bTouch\\\\b\");\n }\n ;\n ;\n var reStr = ((((\"(\" + reAry.join(\"|\"))) + \")\"));\n return JSBNG__navigator.userAgent.match(new RegExp(reStr, \"i\"));\n };\n var getPageWidth = function() {\n return (($.browser.msie ? $(window).width() : \"100%\"));\n };\n var getPageHeight = function() {\n return (((($.browser.msie || isMobileAgent())) ? $(JSBNG__document).height() : \"100%\"));\n };\n var showOverlay = function(closeFunction, z) {\n var overlay = $(\"\\u003Cdiv id=\\\"ap_overlay\\\"/\\u003E\");\n if ($.browser.msie) {\n overlay.fitToScreen = function(e) {\n var windowHeight = $(JSBNG__document).height();\n var windowWidth = $(window).width();\n var children = overlay.children();\n overlay.css({\n width: windowWidth,\n height: windowHeight,\n backgroundColor: \"transparent\",\n zIndex: z\n });\n var appendElements = [];\n for (var i = 0; ((((i < children.size())) || ((((windowHeight - ((i * 2000)))) > 0)))); i++) {\n var paneHeight = Math.min(((windowHeight - ((i * 2000)))), 2000);\n if (((paneHeight > 0))) {\n if (((i < children.size()))) {\n children.eq(i).css({\n width: windowWidth,\n height: paneHeight\n });\n }\n else {\n var slice = $(\"\\u003Cdiv/\\u003E\").css({\n opacity: 95378,\n zIndex: z,\n width: windowWidth,\n height: paneHeight,\n JSBNG__top: ((i * 2000))\n });\n appendElements.push(slice[0]);\n }\n ;\n ;\n }\n else {\n children.eq(i).remove();\n }\n ;\n ;\n };\n ;\n if (appendElements.length) {\n overlay.append(appendElements);\n }\n ;\n ;\n };\n overlay.snapToLeft = function() {\n overlay.css(\"left\", jQuery(JSBNG__document).scrollLeft());\n };\n $(window).bind(\"resize load\", overlay.fitToScreen);\n $(window).JSBNG__scroll(overlay.snapToLeft);\n overlay.snapToLeft();\n overlay.fitToScreen();\n }\n else {\n overlay.css({\n width: getPageWidth(),\n height: getPageHeight(),\n position: (((($.browser.mozilla || $.browser.safari)) ? \"fixed\" : \"\")),\n opacity: 95917,\n zIndex: z\n });\n }\n ;\n ;\n return overlay.appendTo(rootElement());\n };\n var HEADER_HEIGHT = 45;\n var FOOTER_HEIGHT = 35;\n var VERT_ARROW_OFFSET = 327;\n var LEFT_ARROW_OFFSET = 0;\n var RIGHT_ARROW_OFFSET = -51;\n var attachedPositioning = function(popover, targetY, JSBNG__location, position, offset) {\n if (popover.hasClass(\"ap_popover_sprited\")) {\n var dist = ((((targetY - JSBNG__location.JSBNG__top)) - offset[1]));\n if (((dist < HEADER_HEIGHT))) {\n dist = HEADER_HEIGHT;\n }\n else {\n if (((dist > ((popover.JSBNG__outerHeight() - FOOTER_HEIGHT))))) {\n dist = ((popover.JSBNG__outerHeight() - FOOTER_HEIGHT));\n }\n ;\n ;\n }\n ;\n ;\n var attachingSide = ((((position == \"left\")) ? \"right\" : \"left\"));\n var elm = popover.JSBNG__find(((\".ap_body .ap_\" + attachingSide)));\n if (((elm.length > 0))) {\n elm.removeClass(((\"ap_\" + attachingSide))).addClass(((((\"ap_\" + attachingSide)) + \"-arrow\")));\n }\n else {\n elm = popover.JSBNG__find(((((\".ap_body .ap_\" + attachingSide)) + \"-arrow\")));\n }\n ;\n ;\n var xOffset = ((((attachingSide == \"left\")) ? LEFT_ARROW_OFFSET : RIGHT_ARROW_OFFSET));\n elm.css(\"backgroundPosition\", ((((((xOffset + \"px \")) + ((dist - VERT_ARROW_OFFSET)))) + \"px\")));\n }\n ;\n ;\n };\n var position = function(popover, settings, triggers) {\n if (!settings.width) {\n popover.css(\"width\", getDynamicWidth(popover, settings));\n }\n ;\n ;\n var offset = ((settings.locationOffset || [0,0,]));\n if (((typeof settings.JSBNG__location == \"function\"))) {\n var JSBNG__location = settings.JSBNG__location.call(triggers, popover, settings);\n }\n else {\n var names = $.map($.makeArray(settings.JSBNG__location), function(n) {\n return ((((n == \"auto\")) ? [\"bottom\",\"left\",\"right\",\"JSBNG__top\",] : n));\n });\n var set = ((((settings.locationElement && $(settings.locationElement))) || triggers));\n var b = ((set && boundingRectangle(set)));\n var JSBNG__location = locationFunction[names[0]](b, popover, settings);\n var index = 0;\n for (var i = 1; ((((i < names.length)) && !JSBNG__location.fits)); i++) {\n var next = locationFunction[names[i]](b, popover, settings);\n if (next.fits) {\n JSBNG__location = next;\n index = i;\n }\n ;\n ;\n };\n ;\n if (((settings.attached && ((((names[index] == \"left\")) || ((names[index] == \"right\"))))))) {\n attachedPositioning(popover, ((((b.JSBNG__top + b.bottom)) / 2)), JSBNG__location, names[index], offset);\n }\n ;\n ;\n }\n ;\n ;\n popover.css({\n left: ((JSBNG__location.left + offset[0])),\n JSBNG__top: ((JSBNG__location.JSBNG__top + offset[1])),\n margin: JSBNG__location.margin,\n right: JSBNG__location.right\n });\n if (popover.backing) {\n popover.backing.refreshBounds();\n }\n ;\n ;\n };\n var horizPosition = function(b, popover, settings) {\n var align = $.makeArray(((settings.align || \"left\")));\n var x = {\n min: (((($(JSBNG__document).scrollLeft() + settings.windowMargin)) - settings.surround[3])),\n max: ((((((viewport.width() + $(JSBNG__document).scrollLeft())) - settings.windowMargin)) - popover.JSBNG__outerWidth())),\n left: ((((b.left - settings.surround[3])) - settings.alignMargin)),\n right: ((((((b.right - popover.JSBNG__outerWidth())) + settings.surround[1])) + settings.alignMargin)),\n center: ((((((b.left + b.right)) - popover.JSBNG__outerWidth())) / 2))\n };\n var align = $.grep($.makeArray(settings.align), function(n) {\n return x[n];\n });\n if (((align.length == 0))) {\n align.push(\"left\");\n }\n ;\n ;\n for (var i = 0; ((i < align.length)); i++) {\n if (((((x[align[i]] >= x.min)) && ((x[align[i]] <= x.max))))) {\n return x[align[i]];\n }\n ;\n ;\n };\n ;\n if (settings.forceAlignment) {\n return x[align[0]];\n }\n ;\n ;\n if (((x.min > x.max))) {\n return x.min;\n }\n ;\n ;\n return ((((x[align[0]] < x.min)) ? x.min : x.max));\n };\n var vertPosition = function(b, popover, settings) {\n var min = (($(JSBNG__document).scrollTop() + settings.windowMargin));\n var max = ((((viewport.height() + $(JSBNG__document).scrollTop())) - settings.windowMargin));\n if (settings.attached) {\n var midpoint = ((((b.JSBNG__top + b.bottom)) / 2));\n if (((((midpoint - HEADER_HEIGHT)) < min))) {\n min = ((((((min + HEADER_HEIGHT)) < b.bottom)) ? min : ((b.bottom - HEADER_HEIGHT))));\n }\n ;\n ;\n if (((((midpoint + FOOTER_HEIGHT)) > max))) {\n max = ((((((max - FOOTER_HEIGHT)) > b.JSBNG__top)) ? max : ((b.JSBNG__top + FOOTER_HEIGHT))));\n }\n ;\n ;\n }\n else {\n min = Math.min(((b.JSBNG__top - settings.alignMargin)), min);\n max = Math.max(((b.bottom + settings.alignMargin)), max);\n }\n ;\n ;\n var y = {\n min: ((min - settings.surround[0])),\n max: ((((max - popover.JSBNG__outerHeight())) + settings.surround[2])),\n JSBNG__top: ((((b.JSBNG__top - settings.surround[0])) - settings.alignMargin)),\n bottom: ((((((b.bottom - popover.JSBNG__outerHeight())) + settings.alignMargin)) + settings.surround[2])),\n middle: ((((((b.JSBNG__top + b.bottom)) - popover.JSBNG__outerHeight())) / 2))\n };\n var align = $.grep($.makeArray(settings.align), function(n) {\n return y[n];\n });\n if (((align.length == 0))) {\n align.push(\"JSBNG__top\");\n }\n ;\n ;\n for (var i = 0; ((i < align.length)); i++) {\n if (((((y[align[i]] >= y.min)) && ((y[align[i]] <= y.max))))) {\n return y[align[i]];\n }\n ;\n ;\n };\n ;\n if (settings.forceAlignment) {\n return y[align[0]];\n }\n ;\n ;\n if (((y.min > y.max))) {\n return y.min;\n }\n ;\n ;\n return ((((y[align[0]] < y.min)) ? y.min : y.max));\n };\n var locationFunction = {\n centered: function(b, popover, settings) {\n var y = (($(window).scrollTop() + 100));\n return {\n left: -((popover.JSBNG__outerWidth() / 2)),\n right: 0,\n JSBNG__top: y,\n margin: \"0% 50%\",\n fits: true\n };\n },\n JSBNG__top: function(b, popover, settings) {\n var room = ((((b.JSBNG__top - $(JSBNG__document).scrollTop())) - ((settings.locationMargin * 2))));\n var triggerInView = ((((b.left >= $(JSBNG__document).scrollLeft())) && ((b.right < ((viewport.width() + $(JSBNG__document).scrollLeft()))))));\n return {\n left: horizPosition(b, popover, settings),\n JSBNG__top: ((((((b.JSBNG__top - popover.JSBNG__outerHeight())) - settings.locationMargin)) + settings.surround[2])),\n fits: ((triggerInView && ((room >= ((((popover.JSBNG__outerHeight() - settings.surround[0])) - settings.surround[2]))))))\n };\n },\n left: function(b, popover, settings) {\n var room = ((((b.left - $(JSBNG__document).scrollLeft())) - ((settings.locationMargin * 2))));\n return {\n left: ((((((b.left - popover.JSBNG__outerWidth())) - settings.locationMargin)) + settings.surround[1])),\n JSBNG__top: vertPosition(b, popover, settings),\n fits: ((room >= ((((popover.JSBNG__outerWidth() - settings.surround[1])) - settings.surround[3]))))\n };\n },\n bottom: function(b, popover, settings) {\n var room = ((((((viewport.height() + $(JSBNG__document).scrollTop())) - b.bottom)) - ((settings.locationMargin * 2))));\n var triggerInView = ((((b.left >= $(JSBNG__document).scrollLeft())) && ((b.right < ((viewport.width() + $(JSBNG__document).scrollLeft()))))));\n return {\n left: horizPosition(b, popover, settings),\n JSBNG__top: ((((b.bottom + settings.locationMargin)) - settings.surround[0])),\n fits: ((triggerInView && ((room >= ((((popover.JSBNG__outerHeight() - settings.surround[0])) - settings.surround[2]))))))\n };\n },\n right: function(b, popover, settings) {\n var room = ((((((viewport.width() + $(JSBNG__document).scrollLeft())) - b.right)) - ((settings.locationMargin * 2))));\n return {\n left: ((((b.right + settings.locationMargin)) - settings.surround[3])),\n JSBNG__top: vertPosition(b, popover, settings),\n fits: ((room >= ((((popover.JSBNG__outerWidth() - settings.surround[1])) - settings.surround[3]))))\n };\n },\n over: function(b, popover, settings) {\n var alignTo = popover.JSBNG__find(((settings.align || \".ap_content *\"))).offset();\n var corner = popover.offset();\n var padding = {\n left: ((alignTo.left - corner.left)),\n JSBNG__top: ((alignTo.JSBNG__top - corner.JSBNG__top))\n };\n var left = ((b.left - padding.left));\n var JSBNG__top = ((b.JSBNG__top - padding.JSBNG__top));\n var adjustedLeft = Math.min(left, ((((((viewport.width() + $(JSBNG__document).scrollLeft())) - popover.JSBNG__outerWidth())) - settings.windowMargin)));\n adjustedLeft = Math.max(adjustedLeft, (((($(JSBNG__document).scrollLeft() - settings.surround[3])) + settings.windowMargin)));\n var adjustedTop = Math.min(JSBNG__top, ((((((((viewport.height() + $(JSBNG__document).scrollTop())) - popover.JSBNG__outerHeight())) + settings.surround[2])) - settings.windowMargin)));\n adjustedTop = Math.max(adjustedTop, (((($(JSBNG__document).scrollTop() - settings.surround[0])) + settings.windowMargin)));\n return {\n left: ((settings.forceAlignment ? left : adjustedLeft)),\n JSBNG__top: ((settings.forceAlignment ? JSBNG__top : adjustedTop)),\n fits: ((((left == adjustedLeft)) && ((JSBNG__top == adjustedTop))))\n };\n }\n };\n var addAliases = function(settings) {\n settings.align = ((settings.align || settings.locationAlign));\n settings.literalContent = ((settings.literalContent || settings.loadingContent));\n };\n var preparePopover = function() {\n if (!preparedPopover) {\n var ie6 = ((jQuery.browser.msie && ((parseInt(jQuery.browser.version) <= 6))));\n preparedPopover = $(skins[((ie6 ? \"default_non_sprited\" : \"default\"))]).css({\n left: -2000,\n JSBNG__top: -2000\n }).appendTo(rootElement());\n }\n ;\n ;\n };\n var fixPngs = function(obj) {\n obj.JSBNG__find(\"*\").each(function() {\n var match = ((jQuery(this).css(\"background-image\") || \"\")).match(/url\\(\"(.*\\.png)\"\\)/);\n if (match) {\n var png = match[1];\n jQuery(this).css(\"background-image\", \"none\");\n jQuery(this).get(0).runtimeStyle.filter = ((((\"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='\" + png)) + \"',sizingMethod='scale')\"));\n }\n ;\n ;\n });\n };\n var getDynamicWidth = function(popover, settings) {\n var container = popover.JSBNG__find(\".ap_content\");\n if (((((settings.skin == \"default\")) && ((container.length > 0))))) {\n var tempNode = $(((((\"\\u003Cdiv class=\\\"ap_temp\\\"\\u003E\" + container.html())) + \"\\u003C/div\\u003E\")));\n tempNode.css({\n display: \"inline\",\n position: \"absolute\",\n JSBNG__top: -9999,\n left: -9999\n });\n rootElement().append(tempNode);\n var marginLeft = ((parseInt(container.parent().css(\"margin-left\")) || 0));\n var marginRight = ((parseInt(container.parent().css(\"margin-right\")) || 0));\n var width = ((((((((((tempNode.width() + marginLeft)) + marginRight)) + settings.paddingLeft)) + settings.paddingRight)) + 2));\n if (((((width % 2)) != 0))) {\n width++;\n }\n ;\n ;\n tempNode.remove();\n return Math.min(width, viewport.width());\n }\n ;\n ;\n return null;\n };\n var enableDragAndDrop = function(titlebar, popover) {\n titlebar.css(\"cursor\", \"move\");\n disableSelect(titlebar.get(0));\n titlebar.mousedown(function(e) {\n e.preventDefault();\n disableSelect(JSBNG__document.body);\n var offset = [((e.pageX - popover.offset().left)),((e.pageY - popover.offset().JSBNG__top)),];\n var mousemove = function(e) {\n e.preventDefault();\n popover.css({\n left: ((e.pageX - offset[0])),\n JSBNG__top: ((e.pageY - offset[1])),\n margin: 0\n });\n if (popover.backing) {\n popover.backing.reposition(((e.pageX - offset[0])), ((e.pageY - offset[1])));\n }\n ;\n ;\n };\n var mouseup = function(e) {\n popover.JSBNG__focus();\n enableSelect(JSBNG__document.body);\n $(JSBNG__document).unbind(\"mousemove\", mousemove);\n $(JSBNG__document).unbind(\"mouseup\", mouseup);\n };\n $(JSBNG__document).mousemove(mousemove).mouseup(mouseup);\n });\n };\n var disableSelect = function(e) {\n if (e) {\n e.onselectstart = function(e) {\n return false;\n };\n e.style.MozUserSelect = \"none\";\n }\n ;\n ;\n };\n var enableSelect = function(e) {\n if (e) {\n e.onselectstart = function(e) {\n return true;\n };\n e.style.MozUserSelect = \"\";\n }\n ;\n ;\n };\n var boundsOfAreaElement = function(area) {\n area = jQuery(area);\n var coords = jQuery.map(area.attr(\"coords\").split(\",\"), function(n) {\n return Number(n);\n });\n if (area.attr(\"shape\").match(/circle/i)) {\n coords = [((coords[0] - coords[2])),((coords[1] - coords[2])),((coords[0] + coords[2])),((coords[1] + coords[2])),];\n }\n ;\n ;\n var x = [], y = [];\n for (var i = 0; ((i < coords.length)); i++) {\n ((((((i % 2)) == 0)) ? x : y)).push(coords[i]);\n };\n ;\n var min = [Math.min.apply(Math, x),Math.min.apply(Math, y),];\n var max = [Math.max.apply(Math, x),Math.max.apply(Math, y),];\n var mapName = area.parents(\"map\").attr(\"JSBNG__name\");\n var mapImg = jQuery(((((\"img[usemap=#\" + mapName)) + \"]\")));\n var map = mapImg.offset();\n map.left += parseInt(mapImg.css(\"border-left-width\"));\n map.JSBNG__top += parseInt(mapImg.css(\"border-top-width\"));\n return [((map.left + min[0])),((map.JSBNG__top + min[1])),((map.left + max[0])),((map.JSBNG__top + max[1])),];\n };\n $.AmazonPopover = {\n displayPopover: displayPopover,\n mouseTracker: mouseTracker,\n updateBacking: updateBacking,\n support: {\n skinCallback: true,\n controlCallbacks: true\n }\n };\n };\n ;\n })();\n (function(window) {\n if (((window.$Nav && !window.$Nav._replay))) {\n return;\n }\n ;\n ;\n function argArray(args) {\n return [].slice.call(args);\n };\n ;\n var timestamp = ((JSBNG__Date.now || function() {\n return +(new JSBNG__Date());\n }));\n var schedule = (function() {\n var toRun = [];\n var scheduled;\n function execute() {\n var i = 0;\n try {\n while (((toRun[i] && ((i < 50))))) {\n i++;\n toRun[((i - 1))].f.apply(window, toRun[((i - 1))].a);\n };\n ;\n } catch (e) {\n var ePrefixed = e;\n var msg = \"\";\n if (toRun[((i - 1))].t) {\n msg = ((((\"[\" + toRun[((i - 1))].t.join(\":\"))) + \"] \"));\n }\n ;\n ;\n if (((ePrefixed && ePrefixed.message))) {\n ePrefixed.message = ((msg + ePrefixed.message));\n }\n else {\n if (((typeof e === \"object\"))) {\n ePrefixed.message = msg;\n }\n else {\n ePrefixed = ((msg + ePrefixed));\n }\n ;\n ;\n }\n ;\n ;\n if (((((window.ueLogError && window.JSBNG__console)) && window.JSBNG__console.error))) {\n window.ueLogError(ePrefixed);\n window.JSBNG__console.error(ePrefixed);\n }\n else {\n throw ePrefixed;\n }\n ;\n ;\n } finally {\n toRun = toRun.slice(i);\n if (((toRun.length > 0))) {\n JSBNG__setTimeout(execute, 1);\n }\n else {\n scheduled = false;\n }\n ;\n ;\n };\n ;\n };\n ;\n return function(tags, func, args) {\n toRun.push({\n t: tags,\n f: func,\n a: argArray(((args || [])))\n });\n if (!scheduled) {\n JSBNG__setTimeout(execute, 1);\n scheduled = true;\n }\n ;\n ;\n };\n }());\n function ensureFunction(value) {\n if (((typeof value === \"function\"))) {\n return value;\n }\n else {\n return function() {\n return value;\n };\n }\n ;\n ;\n };\n ;\n function extract(base, path) {\n var parts = ((path || \"\")).split(\".\");\n for (var i = 0, len = parts.length; ((i < len)); i++) {\n if (((base && parts[i]))) {\n base = base[parts[i]];\n }\n ;\n ;\n };\n ;\n return base;\n };\n ;\n function withRetry(callback) {\n var timeout = 50;\n var execute = function() {\n if (((((timeout <= 20000)) && !callback()))) {\n JSBNG__setTimeout(execute, timeout);\n timeout = ((timeout * 2));\n }\n ;\n ;\n };\n return execute;\n };\n ;\n function isAuiP() {\n return ((((((((typeof window.P === \"object\")) && ((typeof window.P.when === \"function\")))) && ((typeof window.P.register === \"function\")))) && ((typeof window.P.execute === \"function\"))));\n };\n ;\n function promise() {\n var observers = [];\n var fired = false;\n var value;\n var trigger = function() {\n if (fired) {\n return;\n }\n ;\n ;\n fired = true;\n value = arguments;\n for (var i = 0, len = observers.length; ((i < len)); i++) {\n schedule(observers[i].t, observers[i].f, value);\n };\n ;\n observers = void (0);\n };\n trigger.watch = function(tags, callback) {\n if (!callback) {\n callback = tags;\n tags = [];\n }\n ;\n ;\n if (fired) {\n schedule(tags, callback, value);\n }\n else {\n observers.push({\n t: tags,\n f: callback\n });\n }\n ;\n ;\n };\n trigger.isFired = function() {\n return fired;\n };\n trigger.value = function() {\n return ((value || []));\n };\n return trigger;\n };\n ;\n function promiseMap() {\n var promises = {\n };\n var getPromise = function(key) {\n return ((promises[key] || (promises[key] = promise())));\n };\n getPromise.whenAvailable = function(tags, dependencies) {\n var onComplete = promise();\n var length = dependencies.length;\n if (((length === 0))) {\n onComplete();\n return onComplete.watch;\n }\n ;\n ;\n var fulfilled = 0;\n var observer = function() {\n fulfilled++;\n if (((fulfilled < length))) {\n return;\n }\n ;\n ;\n var args = [];\n for (var i = 0; ((i < length)); i++) {\n args.push(getPromise(dependencies[i]).value()[0]);\n };\n ;\n onComplete.apply(window, args);\n };\n for (var i = 0; ((i < length)); i++) {\n getPromise(dependencies[i]).watch(tags, observer);\n };\n ;\n return onComplete.watch;\n };\n return getPromise;\n };\n ;\n function depend(options) {\n options = ((options || {\n bubble: false\n }));\n var components = promiseMap();\n var anonymousCount = 0;\n var debug = {\n };\n var iface = {\n };\n iface.declare = function(JSBNG__name, component) {\n if (!debug[JSBNG__name]) {\n debug[JSBNG__name] = {\n done: timestamp()\n };\n }\n ;\n ;\n components(JSBNG__name)(component);\n };\n iface.build = function(JSBNG__name, builder) {\n schedule([options.sourceName,JSBNG__name,], function() {\n iface.declare(JSBNG__name, ensureFunction(builder)());\n });\n };\n iface.getNow = function(JSBNG__name, otherwise) {\n return ((components(JSBNG__name).value()[0] || otherwise));\n };\n iface.publish = function(JSBNG__name, component) {\n iface.declare(JSBNG__name, component);\n var parent = options.parent;\n if (options.prefix) {\n JSBNG__name = ((((options.prefix + \".\")) + JSBNG__name));\n }\n ;\n ;\n if (((parent === (void 0)))) {\n if (window.amznJQ) {\n window.amznJQ.declareAvailable(JSBNG__name);\n }\n ;\n ;\n if (isAuiP()) {\n window.P.register(JSBNG__name, function() {\n return component;\n });\n }\n ;\n ;\n }\n else {\n if (((options.bubble && parent.publish))) {\n parent.publish(JSBNG__name, component);\n }\n else {\n if (parent.declare) {\n parent.declare(JSBNG__name, component);\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n iface.importEvent = function(JSBNG__name, opts) {\n var parent = options.parent;\n opts = ((opts || {\n }));\n var importAs = ((opts.as || JSBNG__name));\n var whenReady = function(value) {\n iface.declare(importAs, ((((((value === (void 0))) || ((value === null)))) ? opts.otherwise : value)));\n };\n if (((((((parent && parent.when)) && parent.declare)) && parent.build))) {\n parent.when(JSBNG__name).run(whenReady);\n return;\n }\n ;\n ;\n if (isAuiP()) {\n window.P.when(JSBNG__name).execute(whenReady);\n }\n ;\n ;\n if (window.amznJQ) {\n var meth = ((options.useOnCompletion ? \"onCompletion\" : \"available\"));\n window.amznJQ[meth](((opts.amznJQ || JSBNG__name)), withRetry(function() {\n var value = ((opts.global ? extract(window, opts.global) : opts.otherwise));\n var isUndef = ((((value === (void 0))) || ((value === null))));\n if (((opts.retry && isUndef))) {\n return false;\n }\n ;\n ;\n iface.declare(importAs, value);\n return true;\n }));\n }\n ;\n ;\n };\n iface.stats = function(unresolved) {\n var result = JSON.parse(JSON.stringify(debug));\n {\n var fin29keys = ((window.top.JSBNG_Replay.forInKeys)((result))), fin29i = (0);\n var key;\n for (; (fin29i < fin29keys.length); (fin29i++)) {\n ((key) = (fin29keys[fin29i]));\n {\n if (result.hasOwnProperty(key)) {\n var current = result[key];\n var depend = ((current.depend || []));\n var longPoleName;\n var longPoleDone = 0;\n var blocked = [];\n for (var i = 0; ((i < depend.length)); i++) {\n var dependency = depend[i];\n if (!components(dependency).isFired()) {\n blocked.push(dependency);\n }\n else {\n if (((debug[dependency].done > longPoleDone))) {\n longPoleDone = debug[dependency].done;\n longPoleName = dependency;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n if (((blocked.length > 0))) {\n current.blocked = blocked;\n }\n else {\n if (unresolved) {\n delete result[key];\n }\n else {\n if (((longPoleDone > 0))) {\n current.longPole = longPoleName;\n current.afterLongPole = ((current.done - longPoleDone));\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n };\n };\n ;\n return result;\n };\n iface.when = function() {\n var dependencies = argArray(arguments);\n function onResolved(JSBNG__name, callback) {\n var start = timestamp();\n var tags = [options.sourceName,JSBNG__name,];\n debug[JSBNG__name] = {\n depend: dependencies,\n registered: start\n };\n components.whenAvailable(tags, dependencies)(tags, function() {\n debug[JSBNG__name].done = timestamp();\n debug[JSBNG__name].wait = ((debug[JSBNG__name].done - start));\n callback.apply(this, argArray(arguments));\n });\n };\n ;\n return {\n run: function(nameOrCallback, callbackWhenNamed) {\n if (callbackWhenNamed) {\n nameOrCallback = ((\"run.\" + nameOrCallback));\n }\n else {\n callbackWhenNamed = nameOrCallback;\n nameOrCallback = ((\"run.#\" + anonymousCount++));\n }\n ;\n ;\n onResolved(nameOrCallback, callbackWhenNamed);\n },\n declare: function(JSBNG__name, value) {\n onResolved(JSBNG__name, function() {\n iface.declare(JSBNG__name, value);\n });\n },\n publish: function(JSBNG__name, value) {\n onResolved(JSBNG__name, function() {\n iface.publish(JSBNG__name, value);\n });\n },\n build: function(JSBNG__name, builder) {\n onResolved(JSBNG__name, function() {\n var args = argArray(arguments);\n var value = ensureFunction(builder).apply(this, args);\n iface.declare(JSBNG__name, value);\n });\n }\n };\n };\n return iface;\n };\n ;\n function make(sourceName) {\n sourceName = ((sourceName || \"unknownSource\"));\n var instance = depend({\n sourceName: sourceName\n });\n instance.declare(\"instance.sourceName\", sourceName);\n instance.importEvent(\"jQuery\", {\n as: \"$\",\n global: \"jQuery\"\n });\n instance.importEvent(\"jQuery\", {\n global: \"jQuery\"\n });\n instance.importEvent(\"amznJQ.AboveTheFold\", {\n as: \"page.ATF\",\n useOnCompletion: true\n });\n instance.importEvent(\"amznJQ.theFold\", {\n as: \"page.ATF\",\n useOnCompletion: true\n });\n instance.importEvent(\"amznJQ.criticalFeature\", {\n as: \"page.CF\",\n useOnCompletion: true\n });\n instance.when(\"$\").run(function($) {\n var triggerLoaded = function() {\n instance.declare(\"page.domReady\");\n instance.declare(\"page.ATF\");\n instance.declare(\"page.CF\");\n instance.declare(\"page.loaded\");\n };\n $(function() {\n instance.declare(\"page.domReady\");\n });\n $(window).load(triggerLoaded);\n if (((JSBNG__document.readyState === \"complete\"))) {\n triggerLoaded();\n }\n else {\n if (((JSBNG__document.readyState === \"interactive\"))) {\n instance.declare(\"page.domReady\");\n }\n ;\n ;\n }\n ;\n ;\n });\n return instance;\n };\n ;\n function callChain(obj, methods) {\n for (var i = 0, len = methods.length; ((i < len)); i++) {\n var invoke = methods[i];\n if (!obj[invoke.m]) {\n return;\n }\n ;\n ;\n obj = obj[invoke.m].apply(obj, invoke.a);\n };\n ;\n };\n ;\n function replaceShim(shim) {\n var replacement = make(shim._sourceName);\n if (!shim._replay) {\n return;\n }\n ;\n ;\n for (var i = 0, iLen = shim._replay.length; ((i < iLen)); i++) {\n callChain(replacement, shim._replay[i]);\n };\n ;\n {\n var fin30keys = ((window.top.JSBNG_Replay.forInKeys)((replacement))), fin30i = (0);\n var method;\n for (; (fin30i < fin30keys.length); (fin30i++)) {\n ((method) = (fin30keys[fin30i]));\n {\n if (replacement.hasOwnProperty(method)) {\n shim[method] = replacement[method];\n }\n ;\n ;\n };\n };\n };\n ;\n delete shim._replay;\n };\n ;\n function hookup() {\n if (!window.$Nav.make) {\n window.$Nav.make = make;\n return;\n }\n ;\n ;\n if (!window.$Nav.make._shims) {\n return;\n }\n ;\n ;\n for (var i = 0, len = window.$Nav.make._shims.length; ((i < len)); i++) {\n replaceShim(window.$Nav.make._shims[i]);\n };\n ;\n window.$Nav.make = make;\n };\n ;\n if (!window.$Nav) {\n window.$Nav = make(\"rcx-nav\");\n }\n ;\n ;\n hookup();\n window.$Nav.declare(\"depend\", depend);\n window.$Nav.declare(\"promise\", promise);\n window.$Nav.declare(\"argArray\", argArray);\n window.$Nav.declare(\"schedule\", schedule);\n }(window));\n (function(window, $Nav) {\n $Nav.when(\"$\").run(function($) {\n $Nav.importEvent(\"legacy-popover\", {\n as: \"$popover\",\n amznJQ: \"popover\",\n otherwise: $\n });\n });\n $Nav.importEvent(\"iss\", {\n amznJQ: \"search-js-autocomplete\",\n global: \"iss\",\n retry: true\n });\n if (!window.amznJQ) {\n return;\n }\n ;\n ;\n var amznJQ = window.amznJQ;\n amznJQ.available(\"navbarInline\", function() {\n $Nav.declare(\"logEvent\", window._navbar.logEv);\n $Nav.declare(\"config.readyOnATF\", window._navbar.readyOnATF);\n $Nav.declare(\"config.browsePromos\", window._navbar.browsepromos);\n $Nav.declare(\"config.yourAccountPrimeURL\", window._navbar.yourAccountPrimer);\n $Nav.declare(\"config.sbd\", window._navbar._sbd_config);\n $Nav.declare(\"config.responsiveGW\", !!window._navbar.responsivegw);\n $Nav.declare(\"config.swmStyleData\", ((window._navbar._swmStyleData || {\n })));\n $Nav.declare(\"config.dismissNotificationUrl\", window._navbar.dismissNotificationUrl);\n $Nav.declare(\"config.signOutText\", window._navbar.signOutText);\n $Nav.declare(\"config.lightningDeals\", ((window._navbar._lightningDealsData || {\n })));\n $Nav.declare(\"config.enableDynamicMenus\", window._navbar.dynamicMenus);\n $Nav.declare(\"config.dynamicMenuArgs\", ((window._navbar.dynamicMenuArgs || {\n })));\n $Nav.declare(\"config.dynamicMenuUrl\", window._navbar.dynamicMenuUrl);\n $Nav.declare(\"config.ajaxProximity\", window._navbar._ajaxProximity);\n $Nav.declare(\"config.recordEvUrl\", window._navbar.recordEvUrl);\n $Nav.declare(\"config.recordEvInterval\", ((window._navbar.recordEvInterval || 60000)));\n $Nav.declare(\"config.sessionId\", window._navbar.sid);\n $Nav.declare(\"config.requestId\", window._navbar.rid);\n $Nav.declare(\"config.autoFocus\", window._navbar.enableAutoFocus);\n });\n amznJQ.available(\"navbarBTF\", function() {\n $Nav.declare(\"config.flyoutURL\", window._navbar.flyoutURL);\n $Nav.declare(\"config.prefetch\", window._navbar.prefetch);\n });\n $Nav.importEvent(\"navbarBTF\", {\n as: \"btf.full\"\n });\n $Nav.importEvent(\"navbarBTFLite\", {\n as: \"btf.lite\"\n });\n $Nav.importEvent(\"navbarInline\", {\n as: \"nav.inline\"\n });\n $Nav.when(\"nav.inline\", \"api.unHideSWM\", \"api.exposeSBD\", \"api.navDimensions\", \"api.onShowProceedToCheckout\", \"api.update\", \"api.setCartCount\", \"api.getLightningDealsData\", \"api.overrideCartButtonClick\", \"flyout.loadMenusConditionally\", \"flyout.shopall\", \"flyout.wishlist\", \"flyout.cart\", \"flyout.youraccount\").publish(\"navbarJSInteraction\");\n $Nav.when(\"navbarJSInteraction\").publish(\"navbarJS-beacon\");\n $Nav.when(\"navbarJSInteraction\").publish(\"navbarJS-jQuery\");\n }(window, window.$Nav));\n window.navbar = {\n };\n window.$Nav.when(\"depend\").build(\"api.publish\", function(depend) {\n var $Nav = window.$Nav;\n var apiComponents = depend({\n parent: $Nav,\n prefix: \"api\",\n bubble: false\n });\n function use(component, callback) {\n apiComponents.when(component).run(callback);\n };\n ;\n window.navbar.use = use;\n return function(JSBNG__name, value) {\n apiComponents.publish(JSBNG__name, value);\n window.navbar[JSBNG__name] = value;\n $Nav.publish(((\"nav.\" + JSBNG__name)), value);\n };\n });\n (function($Nav) {\n $Nav.declare(\"throttle\", function(wait, func) {\n var throttling = false;\n var called = false;\n function afterWait() {\n if (!called) {\n throttling = false;\n return;\n }\n else {\n called = false;\n JSBNG__setTimeout(afterWait, wait);\n func();\n }\n ;\n ;\n };\n ;\n return function() {\n if (throttling) {\n called = true;\n return;\n }\n ;\n ;\n throttling = true;\n JSBNG__setTimeout(afterWait, wait);\n func();\n };\n });\n $Nav.when(\"$\").build(\"agent\", function($) {\n return (new function() {\n function contains() {\n var args = Array.prototype.slice.call(arguments, 0);\n var regex = new RegExp(((((\"(\" + args.join(\"|\"))) + \")\")), \"i\");\n return regex.test(JSBNG__navigator.userAgent);\n };\n ;\n this.iPhone = contains(\"iPhone\");\n this.iPad = contains(\"iPad\");\n this.kindleFire = contains(\"Kindle Fire\", \"Silk/\");\n this.android = contains(\"Android\");\n this.webkit = contains(\"WebKit\");\n this.ie10 = contains(\"MSIE 10\");\n this.ie6 = (($.browser.msie && ((parseInt($.browser.version, 10) <= 6))));\n this.touch = ((((((((((((this.iPhone || this.iPad)) || this.android)) || this.kindleFire)) || !!((\"JSBNG__ontouchstart\" in window)))) || ((window.JSBNG__navigator.msMaxTouchPoints > 0)))) || contains(\"\\\\bTouch\\\\b\")));\n this.ie10touch = ((this.ie10 && this.touch));\n this.mac = contains(\"Macintosh\");\n this.iOS = ((this.iPhone || this.iPad));\n });\n });\n $Nav.declare(\"byID\", function(elemID) {\n return JSBNG__document.getElementById(elemID);\n });\n $Nav.build(\"dismissTooltip\", function() {\n var dismissed = false;\n return function() {\n if (dismissed) {\n return;\n }\n ;\n ;\n $Nav.publish(\"navDismissTooltip\");\n dismissed = true;\n };\n });\n $Nav.build(\"recordEv\", function() {\n var recordEvQueue = [], dups = {\n };\n $Nav.when(\"$\", \"config.recordEvUrl\", \"config.recordEvInterval\", \"config.sessionId\", \"config.requestId\").run(function($, recordEvUrl, interval, sessionId, requestId) {\n if (!recordEvUrl) {\n return;\n }\n ;\n ;\n function getSid() {\n var sid = ((window.ue && window.ue.sid));\n sid = ((sid || sessionId));\n return ((sid ? sid : \"\"));\n };\n ;\n function getRid() {\n var rid = ((window.ue && window.ue.rid));\n rid = ((rid || requestId));\n return ((rid ? rid : \"\"));\n };\n ;\n var cnt = 0;\n function send(when) {\n cnt++;\n if (((recordEvQueue.length === 0))) {\n return;\n }\n ;\n ;\n when = ((when || cnt));\n var msg = recordEvQueue.join(\":\");\n msg = window.encodeURIComponent(msg);\n msg = ((((((((((((((\"trigger=\" + msg)) + \"&when=\")) + when)) + \"&sid=\")) + getSid())) + \"&rid=\")) + getRid()));\n var sep = ((((recordEvUrl.indexOf(\"?\") > 0)) ? \"&\" : \"?\"));\n new JSBNG__Image().src = ((((recordEvUrl + sep)) + msg));\n recordEvQueue = [];\n };\n ;\n window.JSBNG__setInterval(send, interval);\n $(window).bind(\"beforeunload\", function() {\n send(\"beforeunload\");\n });\n });\n return function(evId) {\n if (!((evId in dups))) {\n recordEvQueue.push(evId);\n dups[evId] = true;\n }\n ;\n ;\n };\n });\n $Nav.declare(\"TunableCallback\", function(callback) {\n var timeout = 0;\n var conditions = [];\n var wrapper = function() {\n function execute() {\n for (var i = 0; ((i < conditions.length)); i++) {\n if (!conditions[i]()) {\n return;\n }\n ;\n ;\n };\n ;\n callback();\n };\n ;\n if (((timeout > 0))) {\n JSBNG__setTimeout(execute, timeout);\n }\n else {\n execute();\n }\n ;\n ;\n };\n wrapper.delay = function(milliseconds) {\n timeout = milliseconds;\n return wrapper;\n };\n wrapper.iff = function(predicate) {\n conditions.push(predicate);\n return wrapper;\n };\n return wrapper;\n });\n $Nav.build(\"eachDescendant\", function() {\n function eachDescendant(node, func) {\n func(node);\n node = node.firstChild;\n while (node) {\n eachDescendant(node, func);\n node = node.nextSibling;\n };\n ;\n };\n ;\n return eachDescendant;\n });\n $Nav.when(\"$\", \"promise\", \"TunableCallback\").run(\"pageReady\", function($, promise, TunableCallback) {\n if (((JSBNG__document.readyState === \"complete\"))) {\n $Nav.declare(\"page.ready\");\n return;\n }\n ;\n ;\n var pageReady = promise();\n function windowNotLoaded() {\n return ((JSBNG__document.readyState != \"complete\"));\n };\n ;\n function atfEnabled() {\n return !!$Nav.getNow(\"config.readyOnATF\");\n };\n ;\n $Nav.when(\"page.ATF\").run(TunableCallback(pageReady).iff(windowNotLoaded).iff(atfEnabled));\n $Nav.when(\"page.CF\").run(TunableCallback(pageReady).iff(windowNotLoaded));\n $Nav.when(\"page.domReady\").run(TunableCallback(pageReady).delay(10000).iff(windowNotLoaded));\n $Nav.when(\"page.loaded\").run(TunableCallback(pageReady).delay(100));\n pageReady.watch([$Nav.getNow(\"instance.sourceName\"),\"pageReadyCallback\",], function() {\n $Nav.declare(\"page.ready\");\n });\n });\n $Nav.when(\"$\", \"agent\").build(\"onOptionClick\", function($, agent) {\n return function(node, callback) {\n var $node = $(node);\n if (((((agent.mac && agent.webkit)) || ((agent.touch && !agent.ie10))))) {\n $node.change(function() {\n callback.apply($node);\n });\n }\n else {\n var time = {\n click: 0,\n change: 0\n };\n var buildClickChangeHandler = function(primary, secondary) {\n return function() {\n time[primary] = new JSBNG__Date().getTime();\n if (((((time[primary] - time[secondary])) <= 100))) {\n callback.apply($node);\n }\n ;\n ;\n };\n };\n $node.click(buildClickChangeHandler(\"click\", \"change\")).change(buildClickChangeHandler(\"change\", \"click\"));\n }\n ;\n ;\n };\n });\n $Nav.when(\"$\", \"promise\", \"api.publish\").build(\"triggerProceedToCheckout\", function($, promise, publishAPI) {\n var observers = promise();\n publishAPI(\"onShowProceedToCheckout\", function(callback) {\n observers.watch([$Nav.getNow(\"instance.sourceName\"),\"onShowProceedToCheckoutCallback\",], function() {\n var buttons = $(\"#nav_cart_flyout a[href~=proceedToCheckout]\");\n if (((buttons.length > 0))) {\n callback(buttons);\n }\n ;\n ;\n });\n });\n return observers;\n });\n $Nav.when(\"promise\", \"api.publish\").run(\"triggerNearFlyout\", function(promise, publishAPI) {\n var observers = promise();\n publishAPI(\"onNearFlyout\", function(callback) {\n observers.watch([$Nav.getNow(\"instance.sourceName\"),\"onNearFlyoutCallback\",], callback);\n });\n $Nav.when(\"config.prefetchUrls\", \"JSBNG__event.prefetch\").run(\"prefetch\", function(prefetchUrls, triggerNearFlyout) {\n ((window.amznJQ && window.amznJQ.addPL(prefetchUrls)));\n observers();\n });\n });\n $Nav.when(\"$\", \"byID\").build(\"$byID\", function($, byID) {\n return function(elemID) {\n return $(((byID(elemID) || [])));\n };\n });\n $Nav.when(\"$byID\", \"config.dynamicMenuArgs\", \"btf.full\").build(\"flyout.primeAjax\", function($id, dynamicMenuArgs) {\n return ((dynamicMenuArgs.hasOwnProperty(\"isPrime\") && $id(\"nav-prime-menu\").hasClass(\"nav-ajax-prime-menu\")));\n });\n $Nav.when(\"$\", \"agent\").build(\"areaMapper\", function($, agent) {\n var nullFn = function() {\n \n };\n if (!agent.kindleFire) {\n return {\n disable: nullFn,\n enable: nullFn\n };\n }\n ;\n ;\n var disabled = $([]);\n return {\n disable: function(except) {\n var newMaps = $(\"img[usemap]\").filter(function() {\n return (($(this).parents(except).length === 0));\n });\n disabled = disabled.add(newMaps);\n newMaps.each(function() {\n this.disabledUseMap = $(this).attr(\"usemap\");\n $(this).attr(\"usemap\", \"\");\n });\n },\n enable: function() {\n disabled.each(function() {\n $(this).attr(\"usemap\", this.disabledUseMap);\n });\n disabled = $([]);\n }\n };\n });\n $Nav.when(\"$\").build(\"template\", function($) {\n var cache = {\n };\n return function(id, data) {\n if (!cache[id]) {\n cache[id] = new Function(\"obj\", ((((((\"var p=[],print=function(){p.push.apply(p,arguments);};\" + \"with(obj){p.push('\")) + $(id).html().replace(/[\\r\\t\\n]/g, \" \").replace(/'(?=[^#]*#>)/g, \"\\u0009\").split(\"'\").join(\"\\\\'\").split(\"\\u0009\").join(\"'\").replace(/<#=(.+?)#>/g, \"',$1,'\").split(\"\\u003C#\").join(\"');\").split(\"#\\u003E\").join(\"p.push('\"))) + \"');}return p.join('');\")));\n }\n ;\n ;\n try {\n return cache[id](data);\n } catch (e) {\n return \"\";\n };\n ;\n };\n });\n $Nav.when(\"$\", \"config.yourAccountPrimeURL\", \"nav.inline\").run(\"yourAccountPrimer\", function($, yourAccountPrimer) {\n if (yourAccountPrimer) {\n $(\"#nav_prefetch_yourorders\").mousedown((function() {\n var fired = false;\n return function() {\n if (fired) {\n return;\n }\n ;\n ;\n fired = true;\n (new JSBNG__Image).src = yourAccountPrimer;\n };\n }()));\n }\n ;\n ;\n });\n $Nav.when(\"$\", \"byID\", \"agent\", \"dismissTooltip\", \"recordEv\").build(\"flyout.NavButton\", function($, byID, agent, dismissTooltip, recordEv) {\n function NavButton(id) {\n this._jqId = ((\"#\" + id));\n var button = this;\n byID(id).className = byID(id).className.replace(\"nav-menu-inactive\", \"nav-menu-active\");\n var lastShown = 0;\n var weblabs;\n this.onShow = function() {\n lastShown = +(new JSBNG__Date);\n dismissTooltip();\n button._toggleClass(true, \"nav-button-outer-open\");\n if (weblabs) {\n recordEv(weblabs);\n }\n ;\n ;\n };\n this.onHide = function() {\n button._toggleClass(false, \"nav-button-outer-open\");\n };\n this.registerTrigger = function(options) {\n var params = this._defaultTriggerParams(button);\n $().extend(params, ((options || {\n })));\n var popover = $(button._jqId).amazonPopoverTrigger(params);\n if (params.localContent) {\n weblabs = $(params.localContent).attr(\"data-nav-wt\");\n }\n ;\n ;\n if (((agent.touch && $.AmazonPopover.support.controlCallbacks))) {\n $(button._jqId).click(function() {\n if (((popover.amznPopoverVisible() && ((((+(new JSBNG__Date) - lastShown)) > 400))))) {\n popover.amznPopoverHide();\n }\n ;\n ;\n });\n }\n ;\n ;\n };\n this.removeTrigger = function() {\n $(button._jqId).removeAmazonPopoverTrigger();\n };\n this._toggleClass = function(state, className) {\n if (state) {\n $(button._jqId).addClass(className);\n }\n else {\n $(button._jqId).removeClass(className);\n }\n ;\n ;\n };\n $(button._jqId).keypress(function(e) {\n if (((((e.which == 13)) && $(button._jqId).attr(\"href\")))) {\n window.JSBNG__location = $(button._jqId).attr(\"href\");\n }\n ;\n ;\n });\n this._defaultTriggerParams = function(button) {\n var c = {\n width: null,\n JSBNG__location: \"bottom\",\n locationAlign: \"left\",\n locationMargin: 0,\n hoverShowDelay: ((agent.touch ? 0 : 250)),\n hoverHideDelay: ((agent.touch ? 0 : 250)),\n showOnHover: true,\n forceAlignment: true,\n focusOnShow: false,\n skin: null,\n onShow: button.onShow,\n onHide: button.onHide,\n showCloseButton: false,\n group: \"navbar\"\n };\n if (agent.ie10touch) {\n c.hoverShowDelay = 250;\n }\n ;\n ;\n return c;\n };\n };\n ;\n return NavButton;\n });\n $Nav.when(\"$byID\", \"agent\", \"$popover\").build(\"flyout.SKIN\", function($id, agent, $) {\n return function(jqObject, xOffset, skinClass) {\n var callback = function() {\n var navWidth = $id(\"nav-bar-outer\").width();\n var rightMargin = Math.min(30, Math.max(0, ((((((navWidth - jqObject.offset().left)) - jqObject.JSBNG__outerWidth())) - xOffset)))), style = ((((rightMargin < 30)) ? ((((\" style=\\\"width: \" + ((rightMargin + 15)))) + \"px;\\\"\")) : \"\")), classes = [\"nav_flyout_table\",];\n if (agent.ie6) {\n classes.push(\"nav_ie6\");\n }\n ;\n ;\n if (skinClass) {\n classes.push(skinClass);\n }\n ;\n ;\n return ((((((((((((((((((((((((((((((((\"\\u003Ctable cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" surround=\\\"0,\" + rightMargin)) + \",30,30\\\" class=\\\"\")) + classes.join(\" \"))) + \"\\\"\\u003E\")) + \"\\u003Ctr\\u003E\\u003Ctd class=\\\"nav_pop_tl nav_pop_h\\\"\\u003E\\u003Cdiv class=\\\"nav_pop_lr_min\\\"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"nav_pop_tc nav_pop_h\\\"\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"nav_pop_tr nav_pop_h\\\"\")) + style)) + \"\\u003E\\u003Cdiv class=\\\"nav_pop_lr_min\\\"\")) + style)) + \"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\")) + \"\\u003Ctr\\u003E\\u003Ctd class=\\\"nav_pop_cl nav_pop_v\\\"\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"nav_pop_cc ap_content\\\"\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"nav_pop_cr nav_pop_v\\\"\")) + style)) + \"\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\")) + \"\\u003Ctr\\u003E\\u003Ctd class=\\\"nav_pop_bl nav_pop_v\\\"\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"nav_pop_bc nav_pop_h\\\"\\u003E\\u003C/td\\u003E\\u003Ctd class=\\\"nav_pop_br nav_pop_v\\\"\")) + style)) + \"\\u003E\\u003C/td\\u003E\\u003C/tr\\u003E\")) + \"\\u003C/table\\u003E\"));\n };\n return (((($.AmazonPopover.support && $.AmazonPopover.support.skinCallback)) ? callback : callback()));\n };\n });\n $Nav.when(\"$\", \"byID\", \"eachDescendant\").build(\"flyout.computeFlyoutHeight\", function($, byID, eachDescendant) {\n var flyoutHeightTable = {\n };\n return function(id) {\n if (((id in flyoutHeightTable))) {\n return flyoutHeightTable[id];\n }\n ;\n ;\n var elem = byID(id);\n var isDeepShopAll = (($(elem).parents(\".nav_deep\").length > 0));\n var isShortDeep = $(elem).is(\".nav_short\");\n var height = 0;\n if (isDeepShopAll) {\n height -= 7;\n }\n ;\n ;\n eachDescendant(elem, function(node) {\n var $node;\n if (((node.nodeType == 1))) {\n $node = $(node);\n if (!isDeepShopAll) {\n height += (($node.hasClass(\"nav_pop_li\") ? 23 : 0));\n height += (($node.hasClass(\"nav_divider_before\") ? 10 : 0));\n height += (($node.hasClass(\"nav_first\") ? -7 : 0));\n height += (($node.hasClass(\"nav_tag\") ? 13 : 0));\n }\n else {\n if (isShortDeep) {\n height += (($node.hasClass(\"nav_pop_li\") ? 28 : 0));\n height += (($node.hasClass(\"nav_first\") ? -8 : 0));\n height += (($node.hasClass(\"nav_divider_before\") ? 13 : 0));\n height += (($node.hasClass(\"nav_tag\") ? 13 : 0));\n }\n else {\n height += (($node.hasClass(\"nav_pop_li\") ? 30 : 0));\n height += (($node.hasClass(\"nav_first\") ? -7 : 0));\n height += (($node.hasClass(\"nav_divider_before\") ? 15 : 0));\n height += (($node.hasClass(\"nav_tag\") ? 13 : 0));\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n });\n flyoutHeightTable[id] = height;\n return height;\n };\n });\n $Nav.when(\"$popover\", \"$byID\", \"agent\", \"logEvent\", \"recordEv\", \"areaMapper\", \"flyout.NavButton\", \"flyout.SKIN\", \"flyout.computeFlyoutHeight\", \"flyout.initBrowsePromos\", \"config.responsiveGW\", \"config.sbd\", \"nav.inline\", \"flyout.JSBNG__content\").run(\"ShopAll\", function($, $id, agent, logEv, recordEv, areaMapper, NavButton, SKIN, computeFlyoutHeight, initBrowsePromos, responsiveGW, sbd_config) {\n if (((!$id(\"nav-shop-all-button\").length || !$id(\"nav_browse_flyout\").length))) {\n return;\n }\n ;\n ;\n var nullFn = function() {\n \n };\n var mt = $.AmazonPopover.mouseTracker, ub = $.AmazonPopover.updateBacking, subcatInited, deferredResizeSubcat, catWidth, mtRegions = [], activeCat, wasSuperCat, subcatRect, delayedChange, priorCursor, exposeSBDData, delayImpression, delayCatImpression;\n var id = \"nav-shop-all-button\", button = new NavButton(id), jQButton = $id(id), isResponsive = ((responsiveGW && ((!agent.touch || agent.ie10touch))));\n if (agent.touch) {\n $(\"#nav_cats .nav_cat a\").each(function() {\n var $this = $(this);\n $this.replaceWith($this.text());\n });\n }\n ;\n ;\n var onShow = function() {\n var initExposeSBD = $Nav.getNow(\"initExposeSBD\");\n if (initExposeSBD) {\n initExposeSBD().deBorder(true);\n }\n ;\n ;\n areaMapper.disable(\"#nav_browse_flyout\");\n initBrowsePromos();\n var $browse_flyout = $id(\"nav_browse_flyout\"), $subcats = $id(\"nav_subcats\"), $subcats_wrap = $id(\"nav_subcats_wrap\"), $cats = $id(\"nav_cats_wrap\"), $cat_indicator = $id(\"nav_cat_indicator\");\n if (!subcatInited) {\n catWidth = $cats.JSBNG__outerWidth();\n $browse_flyout.css({\n height: ((computeFlyoutHeight(\"nav_cats_wrap\") + \"px\")),\n width: ((catWidth + \"px\"))\n });\n $subcats_wrap.css({\n display: \"block\"\n });\n subcatInited = true;\n }\n else {\n $browse_flyout.css({\n height: ((computeFlyoutHeight(\"nav_cats_wrap\") + \"px\"))\n });\n }\n ;\n ;\n var animateSubcatComplete = function() {\n if (deferredResizeSubcat) {\n deferredResizeSubcat();\n }\n ;\n ;\n deferredResizeSubcat = null;\n if (agent.touch) {\n var $video = $(\"video\");\n $video.css(\"visibility\", \"hidden\");\n JSBNG__setTimeout(function() {\n $video.css(\"visibility\", \"\");\n }, 10);\n }\n ;\n ;\n $browse_flyout.css({\n overflow: \"visible\"\n });\n };\n var rectRelation = function(cursor, rect) {\n var h = \"c\", v = \"c\";\n if (((cursor && rect))) {\n if (((cursor.x < rect.x1))) {\n h = \"l\";\n }\n else {\n if (((cursor.x > rect.x2))) {\n h = \"r\";\n }\n ;\n ;\n }\n ;\n ;\n if (((cursor.y < rect.y1))) {\n v = \"t\";\n }\n else {\n if (((cursor.y > rect.y2))) {\n v = \"b\";\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n return ((v + h));\n };\n var notInRect = function(cursor, rect) {\n if (((rectRelation(cursor, rect) == \"cc\"))) {\n return false;\n }\n ;\n ;\n return true;\n };\n var calcChangeDelay = function(args, rect) {\n var delay = 0, c = args.cursor, p1 = ((args.priorCursors[0] || {\n })), p2 = ((args.priorCursors[1] || {\n }));\n if (((((((c.x == p1.x)) && ((Math.abs(((c.y - p1.y))) < 2)))) && ((c.x > p2.x))))) {\n delay = sbd_config.minor_delay;\n }\n else {\n var r = rect, pts = [c,p1,];\n switch (rectRelation(c, r)) {\n case \"tl\":\n pts.push({\n x: r.x1,\n y: r.y2\n }, {\n x: r.x2,\n y: r.y1\n });\n break;\n case \"bl\":\n pts.push({\n x: r.x1,\n y: r.y1\n }, {\n x: r.x2,\n y: r.y2\n });\n break;\n case \"cl\":\n pts.push({\n x: r.x1,\n y: r.y1\n }, {\n x: r.x1,\n y: r.y2\n });\n break;\n default:\n pts.push({\n x: 0,\n y: 0\n }, {\n x: 0,\n y: 0\n });\n delay = -1;\n };\n ;\n if (((delay === 0))) {\n var b0 = ((((((pts[2].x - pts[1].x)) * ((pts[3].y - pts[1].y)))) - ((((pts[3].x - pts[1].x)) * ((pts[2].y - pts[1].y)))))), b1 = ((((((((pts[2].x - pts[0].x)) * ((pts[3].y - pts[0].y)))) - ((((pts[3].x - pts[0].x)) * ((pts[2].y - pts[0].y)))))) / b0)), b2 = ((((((((pts[3].x - pts[0].x)) * ((pts[1].y - pts[0].y)))) - ((((pts[1].x - pts[0].x)) * ((pts[3].y - pts[0].y)))))) / b0)), b3 = ((((((((pts[1].x - pts[0].x)) * ((pts[2].y - pts[0].y)))) - ((((pts[2].x - pts[0].x)) * ((pts[1].y - pts[0].y)))))) / b0));\n delay = ((((((((b1 > 0)) && ((b2 > 0)))) && ((b3 > 0)))) ? sbd_config.major_delay : 0));\n }\n ;\n ;\n }\n ;\n ;\n return delay;\n };\n var doCatChange = function(cat, args) {\n var animateSubcat = !activeCat, resizeSubcat = false, $subcat = $id(((\"nav_subcats_\" + cat))), $cat = $id(((\"nav_cat_\" + cat))), promoID = $subcat.attr(\"data-nav-promo-id\"), wtl = $subcat.attr(\"data-nav-wt\");\n if (activeCat) {\n $id(((\"nav_subcats_\" + activeCat))).css({\n display: \"none\"\n });\n $id(((\"nav_cat_\" + activeCat))).removeClass(\"nav_active\");\n }\n ;\n ;\n JSBNG__clearTimeout(delayCatImpression);\n if (promoID) {\n var browsepromos = $Nav.getNow(\"config.browsePromos\", {\n });\n var imp = {\n t: \"sa\",\n id: promoID\n };\n if (browsepromos[promoID]) {\n imp[\"bp\"] = 1;\n }\n ;\n ;\n delayCatImpression = window.JSBNG__setTimeout(function() {\n logEv(imp);\n }, 750);\n }\n ;\n ;\n if (wtl) {\n recordEv(wtl);\n }\n ;\n ;\n $cat.addClass(\"nav_active\");\n $subcat.css({\n display: \"block\"\n });\n $cat_indicator.css(\"JSBNG__top\", (((($cat.position().JSBNG__top + parseInt($cat.css(\"padding-top\"), 10))) + 1)));\n var isSuperCat = $subcat.hasClass(\"nav_super_cat\");\n if (((isSuperCat != wasSuperCat))) {\n if (isSuperCat) {\n $browse_flyout.addClass(\"nav_super\");\n }\n else {\n $browse_flyout.removeClass(\"nav_super\");\n }\n ;\n ;\n resizeSubcat = true;\n wasSuperCat = isSuperCat;\n }\n ;\n ;\n if (animateSubcat) {\n deferredResizeSubcat = function() {\n ub(\"navbar\");\n };\n $browse_flyout.animate({\n width: (((($subcats.JSBNG__outerWidth() + catWidth)) + \"px\"))\n }, {\n duration: \"fast\",\n complete: animateSubcatComplete\n });\n }\n else {\n if (resizeSubcat) {\n var resizeSubcatNow = function() {\n $browse_flyout.css({\n width: (((($subcats.JSBNG__outerWidth() + catWidth)) + \"px\"))\n });\n ub(\"navbar\");\n };\n if (deferredResizeSubcat) {\n deferredResizeSubcat = resizeSubcatNow;\n }\n else {\n resizeSubcatNow();\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n if (((isResponsive && !agent.ie6))) {\n $subcat.parents(\".nav_exposed_skin\").removeClass(\"nav_exposed_skin\");\n }\n ;\n ;\n $subcat.JSBNG__find(\".nav_subcat_links\").each(function() {\n var $this = $(this);\n if ($this.data(\"nav-linestarts-marked\")) {\n return;\n }\n ;\n ;\n $this.data(\"nav-linestarts-marked\", true);\n var JSBNG__top = 0;\n $this.JSBNG__find(\"li\").each(function() {\n var elem = $(this);\n var thisTop = elem.offset().JSBNG__top;\n if (((Math.abs(((thisTop - JSBNG__top))) > 5))) {\n elem.addClass(\"nav_linestart\");\n JSBNG__top = thisTop;\n }\n ;\n ;\n });\n });\n var offset = $subcat.offset(), x1 = offset.left, y1 = ((offset.JSBNG__top - sbd_config.target_slop)), x2 = ((x1 + $subcat.JSBNG__outerWidth())), y2 = ((((y1 + $subcat.JSBNG__outerHeight())) + sbd_config.target_slop));\n return {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n };\n };\n window._navbar.qaActivateCat = function(i) {\n i = ((i || \"0\"));\n doCatChange(i);\n activeCat = i;\n };\n $(\"#nav_cats li.nav_cat\").each(function() {\n var match = /^nav_cat_(.+)/.exec(this.id), cat = ((match ? match[1] : \"\"));\n var mouseEnter = function(args) {\n JSBNG__clearTimeout(delayedChange);\n $id(((\"nav_cat_\" + cat))).addClass(\"nav_hover\");\n if (((activeCat !== cat))) {\n var changeDelay = calcChangeDelay(args, subcatRect);\n if (((activeCat && ((changeDelay > 0))))) {\n var doDelayedChange = function() {\n JSBNG__clearTimeout(delayedChange);\n var delayedArgs = mt.getCallbackArgs(), delayedDelay = 0;\n if (((((priorCursor && ((priorCursor.x == delayedArgs.cursor.x)))) && ((priorCursor.y == delayedArgs.cursor.y))))) {\n if (notInRect(delayedArgs.cursor, subcatRect)) {\n delayedDelay = 0;\n }\n else {\n delayedDelay = -1;\n }\n ;\n ;\n }\n else {\n delayedDelay = calcChangeDelay(delayedArgs, subcatRect);\n }\n ;\n ;\n priorCursor = {\n x: delayedArgs.cursor.x,\n y: delayedArgs.cursor.y\n };\n if (((delayedDelay > 0))) {\n if (((activeCat !== cat))) {\n delayedChange = JSBNG__setTimeout(doDelayedChange, delayedDelay);\n }\n ;\n ;\n }\n else {\n if (((delayedDelay > -1))) {\n subcatRect = doCatChange(cat, args);\n activeCat = cat;\n }\n ;\n ;\n }\n ;\n ;\n };\n delayedChange = JSBNG__setTimeout(doDelayedChange, changeDelay);\n }\n else {\n subcatRect = doCatChange(cat, args);\n activeCat = cat;\n }\n ;\n ;\n }\n ;\n ;\n return true;\n };\n var mouseLeave = function(immediately, args) {\n $id(((\"nav_cat_\" + cat))).removeClass(\"nav_hover\");\n return true;\n };\n var $this = $(this), offset = $this.offset(), added = mt.add([[offset.left,offset.JSBNG__top,$this.JSBNG__outerWidth(),$this.JSBNG__outerHeight(),],], {\n inside: false,\n mouseEnter: mouseEnter,\n mouseLeave: mouseLeave\n });\n mtRegions.push(added);\n });\n };\n var onHide = function() {\n JSBNG__clearTimeout(delayedChange);\n JSBNG__clearTimeout(delayCatImpression);\n JSBNG__clearTimeout(delayImpression);\n for (var i = 0; ((i < mtRegions.length)); i++) {\n mt.remove(mtRegions[i]);\n };\n ;\n mtRegions = [];\n subcatRect = null;\n subcatInited = false;\n if (activeCat) {\n $id(((\"nav_subcats_\" + activeCat))).css({\n display: \"none\"\n });\n $id(((\"nav_cat_\" + activeCat))).removeClass(\"nav_active\");\n }\n ;\n ;\n activeCat = null;\n $id(\"nav_cat_indicator\").css({\n JSBNG__top: \"\"\n });\n $id(\"nav_browse_flyout\").css({\n height: \"\",\n overflow: \"\"\n });\n areaMapper.enable();\n var initExposeSBD = $Nav.getNow(\"initExposeSBD\");\n if (initExposeSBD) {\n initExposeSBD().deBorder(false);\n }\n ;\n ;\n };\n $Nav.declare(\"initExposeSBD\", function() {\n if (exposeSBDData) {\n return exposeSBDData;\n }\n ;\n ;\n if (!isResponsive) {\n exposeSBDData = {\n ok: function() {\n return false;\n },\n deBorder: nullFn,\n initDeferredShow: nullFn,\n deferredShow: nullFn\n };\n return exposeSBDData;\n }\n ;\n ;\n var $anchor = $id(\"nav_exposed_anchor\"), skinClass = ((agent.ie6 ? \"\" : \"nav_exposed_skin\")), skin = SKIN(jQButton, 0, skinClass), $skin = $(((((typeof (skin) == \"function\")) ? skin() : skin))), $wrap = $(\"\\u003Cdiv id=\\\"nav_exposed_skin\\\"\\u003E\\u003C/div\\u003E\").css({\n JSBNG__top: -8,\n left: ((jQButton.offset().left - ((agent.ie6 ? 27 : 30))))\n }).append($skin).appendTo($anchor), $old_parent = $id(\"nav_browse_flyout\"), $parent = $(\"\\u003Cdiv id=\\\"nav_exposed_cats\\\"\\u003E\\u003C/div\\u003E\").appendTo($(\".ap_content\", $wrap)), $fade = $id(\"nav-shop-all-button\").clone().attr({\n href: \"javascript:void(0)\",\n id: \"\"\n }).addClass(\"nav-shop-all-button nav-button-outer-open\").appendTo(\"#nav-bar-inner\").add($wrap), $roots = $id(\"navbar\").add($anchor), $cats = $id(\"nav_cats_wrap\"), exButton = new NavButton(\"nav_exposed_skin\"), isExposed, firstCall = true, lastState, deferShow, deferHide, oldIE = (($.browser.msie && ((!JSBNG__document.documentMode || ((JSBNG__document.documentMode < 8))))));\n exposeSBDData = {\n ok: function() {\n return true;\n },\n deBorder: function(b) {\n if (b) {\n $skin.addClass(\"nav_pop_triggered\");\n }\n else {\n $skin.removeClass(\"nav_pop_triggered\");\n }\n ;\n ;\n },\n initDeferredShow: function() {\n if (!deferShow) {\n deferShow = nullFn;\n }\n ;\n ;\n },\n deferredShow: function() {\n if (deferShow) {\n deferShow();\n deferShow = null;\n }\n ;\n ;\n }\n };\n var exTriggerParams = {\n localContent: \"#nav_browse_flyout\",\n JSBNG__location: \"JSBNG__top\",\n locationAlign: \"left\",\n locationOffset: [30,((oldIE ? 33 : 32)),],\n skin: SKIN($parent, 0, skinClass),\n showOnHover: true,\n hoverShowDelay: 0,\n onShow: function() {\n if (!deferHide) {\n deferHide = nullFn;\n }\n ;\n ;\n exButton.removeTrigger();\n exButton.onShow();\n onShow();\n $cats.appendTo($old_parent);\n $(JSBNG__document).mousemove();\n },\n onHide: function() {\n $cats.appendTo($parent);\n onHide();\n exButton.onHide();\n exButton.registerTrigger(exTriggerParams);\n if (deferHide) {\n deferHide();\n }\n ;\n ;\n deferHide = null;\n }\n };\n $Nav.when(\"protectExposeSBD\").run(\"exposeSBD\", function(protectExposeSBD) {\n protectExposeSBD(function(expose) {\n lastState = expose;\n if (((expose === isExposed))) {\n return;\n }\n ;\n ;\n if (expose) {\n logEv({\n t: \"sa\",\n id: \"res-main\"\n });\n var doShow = function() {\n if (((lastState === false))) {\n return;\n }\n ;\n ;\n button.removeTrigger();\n $roots.addClass(\"nav_exposed_sbd\");\n if ((($(\"#nav_browse_flyout.nav_deep\").length > 0))) {\n $roots.addClass(\"nav_deep\");\n }\n ;\n ;\n $cats.appendTo($parent);\n if (firstCall) {\n if ($.browser.msie) {\n $fade.css(\"display\", \"block\");\n }\n else {\n $fade.fadeIn(600);\n }\n ;\n ;\n firstCall = false;\n }\n ;\n ;\n exButton.registerTrigger(exTriggerParams);\n isExposed = true;\n };\n if (deferShow) {\n deferShow = doShow;\n }\n else {\n doShow();\n }\n ;\n ;\n }\n else {\n var doHide = function() {\n if (((lastState === true))) {\n return;\n }\n ;\n ;\n exButton.removeTrigger();\n $roots.removeClass(\"nav_exposed_sbd\");\n $cats.appendTo($old_parent);\n if (firstCall) {\n $fade.css(\"display\", \"block\");\n firstCall = false;\n }\n ;\n ;\n button.registerTrigger(triggerParams);\n isExposed = false;\n };\n if (deferHide) {\n deferHide = doHide;\n }\n else {\n doHide();\n }\n ;\n ;\n }\n ;\n ;\n });\n });\n return exposeSBDData;\n });\n var triggerParams = {\n localContent: \"#nav_browse_flyout\",\n locationAlign: \"left\",\n locationOffset: [((agent.ie6 ? 3 : 0)),0,],\n skin: SKIN(jQButton, 0),\n onShow: function() {\n var initExposeSBD = $Nav.getNow(\"initExposeSBD\");\n if (initExposeSBD) {\n initExposeSBD().initDeferredShow();\n }\n ;\n ;\n button.onShow();\n delayImpression = window.JSBNG__setTimeout(function() {\n logEv({\n t: \"sa\",\n id: \"main\"\n });\n }, 750);\n onShow();\n },\n onHide: function() {\n onHide();\n button.onHide();\n var initExposeSBD = $Nav.getNow(\"initExposeSBD\");\n if (initExposeSBD) {\n initExposeSBD().deferredShow();\n }\n ;\n ;\n }\n };\n if (!isResponsive) {\n button.registerTrigger(triggerParams);\n }\n ;\n ;\n $Nav.declare(\"flyout.shopall\");\n });\n $Nav.when(\"$\", \"$byID\", \"nav.inline\", \"flyout.JSBNG__content\").build(\"flyout.notificationCount\", function($, $id) {\n var notiCount = parseInt((($(\"#nav-noti-wrapper .nav-noti-content\").attr(\"data-noti-count\") || \"0\")), 10);\n var $count;\n function notificationCount(count) {\n notiCount = count;\n if ($count) {\n if (((notiCount <= 0))) {\n $count.remove();\n }\n else {\n $count.text(((((notiCount > 9)) ? \"9+\" : notiCount)));\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n notificationCount.count = function() {\n return notiCount;\n };\n notificationCount.decrement = function() {\n notificationCount(((notiCount - 1)));\n };\n $Nav.when(\"page.ready\").run(function() {\n if (((notiCount <= 0))) {\n return;\n }\n ;\n ;\n var $name = $id(\"nav-signin-text\");\n var parts = $.trim($name.text()).match(/^(.*?)(\\.*)$/);\n $name.html(((((parts[1] + \"\\u003Cspan id=\\\"nav-noti-count-position\\\"\\u003E\\u003C/span\\u003E\")) + parts[2])));\n var positioner = $id(\"nav-noti-count-position\");\n var countLeft = ((positioner.position().left + 10)), $button = $id(\"nav-your-account\"), tabWidth = (($button.JSBNG__outerWidth() - 5)), freePixels = ((tabWidth - countLeft)), cssObj = {\n };\n if (((((freePixels < 15)) || ((countLeft < 15))))) {\n cssObj.right = 2;\n if (((((freePixels > 0)) && ((freePixels <= 10))))) {\n $name.append(new Array(11).join(\" \"));\n }\n ;\n ;\n }\n else {\n cssObj.left = ((Math.round(countLeft) + 1));\n }\n ;\n ;\n $count = $(\"\\u003Cdiv id=\\\"nav-noti-count\\\" class=\\\"nav-sprite\\\"\\u003E\");\n $count.css(cssObj).appendTo($button);\n notificationCount(notiCount);\n });\n return notificationCount;\n });\n $Nav.when(\"$\", \"$byID\", \"agent\", \"flyout.notificationCount\", \"config.dismissNotificationUrl\", \"flyout.JSBNG__content\").build(\"flyout.notifications\", function($, $byID, agent, notificationCount, dismissNotificationUrl) {\n var $yaSidebarWrapper = $byID(\"nav-noti-wrapper\");\n var $yaSidebar = $yaSidebarWrapper.JSBNG__find(\".nav-noti-content\");\n var $notiItems = $yaSidebar.JSBNG__find(\".nav-noti-item\").not(\"#nav-noti-empty\");\n function hideOverflow() {\n var cutoff = (($yaSidebar.height() - $byID(\"nav-noti-all\").JSBNG__outerHeight(true)));\n $notiItems.each(function() {\n var $this = $(this);\n if ($this.attr(\"data-dismissed\")) {\n return;\n }\n ;\n ;\n if ((((($this.position().JSBNG__top + $this.JSBNG__outerHeight())) > cutoff))) {\n $this.addClass(\"nav-noti-overflow\");\n }\n else {\n $this.removeClass(\"nav-noti-overflow\");\n }\n ;\n ;\n });\n };\n ;\n function hookupBehaviour() {\n if (agent.touch) {\n $notiItems.addClass(\"nav-noti-touch\");\n }\n else {\n $notiItems.hover(function() {\n $(this).addClass(\"nav-noti-hover\");\n }, function() {\n $(this).removeClass(\"nav-noti-hover\");\n });\n }\n ;\n ;\n $(\".nav-noti-x\", $yaSidebar).click(function(e) {\n e.preventDefault();\n var $this = $(this);\n $.ajax({\n url: dismissNotificationUrl,\n type: \"POST\",\n data: {\n id: $this.attr(\"data-noti-id\")\n },\n cache: false,\n timeout: 500\n });\n $this.css(\"visibility\", \"hidden\").parent().attr(\"data-dismissed\", \"1\").slideUp(400, function() {\n notificationCount.decrement();\n if (((notificationCount.count() === 0))) {\n $byID(\"nav-noti-empty\").fadeIn(300);\n }\n ;\n ;\n hideOverflow();\n });\n }).hover(function() {\n $(this).addClass(\"nav-noti-x-hover\");\n }, function() {\n $(this).removeClass(\"nav-noti-x-hover\");\n });\n };\n ;\n return {\n width: 180,\n exists: function() {\n return ((((notificationCount.count() > 0)) && (($yaSidebar.length > 0))));\n },\n getContent: function() {\n var node = $yaSidebar.get(0);\n node.parentNode.removeChild(node);\n hookupBehaviour();\n return $yaSidebar;\n },\n onShow: hideOverflow,\n JSBNG__event: ((((notificationCount.count() > 0)) ? \"noti\" : null))\n };\n });\n $Nav.when(\"$\", \"flyout.JSBNG__content\").build(\"flyout.highConfidence\", function($) {\n var hcb = $(\"#csr-hcb-wrapper .csr-hcb-content\");\n return {\n width: 229,\n exists: function() {\n return ((hcb.length > 0));\n },\n getContent: function() {\n var node = hcb.get(0);\n node.parentNode.removeChild(node);\n return hcb;\n },\n JSBNG__event: \"hcb\"\n };\n });\n $Nav.when(\"$\", \"$byID\", \"areaMapper\", \"agent\", \"logEvent\", \"flyout.NavButton\", \"flyout.SKIN\", \"flyout.loadMenusConditionally\", \"flyout.notifications\", \"flyout.highConfidence\", \"config.signOutText\", \"nav.inline\", \"flyout.JSBNG__content\").run(\"YourAccount\", function($, $id, areaMapper, agent, logEv, NavButton, SKIN, loadDynamicMenusConditionally, notifications, highConf, signOutText) {\n var JSBNG__sidebar;\n if (notifications.exists()) {\n JSBNG__sidebar = notifications;\n }\n else {\n if (highConf.exists()) {\n JSBNG__sidebar = highConf;\n }\n ;\n ;\n }\n ;\n ;\n var id = \"nav-your-account\", jQButton = $id(id), $yaFlyout = $id(\"nav_your_account_flyout\"), $yaSidebar;\n if (((!jQButton.length || !$yaFlyout.length))) {\n return;\n }\n ;\n ;\n var button = new NavButton(id), $yaSidebarWrapper = $(\"#nav-noti-wrapper, #csr-hcb-wrapper\"), delayImpression, leftAlignedYA = (($id(\"nav-wishlist\").length || $id(\"nav-cart\").length));\n var onShow = function() {\n button.onShow();\n if (((JSBNG__sidebar && JSBNG__sidebar.onShow))) {\n JSBNG__sidebar.onShow();\n }\n ;\n ;\n areaMapper.disable(\"#nav_your_account_flyout\");\n delayImpression = window.JSBNG__setTimeout(function() {\n var imp = {\n t: \"ya\"\n };\n if (((JSBNG__sidebar && JSBNG__sidebar.JSBNG__event))) {\n imp[JSBNG__sidebar.JSBNG__event] = 1;\n }\n ;\n ;\n logEv(imp);\n }, 750);\n if ($yaSidebar) {\n $yaSidebar.height($yaFlyout.height());\n }\n ;\n ;\n loadDynamicMenusConditionally();\n };\n var onHide = function() {\n JSBNG__clearTimeout(delayImpression);\n areaMapper.enable();\n button.onHide();\n };\n var sidebarOffset = 0;\n if (JSBNG__sidebar) {\n sidebarOffset = ((JSBNG__sidebar.width + 19));\n $yaSidebar = JSBNG__sidebar.getContent();\n $yaFlyout.css(\"margin-left\", sidebarOffset).prepend($(\"\\u003Cdiv id=\\\"nav_ya_sidebar_wrapper\\\"\\u003E\\u003C/div\\u003E\").css({\n width: ((sidebarOffset - 15)),\n left: -sidebarOffset\n }).append($yaSidebar));\n }\n ;\n ;\n var YALocationOffsetLeft = ((sidebarOffset ? -sidebarOffset : ((agent.ie6 ? ((leftAlignedYA ? 3 : -3)) : 0))));\n button.registerTrigger({\n localContent: \"#nav_your_account_flyout\",\n locationAlign: ((leftAlignedYA ? \"left\" : \"right\")),\n locationOffset: [YALocationOffsetLeft,0,],\n skin: SKIN(jQButton, ((((leftAlignedYA || !agent.ie6)) ? 0 : 7))),\n onShow: onShow,\n onHide: onHide,\n followLink: !agent.touch\n });\n if (signOutText) {\n $(\"#nav-item-signout\").html(signOutText);\n }\n ;\n ;\n $Nav.declare(\"flyout.youraccount\");\n });\n $Nav.when(\"$\", \"$byID\", \"areaMapper\", \"agent\", \"logEvent\", \"triggerProceedToCheckout\", \"flyout.NavButton\", \"flyout.SKIN\", \"flyout.loadMenusConditionally\", \"nav.inline\", \"flyout.JSBNG__content\").run(\"Cart\", function($, $id, areaMapper, agent, logEv, triggerProceedToCheckout, NavButton, SKIN, loadDynamicMenusConditionally) {\n if (((!$id(\"nav-cart\").length || !$id(\"nav_cart_flyout\").length))) {\n return;\n }\n ;\n ;\n var id = \"nav-cart\", button = new NavButton(id), jQButton = $id(id), delayImpression;\n var onShow = function() {\n button.onShow();\n areaMapper.disable(\"#nav_cart_flyout\");\n delayImpression = window.JSBNG__setTimeout(function() {\n logEv({\n t: \"cart\"\n });\n }, 750);\n loadDynamicMenusConditionally();\n triggerProceedToCheckout();\n };\n var onHide = function() {\n JSBNG__clearTimeout(delayImpression);\n areaMapper.enable();\n button.onHide();\n };\n button.registerTrigger({\n localContent: \"#nav_cart_flyout\",\n locationAlign: \"right\",\n locationOffset: [((agent.ie6 ? -3 : 0)),0,],\n skin: SKIN(jQButton, ((agent.ie6 ? 7 : 0))),\n onShow: onShow,\n onHide: onHide,\n followLink: !agent.touch\n });\n $Nav.declare(\"flyout.cart\");\n });\n $Nav.when(\"$\", \"$byID\", \"areaMapper\", \"agent\", \"logEvent\", \"flyout.NavButton\", \"flyout.SKIN\", \"flyout.loadMenusConditionally\", \"nav.inline\", \"flyout.JSBNG__content\").run(\"WishList\", function($, $id, areaMapper, agent, logEv, NavButton, SKIN, loadDynamicMenusConditionally) {\n if (((!$id(\"nav-wishlist\").length || !$id(\"nav_wishlist_flyout\").length))) {\n return;\n }\n ;\n ;\n var id = \"nav-wishlist\", button = new NavButton(id), jQButton = $id(id), flyout = \"#nav_wishlist_flyout\", ul = \".nav_pop_ul\", delayImpression;\n var onShow = function() {\n button.onShow();\n areaMapper.disable(\"#nav_wishlist_flyout\");\n delayImpression = window.JSBNG__setTimeout(function() {\n logEv({\n t: \"wishlist\"\n });\n }, 750);\n loadDynamicMenusConditionally();\n var $flyout = $(flyout), width = $flyout.JSBNG__outerWidth();\n $flyout.css(\"width\", width).JSBNG__find(ul).css(\"width\", width).addClass(\"nav_pop_ul_wrap\");\n };\n var onHide = function() {\n JSBNG__clearTimeout(delayImpression);\n $(flyout).css(\"width\", \"\").JSBNG__find(ul).css(\"width\", \"\").removeClass(\"nav_pop_ul_wrap\");\n areaMapper.enable();\n button.onHide();\n };\n button.registerTrigger({\n localContent: \"#nav_wishlist_flyout\",\n locationAlign: \"right\",\n locationOffset: [((agent.ie6 ? -3 : 0)),0,],\n skin: SKIN(jQButton, ((agent.ie6 ? 7 : 0))),\n onShow: onShow,\n onHide: onHide,\n followLink: !agent.touch\n });\n $Nav.declare(\"flyout.wishlist\");\n });\n $Nav.when(\"$\", \"$byID\", \"flyout.NavButton\", \"areaMapper\", \"logEvent\", \"agent\", \"nav.inline\", \"flyout.JSBNG__content\").run(\"PrimeTooltip\", function($, $id, NavButton, areaMapper, logEv, agent) {\n if (((!$id(\"nav-prime-ttt\").length || !$id(\"nav-prime-tooltip\").length))) {\n return;\n }\n ;\n ;\n var id = \"nav-prime-ttt\", button = new NavButton(id), jQButton = $id(id), delayImpression, large = $(\"#navbar\").hasClass(\"nav-logo-large\"), msie = $.browser.msie;\n var onShow = function() {\n button.onShow();\n areaMapper.disable(\"#nav-prime-tooltip\");\n delayImpression = window.JSBNG__setTimeout(function() {\n logEv({\n t: \"prime-tt\"\n });\n }, 750);\n };\n var onHide = function() {\n JSBNG__clearTimeout(delayImpression);\n areaMapper.enable();\n button.onHide();\n };\n jQButton.css(\"padding-right\", ((large ? \"21px\" : \"25px\")));\n button.registerTrigger({\n localContent: \"#nav-prime-tooltip\",\n width: null,\n JSBNG__location: \"right\",\n locationAlign: \"JSBNG__top\",\n locationOffset: [((msie ? -3 : 0)),((large ? -35 : -26)),],\n onShow: onShow,\n onHide: onHide,\n zIndex: 201,\n skin: ((((((((((((((((((((\"\\u003Cdiv class=\\\"nav-tt-skin\" + ((large ? \" nav-logo-large\" : \"\")))) + \"\\\"\\u003E\")) + \"\\u003Cdiv class=\\\"nav-tt-border\")) + ((msie ? \"\" : \" nav-tt-box-shadow\")))) + \"\\\"\\u003E\")) + \"\\u003Cdiv class=\\\"ap_content\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"nav-tt-beak\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003Cdiv class=\\\"nav-tt-beak-2\\\"\\u003E\\u003C/div\\u003E\")) + \"\\u003C/div\\u003E\")),\n followLink: !agent.touch\n });\n });\n $Nav.when(\"$byID\", \"areaMapper\", \"logEvent\", \"agent\", \"config.dynamicMenuArgs\", \"flyout.NavButton\", \"flyout.SKIN\", \"flyout.primeAjax\", \"flyout.loadMenusConditionally\", \"nav.inline\", \"flyout.JSBNG__content\").run(\"PrimeMenu\", function($id, areaMapper, logEv, agent, dynamicMenuArgs, NavButton, SKIN, primeAJAX, loadDynamicMenusConditionally) {\n if (((!$id(\"nav-your-prime\").length || !$id(\"nav-prime-menu\").length))) {\n return;\n }\n ;\n ;\n var id = \"nav-your-prime\", button = new NavButton(id), jQButton = $id(id), delayImpression;\n if (primeAJAX) {\n $id(\"nav-prime-menu\").css({\n width: dynamicMenuArgs.primeMenuWidth\n });\n }\n ;\n ;\n var onShow = function() {\n button.onShow();\n areaMapper.disable(\"#nav-prime-menu\");\n delayImpression = window.JSBNG__setTimeout(function() {\n logEv({\n t: \"prime\"\n });\n }, 750);\n if (primeAJAX) {\n loadDynamicMenusConditionally();\n }\n ;\n ;\n };\n var onHide = function() {\n JSBNG__clearTimeout(delayImpression);\n areaMapper.enable();\n button.onHide();\n };\n button.registerTrigger({\n localContent: \"#nav-prime-menu\",\n locationAlign: \"right\",\n locationOffset: [((agent.ie6 ? -3 : 0)),0,],\n skin: SKIN(jQButton, ((agent.ie6 ? 7 : 0))),\n onShow: onShow,\n onHide: onHide,\n followLink: !agent.touch\n });\n $Nav.declare(\"flyout.prime\");\n });\n $Nav.when(\"$\", \"byID\", \"agent\", \"api.publish\", \"config.lightningDeals\", \"nav.inline\").run(\"UpdateAPI\", function($, byID, agent, publishAPI, lightningDealsData) {\n var navbarAPIError = \"no error\";\n publishAPI(\"error\", function() {\n return navbarAPIError;\n });\n function update(navDataObject) {\n var err = \"navbar.update() error: \";\n if (((navDataObject instanceof Object))) {\n $Nav.getNow(\"unlockDynamicMenus\", function() {\n \n })();\n var closures = [];\n var cleanupClosures = [];\n if (navDataObject.catsubnav) {\n try {\n var navCatSubnav = $(\"#nav-subnav\");\n if (((navCatSubnav.length > 0))) {\n var svDigest = ((navDataObject.catsubnav.digest || \"\"));\n if (((!svDigest || ((svDigest !== navCatSubnav.attr(\"data-digest\")))))) {\n var catSubnavChanges = 0;\n var newCatSubnav = [];\n var category = navDataObject.catsubnav.category;\n if (((category && ((category.type == \"link\"))))) {\n var navCatItem = $(\"li.nav-category-button:first\", navCatSubnav);\n if (((navCatItem.length === 0))) {\n throw \"category-1\";\n }\n ;\n ;\n var cDatum = category.data;\n if (((!cDatum.href || !cDatum.text))) {\n throw \"category-2\";\n }\n ;\n ;\n var newCat = navCatItem.clone();\n var aCat = $(\"a:first\", newCat);\n if (((aCat.length === 0))) {\n throw \"category-3\";\n }\n ;\n ;\n aCat.attr(\"href\", cDatum.href).html(cDatum.text);\n newCatSubnav.push(newCat.get(0));\n catSubnavChanges += 1;\n }\n ;\n ;\n var subnav = navDataObject.catsubnav.subnav;\n if (((subnav && ((subnav.type == \"linkSequence\"))))) {\n var navSubItem = $(\"li.nav-subnav-item\", navCatSubnav).slice(-1);\n if (((navSubItem.length === 0))) {\n throw \"subnav-1\";\n }\n ;\n ;\n for (var i = 0; ((i < subnav.data.length)); i++) {\n var datum = subnav.data[i];\n if (((!datum.href || !datum.text))) {\n throw \"subnav-2\";\n }\n ;\n ;\n var newItem = navSubItem.clone();\n var aElem = $(\"a:first\", newItem);\n if (((aElem.length === 0))) {\n throw \"subnav-3\";\n }\n ;\n ;\n aElem.attr(\"href\", datum.href).html(datum.text);\n newCatSubnav.push(newItem.get(0));\n };\n ;\n if (((newCatSubnav.length > 1))) {\n catSubnavChanges += 1;\n }\n ;\n ;\n }\n ;\n ;\n var navbarDiv = $(\"#navbar\");\n if (((navbarDiv.length === 0))) {\n throw \"catsubnav-1\";\n }\n ;\n ;\n if (((catSubnavChanges == 2))) {\n closures.push(function() {\n navCatSubnav.empty().append(newCatSubnav).css(\"display\", \"\").attr(\"data-digest\", svDigest);\n navbarDiv.addClass(\"nav-subnav\");\n });\n }\n else {\n if (((catSubnavChanges === 0))) {\n closures.push(function() {\n navbarDiv.removeClass(\"nav-subnav\");\n navCatSubnav.css(\"display\", \"none\").attr(\"data-digest\", \"0\");\n });\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n } catch (e) {\n navbarAPIError = ((err + e));\n return false;\n };\n ;\n }\n ;\n ;\n if (navDataObject.cart) {\n try {\n var cart = navDataObject.cart;\n if (((((cart.type == \"countPlusLD\")) || ((cart.type == \"count\"))))) {\n if (!cart.data) {\n throw \"cart-1\";\n }\n ;\n ;\n var newCount = ((cart.data.count + \"\"));\n if (!newCount.match(/^(|0|[1-9][0-9]*|99\\+)$/)) {\n throw \"cart-2\";\n }\n ;\n ;\n var cartCounts = $(\"#nav-cart-count, #nav_cart_flyout .nav-cart-count\");\n if (((cartCounts.length > 0))) {\n closures.push(function() {\n var cartFullClass = \"nav-cart-0\";\n if (((newCount == \"99+\"))) {\n cartFullClass = \"nav-cart-100\";\n }\n else {\n if (((newCount > 99))) {\n newCount = \"99+\";\n cartFullClass = \"nav-cart-100\";\n }\n else {\n if (((newCount > 19))) {\n cartFullClass = \"nav-cart-20\";\n }\n else {\n if (((newCount > 9))) {\n cartFullClass = \"nav-cart-10\";\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n cartCounts.removeClass(\"nav-cart-0 nav-cart-10 nav-cart-20 nav-cart-100\").addClass(cartFullClass).html(newCount);\n if (((((newCount === 0)) && byID(\"nav-cart-zero\")))) {\n $(\"#nav-cart-one, #nav-cart-many\").hide();\n $(\"#nav-cart-zero\").show();\n }\n else {\n if (((newCount == 1))) {\n $(\"#nav-cart-zero, #nav-cart-many\").hide();\n $(\"#nav-cart-one\").show();\n }\n else {\n $(\"#nav-cart-zero, #nav-cart-one\").hide();\n $(\"#nav-cart-many\").show();\n }\n ;\n ;\n }\n ;\n ;\n });\n }\n ;\n ;\n var LDData = cart.data.LDData;\n if (LDData) {\n closures.push(function() {\n lightningDealsData = LDData;\n });\n }\n ;\n ;\n }\n ;\n ;\n } catch (e) {\n navbarAPIError = ((err + e));\n return false;\n };\n ;\n }\n ;\n ;\n if (navDataObject.searchbar) {\n try {\n var searchbar = navDataObject.searchbar;\n if (((searchbar.type == \"searchbar\"))) {\n if (!searchbar.data) {\n throw \"searchbar-1\";\n }\n ;\n ;\n var options = searchbar.data.options;\n if (((!options || ((options.length === 0))))) {\n throw \"searchbar-2\";\n }\n ;\n ;\n var sddMeta = ((searchbar.data[\"nav-metadata\"] || {\n }));\n var dropdown = $(\"#searchDropdownBox\");\n if (((dropdown.length === 0))) {\n dropdown = $(\"#navSearchDropdown select:first\");\n }\n ;\n ;\n if (((dropdown.length === 0))) {\n throw \"searchbar-3\";\n }\n ;\n ;\n if (((!sddMeta.digest || ((sddMeta.digest !== dropdown.attr(\"data-nav-digest\")))))) {\n closures.push(function() {\n dropdown.JSBNG__blur().empty();\n for (var i = 0; ((i < options.length)); i++) {\n var attrs = options[i];\n var _display = ((attrs._display || \"\"));\n delete attrs._display;\n $(\"\\u003Coption\\u003E\\u003C/option\\u003E\").html(_display).attr(attrs).appendTo(dropdown);\n };\n ;\n dropdown.attr(\"data-nav-digest\", ((sddMeta.digest || \"\"))).attr(\"data-nav-selected\", ((sddMeta.selected || 0)));\n $Nav.getNow(\"refreshDropDownFacade\", function() {\n \n })();\n });\n }\n else {\n if (((sddMeta.selected != dropdown.attr(\"data-nav-selected\")))) {\n closures.push(function() {\n dropdown.attr(\"data-nav-selected\", sddMeta.selected).get(0).selectedIndex = sddMeta.selected;\n $Nav.getNow(\"refreshDropDownFacade\", function() {\n \n })();\n });\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n } catch (e) {\n navbarAPIError = ((err + e));\n return false;\n };\n ;\n }\n ;\n ;\n if (navDataObject.primeBadge) {\n try {\n var isPrime = navDataObject.primeBadge.isPrime;\n if (((isPrime.type == \"boolean\"))) {\n var navbarDiv = $(\"#navbar\");\n if (((navbarDiv.length === 0))) {\n throw \"primeBadge-1\";\n }\n ;\n ;\n closures.push(function() {\n if (isPrime.data) {\n navbarDiv.addClass(\"nav-prime\");\n }\n else {\n navbarDiv.removeClass(\"nav-prime\");\n }\n ;\n ;\n });\n }\n ;\n ;\n var homeUrl = navDataObject.primeBadge.homeUrl;\n if (((homeUrl.type == \"html\"))) {\n var navLogoTag = $(\"#nav-logo\");\n if (((navLogoTag.length === 0))) {\n throw \"primeBadge-2\";\n }\n ;\n ;\n if (homeUrl.data) {\n closures.push(function() {\n navLogoTag.attr(\"href\", homeUrl.data);\n });\n }\n ;\n ;\n }\n ;\n ;\n } catch (e) {\n navbarAPIError = ((err + e));\n return false;\n };\n ;\n }\n ;\n ;\n if (navDataObject.swmSlot) {\n try {\n var swmContent = navDataObject.swmSlot.swmContent;\n if (((swmContent && ((swmContent.type == \"html\"))))) {\n var navSwmSlotDiv = $(\"#navSwmSlot\");\n if (((navSwmSlotDiv.length === 0))) {\n throw \"swmContent-1\";\n }\n ;\n ;\n if (swmContent.data) {\n closures.push(function() {\n navSwmSlotDiv.html(swmContent.data);\n });\n }\n ;\n ;\n }\n ;\n ;\n var swmHeight = navDataObject.swmSlot.height;\n if (((swmHeight && ((swmHeight.type == \"html\"))))) {\n var navWelcomeRowDiv = $(\"#welcomeRowTable\");\n if (((navWelcomeRowDiv.length === 0))) {\n throw \"swmSlotHeight-1\";\n }\n ;\n ;\n closures.push(function() {\n navWelcomeRowDiv.css(\"height\", ((swmHeight.data || \"\")));\n var sizeRegex = /-(small|large)$/;\n var navbar = $(\"#navbar\");\n $(navbar.attr(\"class\").split(/\\s+/)).filter(function() {\n return sizeRegex.test(this);\n }).each(function() {\n var isLarge = ((parseInt(((swmHeight.data || 0)), 10) > 40));\n var newClass = this.replace(sizeRegex, ((isLarge ? \"-large\" : \"-small\")));\n navbar.removeClass(this).addClass(newClass);\n });\n });\n }\n ;\n ;\n var swmStyle = navDataObject.swmSlot.style;\n if (((swmStyle && ((swmStyle.type == \"html\"))))) {\n var navAdBackgroundStyleDiv = $(\"#nav-ad-background-style\");\n if (((navAdBackgroundStyleDiv.length === 0))) {\n throw \"swmSlotStyle-1\";\n }\n ;\n ;\n closures.push(function() {\n navAdBackgroundStyleDiv.attr(\"style\", ((swmStyle.data || \"\")));\n });\n }\n ;\n ;\n } catch (e) {\n navbarAPIError = ((err + e));\n return false;\n };\n ;\n }\n ;\n ;\n if (navDataObject.signInText) {\n try {\n var customerName = navDataObject.signInText.customerName;\n var greetingText = navDataObject.signInText.greetingText;\n if (((((customerName.type == \"html\")) && greetingText.type))) {\n var navSignInTitleSpan = $(\"#nav-signin-title\");\n if (((navSignInTitleSpan.length === 0))) {\n throw \"signInText-1\";\n }\n ;\n ;\n var template = navSignInTitleSpan.attr(\"data-template\");\n if (((((template && greetingText.data)) && customerName.data))) {\n template = template.replace(\"{helloText}\", greetingText.data);\n template = template.replace(\"{signInText}\", customerName.data);\n closures.push(function() {\n navSignInTitleSpan.html(template);\n });\n }\n ;\n ;\n }\n ;\n ;\n } catch (e) {\n navbarAPIError = ((err + e));\n return false;\n };\n ;\n }\n ;\n ;\n if (navDataObject.yourAccountLink) {\n try {\n var yourAccountLink = navDataObject.yourAccountLink;\n if (((yourAccountLink.type == \"html\"))) {\n var navYourAccountTag = $(\"#nav-your-account\");\n if (((navYourAccountTag.length === 0))) {\n throw \"your-account-1\";\n }\n ;\n ;\n if (yourAccountLink.data) {\n closures.push(function() {\n navYourAccountTag.attr(\"href\", yourAccountLink.data);\n });\n }\n ;\n ;\n }\n ;\n ;\n } catch (e) {\n navbarAPIError = ((err + e));\n return false;\n };\n ;\n }\n ;\n ;\n if (navDataObject.crossShop) {\n try {\n var yourAmazonText = navDataObject.crossShop;\n if (((yourAmazonText.type == \"html\"))) {\n var navYourAmazonTag = $(\"#nav-your-amazon\");\n if (((navYourAmazonTag.length === 0))) {\n throw \"yourAmazonText-1\";\n }\n ;\n ;\n closures.push(function() {\n if (((yourAmazonText.data && ((navYourAmazonTag.text() != yourAmazonText.data))))) {\n navYourAmazonTag.html(yourAmazonText.data);\n }\n ;\n ;\n });\n }\n ;\n ;\n cleanupClosures.push(function() {\n $(\"#nav-cross-shop-links\").css(\"display\", \"\");\n });\n } catch (e) {\n navbarAPIError = ((err + e));\n return false;\n };\n ;\n }\n ;\n ;\n if (((closures.length > 0))) {\n try {\n for (var i = 0; ((i < closures.length)); i++) {\n closures[i]();\n };\n ;\n } catch (e) {\n navbarAPIError = ((err + e));\n return false;\n } finally {\n for (var i = 0; ((i < cleanupClosures.length)); i++) {\n cleanupClosures[i]();\n };\n ;\n };\n ;\n return true;\n }\n else {\n navbarAPIError = ((err + ((navDataObject.error || \"unknown error\"))));\n }\n ;\n ;\n }\n else {\n navbarAPIError = ((err + \"parameter not an Object\"));\n }\n ;\n ;\n return false;\n };\n ;\n publishAPI(\"update\", update);\n publishAPI(\"setCartCount\", function(newCartCount) {\n return update({\n cart: {\n type: \"count\",\n data: {\n count: newCartCount\n }\n }\n });\n });\n publishAPI(\"getLightningDealsData\", function() {\n return ((lightningDealsData || {\n }));\n });\n publishAPI(\"overrideCartButtonClick\", function(clickHandler) {\n if (!agent.touch) {\n $(\"#nav-cart\").click(clickHandler);\n }\n ;\n ;\n $(\"#nav-cart-menu-button\").click(clickHandler);\n });\n });\n $Nav.when(\"$\", \"$byID\", \"agent\", \"template\", \"nav.inline\").build(\"flyout.initBrowsePromos\", function($, $id, agent, template) {\n var initialized = false;\n return function() {\n var browsepromos = $Nav.getNow(\"config.browsePromos\");\n if (((!browsepromos || initialized))) {\n return;\n }\n ;\n ;\n initialized = true;\n $(\"#nav_browse_flyout .nav_browse_subcat\").each(function() {\n var $this = $(this), promoID = $this.attr(\"data-nav-promo-id\");\n if (promoID) {\n var data = browsepromos[promoID];\n if (data) {\n if (data.promoType) {\n if (((data.promoType == \"wide\"))) {\n $this.addClass(\"nav_super_cat\");\n }\n ;\n ;\n var mapID = ((\"nav_imgmap_\" + promoID)), vOffset = ((agent.ie6 ? 15 : 14)), bottom = ((parseInt(data.vertOffset, 10) - vOffset)), right = parseInt(data.horizOffset, 10), ie6Hack = ((agent.ie6 && /\\.png$/i.test(data.image))), imgSrc = ((ie6Hack ? $id(\"nav_trans_pixel\").attr(\"src\") : data.image)), $img = $(\"\\u003Cimg\\u003E\").attr({\n src: imgSrc,\n alt: data.alt,\n useMap: ((\"#\" + mapID))\n }).addClass(\"nav_browse_promo\").css({\n bottom: bottom,\n right: right,\n width: data.width,\n height: data.height\n });\n $this.prepend($img);\n if (ie6Hack) {\n $img.get(0).style.filter = ((((\"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='\" + data.image)) + \"',sizingMethod='scale')\"));\n }\n ;\n ;\n }\n else {\n $this.prepend(template(\"#nav-tpl-asin-promo\", data));\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n });\n };\n });\n $Nav.when(\"$\", \"agent\", \"config.flyoutURL\", \"btf.full\").run(\"FlyoutContent\", function($, agent, flyoutURL) {\n window._navbar.flyoutContent = function(flyouts) {\n var invisibleDiv = $(\"\\u003Cdiv\\u003E\").appendTo(JSBNG__document.body).hide().get(0);\n var html = \"\";\n {\n var fin31keys = ((window.top.JSBNG_Replay.forInKeys)((flyouts))), fin31i = (0);\n var flyout;\n for (; (fin31i < fin31keys.length); (fin31i++)) {\n ((flyout) = (fin31keys[fin31i]));\n {\n if (flyouts.hasOwnProperty(flyout)) {\n html += flyouts[flyout];\n }\n ;\n ;\n };\n };\n };\n ;\n invisibleDiv.innerHTML = html;\n $Nav.declare(\"flyout.JSBNG__content\");\n };\n if (flyoutURL) {\n var script = JSBNG__document.createElement(\"script\");\n script.setAttribute(\"type\", \"text/javascript\");\n script.setAttribute(\"src\", flyoutURL);\n var head = ((JSBNG__document.head || JSBNG__document.getElementsByTagName(\"head\")[0]));\n head.appendChild(script);\n }\n else {\n $Nav.declare(\"flyout.JSBNG__content\");\n }\n ;\n ;\n });\n $Nav.when(\"$\", \"$byID\", \"template\", \"config.enableDynamicMenus\", \"config.dynamicMenuUrl\", \"config.dynamicMenuArgs\", \"config.ajaxProximity\", \"flyout.primeAjax\", \"nav.inline\").run(\"DynamicAjaxMenu\", function($, $id, template, enableDynamicMenus, dynamicMenuUrl, dynamicMenuArgs, ajaxProximity, primeAJAX) {\n var ajaxLoaded = !enableDynamicMenus, mouseHookTriggered = !enableDynamicMenus;\n $Nav.declare(\"unlockDynamicMenus\", function() {\n ajaxLoaded = false;\n mouseHookTriggered = false;\n });\n var ajaxLock = false;\n var preloadStarted;\n function allowDynamicMenuRetry() {\n JSBNG__setTimeout(function() {\n mouseHookTriggered = false;\n }, 5000);\n };\n ;\n function loadDynamicMenus() {\n $Nav.when(\"flyout.JSBNG__content\").run(\"LoadDynamicMenu\", function() {\n if (((ajaxLock || ajaxLoaded))) {\n return;\n }\n ;\n ;\n ajaxLock = true;\n var wishlistParent = $id(\"nav_wishlist_flyout\");\n var cartParent = $id(\"nav_cart_flyout\");\n var allParents = $(wishlistParent).add(cartParent);\n var wishlistContent = $(\".nav_dynamic\", wishlistParent);\n var cartContent = $(\".nav_dynamic\", cartParent);\n if (primeAJAX) {\n var primeParent = $id(\"nav-prime-menu\");\n allParents = allParents.add(primeParent);\n var primeContent = $(\".nav_dynamic\", primeParent);\n }\n ;\n ;\n $Nav.getNow(\"preloadSpinner\", function() {\n \n })();\n allParents.addClass(\"nav-ajax-loading\").removeClass(\"nav-ajax-error nav-empty\");\n allParents.JSBNG__find(\".nav-ajax-success\").hide();\n $.AmazonPopover.updateBacking(\"navbar\");\n $.ajax({\n url: dynamicMenuUrl,\n data: dynamicMenuArgs,\n dataType: \"json\",\n cache: false,\n timeout: 10000,\n complete: function() {\n allParents.removeClass(\"nav-ajax-loading\");\n $.AmazonPopover.updateBacking(\"navbar\");\n ajaxLock = false;\n },\n error: function() {\n allParents.addClass(\"nav-ajax-error\");\n allowDynamicMenuRetry();\n },\n success: function(data) {\n data = $.extend({\n cartDataStatus: false,\n cartCount: 0,\n cart: [],\n wishlistDataStatus: false,\n wishlist: [],\n primeMenu: null\n }, data);\n if (data.cartDataStatus) {\n $Nav.getNow(\"api.setCartCount\", function() {\n \n })(data.cartCount);\n }\n ;\n ;\n function updateDynamicMenu(JSBNG__status, isEmpty, parentElem, rawHTML, templateID, contentElem) {\n if (JSBNG__status) {\n if (isEmpty) {\n parentElem.addClass(\"nav-empty\").removeClass(\"nav-full\");\n }\n else {\n parentElem.addClass(\"nav-full\").removeClass(\"nav-empty\");\n }\n ;\n ;\n contentElem.html(((rawHTML || template(templateID, data))));\n parentElem.JSBNG__find(\".nav-ajax-success\").show();\n }\n else {\n parentElem.addClass(\"nav-ajax-error\");\n }\n ;\n ;\n };\n ;\n if (primeAJAX) {\n updateDynamicMenu(!!data.primeMenu, !data.primeMenu, primeParent, data.primeMenu, null, primeContent);\n }\n ;\n ;\n updateDynamicMenu(data.cartDataStatus, ((data.cart.length === 0)), cartParent, null, \"#nav-tpl-cart\", cartContent);\n updateDynamicMenu(data.wishlistDataStatus, ((data.wishlist.length === 0)), wishlistParent, null, \"#nav-tpl-wishlist\", wishlistContent);\n if (((data.cartDataStatus && data.wishlistDataStatus))) {\n ajaxLoaded = true;\n }\n else {\n allowDynamicMenuRetry();\n }\n ;\n ;\n }\n });\n });\n };\n ;\n function loadDynamicMenusConditionally() {\n if (!mouseHookTriggered) {\n loadDynamicMenus();\n }\n ;\n ;\n mouseHookTriggered = true;\n if (!preloadStarted) {\n preloadStarted = true;\n $Nav.declare(\"JSBNG__event.prefetch\");\n }\n ;\n ;\n return true;\n };\n ;\n $Nav.declare(\"flyout.loadMenusConditionally\", loadDynamicMenusConditionally);\n function attachTriggers() {\n var accumLeft = [], accumRight = [], accumTop = [], accumBottom = [];\n $(\"#nav-wishlist, #nav-cart\").each(function(i, elem) {\n elem = $(elem);\n var pos = elem.offset();\n accumLeft.push(pos.left);\n accumTop.push(pos.JSBNG__top);\n accumRight.push(((pos.left + elem.width())));\n accumBottom.push(((pos.JSBNG__top + elem.height())));\n });\n var proximity = ((ajaxProximity || [0,0,0,0,]));\n var left = ((Math.min.apply(Math, accumLeft) - proximity[3])), JSBNG__top = ((Math.min.apply(Math, accumTop) - proximity[0])), width = ((((Math.max.apply(Math, accumRight) + proximity[1])) - left)), height = ((((Math.max.apply(Math, accumBottom) + proximity[2])) - JSBNG__top));\n $.AmazonPopover.mouseTracker.add([[left,JSBNG__top,width,height,],], {\n inside: false,\n mouseEnter: loadDynamicMenusConditionally,\n mouseLeave: function() {\n return true;\n }\n });\n $(\"#nav_wishlist_flyout, #nav_cart_flyout\").JSBNG__find(\".nav-try-again\").click(loadDynamicMenus);\n };\n ;\n if (dynamicMenuUrl) {\n $Nav.when(\"page.ready\").run(attachTriggers);\n }\n ;\n ;\n });\n $Nav.when(\"$\", \"onOptionClick\", \"throttle\", \"byID\", \"$byID\", \"btf.lite\", \"nav.inline\").run(\"SearchDropdown\", function($, onOptionClick, throttle, byID, $id) {\n var dropdownNode = byID(\"searchDropdownBox\"), dropdown = $(dropdownNode), facade = $id(\"nav-search-in\"), facadeContent = byID(\"nav-search-in-content\"), searchBox = $id(\"twotabsearchtextbox\"), searchBoxParent = (function(elem) {\n if (elem.hasClass(\"nav-searchfield-width\")) {\n return elem;\n }\n else {\n if (((elem.parent().size() > 0))) {\n return arguments.callee(elem.parent());\n }\n else {\n return searchBox.parent();\n }\n ;\n ;\n }\n ;\n ;\n }(searchBox)), facadePrefilled = (function() {\n return ((((facadeContent.getAttribute && facadeContent.getAttribute(\"data-value\"))) || $(facadeContent).attr(\"data-value\")));\n }()), state = {\n isHover: false,\n isFocus: false,\n searchFocus: false,\n searchHover: false\n }, previousVal = null;\n if ($.browser.msie) {\n if (((parseFloat($.browser.version) < 7))) {\n $Nav.declare(\"refreshDropDownFacade\", function() {\n \n });\n return;\n }\n ;\n ;\n facade.addClass(\"ie\");\n }\n ;\n ;\n function tweakDropdownWidth() {\n var facadeWidth = facade.width();\n if (((dropdown.width() < facadeWidth))) {\n dropdown.width(facadeWidth);\n }\n ;\n ;\n };\n ;\n function updateActiveState() {\n if (state.isFocus) {\n facade.addClass(\"JSBNG__focus\").removeClass(\"active\");\n var redraw = JSBNG__document.createElement(\"div\");\n facade.append(redraw);\n JSBNG__setTimeout(function() {\n redraw.parentNode.removeChild(redraw);\n }, 10);\n }\n else {\n if (((((state.isHover || state.searchFocus)) || state.searchHover))) {\n facade.addClass(\"active\").removeClass(\"JSBNG__focus\");\n }\n else {\n facade.removeClass(\"active focus\");\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n function getSelected() {\n var len = dropdownNode.children.length;\n for (var i = 0; ((i < len)); i++) {\n if (dropdownNode.children[i].selected) {\n return $(dropdownNode.children[i]);\n }\n ;\n ;\n };\n ;\n return dropdown.children(\"option:selected\");\n };\n ;\n function redrawSearchBox() {\n if ($.browser.msie) {\n return;\n }\n ;\n ;\n searchBox.css(\"padding-right\", ((parseInt(searchBox.css(\"padding-right\"), 10) ? 0 : 1)));\n };\n ;\n function useAbbrDropdown() {\n var facadeWidth = $(facadeContent).width();\n if (((facadeWidth > 195))) {\n return true;\n }\n ;\n ;\n if (((((facadeWidth > 100)) && ((searchBoxParent.JSBNG__outerWidth() <= 400))))) {\n return true;\n }\n ;\n ;\n return false;\n };\n ;\n function updateFacadeWidth() {\n $(facade).add(facadeContent).css({\n width: \"auto\"\n });\n $(facadeContent).css({\n overflow: \"visible\"\n });\n if (useAbbrDropdown()) {\n $(facadeContent).css({\n width: 100,\n overflow: \"hidden\"\n });\n }\n ;\n ;\n JSBNG__setTimeout(function() {\n searchBoxParent.css({\n \"padding-left\": facade.width()\n });\n redrawSearchBox();\n tweakDropdownWidth();\n }, 1);\n };\n ;\n function updateFacade() {\n var selected = getSelected(), selectedVal = selected.val();\n if (((selectedVal != previousVal))) {\n var display = ((((previousVal || ((selectedVal != facadePrefilled)))) ? selected.html() : facadeContent.innerHTML));\n previousVal = selectedVal;\n if (((facadeContent.innerHTML != display))) {\n facadeContent.innerHTML = display;\n updateFacadeWidth();\n }\n ;\n ;\n }\n ;\n ;\n updateActiveState();\n };\n ;\n function focusSearchBox() {\n var iss = $Nav.getNow(\"iss\");\n if (iss) {\n state[\"isFocus\"] = false;\n iss.JSBNG__focus();\n }\n ;\n ;\n };\n ;\n function keypressHandler(e) {\n if (((e.which == 13))) {\n focusSearchBox();\n }\n ;\n ;\n if (((((e.which != 9)) && ((e.which != 16))))) {\n updateFacade();\n }\n ;\n ;\n };\n ;\n $Nav.declare(\"refreshDropDownFacade\", updateFacade);\n function buildCallback(property, value) {\n return function() {\n state[property] = value;\n updateActiveState();\n };\n };\n ;\n facade.get(0).className += \" nav-facade-active\";\n updateFacade();\n dropdown.change(updateFacade).keyup(keypressHandler).JSBNG__focus(buildCallback(\"isFocus\", true)).JSBNG__blur(buildCallback(\"isFocus\", false)).hover(buildCallback(\"isHover\", true), buildCallback(\"isHover\", false));\n $Nav.when(\"dismissTooltip\").run(function(dismissTooltip) {\n dropdown.JSBNG__focus(dismissTooltip);\n });\n onOptionClick(dropdown, function() {\n focusSearchBox();\n updateFacade();\n });\n $(window).resize(throttle(150, updateFacadeWidth));\n $Nav.when(\"page.ready\").run(\"FixSearchDropdown\", function() {\n if ((((((($(facadeContent).JSBNG__outerWidth(true) - facade.JSBNG__outerWidth())) >= 4)) || useAbbrDropdown()))) {\n updateFacadeWidth();\n }\n ;\n ;\n tweakDropdownWidth();\n dropdown.css({\n JSBNG__top: Math.max(0, ((((facade.JSBNG__outerHeight() - dropdown.JSBNG__outerHeight())) / 2)))\n });\n });\n $Nav.when(\"iss\").run(function(iss) {\n iss.keydown(function(e) {\n JSBNG__setTimeout(function() {\n keypressHandler(e);\n }, 10);\n });\n $Nav.when(\"dismissTooltip\").run(function(dismissTooltip) {\n iss.keydown(dismissTooltip);\n });\n iss.onFocus(buildCallback(\"searchFocus\", true));\n iss.onBlur(buildCallback(\"searchFocus\", false));\n iss.onBlur(updateFacade);\n if (iss.onSearchBoxHover) {\n iss.onSearchBoxHover(buildCallback(\"searchHover\", true), buildCallback(\"searchHover\", false));\n }\n ;\n ;\n });\n });\n $Nav.when(\"$\").build(\"Keycode\", function($) {\n function Keycode(evt) {\n this.evt = evt;\n this.code = evt.keyCode;\n };\n ;\n Keycode.prototype.isAugmented = function() {\n return ((((this.evt.altKey || this.evt.ctrlKey)) || this.evt.metaKey));\n };\n Keycode.prototype.isAugmentor = function() {\n return ((0 <= $.inArray(this.code, [0,16,20,17,18,224,91,93,])));\n };\n Keycode.prototype.isTextFieldControl = function() {\n return ((0 <= $.inArray(this.code, [8,9,13,32,35,36,37,38,39,40,45,46,])));\n };\n Keycode.prototype.isControl = function() {\n if (((this.code <= 46))) {\n return true;\n }\n else {\n if (((((this.code >= 91)) && ((this.code <= 95))))) {\n return true;\n }\n else {\n if (((((this.code >= 112)) && ((this.code <= 145))))) {\n return true;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n return false;\n };\n Keycode.prototype.isTab = function() {\n return ((this.code === 9));\n };\n Keycode.prototype.isEnter = function() {\n return ((this.code === 13));\n };\n Keycode.prototype.isBackspace = function() {\n return ((this.code === 8));\n };\n return Keycode;\n });\n $Nav.when(\"$\", \"agent\", \"iss\", \"Keycode\", \"config.autoFocus\", \"nav.inline\").run(\"autoFocus\", function($, agent, iss, Keycode, enableAutoFocus) {\n if (!enableAutoFocus) {\n return;\n }\n ;\n ;\n if (agent.touch) {\n return;\n }\n ;\n ;\n function JSBNG__getSelection() {\n if (window.JSBNG__getSelection) {\n return window.JSBNG__getSelection().toString();\n }\n else {\n if (JSBNG__document.selection) {\n return JSBNG__document.selection.createRange().text;\n }\n else {\n return \"\";\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n function canFocus() {\n return (((((($(JSBNG__document).scrollTop() <= $(\"#nav-iss-attach\").offset().JSBNG__top)) && (($(JSBNG__document.activeElement).filter(\"input,select,textarea\").size() < 1)))) && ((JSBNG__getSelection() === \"\"))));\n };\n ;\n var first = false;\n if (canFocus()) {\n iss.JSBNG__focus();\n first = true;\n }\n ;\n ;\n iss.keydown(function(e) {\n var key = new Keycode(e);\n if (key.isAugmentor()) {\n return;\n }\n ;\n ;\n var isControl = key.isControl();\n if (key.isAugmented()) {\n \"noop\";\n }\n else {\n if (first) {\n if (!canFocus()) {\n iss.JSBNG__blur();\n }\n else {\n if (isControl) {\n iss.JSBNG__blur();\n }\n ;\n ;\n }\n ;\n ;\n }\n else {\n if (isControl) {\n if (!key.isTextFieldControl()) {\n iss.JSBNG__blur();\n }\n else {\n if (((((((((iss.keyword() === \"\")) && !key.isTab())) && !key.isEnter())) && !key.isBackspace()))) {\n iss.JSBNG__blur();\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n first = false;\n });\n $(JSBNG__document).keydown(function(e) {\n var key = new Keycode(e);\n if (!canFocus()) {\n return;\n }\n ;\n ;\n if (key.isControl()) {\n return;\n }\n ;\n ;\n if (((key.isAugmentor() || key.isAugmented()))) {\n return;\n }\n ;\n ;\n iss.JSBNG__focus();\n });\n });\n $Nav.when(\"$\", \"api.publish\", \"config.swmStyleData\").run(\"ExternalAPI\", function($, publishAPI, swmStyleData) {\n publishAPI(\"unHideSWM\", function() {\n var $h = $(\"#navHiddenSwm\");\n var s = swmStyleData;\n if ($h.length) {\n $(\"#navbar\").removeClass(\"nav-logo-small nav-logo-large\").addClass(((\"nav-logo-\" + ((((parseInt(((s.height || 0)), 10) > 40)) ? \"large\" : \"small\")))));\n $(\"#welcomeRowTable\").css(\"height\", ((s.height || \"\")));\n var $swm = $(\"#navSwmSlot\");\n $swm.parent().attr(\"style\", ((s.style || \"\")));\n $swm.children().css(\"display\", \"none\");\n $h.css(\"display\", \"\");\n }\n ;\n ;\n });\n var exposeState;\n publishAPI(\"exposeSBD\", function(expose) {\n exposeState = expose;\n $Nav.when(\"initExposeSBD\", \"protectExposeSBD\").run(function(initExposeSBD, protectExposeSBD) {\n if (initExposeSBD().ok()) {\n protectExposeSBD(exposeState);\n }\n ;\n ;\n });\n });\n publishAPI(\"navDimensions\", function() {\n var elem = $(\"#navbar\");\n var result = elem.offset();\n result.height = elem.height();\n result.bottom = ((result.JSBNG__top + result.height));\n return result;\n });\n $Nav.when(\"api.unHideSWM\", \"api.exposeSBD\", \"api.navDimensions\").publish(\"navbarJSLoaded\");\n });\n }(window.$Nav));\n if (((!window.$SearchJS && window.$Nav))) {\n window.$SearchJS = $Nav.make();\n }\n;\n;\n if (window.$SearchJS) {\n $SearchJS.importEvent(\"legacy-popover\", {\n as: \"popover\",\n amznJQ: \"popover\",\n global: \"jQuery.AmazonPopover\"\n });\n $SearchJS.when(\"jQuery\", \"popover\").run(function($, AmazonPopover) {\n $.fn.amznFlyoutIntent = function(arg) {\n var defaults = {\n getTarget: function(el) {\n return $(this).children(\"*[position=\\\"absolute\\\"]\").eq(0);\n },\n triggerAxis: \"y\",\n majorDelay: 300,\n minorDelay: 100,\n targetSlopY: 50,\n targetSlopX: 50,\n cursorSlopBase: 25,\n cursorSlopHeight: 50,\n mtRegions: []\n }, nameSp = \"amznFlyoutIntent\", mt = AmazonPopover.mouseTracker, getRect = function(el, slopX, slopY) {\n var off = el.offset(), tl = {\n x: ((off.left - ((slopX || 0)))),\n y: ((off.JSBNG__top - ((slopY || 0))))\n }, br = {\n x: ((((tl.x + el.JSBNG__outerWidth())) + ((((slopX || 0)) * 2)))),\n y: ((((tl.y + el.JSBNG__outerHeight())) + ((((slopY || 0)) * 2))))\n };\n return [tl,br,];\n }, triBC = function(tri) {\n var t0 = tri[0], t1 = tri[1], t2 = tri[2];\n return ((((((t1.x - t0.x)) * ((t2.y - t0.y)))) - ((((t2.x - t0.x)) * ((t1.y - t0.y))))));\n }, isInTri = function(p, tri) {\n var b0 = ((1 / triBC(tri))), t0 = tri[0], t1 = tri[1], t2 = tri[2];\n return ((((((((triBC([t1,t2,p,]) * b0)) > 0)) && ((((triBC([t2,t0,p,]) * b0)) > 0)))) && ((((triBC([t0,t1,p,]) * b0)) > 0))));\n }, clamp = function(p, r) {\n var r0 = r[0], r1 = r[1];\n return {\n x: ((((p.x < r0.x)) ? -1 : ((((p.x > r1.x)) ? 1 : 0)))),\n y: ((((p.y < r0.y)) ? -1 : ((((p.y > r1.y)) ? 1 : 0))))\n };\n }, isInRect = function(p, rect) {\n var c = clamp(p, rect);\n return ((((c.x == 0)) && ((c.y == 0))));\n }, sel = function(a, b, a0, a1, b0, b1, d) {\n return ((((a < 0)) ? a0 : ((((a > 0)) ? a1 : ((((b < 0)) ? b0 : ((((b > 0)) ? b1 : d))))))));\n }, getExtremePoints = function(p, rect) {\n var c = clamp(p, rect), cx = c.x, cy = c.y, r0 = rect[0], r1 = rect[1], r0x = r0.x, r0y = r0.y, r1x = r1.x, r1y = r1.y;\n return [{\n x: sel(cy, cx, r0x, r1x, r0x, r1x, 0),\n y: sel(cx, cy, r1y, r0y, r0y, r1y, 0)\n },{\n x: sel(cy, cx, r1x, r0x, r0x, r1x, 0),\n y: sel(cx, cy, r0y, r1y, r0y, r1y, 0)\n },];\n }, isInCone = function(cursor, p1, cfg) {\n var slopRect = $.extend(true, [], cfg.slopRect), sy = cfg.targetSlopY, sx = cfg.targetSlopX, c = clamp(p1, cfg.targetRect), cx = c.x, cy = c.y, sh = cfg.cursorSlopHeight, sb = cfg.cursorSlopBase, p = $.extend({\n }, p1), q = $.extend({\n }, p1), exP;\n if (((cy == 0))) {\n slopRect[((((cx < 0)) ? 0 : 1))].x -= ((sy * cx));\n }\n else {\n if (((cx == 0))) {\n slopRect[((((cy < 0)) ? 0 : 1))].y -= ((sb * cy));\n }\n ;\n ;\n }\n ;\n ;\n if (((cfg.triggerAxis === \"x\"))) {\n p.y = q.y -= ((sb * cy));\n p.x -= sh;\n q.x += sh;\n }\n else {\n q.x = p.x -= ((sb * cx));\n p.y -= ((sh * cx));\n q.y += ((sh * cx));\n }\n ;\n ;\n exP = getExtremePoints(p1, slopRect);\n return ((((isInTri(cursor, [p1,exP[0],exP[1],]) || isInTri(cursor, [p1,exP[0],p,]))) || isInTri(cursor, [p1,exP[1],q,])));\n }, calcChangeDelay = function(c, rect, p1, p2, cfg) {\n var delay = 0;\n p1 = ((p1 || {\n }));\n p2 = ((p2 || {\n }));\n if (isInRect(c, rect)) {\n delay = -1;\n }\n else {\n if (isInCone(c, p1, cfg)) {\n delay = cfg.majorDelay;\n }\n else {\n if (((((((Math.abs(((c.x - p1.x))) < 10)) && ((Math.abs(((c.y - p1.y))) < 10)))) && isInCone(c, p2, cfg)))) {\n delay = cfg.minorDelay;\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n return delay;\n }, changeTrigger = function(el, cfg) {\n ((((cfg.triggerEl && cfg.onMouseOut)) && cfg.onMouseOut.call(cfg.triggerEl.get(0))));\n cfg.onMouseOver.call(el.get(0));\n if (!cfg.targets) {\n cfg.targets = {\n };\n }\n ;\n ;\n var tgt = cfg.targets[el];\n if (!tgt) {\n cfg.targets[el] = tgt = {\n triggerEl: $(el)\n };\n tgt.targetEl = cfg.getTarget.call(el.get(0));\n tgt.targetRect = getRect(tgt.targetEl);\n tgt.slopRect = getRect(tgt.targetEl, cfg.targetSlopY, cfg.targetSlopX);\n }\n ;\n ;\n cfg.triggerEl = tgt.triggerEl;\n cfg.targetEl = tgt.targetEl;\n cfg.targetRect = tgt.targetRect;\n cfg.slopRect = tgt.slopRect;\n }, m = {\n destroy: function() {\n var cfg = this.data(nameSp), i;\n if (cfg) {\n JSBNG__clearTimeout(cfg.timeoutId);\n for (i = 0; ((i < cfg.mtRegions.length)); i++) {\n mt.remove(cfg.mtRegions[i]);\n };\n ;\n this.removeData(nameSp);\n }\n ;\n ;\n },\n init: function(opts) {\n var cfg = this.data(nameSp);\n if (!cfg) {\n cfg = $.extend(defaults, opts);\n this.data(nameSp, cfg);\n }\n ;\n ;\n return this.each(function() {\n var $this = $(this), off = $this.offset(), mouseLeave = function(immediately, args) {\n ((((cfg.onMouseLeave && this.el)) && cfg.onMouseLeave.call(this.el.get(0))));\n return true;\n }, mouseEnter = function(args) {\n JSBNG__clearTimeout(cfg.timeoutId);\n var trigger, changeDelay, doDelayedChange;\n ((((cfg.onMouseEnter && this.el)) && cfg.onMouseEnter.call(this.el.get(0))));\n if (((((cfg.triggerEl && this.el)) && ((cfg.triggerEl !== this.el))))) {\n trigger = this.el;\n changeDelay = ((cfg.targetRect ? calcChangeDelay(args.cursor, cfg.targetRect, args.priorCursors[0], args.priorCursors[1], cfg) : -1));\n if (((cfg.triggerEl && ((changeDelay > 0))))) {\n doDelayedChange = function() {\n var delayedArgs = mt.getCallbackArgs(), nextDelay = 0;\n JSBNG__clearTimeout(cfg.timeoutId);\n if (((((cfg.priorCursor && ((cfg.priorCursor.x === delayedArgs.cursor.x)))) && ((cfg.priorCursor.y === delayedArgs.cursor.y))))) {\n nextDelay = ((isInRect(delayedArgs.cursor, cfg.targetRect) ? -1 : 0));\n }\n else {\n nextDelay = calcChangeDelay(delayedArgs.cursor, cfg.targetRect, delayedArgs.priorCursors[0], delayedArgs.priorCursors[1], cfg);\n }\n ;\n ;\n cfg.priorCursor = {\n x: delayedArgs.cursor.x,\n y: delayedArgs.cursor.y\n };\n if (((((nextDelay > 0)) && ((cfg.triggerEl.get(0) !== trigger.get(0)))))) {\n cfg.timeoutId = JSBNG__setTimeout(function() {\n doDelayedChange.call(trigger);\n }, nextDelay);\n }\n else {\n if (((nextDelay > -1))) {\n if (isInRect(delayedArgs.cursor, getRect(trigger))) {\n changeTrigger(trigger, cfg);\n }\n else {\n ((cfg.onMouseOut && cfg.onMouseOut.call(trigger.get(0))));\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n cfg.timeoutId = JSBNG__setTimeout(doDelayedChange, changeDelay);\n }\n else {\n changeTrigger(this.el, cfg);\n }\n ;\n ;\n }\n else {\n changeTrigger(this.el, cfg);\n }\n ;\n ;\n return true;\n };\n cfg.mtRegions.push(mt.add([[off.left,off.JSBNG__top,$this.JSBNG__outerWidth(),$this.JSBNG__outerHeight(),],], {\n inside: false,\n mouseEnter: mouseEnter,\n mouseLeave: mouseLeave,\n el: $this\n }));\n });\n }\n };\n if (m[arg]) {\n return m[arg].apply(this, Array.prototype.slice.call(arguments, 1));\n }\n ;\n ;\n if (((((typeof arg === \"object\")) || !arg))) {\n return m.init.apply(this, arguments);\n }\n ;\n ;\n return this;\n };\n $SearchJS.publish(\"amznFlyoutIntent\");\n });\n $SearchJS.when(\"jQuery\", \"amznFlyoutIntent\").run(function($) {\n (function(window, undefined) {\n var merchRE = /^me=/, refre = /(ref=[-\\w]+)/, ltrimre = /^\\s+/, spaceNormRe = /\\s+/g, ddre = /_dd_/, ddaliasre = /(dd_[a-z]{3,4})(_|$)[\\w]*/, deptre = /\\{department\\}/g, slashre = /\\+/g, aliasre = /search-alias\\s*=\\s*([\\w-]+)/, nodere = /node\\s*=\\s*([\\d]+)/, merchantre = /^me=([0-9A-Z]*)/, noissre = /ref=nb_sb_noss/, dcs = \"#ddCrtSel\", sdpc = \"searchDropdown_pop_conn\", tostr = Object.prototype.toString, ddBox, metrics = {\n isEnabled: ((((typeof uet == \"function\")) && ((typeof uex == \"function\")))),\n init: \"iss-init-pc\",\n completionsRequest0: \"iss-c0-pc\",\n completionsRequestSample: \"iss-cs-pc\",\n sample: 2,\n noFocusTag: \"iss-on-time\",\n focusTag: \"iss-late\"\n };\n $.isArray = (($.isArray || function(o) {\n return ((tostr.call(o) === \"[object Array]\"));\n }));\n var SS = function(sb, pe, displayHtml, handlers) {\n var node, noOp = function() {\n \n }, defaults = {\n afterCreate: noOp,\n beforeShow: noOp,\n afterShow: noOp,\n beforeHide: noOp,\n beforeHtmlChange: noOp,\n afterHtmlChange: noOp,\n onWindowResize: noOp\n }, events = $.extend({\n }, defaults, handlers);\n function create() {\n node = $(displayHtml).appendTo(((pe || sb.parent())));\n events.afterCreate.call(node);\n $(window).resize(function(e) {\n events.onWindowResize.call(node, e);\n });\n return node;\n };\n ;\n function get() {\n return ((node || create()));\n };\n ;\n function setHtml(h) {\n events.beforeHtmlChange.call(get(), h);\n get().html(h);\n events.afterHtmlChange.call(get(), h);\n return this;\n };\n ;\n this.getNode = get;\n this.html = setHtml;\n this.visible = function() {\n if (node) {\n return ((node.css(\"display\") != \"none\"));\n }\n ;\n ;\n return false;\n };\n this.hide = function() {\n events.beforeHide.call(get());\n get().hide();\n setHtml(\"\");\n return this;\n };\n this.show = function() {\n events.beforeShow.call(get());\n get().show();\n events.afterShow.call(get());\n return this;\n };\n };\n var IAC = function(sb, pe, iac, newDesign) {\n var sbPlaceHolder, sbPlaceHolderDiv, sbNode, sbDiv, iacNode, iacDiv, widthDiv, canShowIAC = true, iacType = 0;\n function get() {\n return ((iacNode || create()));\n };\n ;\n function create() {\n var p = sb.pos(true), d = sb.size(true), sbPlaceHolderCss = {\n JSBNG__top: p.JSBNG__top,\n left: p.left,\n width: \"100%\",\n border: \"2px inset\"\n }, sbPlaceHolderCssOverride = {\n background: \"none repeat scroll 0 0 transparent\",\n color: \"black\",\n \"font-family\": \"arial,sans-serif\",\n \"font-size\": \"12pt\",\n height: \"23px\",\n margin: \"7px 0 0\",\n outline: \"0 none\",\n padding: 0,\n border: \"0 none\"\n }, iacNodeCss = {\n left: p.left,\n width: d.width,\n JSBNG__top: p.JSBNG__top,\n \"z-index\": 1,\n color: \"#999\",\n position: \"absolute\",\n \"background-color\": \"#FFF\"\n }, iacNodeCssOverride = {\n left: ((p.left + 5)),\n width: ((d.width - 5)),\n border: \"0 none\",\n \"font-family\": \"arial,sans-serif\",\n \"font-size\": \"12pt\",\n height: \"23px\",\n margin: \"7px 0 0\",\n outline: \"0 none\",\n padding: 0\n };\n sbPlaceHolder = $(\"\\u003Cinput id='sbPlaceHolder' class='searchSelect' readOnly='true'/\\u003E\").css(sbPlaceHolderCss).css(((newDesign ? sbPlaceHolderCssOverride : {\n }))).appendTo(((pe || sb.parent())));\n sbPlaceHolderDiv = sbPlaceHolder.get(0);\n sbNode = $(\"#twotabsearchtextbox\").css({\n position: \"absolute\",\n background: \"none repeat scroll 0 0 transparent\",\n \"z-index\": 5,\n width: d.width\n });\n sbDiv = sbNode.get(0);\n iacNode = $(\"\\u003Cinput id='inline_auto_complete' class='searchSelect' readOnly='true'/\\u003E\").css(iacNodeCss).css(((newDesign ? iacNodeCssOverride : {\n }))).appendTo(((pe || sb.parent())));\n iacDiv = iacNode.get(0);\n JSBNG__setInterval(adjust, 200);\n sbNode.keydown(keyDown);\n if (newDesign) {\n widthDiv = sb.parent().parent();\n }\n ;\n ;\n return iacNode;\n };\n ;\n function adjust() {\n var p = sb.pos(), d = sb.size(), adjustment = 0, w = d.width;\n if (newDesign) {\n adjustment = 5;\n w = ((widthDiv.width() - adjustment));\n }\n ;\n ;\n sbNode.css({\n left: ((p.left + adjustment)),\n JSBNG__top: p.JSBNG__top,\n width: w\n });\n iacNode.css({\n left: ((p.left + adjustment)),\n JSBNG__top: p.JSBNG__top,\n width: w\n });\n };\n ;\n function keyDown(JSBNG__event) {\n var value = get().val();\n get().val(\"\");\n var key = JSBNG__event.keyCode;\n switch (key) {\n case 8:\n \n case 37:\n \n case 46:\n if (((value && ((value.length > 0))))) {\n JSBNG__event.preventDefault();\n }\n ;\n ;\n iacType = 0;\n canShowIAC = false;\n break;\n case 32:\n iacType = 0;\n canShowIAC = false;\n break;\n case 13:\n if (((iac == 2))) {\n break;\n }\n ;\n ;\n case 39:\n if (((value && ((value.length > 0))))) {\n sb.keyword(value);\n iacType = ((((key == 13)) ? 1 : 2));\n }\n ;\n ;\n canShowIAC = true;\n break;\n case 16:\n \n case 17:\n \n case 18:\n \n case 20:\n \n case 229:\n get().val(value);\n default:\n iacType = 0;\n canShowIAC = true;\n break;\n };\n ;\n };\n ;\n this.val = function(value) {\n if (((value !== undefined))) {\n get().val(value);\n }\n ;\n ;\n return get().val();\n };\n this.clear = function() {\n get().val(\"\");\n };\n this.type = function() {\n return iacType;\n };\n this.displayable = function(showIAC) {\n if (((showIAC !== undefined))) {\n canShowIAC = showIAC;\n }\n ;\n ;\n return canShowIAC;\n };\n this.touch = function() {\n get();\n return true;\n };\n };\n var IH = function(updateFunc) {\n var curIme, ku, kd, updateKwChange = updateFunc;\n function clearCurIme() {\n kd = ku = undefined, curIme = \"\";\n };\n ;\n function keydown(keyCode) {\n return ((keyCode ? kd = keyCode : kd));\n };\n ;\n function update(sbCurText) {\n if (updateKwChange) {\n updateKwChange(((((sbCurText && ((sbCurText.length > 0)))) ? ((sbCurText + curIme)) : curIme)));\n }\n ;\n ;\n };\n ;\n function keyup(keyCode, sbCurText) {\n if (((keyCode != undefined))) {\n ku = keyCode;\n if (((((curIme && ((curIme.length > 0)))) && ((((ku == 8)) || ((ku == 46))))))) {\n curIme = curIme.substring(0, ((curIme.length - 1)));\n update(sbCurText);\n }\n else {\n if (((((ku >= 65)) && ((ku <= 90))))) {\n var kchar = String.fromCharCode(ku);\n curIme += kchar;\n update(sbCurText);\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n return ku;\n };\n ;\n function shouldHandle() {\n return ((((kd == 229)) || ((kd == 197))));\n };\n ;\n this.keydown = keydown;\n this.keyup = keyup;\n this.isImeInput = shouldHandle;\n this.reset = clearCurIme;\n };\n var SB = function(sb, h) {\n var curText, curSel, latestUserInput, navIssAttach, sbPlaceHolder, imeUsed = false, ih = ((h.opt.imeEnh && new IH(function(val) {\n updateKwChange(val);\n })));\n init();\n function init() {\n if (metrics.isEnabled) {\n ue.tag(((((sb.get(0) === JSBNG__document.activeElement)) ? metrics.focusTag : metrics.noFocusTag)));\n }\n ;\n ;\n sb.keydown(keyDown).keyup(keyUp).keypress(keyPress).JSBNG__blur(blurHandler).JSBNG__focus(focusHandler).click(clickHandler);\n latestUserInput = curText = kw();\n ((h.newDesign && (navIssAttach = $(\"#nav-iss-attach\"))));\n };\n ;\n function kw(k) {\n if (((k !== undefined))) {\n curText = curSel = k;\n sb.val(k);\n }\n ;\n ;\n return sb.val().replace(ltrimre, \"\").replace(spaceNormRe, \" \");\n };\n ;\n function input(k) {\n if (((k !== undefined))) {\n latestUserInput = k;\n }\n ;\n ;\n return latestUserInput;\n };\n ;\n function keyDown(e) {\n var key = e.keyCode, d = ((((key == 38)) ? -1 : ((((key == 40)) ? 1 : 0))));\n if (ih) {\n ih.keydown(key);\n }\n ;\n ;\n imeUsed = ((((((key == 229)) || ((key == 197)))) ? true : ((((((((key >= 48)) && ((key <= 57)))) || ((((key >= 65)) && ((key <= 90)))))) ? false : imeUsed))));\n if (((h.opt.twoPane === 1))) {\n return h.twoPaneArrowKeyHandler(e);\n }\n ;\n ;\n if (d) {\n h.adjust(d);\n if (((kw() != \"\"))) {\n e.preventDefault();\n }\n ;\n ;\n }\n ;\n ;\n if (h.opt.doCTW) {\n h.opt.doCTW(e);\n }\n ;\n ;\n };\n ;\n function keyUp(e) {\n var key = e.keyCode;\n switch (key) {\n case 13:\n h.hide();\n break;\n case 27:\n return h.dismiss();\n case 37:\n \n case 38:\n \n case 39:\n \n case 40:\n break;\n default:\n if (((ih && ih.isImeInput()))) {\n ih.keyup(key, curText);\n }\n else {\n update(true);\n }\n ;\n ;\n break;\n };\n ;\n };\n ;\n function keyPress(e) {\n var key = e.keyCode;\n switch (key) {\n case 13:\n return h.submitEnabled();\n default:\n h.keyPress();\n break;\n };\n ;\n };\n ;\n function updateKwChange(val) {\n input(val);\n h.change(val);\n };\n ;\n function update(dontCheckCurSel) {\n var val = kw();\n if (((((val != curText)) && ((dontCheckCurSel || ((val != curSel))))))) {\n curText = val;\n updateKwChange(val);\n if (ih) {\n ih.reset();\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n function focusHandler(e) {\n if (ih) {\n ih.reset();\n }\n ;\n ;\n };\n ;\n function blurHandler(e) {\n h.dismiss();\n if (ih) {\n ih.reset();\n }\n ;\n ;\n };\n ;\n function clickHandler(e) {\n h.click(kw());\n if (ih) {\n ih.reset();\n }\n ;\n ;\n };\n ;\n function getSbPlaceHolder() {\n if (!sbPlaceHolder) {\n sbPlaceHolder = $(\"#sbPlaceHolder\");\n }\n ;\n ;\n return sbPlaceHolder;\n };\n ;\n this.keyword = function(k) {\n return kw(k);\n };\n this.userInput = function(k) {\n return input(k);\n };\n this.size = function(nonIAC) {\n var e = sb;\n if (h.newDesign) {\n e = navIssAttach;\n }\n else {\n if (((((!nonIAC && h.iac)) && h.checkIAC()))) {\n e = getSbPlaceHolder();\n }\n ;\n ;\n }\n ;\n ;\n return {\n width: e.JSBNG__outerWidth(),\n height: e.JSBNG__outerHeight()\n };\n };\n this.pos = function(nonIAC) {\n var e = sb;\n if (h.newDesign) {\n e = navIssAttach;\n }\n else {\n if (((((!nonIAC && h.iac)) && h.checkIAC()))) {\n e = getSbPlaceHolder();\n }\n ;\n ;\n }\n ;\n ;\n return e.position();\n };\n this.offset = function(nonIAC) {\n var e = sb;\n if (((((!nonIAC && h.iac)) && h.checkIAC()))) {\n e = getSbPlaceHolder();\n }\n ;\n ;\n return e.offset();\n };\n this.parent = function() {\n return sb.parent();\n };\n this.hasFocus = function() {\n return ((sb.get(0) === JSBNG__document.activeElement));\n };\n this.cursorPos = function() {\n var input = sb.get(0);\n if (((\"selectionStart\" in input))) {\n return input.selectionStart;\n }\n else {\n if (JSBNG__document.selection) {\n input.JSBNG__focus();\n var sel = JSBNG__document.selection.createRange();\n var selLen = JSBNG__document.selection.createRange().text.length;\n sel.moveStart(\"character\", -input.value.length);\n return ((sel.text.length - selLen));\n }\n ;\n ;\n }\n ;\n ;\n return -1;\n };\n this.update = update;\n this.JSBNG__blur = function() {\n sb.JSBNG__blur();\n };\n this.JSBNG__focus = function() {\n var val = sb.val();\n sb.JSBNG__focus().val(\"\").val(val);\n };\n this.keydown = function(h) {\n sb.keydown(h);\n };\n this.click = function(h) {\n sb.click(h);\n };\n this.onFocus = function(h) {\n sb.JSBNG__focus(h);\n };\n this.onBlur = function(h) {\n sb.JSBNG__blur(h);\n };\n this.isImeUsed = function() {\n return imeUsed;\n };\n };\n var AC = function(opts) {\n var version = 1, opt = {\n }, names, values, crtSel = -1, redirectFirstSuggestion = false, crtXcatSel = -1, suggestionList = [], twoPaneSuggestionsList = [], curSize = 0, hideDelayTimerId = null, timer = null, maxCategorySuggestions = 4, categorySuggestions = 0, imeSpacing = 0, suggestRequest = null, first = -1, defaultDropDownVal, insertedDropDownVal, delayedDOMUpdate = false, staticContent, searchBox, keystroke, sugHandler, inlineAutoComplete, JSBNG__searchSuggest, activityAllowed = true, promoList = [], suggType = \"sugg\", newDesign = $(\"#navbar\").hasClass(\"nav-beacon\"), defaults = {\n sb: \"#twotabsearchtextbox\",\n form: \"#navbar form[name='site-search']\",\n dd: \"#searchDropdownBox\",\n cid: \"amazon-search-ui\",\n action: \"\",\n sugPrefix: \"issDiv\",\n sugText: \"Search suggestions\",\n fb: 0,\n xcat: 0,\n twoPane: 0,\n dupElim: 0,\n imeSpacing: 0,\n maxSuggestions: 10\n }, lastKeyPressTime, timeToFirstSuggestion = 0, searchAliasFrom, defaultTimeout = 100, reqCounter = 0;\n ((opts && init(opts)));\n function init(opts) {\n $.extend(opt, defaults, opts);\n newDesign = ((opt.isNavInline && newDesign));\n var src = opt.src;\n staticContent = $.isArray(src), resizeToken = null;\n lookup(opt, \"sb\");\n if (!opt.sb) {\n return;\n }\n ;\n ;\n searchBox = new SB(opt.sb, {\n adjust: move,\n twoPaneArrowKeyHandler: twoPaneArrowKeyHandler,\n hide: hideSuggestions,\n dismiss: dismissSuggestions,\n change: ((staticContent ? update : delayUpdate)),\n submitEnabled: submitEnabled,\n keyPress: keyPress,\n click: clickHandler,\n newDesign: newDesign,\n iac: opt.iac,\n checkIAC: checkIAC,\n opt: opt\n });\n lookup(opt, \"pe\");\n if (opt.iac) {\n inlineAutoComplete = new IAC(searchBox, opt.pe, opt.iac, newDesign);\n }\n ;\n ;\n if (((opt.twoPane == false))) {\n JSBNG__searchSuggest = new SS(searchBox, opt.pe, \"\\u003Cdiv id=\\\"srch_sggst\\\"/\\u003E\", {\n afterCreate: resizeHandler,\n onWindowResize: resizeHandler,\n beforeShow: resizeHandler\n });\n }\n else {\n JSBNG__searchSuggest = new SS(searchBox, opt.pe, \"\\u003Cdiv id=\\\"srch_sggst\\\" class=\\\"two-pane\\\" style=\\\"display:none\\\"/\\u003E\", {\n afterCreate: twoPaneSetPosition,\n beforeHtmlChange: twoPaneDestroyFlyout,\n beforeShow: twoPaneSetPosition,\n afterShow: function(h) {\n twoPaneSetPosition.call(this);\n twoPaneSetXcatPosition.call(this);\n twoPaneBindFlyout.call(this);\n },\n onWindowResize: function() {\n var $this = this;\n resize = function() {\n twoPaneDestroyFlyout.call($this);\n twoPaneBindFlyout.call($this);\n resizeToken = null;\n };\n window.JSBNG__clearTimeout(resizeToken);\n resizeToken = window.JSBNG__setTimeout(resize, 100);\n twoPaneSetPosition.call($this);\n twoPaneSetXcatPosition.call($this);\n }\n });\n }\n ;\n ;\n lookup(opt, \"form\");\n lookup(opt, \"valInput\");\n lookup(opt, \"dd\");\n lookup(opt, \"submit\");\n ddBox = opt.dd;\n opt.protocol = ((((opt.protocol || window.JSBNG__document.JSBNG__location.protocol)) || \"http:\"));\n if (ddBox) {\n defaultDropDownVal = ddBox.val();\n }\n ;\n ;\n if (staticContent) {\n names = src[0];\n values = src[1];\n opt.sb.removeAttr(\"style\");\n }\n else {\n \n }\n ;\n ;\n if (opt.submit) {\n disable(\"disabled\");\n opt.submitImgDef = opt.submit.attr(\"src\");\n opt.submitToggle = ((opt.submitImgDef && opt.submitImg));\n }\n ;\n ;\n if (opt.ime) {\n window.JSBNG__setInterval(function() {\n searchBox.update();\n }, 20);\n }\n ;\n ;\n this.version = version;\n $SearchJS.importEvent(\"navbarPromos\");\n $SearchJS.when(\"navbarPromos\").run(function() {\n promoList = window.navbar.issPromotions(3);\n });\n };\n ;\n function initStatic(sb, form, valInput, submit, submitImg, names, values, noMatch, ime, multiword, dummy0) {\n init({\n form: form,\n ime: ime,\n multiword: multiword,\n noMatch: noMatch,\n sb: sb,\n src: [names,values,],\n submit: submit,\n submitImg: submitImg,\n valInput: valInput\n });\n };\n ;\n function initDynamic(sb, form, dd, service, mkt, aliases, handler, deptText, sugText, sc, dummy0) {\n init({\n aliases: aliases,\n dd: dd,\n deptText: deptText,\n form: form,\n handler: handler,\n ime: ((((mkt == 6)) || ((mkt == 3240)))),\n mkt: mkt,\n sb: sb,\n sc: sc,\n src: service,\n sugText: sugText\n });\n };\n ;\n function lookup(h, k, n) {\n if (n = h[k]) {\n n = $(n);\n if (((n && n.length))) {\n h[k] = n;\n return n;\n }\n ;\n ;\n }\n ;\n ;\n delete h[k];\n };\n ;\n function disable(d) {\n if (opt.submit.prop) {\n opt.submit.prop(\"disabled\", d);\n }\n else {\n opt.submit.attr(\"disabled\", d);\n }\n ;\n ;\n };\n ;\n function move(n) {\n if (((curSize <= 0))) {\n return;\n }\n ;\n ;\n try {\n unhighlightCurrentSuggestion();\n if (((((n > 0)) && ((crtSel >= ((curSize - 1))))))) {\n crtSel = -1;\n }\n else {\n if (((((n < 0)) && ((crtSel < 0))))) {\n crtSel = ((curSize - 1));\n }\n else {\n crtSel += n;\n }\n ;\n ;\n }\n ;\n ;\n highlightCurrentSuggestion(true);\n } catch (e) {\n \n };\n ;\n };\n ;\n function wrap(x, min, max) {\n return ((((x > max)) ? min : ((((x < min)) ? max : x))));\n };\n ;\n function twoPaneArrowKeyHandler(e) {\n var key = e.keyCode, list = twoPaneSuggestionsList, mainLength = list.length, xcatLength = ((((list[crtSel] && list[crtSel].xcat)) ? list[crtSel].xcat.length : 0)), ssNode = JSBNG__searchSuggest.getNode(), n, crtSelId, xcatSelId, firstId = ((opt.sugPrefix + 0));\n if (((((e.ctrlKey || e.altKey)) || e.shiftKey))) {\n return;\n }\n ;\n ;\n switch (key) {\n case 38:\n \n case 40:\n n = ((((key === 38)) ? -1 : 1));\n if (((((crtSel > -1)) && ((crtXcatSel >= 0))))) {\n crtXcatSel = wrap(((crtXcatSel + n)), 0, ((xcatLength - 1)));\n }\n else {\n crtSel = wrap(((crtSel + n)), -1, ((mainLength - 1)));\n }\n ;\n ;\n break;\n case 37:\n \n case 39:\n if (((crtSel <= -1))) {\n return;\n }\n ;\n ;\n if (((((((key === 39)) && ((crtXcatSel <= -1)))) && ((xcatLength > 0))))) {\n crtXcatSel = 0;\n }\n else {\n if (((key === 37))) {\n crtXcatSel = -1;\n }\n ;\n ;\n }\n ;\n ;\n break;\n default:\n return;\n };\n ;\n crtSelId = ((opt.sugPrefix + crtSel));\n xcatSelId = ((((((opt.sugPrefix + crtSel)) + \"-\")) + crtXcatSel));\n ssNode.JSBNG__find(((((\"#\" + opt.sugPrefix)) + \"0\"))).removeClass(\"xcat-arrow-hint\");\n ssNode.JSBNG__find(\".main-suggestion\").each(function(i, el) {\n var e = $(el);\n if (((el.id === crtSelId))) {\n e.addClass(\"suggest_link_over\");\n ssNode.JSBNG__find(((\"#xcatPanel-\" + i))).show().JSBNG__find(\".xcat-suggestion\").each(function(i, el) {\n var e = $(el);\n if (((el.id !== xcatSelId))) {\n e.removeClass(\"suggest_link_over\");\n }\n else {\n e.addClass(\"suggest_link_over\");\n }\n ;\n ;\n });\n }\n else {\n if (((((crtSel <= -1)) && ((el.id === firstId))))) {\n e.removeClass(\"suggest_link_over\");\n ssNode.JSBNG__find(((((\"#\" + opt.sugPrefix)) + \"0\"))).addClass(\"xcat-arrow-hint\");\n ssNode.JSBNG__find(\"#xcatPanel-0\").show().JSBNG__find(\".xcat-suggestion\").removeClass(\"suggest_link_over\");\n }\n else {\n e.removeClass(\"suggest_link_over\");\n ssNode.JSBNG__find(((\"#xcatPanel-\" + i))).hide();\n }\n ;\n ;\n }\n ;\n ;\n });\n updateCrtSuggestion();\n e.preventDefault();\n return false;\n };\n ;\n function clickHandler(kw) {\n if (!kw.length) {\n displayPromotions();\n }\n ;\n ;\n };\n ;\n function hideSuggestions() {\n ((!opt.ime && hideSuggestionsDiv()));\n };\n ;\n function dismissSuggestions() {\n if (JSBNG__searchSuggest.visible()) {\n hideDelayTimerId = JSBNG__setTimeout(function() {\n return (function() {\n hideDelayTimerId = null;\n hideSuggestionsDiv();\n });\n }(), 300);\n crtSel = -1;\n if (((suggType == \"sugg\"))) {\n updateCrtSuggestion();\n }\n ;\n ;\n return false;\n }\n ;\n ;\n return true;\n };\n ;\n function update(kw) {\n suggestionList = [];\n twoPaneSuggestionsList = [];\n if (!kw.length) {\n displayPromotions();\n if (inlineAutoComplete) {\n inlineAutoComplete.clear();\n }\n ;\n ;\n }\n else {\n first = -1;\n if (opt.multiword) {\n findSeq();\n }\n else {\n findBin();\n }\n ;\n ;\n curSize = suggestionList.length;\n displaySuggestions(kw);\n checkForExactMatch();\n checkForManualOverride();\n }\n ;\n ;\n timer = null;\n crtSel = -1;\n crtXcatSel = -1;\n };\n ;\n function delayUpdate(kw) {\n var then = now();\n if (timer) {\n JSBNG__clearTimeout(timer);\n timer = null;\n }\n ;\n ;\n timer = JSBNG__setTimeout(function() {\n if (inlineAutoComplete) {\n inlineAutoComplete.clear();\n }\n ;\n ;\n return (function() {\n if (((!kw || !kw.length))) {\n displayPromotions();\n }\n else {\n ((opt.imeEnh ? searchJSONSuggest(kw) : searchJSONSuggest()));\n }\n ;\n ;\n timer = null;\n crtSel = -1;\n crtXcatSel = -1;\n });\n }(), defaultTimeout);\n };\n ;\n function submitEnabled() {\n if (((((suggType == \"promo\")) && ((crtSel > -1))))) {\n JSBNG__document.JSBNG__location.href = promoList[crtSel].href;\n return false;\n }\n ;\n ;\n var s = opt.submit;\n if (s) {\n return ((s.prop ? !s.prop(\"disabled\") : !s.attr(\"disabled\")));\n }\n ;\n ;\n };\n ;\n function keyPress(key) {\n ((keystroke && keystroke(key)));\n };\n ;\n function bindSubmit(handler) {\n opt.form.submit(handler);\n };\n ;\n function bindKeypress(handler) {\n keystroke = handler;\n };\n ;\n function bindSuggest(handler) {\n sugHandler = handler;\n };\n ;\n function normalize(s) {\n if (opt.normalize) {\n return opt.normalize(s);\n }\n else {\n return s.toLowerCase();\n }\n ;\n ;\n };\n ;\n function findBin() {\n var low = 0, high = ((names.length - 1)), mid = -1, dataPrefix = \"\", crtPrefix = normalize(keyword()), len = crtPrefix.length;\n while (((low <= high))) {\n mid = Math.floor(((((low + high)) / 2)));\n dataPrefix = normalize(names[mid]).substr(0, len);\n if (((dataPrefix < crtPrefix))) {\n low = ((mid + 1));\n }\n else {\n high = ((mid - 1));\n if (((dataPrefix == crtPrefix))) {\n first = mid;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n if (((first != -1))) {\n var i = first, n;\n do {\n suggestionList.push({\n keyword: names[i],\n i: i\n });\n ++i;\n } while (((((((suggestionList.length < opt.maxSuggestions)) && (n = names[i]))) && !normalize(n).indexOf(crtPrefix))));\n }\n ;\n ;\n };\n ;\n function findSeq() {\n var crtPrefix = normalize(keyword()), rexp = new RegExp(((\"(^|(?:\\\\s))\" + crtPrefix)), \"i\"), i = 0, len = names.length, n;\n for (; ((((i < len)) && ((suggestionList.length < opt.maxSuggestions)))); i++) {\n n = names[i];\n if (normalize(n).match(rexp)) {\n suggestionList.push({\n keyword: n,\n i: i\n });\n if (((first == -1))) {\n first = i;\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n };\n ;\n function checkForExactMatch() {\n var state = \"disabled\";\n if (curSize) {\n var sg = normalize(suggestionList[0].keyword), kw = normalize(keyword());\n if (((((sg.length == kw.length)) && !getPrefixPos(sg, kw)))) {\n updateForm(first);\n state = \"\";\n }\n ;\n ;\n }\n ;\n ;\n disable(state);\n };\n ;\n function checkForManualOverride() {\n if (((opt.manualOverride && !curSize))) {\n var kw = keyword();\n var url = opt.manualOverride(kw);\n if (((url && url.length))) {\n updateWholeForm(url);\n disable(\"\");\n }\n ;\n ;\n }\n ;\n ;\n };\n ;\n function displayPromotions() {\n if (((((!newDesign || !promoList)) || ((promoList.length == 0))))) {\n hideSuggestionsDiv();\n hideNoMatches();\n return;\n }\n ;\n ;\n curSize = promoList.length;\n suggType = \"promo\";\n JSBNG__searchSuggest.html(\"\");\n hideNoMatches();\n JSBNG__searchSuggest.show();\n h = \"\\u003Cul class=\\\"promo_list\\\"\\u003E\";\n for (i = 0; ((i < curSize)); i++) {\n p = promoList[i];\n h += ((((((((((\"\\u003Cli id=\\\"\" + opt.sugPrefix)) + i)) + \"\\\" onclick=\\\"document.JSBNG__location.href='\")) + p.href)) + \"'\\\"\\u003E\"));\n h += ((((\"\\u003Cdiv class=\\\"promo_image\\\" style=\\\"background-image: url('\" + p.image)) + \"');\\\"\\u003E\\u003C/div\\u003E\"));\n h += ((((\"\\u003Cdiv class=\\\"promo_cat\\\"\\u003E\" + p.category)) + \"\\u003C/div\\u003E\"));\n h += ((((\"\\u003Cdiv class=\\\"promo_title\\\"\\u003E\" + p.title)) + \"\\u003C/div\\u003E\"));\n h += \"\\u003C/li\\u003E\";\n };\n ;\n h += \"\\u003C/ul\\u003E\";\n JSBNG__searchSuggest.html(h);\n window.navbar.logImpression(\"iss\");\n for (i = 0; ((i < curSize)); ++i) {\n $(((((\"#\" + opt.sugPrefix)) + i))).mouseover(suggestOver).mouseout(suggestOut);\n };\n ;\n };\n ;\n function displaySuggestions(crtPrefix) {\n var sugDivId, lineText, line, sPrefix = opt.sugPrefix, prefix = ((\"#\" + sPrefix)), h = \"\", imeSpacing = ((opt.imeSpacing && searchBox.isImeUsed())), currAlias = ((searchAlias() || ((opt.deepNodeISS && opt.deepNodeISS.searchAliasAccessor())))), suggType = \"sugg\";\n JSBNG__searchSuggest.html(\"\");\n if (((curSize > 0))) {\n hideNoMatches();\n JSBNG__searchSuggest.show();\n if (((!staticContent && !newDesign))) {\n h += ((((\"\\u003Cdiv id=\\\"sugdivhdr\\\" align=\\\"right\\\"\\u003E \" + opt.sugText)) + \"\\u003C/div\\u003E\"));\n }\n ;\n ;\n if (((opt.iac && inlineAutoComplete.displayable()))) {\n var sg = normalize(suggestionList[0].keyword), originalKw = opt.sb.val(), normalizedKw = normalize(keyword());\n if (((((((normalizedKw.length > 0)) && ((sg != normalizedKw)))) && ((sg.indexOf(normalizedKw) == 0))))) {\n inlineAutoComplete.val(((originalKw + sg.substring(normalizedKw.length))));\n }\n ;\n ;\n }\n ;\n ;\n }\n else {\n showNoMatches();\n }\n ;\n ;\n for (i = 0; ((i < curSize)); i++) {\n line = suggestionList[i];\n sugDivId = ((sPrefix + i));\n if (((((((line.alias && ((line.alias == currAlias)))) && opt.deepNodeISS)) && opt.deepNodeISS.showDeepNodeCorr))) {\n lineText = getFormattedCategoryLine(line, crtPrefix);\n }\n else {\n if (((line.alias && ((line.alias != currAlias))))) {\n lineText = getFormattedCategoryLine(line, crtPrefix);\n }\n else {\n lineText = getFormattedSuggestionLine(line, crtPrefix);\n }\n ;\n ;\n }\n ;\n ;\n var className = \"suggest_link\";\n if (((((i == 0)) && imeSpacing))) {\n className += \" imeSpacing\";\n }\n ;\n ;\n h += ((((((((((((\"\\u003Cdiv id=\\\"\" + sugDivId)) + \"\\\" class=\\\"\")) + className)) + \"\\\"\\u003E\")) + lineText)) + \"\\u003C/div\\u003E\"));\n if (((((enableSeparateCategorySuggestion() && ((i == categorySuggestions)))) && ((i < ((curSize - 1))))))) {\n h += \"\\u003Cdiv class=\\\"sx_line_holder\\\" /\\u003E\";\n }\n ;\n ;\n };\n ;\n if (((((curSize > 0)) && !newDesign))) {\n h += \"\\u003Cdiv id=\\\"sugdivhdr2\\\" align=\\\"right\\\"\\u003E \\u003C/div\\u003E\";\n }\n ;\n ;\n ((h && JSBNG__searchSuggest.html(h)));\n if (((((timeToFirstSuggestion == 0)) && ((suggestionList.length > 0))))) {\n recordTimeToFirstSuggestion();\n }\n ;\n ;\n if (ddBox) {\n defaultDropDownVal = ddBox.val();\n }\n ;\n ;\n searchAliasFrom = extractSearchAlias(defaultDropDownVal);\n for (i = 0; ((i < curSize)); ++i) {\n $(((prefix + i))).mouseover(suggestOver).mouseout(suggestOut).click(setSearchByIndex);\n };\n ;\n };\n ;\n function displayTwoPaneSuggestions(crtPrefix) {\n var len = crtPrefix.length, i, j, k, sg, isIe6 = (($.browser.msie && (($.browser.version == \"6.0\")))), targetOffset, sb = [], a = function() {\n $.each(arguments, function(i, t) {\n sb.push(t);\n });\n }, sgLen = twoPaneSuggestionsList.length, xcatLen, maxXcatLen = 0, imeSpacing = ((opt.imeSpacing && searchBox.isImeUsed())), ssNode;\n $($.JSBNG__find(\".main-suggestion:first\")).amznFlyoutIntent(\"destroy\");\n if (((curSize > 0))) {\n hideNoMatches();\n if (((opt.iac && inlineAutoComplete.displayable()))) {\n var sg = normalize(twoPaneSuggestionsList[0].keyword), originalKw = opt.sb.val(), normalizedKw = normalize(keyword());\n if (((((((normalizedKw.length > 0)) && ((sg != normalizedKw)))) && ((sg.indexOf(normalizedKw) == 0))))) {\n inlineAutoComplete.val(((originalKw + sg.substring(normalizedKw.length))));\n }\n ;\n ;\n }\n ;\n ;\n a(\"\\u003Ctable id=\\\"two-pane-table\\\" class=\\\"\", ((isIe6 ? \"nav_ie6\" : \"nav_exposed_skin\")), \"\\\" cellpadding=\\\"0\\\" cellspacing=\\\"0\\\"\\u003E\", \"\\u003Ctr\\u003E\", \"\\u003Ctd class=\\\"iss_pop_tl nav_pop_h\\\"\\u003E\\u003Cdiv class=\\\"nav_pop_lr_min\\\"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\", \"\\u003Ctd style=\\\"background-color: #fff;\\\" colspan=\\\"2\\\"\\u003E\\u003C/td\\u003E\", \"\\u003Ctd class=\\\"iss_pop_tr nav_pop_h\\\"\\u003E\\u003C/td\\u003E\", \"\\u003C/tr\\u003E\", \"\\u003Ctr\\u003E\", \"\\u003Ctd class=\\\"nav_pop_cl nav_pop_v\\\"\\u003E\\u003Cdiv class=\\\"nav_pop_lr_min\\\"\\u003E\\u003C/div\\u003E\\u003C/td\\u003E\");\n var className = \"main-suggestions\";\n if (imeSpacing) {\n className += \" imePadding\";\n }\n ;\n ;\n a(((((\"\\u003Ctd class=\\\"\" + className)) + \"\\\" \\u003E\")));\n for (i = 0; ((i < sgLen)); i++) {\n a(\"\\u003Cdiv id=\\\"\", opt.sugPrefix, i, \"\\\" class=\\\"suggest_link main-suggestion\");\n if (((i === 0))) {\n a(\" xcat-arrow-hint\");\n }\n ;\n ;\n a(\"\\\"\\u003E\\u003Cspan\\u003E\");\n sg = twoPaneSuggestionsList[i];\n xcatLen = sg.xcat.length;\n if (xcatLen) {\n a(\"\\u003Cspan class=\\\"nav-sprite nav-cat-indicator xcat-arrow\\\"\\u003E\\u003C/span\\u003E\");\n if (((maxXcatLen < xcatLen))) {\n maxXcatLen = xcatLen;\n }\n ;\n ;\n }\n ;\n ;\n a(getFormattedSuggestionLine(sg, crtPrefix), \"\\u003C/span\\u003E\\u003C/div\\u003E\");\n };\n ;\n for (i = 0; ((i < ((maxXcatLen - sgLen)))); i++) {\n a(\"\\u003Cdiv class=\\\"iss-spacer-row\\\"\\u003E \\u003C/div\\u003E\");\n };\n ;\n var className = \"xcat-suggestions\";\n if (imeSpacing) {\n className += \" imePadding\";\n }\n ;\n ;\n a(((((\"\\u003C/td\\u003E\\u003Ctd class=\\\"\" + className)) + \"\\\"\\u003E\")));\n for (i = 0; ((i < sgLen)); i++) {\n sg = twoPaneSuggestionsList[i];\n a(\"\\u003Cdiv id=\\\"xcatPanel-\", i, \"\\\" class=\\\"xcat-panel\\\"\");\n if (((i > 0))) {\n a(\" style=\\\"display:none\\\"\");\n }\n ;\n ;\n a(\"\\u003E\");\n for (j = 0; ((j < sg.xcat.length)); j++) {\n a(\"\\u003Cdiv id=\\\"\", opt.sugPrefix, i, \"-\", j, \"\\\" class=\\\"suggest_link xcat-suggestion\", ((((j === 0)) ? \" xcat-suggestion-hint\" : \"\")), \"\\\"\\u003E\", sg.xcat[j].categoryName, \"\\u003C/div\\u003E\");\n };\n ;\n a(\"\\u003C/div\\u003E\");\n };\n ;\n a(\"\\u003C/td\\u003E\", \"\\u003Ctd class=\\\"nav_pop_cr nav_pop_v\\\"\\u003E\\u003C/td\\u003E\", \"\\u003C/tr\\u003E\", \"\\u003Ctr\\u003E\", \"\\u003Ctd class=\\\"nav_pop_bl nav_pop_v\\\"\\u003E\\u003C/td\\u003E\", \"\\u003Ctd colspan=\\\"2\\\" class=\\\"nav_pop_bc nav_pop_h\\\"\\u003E\\u003C/td\\u003E\", \"\\u003Ctd class=\\\"nav_pop_br nav_pop_v\\\"\\u003E\\u003C/td\\u003E\", \"\\u003C/tr\\u003E\", \"\\u003C/table\\u003E\");\n }\n else {\n showNoMatches();\n }\n ;\n ;\n JSBNG__searchSuggest.html(sb.join(\"\"));\n JSBNG__searchSuggest.show();\n if (((((timeToFirstSuggestion == 0)) && ((suggestionList.length > 0))))) {\n recordTimeToFirstSuggestion();\n }\n ;\n ;\n if (ddBox) {\n defaultDropDownVal = ddBox.val();\n }\n ;\n ;\n searchAliasFrom = extractSearchAlias(defaultDropDownVal);\n ssNode = JSBNG__searchSuggest.getNode();\n ssNode.JSBNG__find(\".main-suggestion\").bind(\"click\", twoPaneSearchByIndex);\n ssNode.JSBNG__find(\".xcat-suggestion\").bind(\"click\", twoPaneSearchByIndex).bind(\"mouseover\", twoPaneSuggestOver).bind(\"mouseout\", twoPaneXcatSuggestOut);\n };\n ;\n function recordTimeToFirstSuggestion() {\n var timeNow = now();\n timeToFirstSuggestion = ((((timeNow - lastKeyPressTime)) + defaultTimeout));\n };\n ;\n function showNoMatches() {\n if (opt.noMatch) {\n var nmDiv = $(((\"#\" + opt.noMatch)));\n JSBNG__searchSuggest.html(\"\");\n JSBNG__searchSuggest.getNode().append(nmDiv.clone().attr(\"class\", \"suggest_link suggest_nm\").css({\n display: \"block\"\n }));\n JSBNG__searchSuggest.show();\n ((opt.submitToggle && opt.submit.attr(\"src\", opt.submitImg)));\n }\n else {\n hideSuggestionsDiv();\n }\n ;\n ;\n };\n ;\n function hideNoMatches() {\n if (opt.noMatch) {\n $(((\"#\" + opt.noMatch))).hide();\n ((opt.submitToggle && opt.submit.attr(\"src\", opt.submitImgDef)));\n }\n ;\n ;\n };\n ;\n function setSearchByIndex() {\n var divId = this.id;\n crtSel = parseInt(divId.substr(6), 10);\n updateCrtSuggestion();\n JSBNG__searchSuggest.hide();\n if (opt.iac) {\n inlineAutoComplete.clear();\n }\n ;\n ;\n if (!delayedDOMUpdate) {\n opt.form.submit();\n }\n else {\n window.JSBNG__setTimeout(function() {\n opt.form.submit();\n }, 10);\n }\n ;\n ;\n };\n ;\n function twoPaneSearchByIndex(JSBNG__event) {\n var divId = this.id, prefixLen = opt.sugPrefix.length;\n crtSel = parseInt(divId.substr(prefixLen), 10);\n crtXcatSel = ((((divId.length === ((prefixLen + 1)))) ? -1 : parseInt(divId.substr(((prefixLen + 2)), 1), 10)));\n ((JSBNG__event && JSBNG__event.stopPropagation()));\n updateCrtSuggestion();\n $($.JSBNG__find(\".main-suggestion:first\")).amznFlyoutIntent(\"destroy\");\n JSBNG__searchSuggest.hide();\n if (opt.iac) {\n inlineAutoComplete.clear();\n }\n ;\n ;\n if (!delayedDOMUpdate) {\n opt.form.submit();\n }\n else {\n window.JSBNG__setTimeout(function() {\n opt.form.submit();\n }, 10);\n }\n ;\n ;\n };\n ;\n function updateCrtSuggestion() {\n var alias, categoryName, sg;\n if (((crtSel >= 0))) {\n if (((opt.twoPane === 1))) {\n sg = ((((crtXcatSel >= 0)) ? twoPaneSuggestionsList[crtSel].xcat[crtXcatSel] : twoPaneSuggestionsList[crtSel]));\n }\n else {\n if (((redirectFirstSuggestion && ((crtSel == 0))))) {\n sg = suggestionList[1];\n }\n else {\n sg = suggestionList[crtSel];\n }\n ;\n ;\n }\n ;\n ;\n keyword(sg.keyword);\n alias = sg.alias;\n categoryName = sg.categoryName;\n }\n ;\n ;\n if (staticContent) {\n if (((crtSel >= 0))) {\n updateForm(sg.i);\n disable(\"\");\n }\n else {\n checkForExactMatch();\n checkForManualOverride();\n }\n ;\n ;\n }\n else {\n updateCategoryDropDown(alias, categoryName);\n setDynamicSearch(sg);\n }\n ;\n ;\n };\n ;\n ((opt.form && opt.form.submit(function() {\n var currentKeyword = normalize(keyword()), refTag = \"ref=nb_sb_noss\", i = 0;\n if (inlineAutoComplete) {\n inlineAutoComplete.clear();\n }\n ;\n ;\n var iacType = ((opt.iac ? inlineAutoComplete.type() : 0));\n if (iacType) {\n refTag = ((\"ref=nb_sb_iac_\" + iacType));\n }\n else {\n if (((crtSel > -1))) {\n return;\n }\n ;\n ;\n var sgList = ((((opt.twoPane === 1)) ? twoPaneSuggestionsList : suggestionList));\n if (((sgList.length > 0))) {\n refTag = \"ref=nb_sb_noss_2\";\n while (((i < sgList.length))) {\n if (((normalize(sgList[i].keyword) == currentKeyword))) {\n refTag = \"ref=nb_sb_noss_1\";\n break;\n }\n ;\n ;\n i++;\n };\n ;\n }\n ;\n ;\n }\n ;\n ;\n opt.form.attr(\"action\", opt.form.attr(\"action\").replace(refre, refTag));\n })));\n function setDynamicSearch(sg) {\n var prefixElems = $(\"#issprefix\");\n if (sg) {\n var issMode, kw = searchBox.userInput();\n if (isFallbackSuggestion(sg)) {\n issMode = \"ss_fb\";\n }\n else {\n if (sg.alias) {\n issMode = \"ss_c\";\n }\n else {\n if (((opt.sc && isSpellCorrection(sg)))) {\n issMode = \"ss_sc\";\n }\n else {\n issMode = \"ss_i\";\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n setSearchFormReftag(opt.form, null, issMode, sg, kw.length);\n kw = ((((((((kw + \",\")) + searchAliasFrom)) + \",\")) + timeToFirstSuggestion));\n if (prefixElems.length) {\n prefixElems.attr(\"value\", kw);\n }\n else {\n input(opt.form, \"issprefix\", \"sprefix\", kw);\n }\n ;\n ;\n }\n else {\n prefixElems.remove();\n }\n ;\n ;\n };\n ;\n function twoPaneSuggestOver() {\n var len = opt.sugPrefix.length, id = this.id, crtSelId = ((((\"#\" + opt.sugPrefix)) + crtSel)), xcatSelId, nextSel = parseInt(id.substr(len, 1), 10);\n this.style.cursor = \"pointer\";\n $(\".xcat-panel\").hide();\n if (((nextSel !== crtSel))) {\n $(crtSelId).removeClass(\"suggest_link_over\");\n }\n ;\n ;\n $(((((\"#\" + opt.sugPrefix)) + \"0\"))).removeClass(\"xcat-arrow-hint\");\n crtSel = nextSel;\n crtXcatSel = ((((id.length === ((len + 1)))) ? -1 : parseInt(id.substr(((len + 2)), 1), 10)));\n crtSelId = ((((\"#\" + opt.sugPrefix)) + crtSel));\n $(crtSelId).addClass(\"suggest_link_over\");\n $(((\"#xcatPanel-\" + crtSel))).show();\n if (((crtXcatSel > -1))) {\n $(((((((((\"#\" + opt.sugPrefix)) + crtSel)) + \"-\")) + crtXcatSel))).addClass(\"suggest_link_over\");\n }\n ;\n ;\n };\n ;\n function twoPaneSuggestOut() {\n $(this).removeClass(\"suggest_link_over\");\n };\n ;\n function twoPaneXcatSuggestOut() {\n unhighlightSuggestion($(this));\n };\n ;\n function resizeHandler() {\n var p = searchBox.pos(), d = searchBox.size();\n this.css({\n width: d.width,\n JSBNG__top: ((p.JSBNG__top + d.height)),\n left: p.left\n });\n };\n ;\n function twoPaneBindFlyout() {\n JSBNG__searchSuggest.getNode().JSBNG__find(\".main-suggestion\").amznFlyoutIntent({\n onMouseOver: twoPaneSuggestOver,\n getTarget: function() {\n return $(\"#two-pane-table .xcat-suggestions:first\");\n }\n });\n };\n ;\n function twoPaneDestroyFlyout() {\n var mainSgs = JSBNG__searchSuggest.getNode().JSBNG__find(\".main-suggestion\").get(0);\n if (mainSgs) {\n $(mainSgs).amznFlyoutIntent(\"destroy\");\n }\n ;\n ;\n };\n ;\n function twoPaneSetPosition() {\n var p = searchBox.pos(), d = searchBox.size(), minWidth = 649;\n this.css({\n width: Math.max(((d.width + 72)), minWidth),\n JSBNG__top: ((((p.JSBNG__top + d.height)) + 1)),\n left: ((p.left - 40))\n });\n };\n ;\n function twoPaneSetXcatPosition() {\n var maxH = this.JSBNG__find(\".main-suggestions:first\").height(), th = this.JSBNG__find(((((\"#\" + opt.sugPrefix)) + \"0\"))).JSBNG__outerHeight(), sgLen = twoPaneSuggestionsList.length, i, h, xb, xh, off;\n for (i = 1; ((i < sgLen)); i++) {\n h = this.JSBNG__find(((((\"#\" + opt.sugPrefix)) + i))).JSBNG__outerHeight();\n xb = this.JSBNG__find(((\"#xcatPanel-\" + i)));\n off = th;\n if (xb) {\n xb = $(xb);\n xh = xb.JSBNG__outerHeight();\n if (((((off + xh)) > maxH))) {\n off = ((maxH - xh));\n }\n ;\n ;\n xb.css({\n \"margin-top\": off\n });\n }\n ;\n ;\n th += h;\n };\n ;\n };\n ;\n function suggestOver(JSBNG__event) {\n this.style.cursor = ((((newDesign == true)) ? \"pointer\" : \"default\"));\n unhighlightCurrentSuggestion();\n crtSel = parseInt(this.id.substr(opt.sugPrefix.length), 10);\n highlightCurrentSuggestion(false);\n };\n ;\n function suggestOut(el, JSBNG__event) {\n unhighlightSuggestion($(this));\n crtSel = -1;\n };\n ;\n function highlightSuggestion(suggestion) {\n suggestion.addClass(\"suggest_link_over\");\n };\n ;\n function unhighlightSuggestion(suggestion) {\n suggestion.removeClass(\"suggest_link_over\");\n };\n ;\n function highlightCurrentSuggestion(updateSearchBox) {\n if (((suggType == \"sugg\"))) {\n ((updateSearchBox && updateCrtSuggestion()));\n }\n ;\n ;\n highlightSuggestion($(((((\"#\" + opt.sugPrefix)) + crtSel))));\n };\n ;\n function unhighlightCurrentSuggestion() {\n unhighlightSuggestion($(((((\"#\" + opt.sugPrefix)) + crtSel))));\n };\n ;\n function updateCategoryDropDown(alias, categoryName) {\n var dd = ddBox, toRemove, val;\n if (!dd) {\n return;\n }\n ;\n ;\n val = ((alias ? ((\"search-alias=\" + alias)) : defaultDropDownVal));\n toRemove = ((((((val == insertedDropDownVal)) || ((defaultDropDownVal == insertedDropDownVal)))) ? null : insertedDropDownVal));\n if (alias) {\n var sel = findOption(dd, val);\n insertedDropDownVal = null;\n if (!sel.length) {\n dd.append(option(val, categoryName));\n insertedDropDownVal = val;\n }\n ;\n ;\n }\n ;\n ;\n try {\n delayedDOMUpdate = false;\n (($(dcs).length && changeDropdownSelection(val, categoryName, true)));\n dd.val(val);\n } catch (e) {\n delayedDOMUpdate = true;\n };\n ;\n ((toRemove && findOption(dd, toRemove).remove()));\n };\n ;\n function getPrefixPos(str, substr) {\n if (opt.multiword) {\n return getPrefixPosMultiWord(str, substr);\n }\n ;\n ;\n return normalize(str).indexOf(normalize(substr));\n };\n ;\n function getPrefixPosMultiWord(str, substr) {\n var p = normalize(str).search(new RegExp(((\"(^|(?:\\\\s))\" + normalize(substr))), \"i\"));\n return ((((p <= 0)) ? p : ((p + 1))));\n };\n ;\n function getFormattedSuggestionLine(curSuggestionLine, crtPrefix) {\n var kw = curSuggestionLine.keyword, start = getPrefixPos(kw, crtPrefix), len;\n if (((start !== -1))) {\n len = crtPrefix.length;\n kw = [kw.substr(0, start),\"\\u003Cb\\u003E\",kw.substr(start, len),\"\\u003C/b\\u003E\",kw.substr(((start + len))),].join(\"\");\n }\n ;\n ;\n return kw;\n };\n ;\n function getFormattedCategoryLine(categoryLine, crtPrefix) {\n var formattedCategoryLine, formattedCategoryName;\n if (opt.scs) {\n formattedCategoryLine = \"\\u003Cspan class=\\\"suggest_category_without_keyword\\\"\\u003E\";\n formattedCategoryName = ((((\"\\u003Cspan class=\\\"sx_category_name_highlight\\\"\\u003E\" + categoryLine.categoryName)) + \"\\u003C/span\\u003E\"));\n }\n else {\n formattedCategoryLine = ((getFormattedSuggestionLine(categoryLine, crtPrefix) + \" \\u003Cspan class=\\\"suggest_category\\\"\\u003E\"));\n formattedCategoryName = categoryLine.categoryName;\n }\n ;\n ;\n return ((opt.deptText ? ((((formattedCategoryLine + opt.deptText.replace(deptre, formattedCategoryName))) + \"\\u003C/span\\u003E\")) : categoryLine.categoryName));\n };\n ;\n function hideSuggestionsDiv() {\n if (((((suggType == \"sugg\")) && suggestRequest))) {\n suggestRequest.cleanup();\n suggestRequest = null;\n }\n ;\n ;\n curSize = 0;\n $($.JSBNG__find(\".main-suggestion:first\")).amznFlyoutIntent(\"destroy\");\n JSBNG__searchSuggest.hide();\n crtSel = -1;\n crtXcatSel = -1;\n };\n ;\n function updateWholeForm(v) {\n var fp = getFormParams(v);\n cleanForm();\n populateForm(fp);\n };\n ;\n function updateForm(index) {\n var v = values[index];\n if (((opt.valInput && opt.valInput.length))) {\n opt.valInput.attr(\"value\", v);\n }\n else {\n updateWholeForm(((v || JSBNG__location.href)));\n }\n ;\n ;\n };\n ;\n function getFormParams(url) {\n var splitUrl = url.split(\"?\"), query = ((((splitUrl.length > 1)) ? splitUrl[1] : undefined)), params = ((query ? query.split(\"&\") : [])), i = params.length, pair;\n while (((i-- > 0))) {\n pair = params[i].split(\"=\");\n params[i] = {\n JSBNG__name: pair[0],\n value: pair[1].replace(slashre, \" \")\n };\n };\n ;\n return {\n uri: splitUrl[0],\n formParams: params\n };\n };\n ;\n function cleanForm() {\n opt.form.JSBNG__find(\".frmDynamic\").remove();\n };\n ;\n function populateForm(formData) {\n opt.form.attr(\"action\", formData.uri);\n for (var i = 0; ((i < formData.formParams.length)); i++) {\n var param = formData.formParams[i];\n input(opt.form, \"frmDynamic\", param.JSBNG__name, unescape(decodeURIComponent(param.value)), 1);\n };\n ;\n };\n ;\n function keyword(k) {\n return searchBox.keyword(k);\n };\n ;\n function searchAlias(alias) {\n if (alias) {\n changeDropdownSelection(alias);\n }\n else {\n return extractSearchAlias(ddBox.attr(\"value\"));\n }\n ;\n ;\n };\n ;\n function extractSearchAlias(alias) {\n var aliasName = alias.match(aliasre);\n return ((aliasName ? aliasName[1] : null));\n };\n ;\n function searchNode() {\n var nodeName = ddBox.attr(\"value\").match(nodere);\n return ((nodeName ? nodeName[1] : null));\n };\n ;\n function merchant() {\n var merchant = ddBox.attr(\"value\").match(merchantre);\n return ((merchant ? merchant[1] : null));\n };\n ;\n function suggestions() {\n return suggestionList;\n };\n ;\n function supportedSearchAlias(alias) {\n var a = opt.aliases;\n return ((a && ((arrayIndexOf(a, alias) >= 0))));\n };\n ;\n function isSpellCorrection(sg) {\n return ((((sg && sg.sc)) ? true : false));\n };\n ;\n function isFallbackSuggestion(sg) {\n return ((((sg && sg.source)) && ((sg.source[0] == \"fb\"))));\n };\n ;\n function combineSuggestions(crtSuggestions, extraData) {\n var xcatSuggestions, m, n = crtSuggestions.length, combinedList = [], i = 0, j = 0, sg, cs, s, si = 0, deepNodeAlias = ((((((!searchAlias() && opt.deepNodeISS)) && !opt.deepNodeISS.stayInDeepNode)) && opt.deepNodeISS.searchAliasAccessor())), deepNodeCatName = ((deepNodeAlias && getDDCatName(deepNodeAlias)));\n categorySuggestions = 0;\n redirectFirstSuggestion = false;\n while (((((combinedList.length < opt.maxSuggestions)) && ((i < n))))) {\n sg = {\n keyword: crtSuggestions[i],\n sc: isSpellCorrection(extraData[i]),\n sgIndex: i\n };\n if (((deepNodeAlias && deepNodeCatName))) {\n sg.alias = deepNodeAlias;\n sg.categoryName = deepNodeCatName;\n }\n ;\n ;\n combinedList.push(sg);\n xcatSuggestions = ((((((extraData && extraData.length)) ? extraData[i].nodes : [])) || []));\n m = xcatSuggestions.length;\n if (m) {\n s = extraData[i].source;\n if (((s && s.length))) {\n for (si = 0; ((si < s.length)); si++) {\n if (((s[si] === \"fb\"))) {\n if (((((n == 1)) && opt.scs))) {\n redirectFirstSuggestion = true;\n }\n else {\n combinedList.pop();\n }\n ;\n ;\n break;\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n j = 0;\n while (((((((j < m)) && ((j < maxCategorySuggestions)))) && ((combinedList.length < opt.maxSuggestions))))) {\n cs = xcatSuggestions[j];\n sg = {\n keyword: crtSuggestions[i],\n sc: isSpellCorrection(extraData[i]),\n source: extraData[i].source,\n alias: cs.alias,\n categoryName: cs.JSBNG__name,\n sgIndex: i,\n xcatIndex: j\n };\n combinedList.push(sg);\n ++j;\n ++categorySuggestions;\n };\n ;\n }\n ;\n ;\n if (((((((i == 0)) && enableSeparateCategorySuggestion())) && !redirectFirstSuggestion))) {\n combinedList.push(combinedList[0]);\n opt.maxSuggestions += 1;\n }\n ;\n ;\n ++i;\n };\n ;\n curSize = combinedList.length;\n return combinedList;\n };\n ;\n function enableSeparateCategorySuggestion() {\n return ((opt.scs && ((categorySuggestions > 0))));\n };\n ;\n function getDDCatName(alias) {\n if (!alias) {\n return $(ddBox.children()[0]).text();\n }\n ;\n ;\n var catName = findOption(ddBox, ((\"search-alias=\" + alias)));\n if (((catName && catName.length))) {\n return catName.text();\n }\n else {\n return undefined;\n }\n ;\n ;\n };\n ;\n function build2PaneSuggestions(crtSuggestions, extraData) {\n var xcatSuggestions, xcat = [], m, n = crtSuggestions.length, combinedList = [], i = 0, j = 0, sg, cs, s, si = 0, currAlias = searchAlias(), currCatName = getDDCatName(currAlias), deepNodeAlias = ((((((!currAlias && opt.deepNodeISS)) && !opt.deepNodeISS.stayInDeepNode)) && opt.deepNodeISS.searchAliasAccessor())), deepNodeCatName = getDDCatName(deepNodeAlias);\n while (((((combinedList.length < opt.maxSuggestions)) && ((i < n))))) {\n xcatSuggestions = ((((((extraData && extraData.length)) ? extraData[i].nodes : [])) || []));\n xcat = [];\n sg = {\n keyword: crtSuggestions[i],\n sc: isSpellCorrection(extraData[i]),\n source: ((extraData[i].source || \"c\")),\n conf: extraData[i].conf,\n sgIndex: i,\n xcatIndex: 0\n };\n if (deepNodeAlias) {\n sg.alias = deepNodeAlias;\n sg.categoryName = deepNodeCatName;\n }\n else {\n if (currAlias) {\n sg.alias = currAlias;\n sg.categoryName = currCatName;\n }\n else {\n sg.categoryName = deepNodeCatName;\n }\n ;\n ;\n }\n ;\n ;\n xcat.push(sg);\n m = xcatSuggestions.length;\n if (m) {\n j = 0;\n while (((((j < m)) && ((j < opt.maxSuggestions))))) {\n cs = xcatSuggestions[j];\n sg = {\n keyword: crtSuggestions[i],\n sc: isSpellCorrection(extraData[i]),\n source: ((extraData[i].source || \"c\")),\n alias: cs.alias,\n categoryName: cs.JSBNG__name,\n conf: extraData[i].conf,\n sgIndex: i,\n xcatIndex: ((j + 1))\n };\n xcat.push(sg);\n ++j;\n };\n ;\n }\n ;\n ;\n sg = {\n keyword: crtSuggestions[i],\n sc: isSpellCorrection(extraData[i]),\n conf: extraData[i].conf,\n sgIndex: i,\n xcat: xcat\n };\n if (deepNodeAlias) {\n sg.alias = deepNodeAlias;\n }\n ;\n ;\n combinedList.push(sg);\n ++i;\n };\n ;\n curSize = combinedList.length;\n return combinedList;\n };\n ;\n function searchJSONSuggest(newKw) {\n lastKeyPressTime = now();\n ((suggestRequest && suggestRequest.cleanup()));\n if (!activityAllowed) {\n return;\n }\n ;\n ;\n if (!searchBox.hasFocus()) {\n return;\n }\n ;\n ;\n var alias = ((searchAlias() || ((opt.deepNodeISS ? opt.deepNodeISS.searchAliasAccessor() : null)))), kw = ((newKw || keyword())), suggestUrl = [], a = function() {\n $.each(arguments, function(i, t) {\n suggestUrl.push(t);\n });\n }, m = ((((reqCounter === 0)) ? metrics.completionsRequest0 : ((((reqCounter === metrics.sample)) ? metrics.completionsRequestSample : null)))), cursorPos, qs;\n if (!supportedSearchAlias(alias)) {\n hideSuggestionsDiv();\n return;\n }\n ;\n ;\n if (opt.qs) {\n cursorPos = searchBox.cursorPos();\n if (((((cursorPos > -1)) && ((cursorPos < kw.length))))) {\n qs = kw.substring(cursorPos);\n kw = kw.substring(0, cursorPos);\n }\n ;\n ;\n }\n ;\n ;\n a(opt.protocol, \"//\", opt.src, \"?\", \"method=completion\", \"&q=\", encodeURIComponent(kw), \"&search-alias=\", alias, \"&client=\", opt.cid, \"&mkt=\", opt.mkt, \"&fb=\", opt.fb, \"&xcat=\", opt.xcat, \"&x=updateISSCompletion\");\n if (qs) {\n a(((\"&qs=\" + encodeURIComponent(qs))));\n }\n ;\n ;\n if (opt.np) {\n a(((\"&np=\" + opt.np)));\n }\n ;\n ;\n if (opt.sc) {\n a(\"&sc=1\");\n }\n ;\n ;\n if (((opt.dupElim > 0))) {\n a(\"&dr=\", opt.dupElim);\n }\n ;\n ;\n if (opt.custIss4Prime) {\n a(\"&pf=1\");\n }\n ;\n ;\n if (suggestRequest) {\n suggestRequest.cleanup();\n }\n ;\n ;\n suggestRequest = new A9JSONClient(kw, reqCounter++);\n suggestRequest.callSuggestionsService(suggestUrl.join(\"\"));\n };\n ;\n function updateCompletion() {\n if (!suggestRequest) {\n return;\n }\n ;\n ;\n if (((((((((!activityAllowed || !completion.length)) || !completion[0])) || !suggestRequest.keywords)) || ((completion[0].toLowerCase() != suggestRequest.keywords.toLowerCase()))))) {\n return;\n }\n ;\n ;\n var c = suggestRequest.counter, m = ((((c === 0)) ? metrics.completionsRequest0 : ((((c === metrics.sample)) ? metrics.completionsRequestSample : null))));\n suggestRequest.cleanup();\n suggestRequest = null;\n if (!searchBox.hasFocus()) {\n return;\n }\n ;\n ;\n if (((opt.twoPane === 1))) {\n twoPaneSuggestionsList = build2PaneSuggestions(completion[1], ((((completion.length > 2)) ? completion[2] : [])));\n displayTwoPaneSuggestions(completion[0]);\n ((sugHandler && sugHandler(completion[0], twoPaneSuggestionsList)));\n }\n else {\n suggestionList = combineSuggestions(completion[1], ((((completion.length > 2)) ? completion[2] : [])));\n displaySuggestions(completion[0]);\n ((sugHandler && sugHandler(completion[0], suggestionList)));\n }\n ;\n ;\n };\n ;\n function JSBNG__stop() {\n activityAllowed = false;\n requestedKeyword = \"\";\n if (suggestRequest) {\n suggestRequest.cleanup();\n suggestRequest = null;\n }\n ;\n ;\n };\n ;\n function start() {\n activityAllowed = true;\n };\n ;\n function encoding() {\n var encInput = opt.form.JSBNG__find(\"input[name^='__mk_']\");\n if (encInput.length) {\n return [encInput.attr(\"JSBNG__name\"),encInput.val(),];\n }\n ;\n ;\n };\n ;\n function JSBNG__blur() {\n searchBox.JSBNG__blur();\n };\n ;\n function JSBNG__focus() {\n searchBox.JSBNG__focus();\n };\n ;\n function offset() {\n return searchBox.pos();\n };\n ;\n function keydown(h) {\n searchBox.keydown(h);\n };\n ;\n function checkIAC() {\n return inlineAutoComplete.touch();\n };\n ;\n return {\n suggest: bindSuggest,\n keypress: bindKeypress,\n submit: bindSubmit,\n JSBNG__blur: JSBNG__blur,\n keyword: keyword,\n merchant: merchant,\n searchAlias: searchAlias,\n searchNode: searchNode,\n JSBNG__stop: JSBNG__stop,\n start: start,\n encoding: encoding,\n JSBNG__focus: JSBNG__focus,\n offset: offset,\n keydown: keydown,\n onFocus: ((searchBox ? searchBox.onFocus : function() {\n \n })),\n onBlur: ((searchBox ? searchBox.onBlur : function() {\n \n })),\n cursorPos: ((searchBox ? searchBox.cursorPos : function() {\n return -1;\n })),\n initStaticSuggestions: initStatic,\n initDynamicSuggestions: initDynamic,\n updateAutoCompletion: updateCompletion,\n init: init\n };\n };\n function now() {\n return (new JSBNG__Date).getTime();\n };\n ;\n function nop() {\n \n };\n ;\n function suppress() {\n return false;\n };\n ;\n function bzero(len, val) {\n var a = [];\n while (len--) {\n a.push(val);\n };\n ;\n return a;\n };\n ;\n function arrayIndexOf(a, v) {\n for (var i = 0, len = a.length; ((i < len)); i++) {\n if (((a[i] == v))) {\n return i;\n }\n ;\n ;\n };\n ;\n return -1;\n };\n ;\n function input(f, i, n, v, c) {\n f.append($(\"\\u003Cinput type=\\\"hidden\\\"/\\u003E\").attr(((c ? \"class\" : \"id\")), i).attr(\"JSBNG__name\", n).attr(\"value\", v));\n };\n ;\n function option(v, t) {\n return $(\"\\u003Coption/\\u003E\").attr(\"value\", v).text(t);\n };\n ;\n function keyClose(w) {\n return ((((w == 13)) || ((w == 32))));\n };\n ;\n function findOption(d, v) {\n return d.JSBNG__find(((((\"option[value=\\\"\" + v)) + \"\\\"]\")));\n };\n ;\n function tabIndex(e, i) {\n return e.attr(\"tabIndex\", i).attr(\"tabindex\", i);\n };\n ;\n function getShortenedIDForOption(o) {\n var eq;\n if (((((!o || !o.length)) || (((eq = o.indexOf(\"=\")) == -1))))) {\n return \"\";\n }\n ;\n ;\n var alias = o.substr(((eq + 1))), dash = ((alias.indexOf(\"-\") + 1)), shortID = alias.substr(0, 3);\n return ((dash ? shortID : ((shortID + alias.charAt(dash)))));\n };\n ;\n function changeDropdownSelection(optionValue, selectedDisplayName, highlightOnly, option) {\n var dd = ddBox;\n if (((((optionValue == \"search-alias=aps\")) && !selectedDisplayName))) {\n selectedDisplayName = findOption(dd, optionValue).text();\n }\n ;\n ;\n $(((\"#\" + sdpc))).css(\"visibility\", \"hidden\");\n $(dcs).text(selectedDisplayName);\n dd.val(optionValue);\n if (!highlightOnly) {\n opt.sb.JSBNG__focus();\n setSearchFormReftag(opt.form, optionValue);\n }\n ;\n ;\n };\n ;\n function setSearchFormReftag(formElement, optionValue, issMode, sg, numUserChars) {\n var formAction = formElement.attr(\"action\"), isstag = ((((issMode != null)) && sg)), tag = ((isstag ? ((((((((issMode + \"_\")) + sg.sgIndex)) + \"_\")) + numUserChars)) : ((\"dd_\" + getShortenedIDForOption(optionValue)))));\n if (((isstag || ((optionValue != null))))) {\n if (!refre.test(formAction)) {\n if (((formAction.charAt(((formAction.length - 1))) != \"/\"))) {\n formAction += \"/\";\n }\n ;\n ;\n formAction += tag;\n }\n else {\n if (((isstag && ddaliasre.test(formAction)))) {\n formAction = formAction.replace(ddaliasre, ((\"$1_\" + tag)));\n }\n else {\n formAction = formAction.replace(refre, ((\"ref=nb_sb_\" + tag)));\n }\n ;\n ;\n }\n ;\n ;\n formElement.attr(\"action\", formAction);\n }\n ;\n ;\n };\n ;\n function A9JSONClient(kw, counter) {\n var fullUrl, noCacheIE, headLoc, scriptId, scriptObj, scriptCounter = ((counter || 0));\n function callService(url) {\n fullUrl = url;\n noCacheIE = ((\"&noCacheIE=\" + now()));\n headLoc = JSBNG__document.getElementsByTagName(\"head\").item(0);\n scriptId = ((\"JscriptId\" + scriptCounter));\n buildScriptTag();\n addScriptTag();\n };\n ;\n function buildScriptTag() {\n scriptObj = JSBNG__document.createElement(\"script\");\n scriptObj.setAttribute(\"type\", \"text/javascript\");\n scriptObj.setAttribute(\"charset\", \"utf-8\");\n scriptObj.setAttribute(\"src\", ((fullUrl + noCacheIE)));\n scriptObj.setAttribute(\"id\", scriptId);\n };\n ;\n function removeScriptTag() {\n try {\n headLoc.removeChild(scriptObj);\n } catch (e) {\n \n };\n ;\n };\n ;\n function addScriptTag() {\n headLoc.appendChild(scriptObj);\n };\n ;\n return {\n callSuggestionsService: callService,\n cleanup: removeScriptTag,\n keywords: kw,\n counter: scriptCounter\n };\n };\n ;\n window.AutoComplete = AC;\n if (metrics.isEnabled) {\n uet(\"cf\", metrics.init, {\n wb: 1\n });\n }\n ;\n ;\n })(window);\n $SearchJS.publish(\"search-js-autocomplete-lib\");\n });\n }\n;\n;\n} catch (JSBNG_ex) {\n\n};");
1301 f881945950_65.returns.push(o2);
1303 o1.protocol = "http:";
1307 f881945950_7.returns.push(undefined);
1309 geval("var cloudfrontImg = new JSBNG__Image();\nif (((JSBNG__location.protocol == \"http:\"))) {\n if (window.JSBNG__addEventListener) {\n window.JSBNG__addEventListener(\"load\", ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.s6642b77f01f4d49ef240b29032e6da4372359178_0), function() {\n JSBNG__setTimeout(((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.s6642b77f01f4d49ef240b29032e6da4372359178_1), function() {\n cloudfrontImg.src = \"http://cloudfront-labs.amazonaws.com/x.png\";\n })), 400);\n })), false);\n }\n else if (window.JSBNG__attachEvent) {\n window.JSBNG__attachEvent(\"JSBNG__onload\", function() {\n JSBNG__setTimeout(function() {\n cloudfrontImg.src = \"http://cloudfront-labs.amazonaws.com/x.png\";\n }, 400);\n });\n }\n \n;\n;\n}\n;\n;");
1311 geval("amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n var DPCL;\n amznJQ.available(\"DPClientLogger\", function() {\n if (((typeof window.DPClientLogger != \"undefined\"))) {\n DPCL = new window.DPClientLogger.ImpressionLogger(\"dpbxapps\", \"bxapps-atfMarker\", true, true);\n }\n ;\n ;\n });\n jQuery(\".oneClickSignInLink\").click(function(e) {\n if (DPCL) {\n DPCL.logImpression(\"ma-books-oneClick-signIn-C\");\n }\n ;\n ;\n return true;\n });\n});");
1313 geval("var ImageBlockWeblabs = {\n};\nImageBlockWeblabs[\"swipe\"] = 0;\nImageBlockWeblabs[\"consolidated\"] = 1;\nImageBlockWeblabs[\"bookLargeImage\"] = 0;\namznJQ.available(\"ImageBlockATF\", function() {\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n var data = {\n indexToColor: [\"initial\",],\n visualDimensions: [\"color_name\",],\n productGroupID: \"book_display_on_website\",\n newVideoMissing: 0,\n useIV: 1,\n useChildVideos: 1,\n numColors: 1,\n defaultColor: \"initial\",\n logMetrics: 0,\n staticStrings: {\n playVideo: \"Click to play video\",\n rollOverToZoom: \"Roll over image to zoom in\",\n images: \"Images\",\n video: \"video\",\n touchToZoom: \"Touch the image to zoom in\",\n videos: \"Videos\",\n close: \"Close\",\n pleaseSelect: \"Please select\",\n clickToExpand: \"Click to open expanded view\",\n allMedia: \"All Media\"\n },\n gIsNewTwister: 0,\n title: \"JavaScript: The Good Parts\",\n ivRepresentativeAsin: {\n },\n mainImageSizes: [[\"300\",\"300\",],[\"300\",\"300\",],],\n isQuickview: 0,\n ipadVideoSizes: [[300,300,],[300,300,],],\n colorToAsin: {\n },\n showLITBOnClick: 1,\n stretchyGoodnessWidth: [1280,],\n videoSizes: [[300,300,],[300,300,],],\n autoplayVideo: 0,\n hoverZoomIndicator: \"\",\n sitbReftag: \"sib_dp_pt\",\n useHoverZoom: 0,\n staticImages: {\n spinner: \"http://g-ecx.images-amazon.com/images/G/01/ui/loadIndicators/loading-large_labeled._V192238949_.gif\",\n zoomOut: \"http://g-ecx.images-amazon.com/images/G/01/detail-page/cursors/zoom-out._V184888738_.bmp\",\n hoverZoomIcon: \"http://g-ecx.images-amazon.com/images/G/01/img11/apparel/UX/DP/icon_zoom._V138923886_.png\",\n zoomIn: \"http://g-ecx.images-amazon.com/images/G/01/detail-page/cursors/zoom-in._V184888790_.bmp\",\n videoSWFPath: \"http://g-ecx.images-amazon.com/images/G/01/Quarterdeck/en_US/video/20110518115040892/Video._V178668404_.swf\",\n zoomLensBackground: \"http://g-ecx.images-amazon.com/images/G/01/apparel/rcxgs/tile._V211431200_.gif\",\n arrow: \"http://g-ecx.images-amazon.com/images/G/01/javascripts/lib/popover/images/light/sprite-vertical-popover-arrow._V186877868_.png\",\n videoThumbIcon: \"http://g-ecx.images-amazon.com/images/G/01/Quarterdeck/en_US/images/video._V183716339_SS30_.gif\"\n },\n videos: [],\n gPreferChildVideos: 1,\n altsOnLeft: 0,\n ivImageSetKeys: {\n initial: 0\n },\n useHoverZoomIpad: \"\",\n isUDP: 0,\n alwaysIncludeVideo: 1,\n widths: 0,\n maxAlts: 7,\n useChromelessVideoPlayer: 0\n };\n data[\"customerImages\"] = eval(\"[]\");\n var def = ((colorImages ? colorImages[data.defaultColor] : []));\n colorImages = {\n };\n colorImages[data.defaultColor] = def;\n (function() {\n var markup = \"%0A%0A%0A%0A%0A%0A%0A%0A%0A%3Cstyle%3E%0A%0Aa.slateLink%3Alink%7B%20color%3A%20rgb(119%2C119%2C119)%3B%20text-decoration%3Anone%3B%7D%0Aa.slateLink%3Aactive%20%7B%20color%3A%20rgb(119%2C119%2C119)%3B%20text-decoration%3Anone%3B%7D%0Aa.slateLink%3Avisited%7B%20color%3A%20rgb(119%2C119%2C119)%3B%20text-decoration%3Anone%3B%7D%0Aa.slateLink%3Ahover%7B%20color%3A%20rgb(119%2C119%2C119)%3B%20text-decoration%3Anone%3B%7D%0A%0A.shuttleGradient%20%7B%0A%20%20%20%20float%3Aleft%3B%0A%20%20%20%20width%3A100%25%3B%0A%20%20%20%20text-align%3Aleft%3B%0A%20%20%20%20line-height%3A%20normal%3B%0A%20%20%20%20position%3Arelative%3B%0A%20%20%20%20height%3A43px%3B%20%0A%20%20%20%20background-color%3A%23dddddd%3B%20%0A%20%20%20%20background-image%3A%20url(http%3A%2F%2Fg-ecx.images-amazon.com%2Fimages%2FG%2F01%2Fx-locale%2Fcommunities%2Fcustomerimage%2Fshuttle-gradient._V192250138_.gif)%3B%20%0A%20%20%20%20background-position%3A%20bottom%3B%20%0A%20%20%20%20background-repeat%20%3A%20repeat-x%3B%0A%7D%0A%0A.shuttleTextTop%20%7B%0A%20%20%20%20font-size%3A18px%3B%0A%20%20%20%20font-weight%3Abold%3B%0A%20%20%20%20font-family%3Averdana%2Carial%2Chelvetica%2Csans-serif%3B%0A%20%20%20%20color%3A%20rgb(119%2C119%2C119)%3B%0A%20%20%20%20margin-left%3A10px%3B%0A%7D%0A%0A.shuttleTextBottom%20%7B%0A%20%20%20%20margin-top%3A-2px%3B%0A%20%20%20%20font-size%3A15px%3B%0A%20%20%20%20font-family%3Averdana%2Carial%2Chelvetica%2Csans-serif%3B%0A%20%20%20%20color%3A%20rgb(119%2C119%2C119)%3B%0A%20%20%20%20margin-left%3A10px%3B%0A%7D%0A.outercenterslate%7B%0A%20%20%20%20cursor%3Apointer%3B%0A%7D%0A.innercenterslate%7B%0A%20%20%20%20overflow%3A%20hidden%3B%0A%7D%0A%0A.slateoverlay%7B%0A%20%20%20%20position%3A%20absolute%3B%0A%20%20%20%20top%3A%200px%3B%0A%20%20%20%20border%3A%200px%0A%7D%0A%0A.centerslate%20%7B%0A%20%20%20%20display%3A%20table-cell%3B%0A%20%20%20%20background-color%3Ablack%3B%20%0A%20%20%20%20text-align%3A%20center%3B%0A%20%20%20%20vertical-align%3A%20middle%3B%0A%7D%0A.centerslate%20*%20%7B%0A%20%20%20%20vertical-align%3A%20middle%3B%0A%7D%0A.centerslate%20%7B%20display%2F*%5C**%2F%3A%20block%5C9%20%7D%20%0A%2F*%5C*%2F%2F*%2F%0A.centerslate%20%7B%0A%20%20%20%20display%3A%20block%3B%0A%7D%0A.centerslate%20span%20%7B%0A%20%20%20%20display%3A%20inline-block%3B%0A%20%20%20%20height%3A%20100%25%3B%0A%20%20%20%20width%3A%201px%3B%0A%7D%0A%2F**%2F%0A%3C%2Fstyle%3E%0A%3C!--%5Bif%20lt%20IE%209%5D%3E%3Cstyle%3E%0A.centerslate%20span%20%7B%0A%20%20%20%20display%3A%20inline-block%3B%0A%20%20%20%20height%3A%20100%25%3B%0A%7D%0A%3C%2Fstyle%3E%3C!%5Bendif%5D--%3E%0A%3Cstyle%3E%0A%3C%2Fstyle%3E%0A%0A%3Cscript%20type%3D%22text%2Fjavascript%22%3E%0AamznJQ.addLogical(%22swfobject-2.2%22%2C%20%5B%22http%3A%2F%2Fz-ecx.images-amazon.com%2Fimages%2FG%2F01%2Fmedia%2Fswf%2Famznjq-swfobject-2.2._V210753426_.js%22%5D)%3B%0A%0Awindow.AmznVideoPlayer%3Dfunction(mediaObject%2CtargetId%2Cwidth%2Cheight)%7B%0A%20%20AmznVideoPlayer.players%5BmediaObject.mediaObjectId%5D%3Dthis%3B%0A%20%20this.slateImageUrl%3DmediaObject.slateImageUrl%3B%0A%20%20this.id%3DmediaObject.mediaObjectId%3B%0A%20%20this.preplayWidth%3Dwidth%3B%0A%20%20this.preplayHeight%3Dheight%3B%0A%20%20this.flashDivWidth%3Dwidth%3B%0A%20%20this.flashDivHeight%3Dheight%3B%0A%20%20this.targetId%3DtargetId%3B%0A%20%20this.swfLoading%3D0%3B%0A%20%20this.swfLoaded%3D0%3B%0A%20%20this.preplayDivId%3D'preplayDiv'%2Bthis.id%3B%0A%20%20this.flashDivId%3D'flashDiv'%2Bthis.id%3B%0A%7D%0A%0AAmznVideoPlayer.players%3D%5B%5D%3B%0AAmznVideoPlayer.session%3D'176-5336870-9447366'%3B%0AAmznVideoPlayer.root%3D'http%3A%2F%2Fwww.amazon.com'%3B%0AAmznVideoPlayer.locale%3D'en_US'%3B%0AAmznVideoPlayer.swf%3D'http%3A%2F%2Fg-ecx.images-amazon.com%2Fimages%2FG%2F01%2Fam3%2F20120510035744301%2FAMPlayer._V148501545_.swf'%3B%0AAmznVideoPlayer.preplayTemplate%3D'%3Cdiv%20style%3D%22width%3A0px%3Bheight%3A0px%3B%22%20class%3D%22outercenterslate%22%3E%3Cdiv%20style%3D%22width%3A0px%3Bheight%3A-43px%3B%22%20class%3D%22centerslate%22%20%3E%3Cspan%3E%3C%2Fspan%3E%3Cimg%20border%3D%220%22%20alt%3D%22Click%20to%20watch%20this%20video%22%20src%3D%22slateImageGoesHere%22%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22shuttleGradient%22%3E%3Cdiv%20class%3D%22shuttleTextTop%22%3EAmazon%3C%2Fdiv%3E%3Cdiv%20class%3D%22shuttleTextBottom%22%3EVideo%3C%2Fdiv%3E%3Cimg%20id%3D%22mediaObjectIdpreplayImageId%22%20style%3D%22height%3A74px%3Bposition%3Aabsolute%3Bleft%3A-31px%3Btop%3A-31px%3B%22%20src%3D%22http%3A%2F%2Fg-ecx.images-amazon.com%2Fimages%2FG%2F01%2Fx-locale%2Fcommunities%2Fcustomerimage%2Fplay-shuttle-off._V192250119_.gif%22%20border%3D%220%22%2F%3E%3C%2Fdiv%3E%3C%2Fdiv%3E'%3B%0AAmznVideoPlayer.rollOn%3D'http%3A%2F%2Fg-ecx.images-amazon.com%2Fimages%2FG%2F01%2Fx-locale%2Fcommunities%2Fcustomerimage%2Fplay-shuttle-on._V192250112_.gif'%3B%0AAmznVideoPlayer.rollOff%3D'http%3A%2F%2Fg-ecx.images-amazon.com%2Fimages%2FG%2F01%2Fx-locale%2Fcommunities%2Fcustomerimage%2Fplay-shuttle-off._V192250119_.gif'%3B%0AAmznVideoPlayer.flashVersion%3D'9.0.115'%3B%0AAmznVideoPlayer.noFlashMsg%3D'To%20view%20this%20video%20download%20%3Ca%20target%3D%22_blank%22%20href%3D%22http%3A%2F%2Fget.adobe.com%2Fflashplayer%2F%22%20target%3D%22_top%22%3EFlash%20Player%3C%2Fa%3E%20(version%209.0.115%20or%20higher)'%3B%0A%0AAmznVideoPlayer.hideAll%3Dfunction()%7B%0A%20%20for(var%20i%20in%20AmznVideoPlayer.players)%7B%0A%20%20%20%20AmznVideoPlayer.players%5Bi%5D.hidePreplay()%3B%0A%20%20%20%20AmznVideoPlayer.players%5Bi%5D.hideFlash()%3B%0A%20%20%7D%0A%7D%0A%0AAmznVideoPlayer.prototype.writePreplayHtml%3Dfunction()%7B%0A%20%20if(typeof%20this.preplayobject%3D%3D'undefined')%7B%0A%20%20%20%20this.preplayobject%3DjQuery(AmznVideoPlayer.preplayTemplate.replace(%22slateImageGoesHere%22%2Cthis.slateImageUrl)%0A%20%20%20%20%20%20%20%20.replace(%22mediaObjectId%22%2Cthis.id).replace(%22-43px%22%2C(this.preplayHeight-43)%2B%22px%22).replace(%22-31px%22%2C(Math.round(this.preplayWidth%2F2)-31)%2B%22px%22))%3B%0A%20%20%20%20this.preplayobject.width(this.preplayWidth%2B%22px%22).height(this.preplayHeight%2B%22px%22)%3B%0A%20%20%20%20this.preplayobject.find(%22.innercenterslate%22).width(this.preplayWidth%2B%22px%22).height(this.preplayHeight%2B%22px%22)%3B%0A%20%20%20%20this.preplayobject.find(%22.centerslate%22).width(this.preplayWidth%2B%22px%22)%3B%0A%20%20%20%20var%20self%3Dthis%3B%0A%20%20%20%20this.preparePlaceholder()%3B%0A%20%20%20%20jQuery(%22%23%22%2Bthis.preplayDivId).click(function()%7Bself.preplayClick()%3B%7D)%3B%0A%20%20%20%20jQuery(%22%23%22%2Bthis.preplayDivId).hover(%0A%20%20%20%20%20%20%20%20function()%7BjQuery(%22%23%22%2Bself.id%2B'preplayImageId').attr('src'%2CAmznVideoPlayer.rollOn)%3B%7D%2C%0A%20%20%20%20%20%20%20%20function()%7BjQuery(%22%23%22%2Bself.id%2B'preplayImageId').attr('src'%2CAmznVideoPlayer.rollOff)%3B%7D)%3B%0A%20%20%20%20jQuery(%22%23%22%2Bthis.preplayDivId).html(this.preplayobject)%3B%0A%20%20%7D%0A%7D%0A%0AAmznVideoPlayer.prototype.writeFlashHtml%3Dfunction()%7B%0A%20%20if(!this.swfLoaded%26%26!this.swfLoading)%7B%0A%20%20%20%20this.swfLoading%3D1%3B%0A%20%20%20%20var%20params%3D%7B'allowscriptaccess'%3A'always'%2C'allowfullscreen'%3A'true'%2C'wmode'%3A'transparent'%2C'quality'%3A'high'%7D%3B%0A%20%20%20%20var%20shiftJISRegExp%20%3D%20new%20RegExp(%22%5Ehttps%3F%3A%22%2BString.fromCharCode(0x5C)%2B%22%2F%22%2BString.fromCharCode(0x5C)%2B%22%2F%22)%3B%0A%20%20%20%20var%20flashvars%3D%7B'xmlUrl'%3AAmznVideoPlayer.root%2B'%2Fgp%2Fmpd%2Fgetplaylist-v2%2F'%2Bthis.id%2B'%2F'%2BAmznVideoPlayer.session%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'mediaObjectId'%3Athis.id%2C'locale'%3AAmznVideoPlayer.locale%2C'sessionId'%3AAmznVideoPlayer.session%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'amazonServer'%3AAmznVideoPlayer.root.replace(shiftJISRegExp%2C'')%2C'swfEmbedTime'%3Anew%20Date().getTime()%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20'allowFullScreen'%3A'true'%2C'amazonPort'%3A'80'%2C'preset'%3A'detail'%2C'autoPlay'%3A'1'%2C'permUrl'%3A'gp%2Fmpd%2Fpermalink'%2C'scale'%3A'noscale'%7D%3B%0A%20%20%20%20var%20self%3Dthis%3B%0A%20%20%20%20swfobject.embedSWF(AmznVideoPlayer.swf%2C'so_'%2Bthis.id%2C%22100%25%22%2C%22100%25%22%2CAmznVideoPlayer.flashVersion%2Cfalse%2Cflashvars%2Cparams%2Cparams%2C%0A%20%20%20%20%20%20function(e)%7B%0A%20%20%20%20%20%20%20%20self.swfLoading%3D0%3B%0A%20%20%20%20%20%20%20%20if(e.success)%7BAmznVideoPlayer.lastPlayedId%3Dself.id%3Bself.swfLoaded%3D1%3Breturn%3B%7D%0A%20%20%20%20%20%20%20%20jQuery('%23'%2Bself.flashDivId).html('%3Cbr%2F%3E%3Cbr%2F%3E%3Cbr%2F%3E%3Cbr%2F%3E%3Cbr%2F%3E%3Cbr%2F%3E%3Cbr%2F%3E'%2BAmznVideoPlayer.noFlashMsg).css(%7B'background'%3A'%23ffffff'%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20)%3B%0A%20%20%7D%0A%7D%0A%0AAmznVideoPlayer.prototype.showPreplay%3Dfunction()%7B%0A%20%20this.writePreplayHtml()%3B%0A%20%20this.preparePlaceholder()%3B%0A%20%20jQuery(%22%23%22%2Bthis.preplayDivId).show()%3B%0A%20%20return%20this%3B%0A%7D%0A%0AAmznVideoPlayer.prototype.hidePreplay%3Dfunction()%7B%0A%20%20this.preparePlaceholder()%3B%0A%20%20jQuery(%22%23%22%2Bthis.preplayDivId).hide()%3B%0A%20%20return%20this%3B%0A%7D%0A%0AAmznVideoPlayer.prototype.showFlash%3Dfunction()%7B%0A%20%20this.preparePlaceholder()%3B%0A%20%20if(!this.swfLoaded%26%26!this.swfLoading)%7B%0A%20%20%20%20var%20self%3Dthis%3B%0A%20%20%20%20amznJQ.available(%22swfobject-2.2%22%2Cfunction()%7Bself.writeFlashHtml()%3B%7D)%3B%0A%20%20%7D%0A%20%20jQuery(%22%23%22%2Bthis.flashDivId).width(this.flashDivWidth%2B'px').height(this.flashDivHeight%2B'px')%3B%0A%20%20AmznVideoPlayer.lastPlayedId%3Dthis.id%3B%0A%20%20return%20this%3B%0A%7D%0A%0AAmznVideoPlayer.prototype.hideFlash%3Dfunction()%7B%0A%20%20this.preparePlaceholder()%3B%0A%20%20jQuery(%22%23%22%2Bthis.flashDivId).width('0px').height('1px')%3B%0A%20%20return%20this%3B%0A%7D%0A%0AAmznVideoPlayer.prototype.preparePlaceholder%3Dfunction()%7B%0A%20%20if(!(jQuery('%23'%2Bthis.flashDivId).length)%7C%7C!(jQuery('%23'%2Bthis.preplayDivId)))%7B%0A%20%20%20%20var%20preplayDiv%3DjQuery(%22%3Cdiv%20id%3D'%22%2Bthis.preplayDivId%2B%22'%3E%3C%2Fdiv%3E%22).css(%7B'position'%3A'relative'%7D)%3B%0A%20%20%20%20var%20flashDiv%3DjQuery(%22%3Cdiv%20id%3D'%22%2Bthis.flashDivId%2B%22'%3E%3Cdiv%20id%3D'so_%22%2Bthis.id%2B%22'%2F%3E%3C%2Fdiv%3E%22).css(%7B'overflow'%3A'hidden'%2Cbackground%3A'%23000000'%7D)%3B%0A%20%20%20%20var%20wrapper%3DjQuery(%22%3Cdiv%2F%3E%22).css(%7B'position'%3A'relative'%2C'float'%3A'left'%7D).append(preplayDiv).append(flashDiv)%3B%0A%20%20%20%20jQuery('%23'%2Bthis.targetId).html(wrapper)%3B%0A%20%20%7D%0A%7D%0A%0AAmznVideoPlayer.prototype.resizeVideo%3Dfunction(width%2Cheight)%7B%0A%20%20this.flashDivWidth%3Dwidth%3B%0A%20%20this.flashDivHeight%3Dheight%3B%0A%20%20if%20(jQuery(%22%23%22%2Bthis.flashDivId)%26%26jQuery(%22%23%22%2Bthis.flashDivId).width()!%3D0)%7Bthis.showFlash()%3B%7D%0A%7D%0A%0AAmznVideoPlayer.prototype.preplayClick%3Dfunction()%7B%20%0A%20%20if(this.swfLoaded)%7Bthis.play()%3B%7D%20%0A%20%20this.showFlash()%3B%0A%20%20this.hidePreplay()%3B%0A%7D%0A%0AAmznVideoPlayer.prototype.play%3Dfunction()%7B%0A%20%20var%20so%3Dthis.getSO()%3B%0A%20%20if(typeof%20so.playVideo%3D%3D'function')%7B%0A%20%20%20%20if(this.id!%3DAmznVideoPlayer.lastPlayedId)%7B%0A%20%20%20%20%20%20AmznVideoPlayer.players%5BAmznVideoPlayer.lastPlayedId%5D.pause()%3B%0A%20%20%20%20%7D%0A%20%20%20%20AmznVideoPlayer.lastPlayedId%3Dthis.id%3Bso.playVideo()%3B%0A%20%20%7D%0A%7D%0A%0AAmznVideoPlayer.prototype.pause%3Dfunction()%7Bif(this.swfLoading%7C%7Cthis.swfLoaded)%7Bthis.autoplayCancelled%3Dtrue%3B%7Dvar%20so%3Dthis.getSO()%3Bif(so%20%26%26%20typeof%20so.pauseVideo%3D%3D'function')%7Bso.pauseVideo()%3B%7D%7D%0AAmznVideoPlayer.prototype.stop%3Dfunction()%7Bif(this.swfLoading%7C%7Cthis.swfLoaded)%7Bthis.autoplayCancelled%3Dtrue%3B%7Dvar%20so%3Dthis.getSO()%3Bif(so%20%26%26%20typeof%20so.stopVideo%3D%3D'function')%7Bso.stopVideo()%3B%7D%7D%0AAmznVideoPlayer.prototype.getSO%3Dfunction()%7Breturn%20jQuery(%22%23so_%22%2Bthis.id).get(0)%3B%7D%0A%0Afunction%20isAutoplayCancelled(showID)%20%7B%0A%20%20return%20(AmznVideoPlayer.players%5BshowID%5D%20%26%26%20AmznVideoPlayer.players%5BshowID%5D.autoplayCancelled%20%3D%3D%20true)%3B%20%0A%7D%0A%3C%2Fscript%3E%0A\";\n jQuery(\"\\u003Cdiv\\u003E\\u003C/div\\u003E\").insertAfter(\"#main-image-widget\").html(decodeURIComponent(markup));\n })();\n data.cfEndTimer = new JSBNG__Date();\n amznJQ.available(\"imageBlock\", function() {\n jQuery.imageBlock = new ImageBlock(data);\n ImageBlock.TwisterReArchModule = function() {\n return jQuery.imageBlock.getTwisterReArchApis();\n }();\n });\n });\n});");
1315 geval("if (window.amznJQ) {\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n var precacheDetailImages = function(imageUrls, pids) {\n function transformUrl(imgUrl, pid) {\n var suffix = \"._SL500_AA300_.jpg\", defaultApparel = \"._AA300_.jpg\", imgUrlSplit = imgUrl.split(\"._\");\n if (imgUrlSplit.length) {\n var prefix = imgUrlSplit[0];\n if (((((!pid && ((storeName == \"books\")))) || ((pid == \"books_display_on_website\"))))) {\n if (imgUrl.match(\"PIsitb-sticker-arrow\")) {\n var OUID = imgUrl.substr(imgUrl.indexOf(\"_OU\"), 6);\n var lookInsideSticker = ((((\"._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20\" + OUID)) + \".jpg\"));\n urls.push(((prefix + lookInsideSticker)));\n }\n else {\n urls.push(((prefix + suffix)));\n }\n ;\n ;\n }\n else if (((((!pid && ((storeName == \"apparel\")))) || ((pid == \"apparel_display_on_website\"))))) {\n urls.push(((prefix + \"._SX342_.jpg\")));\n urls.push(((prefix + \"._SY445_.jpg\")));\n }\n else if (((((!pid && ((storeName == \"shoes\")))) || ((pid == \"shoes_display_on_website\"))))) {\n urls.push(((prefix + \"._SX395_.jpg\")));\n urls.push(((prefix + \"._SY395_.jpg\")));\n }\n else {\n urls.push(((prefix + suffix)));\n }\n \n \n ;\n ;\n }\n ;\n ;\n };\n ;\n ;\n var urls = [], numImgsPreload = Math.min(6, imageUrls.length), storeName = \"books\";\n for (var i = 0; ((i < numImgsPreload)); i++) {\n var currPid = ((((pids && pids.length)) ? pids[i] : \"\"));\n transformUrl(imageUrls[i], currPid);\n };\n ;\n for (var j = 0; ((j < urls.length)); j++) {\n var img = new JSBNG__Image();\n img.src = urls[j];\n };\n ;\n };\n var win = jQuery(window);\n var feature = jQuery(\"#purchaseShvl\");\n var shvlPresent = ((((feature.length > 0)) ? 1 : 0));\n var lastCheck = 0;\n var pending = 0;\n var onScrollPrecache = function() {\n if (pending) {\n return;\n }\n ;\n ;\n var lastCheckDiff = ((new JSBNG__Date().getTime() - lastCheck));\n var checkDelay = ((((lastCheckDiff < 200)) ? ((200 - lastCheckDiff)) : 10));\n pending = 1;\n var u = function() {\n if (((shvlPresent && ((((win.scrollTop() + win.height())) > ((feature.offset().JSBNG__top + 200))))))) {\n var p = precacheDetailImages, $ = jQuery;\n if (p) {\n var selector = \"#purchaseButtonWrapper\";\n var imgElems = $(selector).JSBNG__find(\"a \\u003E div \\u003E img\");\n var pgs, imgs = [], i = imgElems.length;\n while (((i-- > 0))) {\n imgs[i] = $(imgElems[i]).attr(\"src\");\n };\n ;\n p(imgs, pgs);\n }\n ;\n ;\n $(window).unbind(\"JSBNG__scroll\", onScrollPrecache);\n return;\n }\n ;\n ;\n pending = 0;\n lastCheck = new JSBNG__Date().getTime();\n };\n JSBNG__setTimeout(u, checkDelay);\n return;\n };\n jQuery(window).bind(\"JSBNG__scroll\", onScrollPrecache);\n });\n}\n;\n;");
1317 geval("amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n amznJQ.available(\"search-js-jq\", function() {\n \n });\n amznJQ.available(\"amazonShoveler\", function() {\n \n });\n amznJQ.available(\"simsJS\", function() {\n \n });\n amznJQ.available(\"cmuAnnotations\", function() {\n \n });\n amznJQ.available(\"externalJS.tagging\", function() {\n \n });\n amznJQ.available(\"amzn-ratings-bar\", function() {\n \n });\n amznJQ.available(\"accessoriesJS\", function() {\n \n });\n amznJQ.available(\"priceformatterJS\", function() {\n \n });\n amznJQ.available(\"CustomerPopover\", function() {\n \n });\n if (!window.DPClientLogger) {\n window.DPClientLogger = {\n };\n }\n;\n;\n window.DPClientLogger.ImpressionLogger = function(program_group, feature, forceUpload, controlledLogging) {\n var JSBNG__self = this, data = {\n };\n var isBooksUdploggingDisabled = false;\n var enableNewCSMs = false;\n var newCSMs = [\"ma-books-image-ftb-shown\",\"ma-books-image-listen-shown\",];\n JSBNG__self.logImpression = function(key) {\n if (!((((isBooksUdploggingDisabled && ((controlledLogging !== undefined)))) && controlledLogging))) {\n var isNewCSM = JSBNG__self.isKeyNewCSM(key);\n if (((!isNewCSM || ((isNewCSM && enableNewCSMs))))) {\n data[key] = 1;\n JSBNG__setTimeout(JSBNG__self.upload, 2000);\n }\n ;\n ;\n }\n ;\n ;\n };\n JSBNG__self.isKeyNewCSM = function(key) {\n var isNewCSM = false;\n jQuery.each(newCSMs, function(index, csm) {\n if (((csm == key))) {\n isNewCSM = true;\n }\n ;\n ;\n });\n return isNewCSM;\n };\n JSBNG__self.upload = function() {\n var t = [];\n jQuery.each(data, function(k, v) {\n t.push(k);\n });\n data = {\n };\n if (((t.length > 0))) {\n var protocol = ((((JSBNG__location.protocol == \"https:\")) ? \"http://jsbngssl.\" : \"http://\")), url = ((((((((((((((((((((((((((((((protocol + ue.furl)) + \"/1/action-impressions/1/OP/\")) + program_group)) + \"/action/\")) + feature)) + \":\")) + t.join())) + \"?marketplaceId=\")) + ue.mid)) + \"&requestId=\")) + ue.rid)) + \"&session=\")) + ue.sid)) + \"&_=\")) + (new JSBNG__Date()).getTime()));\n (new JSBNG__Image()).src = url;\n }\n ;\n ;\n };\n if (forceUpload) {\n jQuery(window).unload(function() {\n JSBNG__self.upload();\n });\n }\n ;\n ;\n };\n amznJQ.onReady(\"jQuery\", function() {\n amznJQ.declareAvailable(\"DPClientLogger\");\n });\n});");
1319 geval("amznJQ.addLogical(\"gridReviewCSS-US\", []);\namznJQ.addLogical(\"reviewsCSS-US\", []);");
1321 geval("window.$Nav.declare(\"config.prefetchUrls\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/cartPerformanceJS/cartPerformanceJS-2638627971._V1_.js\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/cartWithAjaxJS/cartWithAjaxJS-40220677._V1_.js\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/fruitCSS/US-combined-2621868138._V1_.css\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/registriesCSS/US-combined-545184966._V376148880_.css\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/browser-scripts/site-wide-js-1.2.6-beacon/site-wide-11198044143._V1_.js\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/browser-scripts/us-site-wide-css-beacon/site-wide-6804619766._V1_.css\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/browser-scripts/wcs-ya-homepage-beaconized/wcs-ya-homepage-beaconized-1899362992._V1_.css\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/browser-scripts/wcs-ya-homepage-beaconized/wcs-ya-homepage-beaconized-3515399030._V1_.js\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/browser-scripts/wcs-ya-order-history-beaconized/wcs-ya-order-history-beaconized-2777963369._V1_.css\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/gno/beacon/BeaconSprite-US-01._V397411194_.png\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/gno/images/general/navAmazonLogoFooter._V169459313_.gif\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/common/transparent-pixel._V386942464_.gif\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/communities/social/snwicons_v2._V369764580_.png\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/cs/css/images/amznbtn-sprite03._V387356454_.png\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/cs/help/images/spotlight/kindle-family-02b._V386370244_.jpg\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/cs/orders/images/acorn._V192250692_.gif\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/cs/orders/images/amazon-gc-100._V192250695_.gif\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/cs/orders/images/amazon-gcs-100._V192250695_.gif\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/cs/orders/images/btn-close._V192250694_.gif\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/cs/projects/text-trace/texttrace_typ._V381285749_.js\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/cs/ya/images/new-link._V192250664_.gif\",\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/cs/ya/images/shipment_large_lt._V192250661_.gif\",]);\n_navbar = ((window._navbar || {\n}));\n_navbar.prefetch = function() {\n ((window.amznJQ && amznJQ.addPL(window.$Nav.getNow(\"config.prefetchUrls\"))));\n};\n((window.$Nav && $Nav.declare(\"config.prefetch\", _navbar.prefetch)));\n((window.$Nav && $Nav.declare(\"config.flyoutURL\", null)));\n((window.$Nav && $Nav.declare(\"btf.lite\")));\n((window.amznJQ && amznJQ.declareAvailable(\"navbarBTFLite\")));\n((window.$Nav && $Nav.declare(\"btf.full\")));\n((window.amznJQ && amznJQ.declareAvailable(\"navbarBTF\")));");
1323 geval("function e18e5a1a37b22c0bf100b6cafb1a14c56948581e4(JSBNG__event) {\n if (((typeof (SitbReader) != \"undefined\"))) {\n SitbReader.LightboxActions.openReaderToPage(1, null, \"sib_dp_pop_fc\");\n return false;\n }\n;\n;\n};\n;");
1325 geval("function e531724d117311681f207a58b392d5d85fd52c65c(JSBNG__event) {\n if (((typeof (SitbReader) != \"undefined\"))) {\n SitbReader.LightboxActions.openReaderToPage(8, null, \"sib_dp_pop_toc\");\n return false;\n }\n;\n;\n};\n;");
1327 geval("function eeb52dc77c638865e572128eabda352097ea3d982(JSBNG__event) {\n if (((typeof (SitbReader) != \"undefined\"))) {\n SitbReader.LightboxActions.openReaderToPage(16, null, \"sib_dp_pop_ex\");\n return false;\n }\n;\n;\n};\n;");
1329 geval("function e60727216e5cd3c9c6a3127f0e0195d975801bf48(JSBNG__event) {\n if (((typeof (SitbReader) != \"undefined\"))) {\n SitbReader.LightboxActions.openReaderToPage(162, null, \"sib_dp_pop_idx\");\n return false;\n }\n;\n;\n};\n;");
1331 geval("function e6aacc2f317620b27e17d1dd93308de782d13f354(JSBNG__event) {\n if (((typeof (SitbReader) != \"undefined\"))) {\n SitbReader.LightboxActions.openReaderToPage(172, null, \"sib_dp_pop_bc\");\n return false;\n }\n;\n;\n};\n;");
1333 geval("function e16685ada54157bf919b65cf2146fdf9cd4fff442(JSBNG__event) {\n if (((typeof (SitbReader) != \"undefined\"))) {\n SitbReader.LightboxActions.openReaderToRandomPage(\"sib_dp_pop_sup\");\n return false;\n }\n;\n;\n};\n;");
1335 geval("function eb1fd61d0f2467bbf4486b7a87ff01855f467b7d8(JSBNG__event) {\n if (((typeof (SitbReader) != \"undefined\"))) {\n SitbReader.LightboxActions.openReaderToSearchResults(jQuery(\"#sitb-pop-inputbox\").val(), \"sib_dp_srch_pop\");\n return false;\n }\n;\n;\n};\n;");
1337 geval("function sitb_doHide() {\n return false;\n};\n;\nfunction sitb_showLayer() {\n return false;\n};\n;\namznJQ.available(\"popover\", function() {\n jQuery(\"div#main-image-wrapper\").amazonPopoverTrigger({\n localContent: \"#sitb-pop\",\n showOnHover: true,\n showCloseButton: false,\n hoverShowDelay: 500,\n hoverHideDelay: 300,\n width: 370,\n JSBNG__location: \"left\",\n locationOffset: [400,60,]\n });\n});");
1339 geval("function ee6f08923500069ccb60b3c5b4ffe02ee9062405e(JSBNG__event) {\n return amz_js_PopWin(this.href, \"AmazonHelp\", \"width=450,height=450,resizable=1,scrollbars=1,toolbar=1,status=1\");\n};\n;");
1341 geval("function efdff100ee742fecb8b858e7fddf0cfe2386b205d(JSBNG__event) {\n showSLF();\n};\n;");
1343 geval("amznJQ.available(\"jQuery\", function() {\n var obj = [{\n provider: \"g\",\n description: \"Chosen by top software vendors. View live examples & full docs\",\n title: \"Real Enterprise AJAX\",\n redirectUrl: \"http://rd.a9.com/srv/redirect/?info=AL8KkmCyH0iKVuQSIAm82YMncWvHz0gp6BxeEvaeP9L.5Wk3AAIDff.fYApbbQqksWFPSd8Hq5k.052aufVMxYsBi29wGUisxBLrH12CdnuWn3CbrcagHTHX1udiRtpz2uB4DWQob.L7QIjDEehutRGXeN3YsBZmcB2vaNF9..x3mHlfrDEudBQqC7gMRfGTkM44QaJLIrB9WhQHCSn3uAVpjDGlHe0ETwYvTWb6-7DUR99LfTS7Oyq.E.T08Q6DCQmTMYrADnq0ee54i58C-OaJJBOrU4hJ.4L5AYFGsgBnESkljPfDN.Ls4LJzVU-9eUadrRcHZsw0vt58KS2Gs-kWpSG9LGi957Dd0Vwl8pAhx8Qr5qwyDG5OBiUZn3qnCFyeoe8xmLRXGyr.nQpevzc3ehX.gLt5bGzKjJOGPmIo90ealK8K-V9Q1UKfcKmeQwNpch8NeMKmoDuSCSE8LkH.qdOySJxbsaHefDF9A3sYCCqwzmoIOjI0Fasa5Q2qgD88Sze6atJr8M.MHfQYLJH05rkHNwQKmy3yClFnFEMLz.cLIbiZdfwGUyK3Xaqz-BPFIJ-a74eQx.YS.7-23dE_&awt=1&s=\",\n visibleUrl: \"www.smartclient.com/\"\n },{\n provider: \"g\",\n description: \"Find \\u003Cb\\u003EJavascript The Good Parts\\u003C/b\\u003E; Online at Ask.com. Try It Now!\",\n title: \"\\u003Cb\\u003EJavascript The Good Parts\\u003C/b\\u003E\",\n redirectUrl: \"http://rd.a9.com/srv/redirect/?info=AAFV92W9cuYKqQUBJdlfz8v1v83ZSqPuZD-C7fgh8dT9vIzgoqSlOci83RY71ecn-L.-EiIEfkucep8NmaiO.uW04kVQ3sXjHRxCyydC18Z9dvVztkK9PahpmZoXzzKaVtVZI56MW6Nlz-qy5PFXObwwLgOqnO0d5bWFjyvrrxeI8bg3HU6bdrNF.p8x7mIdk52rFDTupCtgCLNkaxC3NUroN7gzQMisxr9M3xg8GRqGDg1Uz5SnPUZW3zFSo7tiDSziA-EEtYMovtAnA4FMi3hAnY0CyBeEheSiEkGGmtPJDQsOTA2vRp0vB3NLhoJZ023tW-D6M8iUs-cbiS1nk67UW51b3w5m-r8KNT8MdzriG2OEWH6cujt2exjYa9EDBQpP3Px9SR8wQwSxaM0b6MNacqe7c.kav1FQJQMgWFj0Xih8v951VJNrHxN7I7BU-9BO5BUneZsjC5amK0XmK6BerG.RqF9fodmzLgisSODw5b-u.GyFvNtNjVWGmgMxrzRePAV6IXFbPQswczl8OXZtD4CLBn6YhDTg-abNRElkq3KdehjmtodT1F9H1UtW1H-cKy91-AVPGFJmKJ33gcdzGZz44sXLx5Qu0TQAu7IhTz8UAEKwOq-kXCKNITr2NWiy7qRb0gXikeWPBz1Gwn3ieZhuZcEU4JKay4QJmH3dyIZhHndeaf3LpqtaA1tT6ccpp5qxXJWSa5TPLf-1mD5HnE2sq6DxtHyKRYGkyy.bEs43NImOA7DiUDQLYXMScjD901kaabqvm5VuapBTI1Xl.T.hK2avsqDZ3tkqd4IRuiEJWZu22GNpotmUTiqo9w__&awt=1&s=\",\n visibleUrl: \"www.ask.com/\\u003Cb\\u003EJavascript\\u003C/b\\u003E+The+\\u003Cb\\u003EGood\\u003C/b\\u003E+\\u003Cb\\u003EParts\\u003C/b\\u003E\"\n },];\n var adPropertiesDelimiter = \"__\";\n var adCount = 2;\n var slDiv = \"SlDiv\";\n var expectedHeightWide = 34;\n var expectedHeightMiddle = 56;\n var reformatType = \"0\";\n jQuery(window).load(function() {\n amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n var divWideName = ((slDiv + \"_0\"));\n var divMiddleName = ((slDiv + \"_1\"));\n var heightOfOneAd = ((jQuery(((\"#\" + divWideName))).height() / adCount));\n if (((heightOfOneAd > expectedHeightWide))) {\n reformatType = \"1\";\n var newAdsHtml = ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((\"\\u003Ctr\\u003E\" + \" \\u003Ctd\\u003E\")) + \" \\u003Cdiv class=\\\"SponsoredLinkItemTD\\\"\\u003E\")) + \" \\u003Cspan class = \\\"SponsoredLinkYellowBlockEnclosureTop\\\"\\u003E\")) + \" \\u003Cspan class=\\\"SponsoredLinkYellowBlockEnclosure\\\"\\u003E\")) + \" \\u003Cspan class=\\\"SponsoredLinkYellowBlock\\\"\\u003E \\u003C/span\\u003E \")) + \" \\u003C/span\\u003E\")) + \" \\u003C/span\\u003E \")) + \" \\u003C/div\\u003E\")) + \" \\u003C/td\\u003E\")) + \" \\u003Ctd\\u003E\")) + \" \\u003Cdiv class=\\\"SponsoredLinkTitle\\\"\\u003E\")) + \" \\u003Ca target=\\\"_blank\\\" href=\\\"\")) + adPropertiesDelimiter)) + \"redirectUrl\")) + adPropertiesDelimiter)) + \"\\\" rel=\\\"nofollow\\\"\\u003E\\u003Cb\\u003E\")) + adPropertiesDelimiter)) + \"title\")) + adPropertiesDelimiter)) + \"\\u003C/b\\u003E\\u003C/a\\u003E\")) + \" \\u003Ca target=\\\"_blank\\\" href=\\\"\")) + adPropertiesDelimiter)) + \"redirectUrl\")) + adPropertiesDelimiter)) + \"\\\" rel=\\\"nofollow\\\"\\u003E\\u003Cimg src=\\\"http://g-ecx.images-amazon.com/images/G/01/icons/icon-offsite-sl-7069-t4._V171196157_.png\\\" width=\\\"23\\\" alt=\\\"opens new browser window\\\" align=\\\"absbottom\\\" style=\\\"padding-bottom:0px; margin-bottom:0px;\\\" height=\\\"20\\\" border=\\\"0\\\" /\\u003E\\u003C/a\\u003E\")) + \" \\u003C/div\\u003E\")) + \" \\u003C/td\\u003E\")) + \" \\u003Ctd style=\\\"padding-left: 20px;\\\"\\u003E\")) + \" \\u003Cdiv class=\\\"SponsoredLinkDescriptionDIV\\\"\\u003E\")) + \" \\u003Cspan class=\\\"SponsoredLinkDescriptionText\\\"\\u003E\")) + adPropertiesDelimiter)) + \"description\")) + adPropertiesDelimiter)) + \"\\u003C/span\\u003E\")) + \" \\u003C/div\\u003E\")) + \" \\u003C/td\\u003E\")) + \"\\u003C/tr\\u003E\")) + \"\\u003Ctr\\u003E\")) + \" \\u003Ctd\\u003E\")) + \" \\u003C/td\\u003E\")) + \" \\u003Ctd\\u003E\")) + \" \\u003C/td\\u003E\")) + \" \\u003Ctd style=\\\"padding-left: 20px;\\\"\\u003E\")) + \" \\u003Cdiv class=\\\"SponsoredLinkDescriptionDIV\\\" style=\\\"padding-top:0px; padding-bottom:10px\\\"\\u003E\")) + \" \\u003Ca target=\\\"_blank\\\" href=\\\"\")) + adPropertiesDelimiter)) + \"redirectUrl\")) + adPropertiesDelimiter)) + \"\\\" rel=\\\"nofollow\\\" class=\\\"SponsoredLinkDescriptionUrlLink\\\"\\u003E\")) + adPropertiesDelimiter)) + \"visibleUrl\")) + adPropertiesDelimiter)) + \"\\u003C/a\\u003E\")) + \" \\u003C/div\\u003E\")) + \" \\u003C/td\\u003E\")) + \"\\u003C/tr\\u003E\"));\n dumpHtml(obj, newAdsHtml, \"\\u003Cdiv id=\\\"SlDiv_1\\\"\\u003E\\u003Cdiv id=\\\"A9AdsWidgetAdsWrapper\\\"\\u003E\\u003Ctable class=\\\"SponsoredLinkColumnAds\\\"\\u003E \\u003Ctbody\\u003E \", \"\\u003C/tbody\\u003E \\u003C/table\\u003E \\u003C/div\\u003E\\u003C/div\\u003E\", divWideName);\n var heightOfOneAd = ((jQuery(((\"#\" + divMiddleName))).height() / adCount));\n if (((heightOfOneAd > expectedHeightMiddle))) {\n reformatType = \"2\";\n var newAdsHtml = ((((((((((((((((((((((((((((((((((((((((((((((((\"\\u003Cdiv class=\\\"SponsoredLinkItemTD\\\"\\u003E \\u003Cspan class=\\\"SponsoredLinkYellowBlockEnclosureTop\\\"\\u003E\\u003Cspan class=\\\"SponsoredLinkYellowBlockEnclosure\\\"\\u003E\\u003Cspan class=\\\"SponsoredLinkYellowBlock\\\"\\u003E \\u003C/span\\u003E \\u003C/span\\u003E\\u003C/span\\u003E \\u003Ca target=\\\"_blank\\\" href=\\\"\" + adPropertiesDelimiter)) + \"redirectUrl\")) + adPropertiesDelimiter)) + \"\\\" rel=\\\"nofollow\\\"\\u003E\\u003Cb\\u003E\")) + adPropertiesDelimiter)) + \"title\")) + adPropertiesDelimiter)) + \"\\u003C/b\\u003E\\u003C/a\\u003E \\u003Ca rel=\\\"nofollow\\\" href=\\\"\")) + adPropertiesDelimiter)) + \"redirectUrl\")) + adPropertiesDelimiter)) + \"\\\" target=\\\"_blank\\\"\\u003E\\u003Cimg src=\\\"http://g-ecx.images-amazon.com/images/G/01/icons/icon-offsite-sl-7069-t4._V171196157_.png\\\" width=\\\"23\\\" alt=\\\"opens new browser window\\\" align=\\\"absbottom\\\" style=\\\"padding-bottom:0px; margin-bottom:0px;\\\" height=\\\"20\\\" border=\\\"0\\\" /\\u003E\\u003C/a\\u003E \\u003Cdiv class=\\\"SponsoredLinkDescription\\\"\\u003E \\u003Ca target=\\\"_blank\\\" href=\\\"\")) + adPropertiesDelimiter)) + \"redirectUrl\")) + adPropertiesDelimiter)) + \"\\\" rel=\\\"nofollow\\\" class=\\\"SponsoredLinkDescriptionUrlLink\\\"\\u003E\")) + adPropertiesDelimiter)) + \"visibleUrl\")) + adPropertiesDelimiter)) + \"\\u003C/a\\u003E \\u003C/div\\u003E \\u003Cdiv class=\\\"SponsoredLinkDescription\\\"\\u003E \\u003Cspan class=\\\"SponsoredLinkDescriptionText\\\"\\u003E\")) + adPropertiesDelimiter)) + \"description\")) + adPropertiesDelimiter)) + \"\\u003C/span\\u003E \\u003C/div\\u003E \\u003C/div\\u003E\"));\n dumpHtml(obj, newAdsHtml, \"\\u003Cdiv id=\\\"SlDiv_2\\\"\\u003E\\u003Cdiv id=\\\"A9AdsWidgetAdsWrapper\\\"\\u003E\", \"\\u003C/div\\u003E\\u003C/div\\u003E\", divMiddleName);\n }\n ;\n ;\n }\n ;\n ;\n if (((typeof A9_SL_CSM_JS != \"undefined\"))) {\n A9_SL_CSM_JS(reformatType);\n }\n ;\n ;\n });\n });\n function dumpHtml(obj, newAdsHtml, topHtml, bottomHtml, divParent) {\n var i = 0;\n var completeAdsHtml = \"\";\n {\n var fin32keys = ((window.top.JSBNG_Replay.forInKeys)((obj))), fin32i = (0);\n (0);\n for (; (fin32i < fin32keys.length); (fin32i++)) {\n ((x) = (fin32keys[fin32i]));\n {\n var adChunks = newAdsHtml.split(adPropertiesDelimiter);\n for (var j = 0; ((j < adChunks.length)); j++) {\n if (((typeof obj[i][adChunks[j]] != \"undefined\"))) {\n adChunks[j] = obj[i][adChunks[j]];\n }\n ;\n ;\n };\n ;\n completeAdsHtml += adChunks.join(\"\");\n i++;\n };\n };\n };\n ;\n newAdsHtml = ((((topHtml + completeAdsHtml)) + bottomHtml));\n jQuery(((\"#\" + divParent))).replaceWith(newAdsHtml);\n };\n;\n});\nvar jsonAds = \"[{\\\"provider\\\":\\\"g\\\",\\\"description\\\":\\\"Chosen by top software vendors. View live examples & full docs\\\",\\\"title\\\":\\\"Real Enterprise AJAX\\\",\\\"redirectUrl\\\":\\\"http://rd.a9.com/srv/redirect/?info=AL8KkmCyH0iKVuQSIAm82YMncWvHz0gp6BxeEvaeP9L.5Wk3AAIDff.fYApbbQqksWFPSd8Hq5k.052aufVMxYsBi29wGUisxBLrH12CdnuWn3CbrcagHTHX1udiRtpz2uB4DWQob.L7QIjDEehutRGXeN3YsBZmcB2vaNF9..x3mHlfrDEudBQqC7gMRfGTkM44QaJLIrB9WhQHCSn3uAVpjDGlHe0ETwYvTWb6-7DUR99LfTS7Oyq.E.T08Q6DCQmTMYrADnq0ee54i58C-OaJJBOrU4hJ.4L5AYFGsgBnESkljPfDN.Ls4LJzVU-9eUadrRcHZsw0vt58KS2Gs-kWpSG9LGi957Dd0Vwl8pAhx8Qr5qwyDG5OBiUZn3qnCFyeoe8xmLRXGyr.nQpevzc3ehX.gLt5bGzKjJOGPmIo90ealK8K-V9Q1UKfcKmeQwNpch8NeMKmoDuSCSE8LkH.qdOySJxbsaHefDF9A3sYCCqwzmoIOjI0Fasa5Q2qgD88Sze6atJr8M.MHfQYLJH05rkHNwQKmy3yClFnFEMLz.cLIbiZdfwGUyK3Xaqz-BPFIJ-a74eQx.YS.7-23dE_&awt=1&s=\\\",\\\"visibleUrl\\\":\\\"www.smartclient.com/\\\"},{\\\"provider\\\":\\\"g\\\",\\\"description\\\":\\\"Find \\u003Cb\\u003EJavascript The Good Parts\\u003C/b\\u003E; Online at Ask.com. Try It Now!\\\",\\\"title\\\":\\\"\\u003Cb\\u003EJavascript The Good Parts\\u003C/b\\u003E\\\",\\\"redirectUrl\\\":\\\"http://rd.a9.com/srv/redirect/?info=AAFV92W9cuYKqQUBJdlfz8v1v83ZSqPuZD-C7fgh8dT9vIzgoqSlOci83RY71ecn-L.-EiIEfkucep8NmaiO.uW04kVQ3sXjHRxCyydC18Z9dvVztkK9PahpmZoXzzKaVtVZI56MW6Nlz-qy5PFXObwwLgOqnO0d5bWFjyvrrxeI8bg3HU6bdrNF.p8x7mIdk52rFDTupCtgCLNkaxC3NUroN7gzQMisxr9M3xg8GRqGDg1Uz5SnPUZW3zFSo7tiDSziA-EEtYMovtAnA4FMi3hAnY0CyBeEheSiEkGGmtPJDQsOTA2vRp0vB3NLhoJZ023tW-D6M8iUs-cbiS1nk67UW51b3w5m-r8KNT8MdzriG2OEWH6cujt2exjYa9EDBQpP3Px9SR8wQwSxaM0b6MNacqe7c.kav1FQJQMgWFj0Xih8v951VJNrHxN7I7BU-9BO5BUneZsjC5amK0XmK6BerG.RqF9fodmzLgisSODw5b-u.GyFvNtNjVWGmgMxrzRePAV6IXFbPQswczl8OXZtD4CLBn6YhDTg-abNRElkq3KdehjmtodT1F9H1UtW1H-cKy91-AVPGFJmKJ33gcdzGZz44sXLx5Qu0TQAu7IhTz8UAEKwOq-kXCKNITr2NWiy7qRb0gXikeWPBz1Gwn3ieZhuZcEU4JKay4QJmH3dyIZhHndeaf3LpqtaA1tT6ccpp5qxXJWSa5TPLf-1mD5HnE2sq6DxtHyKRYGkyy.bEs43NImOA7DiUDQLYXMScjD901kaabqvm5VuapBTI1Xl.T.hK2avsqDZ3tkqd4IRuiEJWZu22GNpotmUTiqo9w__&awt=1&s=\\\",\\\"visibleUrl\\\":\\\"www.ask.com/\\u003Cb\\u003EJavascript\\u003C/b\\u003E+The+\\u003Cb\\u003EGood\\u003C/b\\u003E+\\u003Cb\\u003EParts\\u003C/b\\u003E\\\"}]\";\nfunction enableFeedbackLinkDiv() {\n amznJQ.onReady(\"jQuery\", function() {\n jQuery(\"#ShowFeedbackLinkDiv\").show();\n });\n};\n;\nenableFeedbackLinkDiv();\nvar flag = 1;\nfunction showSLF() {\n if (((flag == 1))) {\n jQuery.post(\"/gp/product/handler.html\", {\n sid: \"176-5336870-9447366\",\n jsonAds: escape(jsonAds)\n }, function(data) {\n jQuery(\"#FeedbackFormDiv\").html(data);\n jQuery(\"#FeedbackFormDiv\").show();\n jQuery(\"#ShowFeedbackLinkDiv\").hide();\n jQuery(\"#ResponseFeedbackLinkDiv\").hide();\n flag = 0;\n });\n }\n else {\n jQuery(\"#reports-ads-abuse-form\").show();\n jQuery(\"#FeedbackFormDiv\").show();\n jQuery(\"#reports-ads-abuse\").show();\n jQuery(\"#ShowFeedbackLinkDiv\").hide();\n jQuery(\"#ResponseFeedbackLinkDiv\").hide();\n }\n;\n;\n};\n;");
1345 geval("function e3bb840522a6e7e8409178efff0ea058acfb1acea(JSBNG__event) {\n return false;\n};\n;");
1347 geval("function e507f26413b06f51fcaf835e5bf9a04e9d0b3d2f7(JSBNG__event) {\n return false;\n};\n;");
1349 geval("function e3137a023a5ae8ea7e80054e3fedf41a5d201998f(JSBNG__event) {\n return false;\n};\n;");
1351 geval("function e31000786ba1c36e79389f374509c774c9f5cbfd9(JSBNG__event) {\n amznJQ.available(\"jQuery\", function() {\n window.AMZN_LIKE_SUBMIT = true;\n });\n return false;\n};\n;");
1353 geval("amznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n amznJQ.available(\"amazonLike\", function() {\n var stateCache = new AmazonLikeStateCache(\"amznLikeStateCache_17653368709447366_dp_asin_0596517742\");\n stateCache.init();\n stateCache.ready(function() {\n if (((stateCache.getTimestamp() < 1373479175))) {\n stateCache.set(\"isLiked\", ((jQuery(\"#amznLikeStateCache_17653368709447366_dp_asin_0596517742_isLiked\").text() == \"true\")));\n stateCache.set(\"customerWhitelistStatus\", parseInt(jQuery(\"#amznLikeStateCache_17653368709447366_dp_asin_0596517742_customerWhitelistStatus\").text()));\n stateCache.set(\"likeCount\", parseInt(jQuery(\"#amznLikeStateCache_17653368709447366_dp_asin_0596517742_likeCount\").text()));\n stateCache.set(\"commifiedLikeCount\", jQuery(\"#amznLikeStateCache_17653368709447366_dp_asin_0596517742_commifiedLikeCount\").text());\n stateCache.set(\"commifiedLikeCountMinusOne\", jQuery(\"#amznLikeStateCache_17653368709447366_dp_asin_0596517742_commifiedLikeCountMinusOne\").text());\n stateCache.set(\"ts\", \"1373479175\");\n }\n ;\n ;\n if (!window.amznLikeStateCache) {\n window.amznLikeStateCache = {\n };\n }\n ;\n ;\n window.amznLikeStateCache[\"amznLikeStateCache_17653368709447366_dp_asin_0596517742\"] = stateCache;\n });\n var amznLikeDiv = jQuery(\"#amznLike_0596517742\");\n var stateCache = window.amznLikeStateCache[\"amznLikeStateCache_17653368709447366_dp_asin_0596517742\"];\n amznLikeDiv.remove();\n var amznLike;\n amznLike = amznLikeDiv.amazonLike({\n context: \"dp\",\n itemId: \"0596517742\",\n itemType: \"asin\",\n isLiked: stateCache.get(\"isLiked\"),\n customerWhitelistStatus: stateCache.get(\"customerWhitelistStatus\"),\n isCustomerSignedIn: false,\n isOnHover: false,\n isPressed: false,\n popoverWidth: 335,\n popoverAlign: \"right\",\n popoverOffset: 0,\n sessionId: \"176-5336870-9447366\",\n likeCount: stateCache.get(\"likeCount\"),\n commifiedLikeCount: stateCache.get(\"commifiedLikeCount\"),\n commifiedLikeCountMinusOne: stateCache.get(\"commifiedLikeCountMinusOne\"),\n isSignInRedirect: false,\n shareText: \"Share this item\",\n onBeforeAttachPopoverCallback: function() {\n jQuery(\"#likeAndShareBar\").append(amznLikeDiv).show();\n },\n spriteURL: \"http://g-ecx.images-amazon.com/images/G/01/x-locale/personalization/amznlike/amznlike_sprite_02._V196113939_.gif\",\n buttonOnClass: \"JSBNG__on\",\n buttonOffClass: \"off\",\n buttonPressedClass: \"pressed\",\n popoverHTML: ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((\"\\u003Cdiv id=\" + \"\\\"\")) + \"amazonLikePopoverWrapper_0596517742\")) + \"\\\"\")) + \" class=\")) + \"\\\"\")) + \"amazonLikePopoverWrapper amazonLikeContext_dp\")) + \"\\\"\")) + \" \\u003E\")) + String.fromCharCode(13))) + \"\\u003Cdiv class=\")) + \"\\\"\")) + \"amazonLikeBeak \")) + \"\\\"\")) + \"\\u003E \\u003C/div\\u003E \\u003Cdiv class=\")) + \"\\\"\")) + \"amazonLikePopover\")) + \"\\\"\")) + \"\\u003E\")) + String.fromCharCode(13))) + \"\\u003Cdiv class=\")) + \"\\\"\")) + \"likePopoverError\")) + \"\\\"\")) + \" style=\")) + \"\\\"\")) + \"display: none;\")) + \"\\\"\")) + \"\\u003E\")) + String.fromCharCode(13))) + \"\\u003Cspan class=\")) + \"\\\"\")) + \"error\")) + \"\\\"\")) + \" style=\")) + \"\\\"\")) + \"color: #900;\")) + \"\\\"\")) + \"\\u003E\\u003Cstrong\\u003EAn error has occurred. Please try your request again.\\u003C/strong\\u003E\\u003C/span\\u003E\")) + String.fromCharCode(13))) + \"\\u003C/div\\u003E\")) + String.fromCharCode(13))) + \"\\u003Cdiv class=\")) + \"\\\"\")) + \"likeOffPopoverContent\")) + \"\\\"\")) + \" \\u003E\")) + String.fromCharCode(13))) + \"\\u003Cdiv\\u003E\")) + String.fromCharCode(13))) + \"\\u003Cdiv class=\")) + \"\\\"\")) + \"likeCountText likeCountLoadingIndicator\")) + \"\\\"\")) + \" style=\")) + \"\\\"\")) + \"display: none;\")) + \"\\\"\")) + \"\\u003E\\u003Cimg src=\")) + \"\\\"\")) + \"http://g-ecx.images-amazon.com/images/G/01/javascripts/lib/popover/images/snake._V192571611_.gif\")) + \"\\\"\")) + \" width=\")) + \"\\\"\")) + \"16\")) + \"\\\"\")) + \" alt=\")) + \"\\\"\")) + \"Loading\")) + \"\\\"\")) + \" height=\")) + \"\\\"\")) + \"16\")) + \"\\\"\")) + \" border=\")) + \"\\\"\")) + \"0\")) + \"\\\"\")) + \" /\\u003E\\u003C/div\\u003E\")) + String.fromCharCode(13))) + \"\\u003Cspan style=\")) + \"\\\"\")) + \"font-weight: bold;\")) + \"\\\"\")) + \"\\u003E\\u003Ca class=\")) + \"\\\"\")) + \"likeSignInLink\")) + \"\\\"\")) + \" href=\")) + \"\\\"\")) + \"/gp/like/sign-in/sign-in.html/ref=pd_like_unrec_signin_nojs_dp?ie=UTF8&isRedirect=1&location=%2Fgp%2Flike%2Fexternal%2Fsubmit.html%2Fref%3Dpd_like_submit_like_unrec_nojs_dp%3Fie%3DUTF8%26action%3Dlike%26context%3Ddp%26itemId%3D0596517742%26itemType%3Dasin%26redirect%3D1%26redirectPath%3D%252Fgp%252Fproduct%252F0596517742%253Fref%25255F%253Dsr%25255F1%25255F1%2526s%253Dbooks%2526qid%253D1373479157%2526sr%253D1-1%2526keywords%253Djavascript%252520the%252520good%252520parts&useRedirectOnSuccess=1\")) + \"\\\"\")) + \"\\u003ESign in to like this\\u003C/a\\u003E.\\u003C/span\\u003E\")) + String.fromCharCode(13))) + \"\\u003C/div\\u003E\")) + String.fromCharCode(13))) + \"\\u003Cdiv class=\")) + \"\\\"\")) + \"spacer\")) + \"\\\"\")) + \"\\u003ETelling us what you like can improve your shopping experience. \\u003Ca class=\")) + \"\\\"\")) + \"grayLink\")) + \"\\\"\")) + \" href=\")) + \"\\\"\")) + \"/gp/help/customer/display.html/ref=pd_like_help_dp?ie=UTF8&nodeId=13316081#like\")) + \"\\\"\")) + \"\\u003ELearn more\\u003C/a\\u003E\\u003C/div\\u003E\")) + String.fromCharCode(13))) + \"\\u003C/div\\u003E\")) + String.fromCharCode(13))) + \"\\u003C/div\\u003E\")) + String.fromCharCode(13))) + \"\\u003C/div\\u003E\")),\n stateCache: stateCache\n });\n if (window.AMZN_LIKE_SUBMIT) {\n amznLike.onLike();\n }\n ;\n ;\n });\n});");
1355 geval("amznJQ.onReady(\"lazyLoadLib\", function() {\n jQuery(\"#customer_discussions_lazy_load_div\").lazyLoadContent({\n threshold: 400,\n url: \"/gp/rcxll/dpview/0596517742?ie=UTF8&enableDiscussionsRelatedForums=1&keywords=javascript%20the%20good%20parts&qid=1373479157&ref_=sr_1_1&s=books&sr=1-1&vi=custdiscuss\",\n metrics: true,\n JSBNG__name: \"customer_discussions\",\n cache: true\n });\n});");
1357 geval("amznJQ.onReady(\"lazyLoadLib\", function() {\n jQuery(\"#dp_bottom_lazy_lazy_load_div\").lazyLoadContent({\n threshold: 1200,\n url: \"/gp/rcxll/dpview/0596517742?ie=UTF8&keywords=javascript%20the%20good%20parts&qid=1373479157&ref_=sr_1_1&s=books&sr=1-1&vi=zbottest\",\n metrics: true,\n JSBNG__name: \"dp_bottom_lazy\",\n cache: true\n });\n});");
1359 geval("amznJQ.onReady(\"popover\", function() {\n jQuery(\"#ns_0M4YTA6K9C1VFV7TYXNC_714_1_hmd_pricing_feedback_trigger_hmd\").amazonPopoverTrigger({\n title: \"Tell Us About a Lower Price\",\n destination: \"/gp/pdp/pf/pricingFeedbackForm.html/ref=sr_1_1_pfhmd?ie=UTF8&ASIN=0596517742&PREFIX=ns_0M4YTA6K9C1VFV7TYXNC_714_2_&from=hmd&keywords=javascript%20the%20good%20parts&originalURI=%2Fgp%2Fproduct%2F0596517742&qid=1373479157&s=books&sr=1-1&storeID=books\",\n showOnHover: false,\n draggable: true\n });\n});");
1361 geval("var auiJavaScriptPIsAvailable = ((((typeof P === \"object\")) && ((typeof P.when === \"function\"))));\nvar rhfShovelerBootstrapFunction = function($) {\n (function($) {\n window.RECS_rhfShvlLoading = false;\n window.RECS_rhfShvlLoaded = false;\n window.RECS_rhfInView = false;\n window.RECS_rhfMetrics = {\n };\n $(\"#rhf_container\").show();\n var rhfShvlEventHandler = function() {\n if (((((!window.RECS_rhfShvlLoaded && !window.RECS_rhfShvlLoading)) && (($(\"#rhf_container\").size() > 0))))) {\n var yPosition = (($(window).scrollTop() + $(window).height()));\n var rhfElementFound = $(\"#rhfMainHeading\").size();\n var rhfPosition = $(\"#rhfMainHeading\").offset().JSBNG__top;\n if (/webkit.*mobile/i.test(JSBNG__navigator.userAgent)) {\n rhfPosition -= $(window).scrollTop();\n }\n ;\n ;\n if (((rhfElementFound && ((((rhfPosition - yPosition)) < 400))))) {\n window.RECS_rhfMetrics[\"start\"] = (new JSBNG__Date()).getTime();\n window.RECS_rhfShvlLoading = true;\n var handleSuccess = function(html) {\n $(\"#rhf_container\").html(html);\n $(\"#rhf0Shvl\").trigger(\"render-shoveler\");\n window.RECS_rhfShvlLoaded = true;\n window.RECS_rhfMetrics[\"loaded\"] = (new JSBNG__Date()).getTime();\n };\n var handleError = function() {\n $(\"#rhf_container\").hide();\n $(\"#rhf_error\").show();\n window.RECS_rhfMetrics[\"loaded\"] = \"error\";\n };\n var ajaxURL = \"/gp/history/external/full-rhf-rec-handler.html\";\n var ajaxArgs = {\n type: \"POST\",\n timeout: 10000,\n data: {\n shovelerName: \"rhf0\",\n key: \"rhf\",\n numToPreload: \"8\",\n isGateway: 0,\n refTag: \"pd_rhf_dp\",\n parentSession: \"176-5336870-9447366\",\n relatedRequestId: \"0M4YTA6K9C1VFV7TYXNC\",\n excludeASIN: \"0596517742\",\n renderPopover: 0,\n forceSprites: 1,\n currentPageType: \"Detail\",\n currentSubPageType: \"Glance\",\n searchAlias: \"\",\n keywords: \"amF2YXNjcmlwdCB0aGUgZ29vZCBwYXJ0cw==\",\n node: \"\",\n ASIN: \"\",\n searchResults: \"\",\n isAUI: 0\n },\n dataType: \"json\",\n success: function(data, JSBNG__status) {\n if (((((((typeof (data) === \"object\")) && data.success)) && data.html))) {\n handleSuccess(data.html);\n if (((((typeof (P) === \"object\")) && ((typeof (P.when) === \"function\"))))) {\n P.when(\"jQuery\", \"a-carousel-framework\").execute(function(jQuery, framework) {\n jQuery(\"#rhf_upsell_div .a-carousel-viewport\").addClass(\"a-carousel-slide\");\n framework.createAll();\n });\n }\n ;\n ;\n }\n else {\n handleError();\n }\n ;\n ;\n },\n error: function(xhr, JSBNG__status) {\n handleError();\n }\n };\n if (((((typeof (P) === \"object\")) && ((typeof (P.when) === \"function\"))))) {\n P.when(\"A\").execute(function(A) {\n A.$.ajax(ajaxURL, ajaxArgs);\n });\n }\n else {\n ajaxArgs[\"url\"] = ajaxURL;\n $.ajax(ajaxArgs);\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n };\n var rhfInView = function() {\n if (((!window.RECS_rhfInView && (($(\"#rhf_container\").size() > 0))))) {\n var yPosition = (($(window).scrollTop() + $(window).height()));\n var rhfElementFound = (($(\"#rhfMainHeading\").size() > 0));\n var rhfPosition = $(\"#rhfMainHeading\").offset().JSBNG__top;\n if (/webkit.*mobile/i.test(JSBNG__navigator.userAgent)) {\n rhfPosition -= $(window).scrollTop();\n }\n ;\n ;\n if (((rhfElementFound && ((((rhfPosition - yPosition)) < 0))))) {\n window.RECS_rhfInView = true;\n window.RECS_rhfMetrics[\"inView\"] = (new JSBNG__Date()).getTime();\n }\n ;\n ;\n }\n ;\n ;\n };\n window.rhfYBHTurnOn = function() {\n $.ajax({\n url: \"/gp/history/external/full-rhf-ybh-on-handler.html\",\n type: \"POST\",\n timeout: 2000,\n data: {\n parentSession: \"176-5336870-9447366\"\n },\n dataType: \"text\",\n success: function(data, JSBNG__status) {\n $(\"#yourBrowsingHistoryOnText\").JSBNG__find(\"p\").html(\"You don't have any recently viewed Items.\");\n $(\"#rhf-ybh-turn-on-link\").hide();\n }\n });\n };\n $(JSBNG__document).ready(rhfShvlEventHandler);\n $(window).JSBNG__scroll(rhfShvlEventHandler);\n $(JSBNG__document).ready(rhfInView);\n $(window).JSBNG__scroll(rhfInView);\n })($);\n};\nif (((((typeof (P) === \"object\")) && ((typeof (P.when) === \"function\"))))) {\n P.when(\"jQuery\", \"ready\").register(\"rhf-bootstrapper\", function($) {\n return {\n bootstrap: function() {\n return rhfShovelerBootstrapFunction($);\n }\n };\n });\n P.when(\"rhf-bootstrapper\").execute(function(rhfBootstrapper) {\n rhfBootstrapper.bootstrap();\n });\n}\n else {\n amznJQ.onReady(\"jQuery\", function() {\n rhfShovelerBootstrapFunction(jQuery);\n });\n}\n;\n;");
1363 ow881945950.JSBNG__attachEvent = undefined;
1365 f881945950_7.returns.push(undefined);
1367 geval("(function(a, b) {\n ((a.JSBNG__attachEvent ? a.JSBNG__attachEvent(\"JSBNG__onload\", b) : ((a.JSBNG__addEventListener && a.JSBNG__addEventListener(\"load\", b, !1)))));\n})(window, ((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sdaedc82b47673ce6de4c0b9c01978bd63c2c50e4_1), function() {\n JSBNG__setTimeout(((window.top.JSBNG_Replay.push)((window.top.JSBNG_Replay.sdaedc82b47673ce6de4c0b9c01978bd63c2c50e4_2), function() {\n var el = JSBNG__document.getElementById(\"sis_pixel_r2\");\n ((el && (el.innerHTML = \"\\u003Cdiv id=\\\"DAsis\\\" src=\\\"//s.amazon-adsystem.com/iu3?d=amazon.com&slot=navFooter&a2=01017d3764a0e22b99f7e0982c99277cfd1bf3789d8bed21f7702111fbed3b53824e&old_oo=0&cb=1373479175047\\\" width=\\\"1\\\" height=\\\"1\\\" frameborder=\\\"0\\\" marginwidth=\\\"0\\\" marginheight=\\\"0\\\" scrolling=\\\"no\\\"\\u003E\\u003C/div\\u003E\")));\n })), 300);\n})));");
1369 geval("amznJQ.addLogical(\"amazonLike\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/amazonLike/amazonLike-682075628._V1_.js\",]);");
1371 geval("amznJQ.onReady(\"jQuery\", function() {\n jQuery(\".MHRExpandLink\").click(function(JSBNG__event) {\n JSBNG__event.preventDefault();\n jQuery(this).hide();\n var parent = jQuery(this).parent();\n var fullText = ((parent.JSBNG__find(\".MHRHead\").html() + parent.JSBNG__find(\".MHRRest\").html()));\n var pxInitialSize = parent.height();\n parent.html(fullText);\n var pxTargetSize = parent.height();\n parent.height(pxInitialSize);\n parent.animate({\n height: ((pxTargetSize + \"px\"))\n });\n });\n});\namznJQ.onReady(\"jQuery\", function() {\n var voteAjaxDefaultBeforeSendReviews = function(buttonAnchor, buttonContainer, messageContainer) {\n messageContainer.html(\"Sending feedback...\");\n buttonContainer.hide();\n messageContainer.show();\n };\n var voteAjaxDefaultSuccessReviews = function(aData, aStatus, buttonAnchor, buttonContainer, messageContainer, isNoButton, inappUrl) {\n if (((aData.redirect == 1))) {\n return window.JSBNG__location.href = buttonAnchor.children[0].href;\n }\n ;\n ;\n if (((aData.error == 1))) {\n jQuery(buttonContainer.children()[0]).html(\"Sorry, we failed to record your vote. Please try again\");\n messageContainer.hide();\n buttonContainer.show();\n }\n else {\n messageContainer.html(\"Thank you for your feedback.\");\n if (((isNoButton == 1))) {\n messageContainer.append(\"\\u003Cspan class=\\\"black gl5\\\"\\u003EIf this review is inappropriate, \\u003Ca href=\\\"http://www.amazon.com/gp/voting/cast/Reviews/2115/RNX5PEPWHPSHW/Inappropriate/1/ref=cm_cr_dp_abuse_voteyn?ie=UTF8&target=&token=9D362508C757901421B9FAC8E9EAF5981B7B1B58&voteAnchorName=RNX5PEPWHPSHW.2115.Inappropriate.Reviews&voteSessionID=176-5336870-9447366\\\" class=\\\"noTextDecoration\\\" style=\\\"color: #039;\\\" \\u003Eplease let us know.\\u003C/a\\u003E\\u003C/span\\u003E\");\n messageContainer.JSBNG__find(\"a\").attr(\"href\", inappUrl);\n }\n ;\n ;\n messageContainer.addClass(\"green\");\n }\n ;\n ;\n };\n var voteAjaxDefaultErrorReviews = function(aStatus, aError, buttonAnchor, buttonContainer, messageContainer) {\n jQuery(buttonContainer.children()[0]).html(\"Sorry, we failed to record your vote. Please try again\");\n messageContainer.hide();\n buttonContainer.show();\n };\n jQuery(\".votingButtonReviews\").each(function() {\n jQuery(this).unbind(\"click.vote.Reviews\");\n jQuery(this).bind(\"click.vote.Reviews\", function() {\n var buttonAnchor = this;\n var buttonContainer = jQuery(this).parent();\n var messageContainer = jQuery(buttonContainer).next(\".votingMessage\");\n var inappUrl = messageContainer.children()[0].href;\n var isNoButton = jQuery(this).hasClass(\"noButton\");\n jQuery.ajax({\n type: \"GET\",\n dataType: \"json\",\n ajaxTimeout: 10000,\n cache: false,\n beforeSend: function() {\n voteAjaxDefaultBeforeSendReviews(buttonAnchor, buttonContainer, messageContainer);\n },\n success: function(data, textStatus) {\n voteAjaxDefaultSuccessReviews(data, textStatus, buttonAnchor, buttonContainer, messageContainer, isNoButton, inappUrl);\n },\n error: function(JSBNG__XMLHttpRequest, textStatus, errorThrown) {\n voteAjaxDefaultErrorReviews(textStatus, errorThrown, buttonAnchor, buttonContainer, messageContainer);\n },\n url: ((buttonAnchor.children[0].href + \"&type=json\"))\n });\n return false;\n });\n });\n});");
1373 geval("if (((amznJQ && amznJQ.addPL))) {\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/common/errors-alerts/error-styles-ssl._V219086192_.css\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/authportal/common/css/ap_global._V379708561_.css\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/checkout/signin-banner._V192194415_.gif\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/authportal/common/images/amazon_logo_no-org_mid._V153387053_.png\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/authportal/flex/reduced-nav/ap-flex-reduced-nav-2.1._V382581933_.css\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/authportal/common/js/ap_global-1.1._V371300931_.js\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/common/transparent-pixel._V386942464_.gif\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/common/buttons/sign-in-secure._V192194766_.gif\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/javascripts/lib/jquery/jquery-1.2.6.min._V253690767_.js\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/advertising/dev/js/live/adSnippet._V142890782_.js\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/gno/images/orangeBlue/navPackedSprites-US-22._V141013035_.png\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/orderApplication/js/authPortal/sign-in._V375965495_.js\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/authportal/flex/reduced-nav/ap-flex-reduced-nav-2.0._V393733149_.js\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/cs/css/images/amznbtn-sprite03._V387356454_.png\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/orderApplication/css/authPortal/sign-in._V392399058_.css\");\n amznJQ.addPL(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/common/login/fwcim._V369602065_.js\");\n}\n;\n;");
1375 geval("if (((window.amznJQ && amznJQ.addPL))) {\n amznJQ.addPL([\"http://z-ecx.images-amazon.com/images/G/01/AUIClients/AmazonUI.aff0ce299d8ddf2009c96f8326e68987a8ae59df.min._V1_.css\",\"http://z-ecx.images-amazon.com/images/G/01/AUIClients/AmazonUIPageJS.0dc375a02ca444aee997ad607d84d1385192713c.min._V384607259_.js\",\"http://z-ecx.images-amazon.com/images/G/01/AUIClients/AmazonUI.e8545a213b3c87a7feb5d35882c39903ed6997cb.min._V397413143_.js\",]);\n}\n;\n;");
1377 geval("amznJQ.available(\"jQuery\", function() {\n jQuery(window).load(function() {\n JSBNG__setTimeout(function() {\n var imageAssets = new Array();\n var jsCssAssets = new Array();\n imageAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/common/buy-buttons/review-1-click-order._V192251243_.gif\");\n imageAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/common/buttons/continue-shopping._V192193522_.gif\");\n imageAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/common/buy-buttons/thank-you-elbow._V192238786_.gif\");\n imageAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/communities/social/snwicons_v2._V369764580_.png\");\n imageAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/checkout/assets/carrot._V192196173_.gif\");\n imageAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/checkout/thank-you-page/assets/yellow-rounded-corner-sprite._V192238288_.gif\");\n imageAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/checkout/thank-you-page/assets/white-rounded-corner-sprite._V192259929_.gif\");\n imageAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/gno/beacon/BeaconSprite-US-01._V397411194_.png\");\n imageAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/x-locale/common/transparent-pixel._V386942464_.gif\");\n jsCssAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/nav2/gamma/share-with-friends-css-new/share-with-friends-css-new-share-17385.css._V154656367_.css\");\n jsCssAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/nav2/gamma/share-with-friends-js-new/share-with-friends-js-new-share-2043.js._V157885514_.js\");\n jsCssAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/nav2/gamma/websiteGridCSS/websiteGridCSS-websiteGridCSS-48346.css._V176526456_.css\");\n imageAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/I/51gdVAEfPUL._SX35_.jpg\");\n jsCssAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/browser-scripts/us-site-wide-css-beacon/site-wide-6804619766._V1_.css\");\n jsCssAssets.push(\"http://jsbngssl.images-na.ssl-images-amazon.com/images/G/01/browser-scripts/site-wide-js-1.2.6-beacon/site-wide-11198044143._V1_.js\");\n for (var i = 0; ((i < imageAssets.length)); i++) {\n new JSBNG__Image().src = imageAssets[i];\n };\n ;\n var isIE = 0;\n var isFireFox = /Firefox/.test(JSBNG__navigator.userAgent);\n if (isIE) {\n for (var i = 0; ((i < jsCssAssets.length)); i++) {\n new JSBNG__Image().src = jsCssAssets[i];\n };\n ;\n }\n else if (isFireFox) {\n for (var i = 0; ((i < jsCssAssets.length)); i++) {\n var o = JSBNG__document.createElement(\"object\");\n o.data = jsCssAssets[i];\n o.width = o.height = 0;\n JSBNG__document.body.appendChild(o);\n };\n ;\n }\n \n ;\n ;\n }, 2000);\n });\n});");
1379 geval("var ocInitTimestamp = 1373479175;\namznJQ.onCompletion(\"amznJQ.criticalFeature\", function() {\n amznJQ.available(\"jQuery\", function() {\n jQuery.ajax({\n url: \"http://z-ecx.images-amazon.com/images/G/01/orderApplication/javascript/pipeline/201201041713-ocd._V394759207_.js\",\n dataType: \"script\",\n cache: true\n });\n });\n});");
1381 geval("if (((!window.$SearchJS && window.$Nav))) {\n window.$SearchJS = $Nav.make();\n}\n;\n;\nif (window.$SearchJS) {\n $SearchJS.when(\"jQuery\").run(function(jQuery) {\n if (((jQuery.fn.jquery == \"1.2.6\"))) {\n var windowUnloadHandlers = jQuery.data(window, \"events\").unload;\n {\n var fin33keys = ((window.top.JSBNG_Replay.forInKeys)((windowUnloadHandlers))), fin33i = (0);\n var origUnloadUnbinder;\n for (; (fin33i < fin33keys.length); (fin33i++)) {\n ((origUnloadUnbinder) = (fin33keys[fin33i]));\n {\n break;\n };\n };\n };\n ;\n jQuery(window).unbind(\"unload\", windowUnloadHandlers[origUnloadUnbinder]).unload(function() {\n if (jQuery.browser.msie) {\n var elems = JSBNG__document.getElementsByTagName(\"*\"), pos = ((elems.length + 1)), dummy = {\n };\n jQuery.data(dummy);\n {\n var fin34keys = ((window.top.JSBNG_Replay.forInKeys)((dummy))), fin34i = (0);\n var expando;\n for (; (fin34i < fin34keys.length); (fin34i++)) {\n ((expando) = (fin34keys[fin34i]));\n {\n ;\n };\n };\n };\n ;\n while (pos--) {\n var elem = ((elems[pos] || JSBNG__document)), id = elem[expando];\n if (((((id && jQuery.cache[id])) && jQuery.cache[id].events))) {\n jQuery.JSBNG__event.remove(elem);\n }\n ;\n ;\n };\n ;\n }\n ;\n ;\n });\n }\n ;\n ;\n });\n $SearchJS.importEvent(\"search-sabc\", {\n global: \"amzn.sx.sabc\"\n });\n $SearchJS.when(\"jQuery\", \"search-sabc\", \"page.loaded\").run(function($, sabc) {\n var loadingSpinnerCss = ((((\"\\u003Cstyle type='text/css'\\u003E\" + \".loadingSpinner { background-image: url('http://g-ecx.images-amazon.com/images/G/01/nav2/images/gui/loading-large._V192184511_.gif '); background-repeat: no-repeat; height: 52px; width: 152px; margin-left: 50%; margin-top: 8px;}\")) + \"\\u003C/style\\u003E\"));\n $(\"head\").append($(loadingSpinnerCss).attr({\n type: \"text/css\"\n }));\n sabc.controllerInstance = new sabc.Controller(8, false, false, 5, [\"electronics-tradein\",\"moviestv-tradein\",\"textbooks-tradein\",\"videogames-tradein\",\"wireless-tradein\",\"books-tradein\",\"foreign-books-tradein\",\"music-tradein\",\"auctions\",\"local\",\"people\",\"tags\",\"ohs\",\"zshops\",\"community-reviews\",\"rp-listmania\",\"rp-sylt\",\"help\",\"digital-music\",\"digital-music-ss\",\"mp3-downloads\",\"music-dd\",\"us-digital-music-tree\",\"de-digital-music-tree\",\"fr-digital-music-tree\",\"uk-digital-music-tree\",\"digital-music-track\",\"digital-music-track-ss\",], [\"javascript the good parts\",]);\n });\n (function() {\n var origPreloader = ((((((window.amznJQ && window.amznJQ.addPL)) || ((window.A && window.A.preload)))) || (function() {\n \n }))), preloader = origPreloader;\n preloader([\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/search-css/search-css-1522082039._V1_.css\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/page-ajax/page-ajax-1808621310._V1_.js\",\"http://g-ecx.images-amazon.com/images/G/01/nav2/images/gui/searchSprite._V380202855_.png\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/us-site-wide-css-beacon/site-wide-6804619766._V1_.css\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/clickWithinSearchPageStatic/clickWithinSearchPageStatic-907040417._V1_.css\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/search-js-general/search-js-general-1348801466._V1_.js\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/search-ajax/search-ajax-3419689035._V1_.js\",\"http://g-ecx.images-amazon.com/images/G/01/gno/beacon/BeaconSprite-US-01._V397411194_.png\",\"http://g-ecx.images-amazon.com/images/G/01/x-locale/common/transparent-pixel._V386942464_.gif\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/site-wide-js-1.6.4-beacon/site-wide-11900254310._V1_.js\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/forester-client/forester-client-1094892990._V1_.js\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/csmCELLS/csmCELLS-2626677177._V1_.js\",\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/jserrors/jserrors-1871966242._V1_.js\",]);\n })();\n}\n;\n;");
1385 o0.ue_backdetect = o1;
1399 f881945950_0.returns.push(o1);
1401 o1.getTime = f881945950_397;
1405 f881945950_397.returns.push(1373479179086);
1407 f881945950_7.returns.push(undefined);
1409 f881945950_439 = function() { return f881945950_439.returns[f881945950_439.inst++]; };
1410 f881945950_439.returns = [];
1411 f881945950_439.inst = 0;
1413 ow881945950.JSBNG__onload = f881945950_439;
1415 geval("try {\n (function(a) {\n if (((JSBNG__document.ue_backdetect && JSBNG__document.ue_backdetect.ue_back))) {\n a.ue.bfini = JSBNG__document.ue_backdetect.ue_back.value;\n }\n ;\n ;\n if (a.uet) {\n a.uet(\"be\");\n }\n ;\n ;\n if (a.onLdEnd) {\n if (window.JSBNG__addEventListener) {\n window.JSBNG__addEventListener(\"load\", a.onLdEnd, false);\n }\n else {\n if (window.JSBNG__attachEvent) {\n window.JSBNG__attachEvent(\"JSBNG__onload\", a.onLdEnd);\n }\n ;\n ;\n }\n ;\n ;\n }\n ;\n ;\n if (a.ueh) {\n a.ueh(0, window, \"load\", a.onLd, 1);\n }\n ;\n ;\n if (((a.ue_pr && ((((a.ue_pr == 3)) || ((a.ue_pr == 4))))))) {\n a.ue._uep();\n }\n ;\n ;\n })(ue_csm);\n} catch (JSBNG_ex) {\n\n};");
1425 f881945950_0.returns.push(o4);
1431 f881945950_0.returns.push(o4);
1433 f881945950_443 = function() { return f881945950_443.returns[f881945950_443.inst++]; };
1434 f881945950_443.returns = [];
1435 f881945950_443.inst = 0;
1437 o4.toGMTString = f881945950_443;
1441 f881945950_443.returns.push("Invalid Date");
1445 f881945950_0.returns.push(o4);
1449 geval("try {\n (function(a) {\n a._uec = function(d) {\n var h = window, b = h.JSBNG__performance, f = ((b ? b.navigation.type : 0));\n if (((f == 0))) {\n var e = ((\"; expires=\" + new JSBNG__Date(((+new JSBNG__Date + 604800000))).toGMTString())), c = ((+new JSBNG__Date - ue_t0));\n if (((c > 0))) {\n var g = ((\"|\" + +new JSBNG__Date));\n JSBNG__document.cookie = ((((((((\"csm-hit=\" + ((d / c)).toFixed(2))) + g)) + e)) + \"; path=/\"));\n }\n ;\n ;\n }\n ;\n ;\n };\n })(ue_csm);\n _uec(447518);\n} catch (JSBNG_ex) {\n\n};");
1453 f881945950_0.returns.push(o4);
1455 o4.getHours = f881945950_413;
1457 f881945950_413.returns.push(13);
1459 o4.getMinutes = f881945950_414;
1461 f881945950_414.returns.push(59);
1463 o4.getSeconds = f881945950_415;
1467 f881945950_415.returns.push(40);
1469 f881945950_406.returns.push(null);
1471 f881945950_406.returns.push(null);
1473 f881945950_16.returns.push(3);
1477 f881945950_406.returns.push(o4);
1482 f881945950_0.returns.push(o5);
1484 o5.getHours = f881945950_413;
1486 f881945950_413.returns.push(13);
1488 o5.getMinutes = f881945950_414;
1490 f881945950_414.returns.push(59);
1492 o5.getSeconds = f881945950_415;
1496 f881945950_415.returns.push(41);
1498 f881945950_406.returns.push(null);
1500 f881945950_406.returns.push(null);
1502 f881945950_16.returns.push(4);
1504 f881945950_406.returns.push(o4);
1508 f881945950_0.returns.push(o5);
1510 o5.getHours = f881945950_413;
1512 f881945950_413.returns.push(13);
1514 o5.getMinutes = f881945950_414;
1516 f881945950_414.returns.push(59);
1518 o5.getSeconds = f881945950_415;
1522 f881945950_415.returns.push(42);
1524 f881945950_406.returns.push(null);
1526 f881945950_406.returns.push(null);
1528 f881945950_16.returns.push(5);
1530 f881945950_406.returns.push(o4);
1534 f881945950_0.returns.push(o5);
1536 o5.getHours = f881945950_413;
1538 f881945950_413.returns.push(13);
1540 o5.getMinutes = f881945950_414;
1542 f881945950_414.returns.push(59);
1544 o5.getSeconds = f881945950_415;
1548 f881945950_415.returns.push(43);
1550 f881945950_406.returns.push(null);
1552 f881945950_406.returns.push(null);
1554 f881945950_16.returns.push(6);
1556 f881945950_406.returns.push(o4);
1560 f881945950_0.returns.push(o5);
1562 o5.getHours = f881945950_413;
1564 f881945950_413.returns.push(13);
1566 o5.getMinutes = f881945950_414;
1568 f881945950_414.returns.push(59);
1570 o5.getSeconds = f881945950_415;
1574 f881945950_415.returns.push(44);
1576 f881945950_406.returns.push(null);
1578 f881945950_406.returns.push(null);
1580 f881945950_16.returns.push(7);
1582 f881945950_406.returns.push(o4);
1586 f881945950_0.returns.push(o5);
1588 o5.getHours = f881945950_413;
1590 f881945950_413.returns.push(13);
1592 o5.getMinutes = f881945950_414;
1594 f881945950_414.returns.push(59);
1596 o5.getSeconds = f881945950_415;
1600 f881945950_415.returns.push(45);
1602 f881945950_406.returns.push(null);
1604 f881945950_406.returns.push(null);
1606 f881945950_16.returns.push(8);
1608 f881945950_406.returns.push(o4);
1612 f881945950_0.returns.push(o5);
1614 o5.getHours = f881945950_413;
1616 f881945950_413.returns.push(13);
1618 o5.getMinutes = f881945950_414;
1620 f881945950_414.returns.push(59);
1622 o5.getSeconds = f881945950_415;
1626 f881945950_415.returns.push(46);
1628 f881945950_406.returns.push(null);
1630 f881945950_406.returns.push(null);
1632 f881945950_16.returns.push(9);
1634 f881945950_406.returns.push(o4);
1638 f881945950_0.returns.push(o5);
1640 o5.getHours = f881945950_413;
1642 f881945950_413.returns.push(13);
1644 o5.getMinutes = f881945950_414;
1646 f881945950_414.returns.push(59);
1648 o5.getSeconds = f881945950_415;
1652 f881945950_415.returns.push(47);
1654 f881945950_406.returns.push(null);
1656 f881945950_406.returns.push(null);
1658 f881945950_16.returns.push(10);
1660 f881945950_406.returns.push(o4);
1664 f881945950_0.returns.push(o5);
1666 o5.getHours = f881945950_413;
1668 f881945950_413.returns.push(13);
1670 o5.getMinutes = f881945950_414;
1672 f881945950_414.returns.push(59);
1674 o5.getSeconds = f881945950_415;
1678 f881945950_415.returns.push(48);
1680 f881945950_406.returns.push(null);
1682 f881945950_406.returns.push(null);
1684 f881945950_16.returns.push(11);
1686 f881945950_406.returns.push(o4);
1692 f881945950_0.returns.push(o6);
1694 o6.getTime = f881945950_397;
1698 f881945950_397.returns.push(1373479188430);
1706 o6.navigationStart = 1373479173975;
1708 o6.unloadEventStart = 1373479177633;
1710 o6.unloadEventEnd = 1373479177645;
1712 o6.redirectStart = 0;
1716 o6.fetchStart = 1373479173976;
1718 o6.domainLookupStart = 1373479173976;
1720 o6.domainLookupEnd = 1373479173976;
1722 o6.connectStart = 1373479173976;
1724 o6.connectEnd = 1373479173976;
1726 o6.secureConnectionStart = void 0;
1728 o6.requestStart = 1373479173977;
1730 o6.responseStart = 1373479177632;
1732 o6.responseEnd = 1373479177679;
1734 o6.domLoading = 1373479177633;
1736 o6.domInteractive = 1373479179088;
1738 o6.domContentLoadedEventStart = 1373479179096;
1740 o6.domContentLoadedEventEnd = 1373479179096;
1742 o6.domComplete = 1373479188429;
1744 o6.loadEventStart = 1373479188429;
1746 o6.loadEventEnd = 0;
1750 o1.redirectCount = 0;
1756 f881945950_0.returns.push(o1);
1758 o1.getTime = f881945950_397;
1762 f881945950_397.returns.push(1373479188476);
1766 f881945950_65.returns.push(o1);
1773 f881945950_0.returns.push(o1);
1777 f881945950_17.returns.push(12);
1779 f881945950_439.returns.push(undefined);
1781 f881945950_439.returns.push(undefined);
1783 f881945950_439.returns.push(undefined);
1785 f881945950_439.returns.push(undefined);
1787 f881945950_439.returns.push(undefined);
1789 f881945950_439.returns.push(undefined);
1791 f881945950_439.returns.push(undefined);
1793 f881945950_439.returns.push(undefined);
1795 f881945950_439.returns.push(undefined);
1797 f881945950_439.returns.push(undefined);
1799 f881945950_439.returns.push(undefined);
1801 f881945950_439.returns.push(undefined);
1803 f881945950_439.returns.push(undefined);
1805 f881945950_439.returns.push(undefined);
1807 f881945950_439.returns.push(undefined);
1809 f881945950_439.returns.push(undefined);
1811 f881945950_439.returns.push(undefined);
1813 f881945950_439.returns.push(undefined);
1815 f881945950_439.returns.push(undefined);
1817 f881945950_439.returns.push(undefined);
1819 f881945950_439.returns.push(undefined);
1821 f881945950_439.returns.push(undefined);
1823 f881945950_439.returns.push(undefined);
1825 f881945950_439.returns.push(undefined);
1827 f881945950_439.returns.push(undefined);
1829 f881945950_439.returns.push(undefined);
1831 f881945950_439.returns.push(undefined);
1833 f881945950_439.returns.push(undefined);
1835 f881945950_439.returns.push(undefined);
1837 f881945950_439.returns.push(undefined);
1839 f881945950_439.returns.push(undefined);
1841 f881945950_439.returns.push(undefined);
1843 f881945950_439.returns.push(undefined);
1845 f881945950_439.returns.push(undefined);
1847 f881945950_439.returns.push(undefined);
1849 f881945950_439.returns.push(undefined);
1851 f881945950_439.returns.push(undefined);
1853 f881945950_439.returns.push(undefined);
1855 f881945950_439.returns.push(undefined);
1857 f881945950_439.returns.push(undefined);
1859 f881945950_439.returns.push(undefined);
1861 f881945950_439.returns.push(undefined);
1863 f881945950_439.returns.push(undefined);
1865 f881945950_439.returns.push(undefined);
1867 f881945950_439.returns.push(undefined);
1869 f881945950_439.returns.push(undefined);
1871 f881945950_439.returns.push(undefined);
1873 f881945950_439.returns.push(undefined);
1875 f881945950_439.returns.push(undefined);
1877 f881945950_439.returns.push(undefined);
1879 f881945950_439.returns.push(undefined);
1881 f881945950_439.returns.push(undefined);
1883 f881945950_439.returns.push(undefined);
1885 f881945950_439.returns.push(undefined);
1887 f881945950_439.returns.push(undefined);
1889 f881945950_439.returns.push(undefined);
1891 f881945950_439.returns.push(undefined);
1893 f881945950_439.returns.push(undefined);
1895 f881945950_439.returns.push(undefined);
1897 f881945950_439.returns.push(undefined);
1899 f881945950_439.returns.push(undefined);
1901 f881945950_439.returns.push(undefined);
1903 f881945950_439.returns.push(undefined);
1905 f881945950_439.returns.push(undefined);
1907 f881945950_439.returns.push(undefined);
1909 f881945950_439.returns.push(undefined);
1911 f881945950_439.returns.push(undefined);
1913 f881945950_439.returns.push(undefined);
1915 f881945950_439.returns.push(undefined);
1917 f881945950_439.returns.push(undefined);
1919 f881945950_439.returns.push(undefined);
1921 f881945950_439.returns.push(undefined);
1923 f881945950_439.returns.push(undefined);
1925 f881945950_439.returns.push(undefined);
1927 f881945950_439.returns.push(undefined);
1929 f881945950_439.returns.push(undefined);
1931 f881945950_439.returns.push(undefined);
1933 f881945950_439.returns.push(undefined);
1935 f881945950_439.returns.push(undefined);
1937 f881945950_439.returns.push(undefined);
1939 f881945950_439.returns.push(undefined);
1941 f881945950_439.returns.push(undefined);
1943 f881945950_439.returns.push(undefined);
1945 f881945950_439.returns.push(undefined);
1947 f881945950_439.returns.push(undefined);
1949 f881945950_439.returns.push(undefined);
1951 f881945950_439.returns.push(undefined);
1953 f881945950_439.returns.push(undefined);
1955 f881945950_439.returns.push(undefined);
1957 f881945950_439.returns.push(undefined);
1959 f881945950_439.returns.push(undefined);
1961 f881945950_439.returns.push(undefined);
1963 f881945950_439.returns.push(undefined);
1965 f881945950_439.returns.push(undefined);
1967 f881945950_439.returns.push(undefined);
1969 f881945950_439.returns.push(undefined);
1971 f881945950_439.returns.push(undefined);
1973 f881945950_439.returns.push(undefined);
1975 f881945950_439.returns.push(undefined);
1977 f881945950_439.returns.push(undefined);
1979 f881945950_439.returns.push(undefined);
1981 f881945950_439.returns.push(undefined);
1983 f881945950_439.returns.push(undefined);
1985 f881945950_439.returns.push(undefined);
1987 f881945950_439.returns.push(undefined);
1989 f881945950_439.returns.push(undefined);
1991 f881945950_439.returns.push(undefined);
1993 f881945950_439.returns.push(undefined);
1995 f881945950_439.returns.push(undefined);
1997 f881945950_439.returns.push(undefined);
1999 f881945950_439.returns.push(undefined);
2001 f881945950_439.returns.push(undefined);
2003 f881945950_439.returns.push(undefined);
2005 f881945950_439.returns.push(undefined);
2007 f881945950_439.returns.push(undefined);
2009 f881945950_439.returns.push(undefined);
2011 f881945950_439.returns.push(undefined);
2013 f881945950_439.returns.push(undefined);
2015 f881945950_439.returns.push(undefined);
2017 f881945950_439.returns.push(undefined);
2019 f881945950_439.returns.push(undefined);
2021 f881945950_439.returns.push(undefined);
2023 f881945950_439.returns.push(undefined);
2025 f881945950_439.returns.push(undefined);
2027 f881945950_439.returns.push(undefined);
2029 f881945950_439.returns.push(undefined);
2031 f881945950_439.returns.push(undefined);
2033 f881945950_439.returns.push(undefined);
2035 f881945950_439.returns.push(undefined);
2037 f881945950_439.returns.push(undefined);
2039 f881945950_439.returns.push(undefined);
2041 f881945950_439.returns.push(undefined);
2043 f881945950_439.returns.push(undefined);
2045 f881945950_439.returns.push(undefined);
2047 f881945950_439.returns.push(undefined);
2049 f881945950_439.returns.push(undefined);
2051 f881945950_439.returns.push(undefined);
2053 f881945950_439.returns.push(undefined);
2055 f881945950_439.returns.push(undefined);
2057 f881945950_439.returns.push(undefined);
2059 f881945950_439.returns.push(undefined);
2061 f881945950_439.returns.push(undefined);
2063 f881945950_439.returns.push(undefined);
2065 f881945950_439.returns.push(undefined);
2067 f881945950_439.returns.push(undefined);
2069 f881945950_439.returns.push(undefined);
2071 f881945950_439.returns.push(undefined);
2073 f881945950_439.returns.push(undefined);
2075 f881945950_439.returns.push(undefined);
2077 f881945950_439.returns.push(undefined);
2079 f881945950_439.returns.push(undefined);
2081 f881945950_439.returns.push(undefined);
2083 f881945950_439.returns.push(undefined);
2085 f881945950_439.returns.push(undefined);
2087 f881945950_439.returns.push(undefined);
2089 f881945950_439.returns.push(undefined);
2091 f881945950_439.returns.push(undefined);
2093 f881945950_439.returns.push(undefined);
2095 f881945950_439.returns.push(undefined);
2097 f881945950_439.returns.push(undefined);
2099 f881945950_439.returns.push(undefined);
2101 f881945950_439.returns.push(undefined);
2103 f881945950_439.returns.push(undefined);
2105 f881945950_439.returns.push(undefined);
2107 f881945950_439.returns.push(undefined);
2109 f881945950_439.returns.push(undefined);
2111 f881945950_439.returns.push(undefined);
2113 f881945950_439.returns.push(undefined);
2115 f881945950_439.returns.push(undefined);
2117 f881945950_439.returns.push(undefined);
2119 f881945950_439.returns.push(undefined);
2121 f881945950_439.returns.push(undefined);
2123 f881945950_439.returns.push(undefined);
2125 f881945950_439.returns.push(undefined);
2127 f881945950_439.returns.push(undefined);
2129 f881945950_439.returns.push(undefined);
2131 f881945950_439.returns.push(undefined);
2133 f881945950_439.returns.push(undefined);
2135 f881945950_439.returns.push(undefined);
2137 f881945950_439.returns.push(undefined);
2139 f881945950_439.returns.push(undefined);
2141 f881945950_439.returns.push(undefined);
2143 f881945950_439.returns.push(undefined);
2145 f881945950_439.returns.push(undefined);
2147 f881945950_439.returns.push(undefined);
2149 f881945950_439.returns.push(undefined);
2151 f881945950_439.returns.push(undefined);
2153 f881945950_439.returns.push(undefined);
2155 f881945950_439.returns.push(undefined);
2157 f881945950_439.returns.push(undefined);
2159 f881945950_439.returns.push(undefined);
2161 f881945950_439.returns.push(undefined);
2163 f881945950_439.returns.push(undefined);
2165 f881945950_439.returns.push(undefined);
2167 f881945950_439.returns.push(undefined);
2169 f881945950_439.returns.push(undefined);
2171 f881945950_439.returns.push(undefined);
2173 f881945950_439.returns.push(undefined);
2175 f881945950_439.returns.push(undefined);
2177 f881945950_439.returns.push(undefined);
2179 f881945950_439.returns.push(undefined);
2181 f881945950_439.returns.push(undefined);
2183 f881945950_439.returns.push(undefined);
2185 f881945950_439.returns.push(undefined);
2187 f881945950_439.returns.push(undefined);
2189 f881945950_439.returns.push(undefined);
2191 f881945950_439.returns.push(undefined);
2193 f881945950_439.returns.push(undefined);
2195 f881945950_439.returns.push(undefined);
2197 f881945950_439.returns.push(undefined);
2199 f881945950_439.returns.push(undefined);
2201 f881945950_439.returns.push(undefined);
2203 f881945950_439.returns.push(undefined);
2205 f881945950_439.returns.push(undefined);
2207 f881945950_439.returns.push(undefined);
2209 f881945950_439.returns.push(undefined);
2211 f881945950_439.returns.push(undefined);
2213 f881945950_439.returns.push(undefined);
2215 f881945950_439.returns.push(undefined);
2217 f881945950_439.returns.push(undefined);
2219 f881945950_439.returns.push(undefined);
2221 f881945950_439.returns.push(undefined);
2223 f881945950_439.returns.push(undefined);
2225 f881945950_439.returns.push(undefined);
2227 f881945950_439.returns.push(undefined);
2229 f881945950_439.returns.push(undefined);
2231 f881945950_439.returns.push(undefined);
2233 f881945950_439.returns.push(undefined);
2235 f881945950_439.returns.push(undefined);
2237 f881945950_439.returns.push(undefined);
2239 f881945950_439.returns.push(undefined);
2241 f881945950_439.returns.push(undefined);
2243 f881945950_439.returns.push(undefined);
2245 f881945950_439.returns.push(undefined);
2247 f881945950_439.returns.push(undefined);
2249 f881945950_439.returns.push(undefined);
2251 f881945950_439.returns.push(undefined);
2253 f881945950_439.returns.push(undefined);
2255 f881945950_439.returns.push(undefined);
2257 f881945950_439.returns.push(undefined);
2259 f881945950_439.returns.push(undefined);
2261 f881945950_439.returns.push(undefined);
2263 f881945950_439.returns.push(undefined);
2265 f881945950_439.returns.push(undefined);
2267 f881945950_439.returns.push(undefined);
2269 f881945950_439.returns.push(undefined);
2271 f881945950_439.returns.push(undefined);
2273 f881945950_439.returns.push(undefined);
2275 f881945950_439.returns.push(undefined);
2277 f881945950_439.returns.push(undefined);
2279 f881945950_439.returns.push(undefined);
2281 f881945950_439.returns.push(undefined);
2283 f881945950_439.returns.push(undefined);
2285 f881945950_439.returns.push(undefined);
2287 f881945950_439.returns.push(undefined);
2289 f881945950_439.returns.push(undefined);
2291 f881945950_439.returns.push(undefined);
2293 f881945950_439.returns.push(undefined);
2295 f881945950_439.returns.push(undefined);
2297 f881945950_439.returns.push(undefined);
2299 f881945950_439.returns.push(undefined);
2301 f881945950_439.returns.push(undefined);
2303 f881945950_439.returns.push(undefined);
2305 f881945950_439.returns.push(undefined);
2307 f881945950_439.returns.push(undefined);
2309 f881945950_439.returns.push(undefined);
2311 f881945950_439.returns.push(undefined);
2313 f881945950_439.returns.push(undefined);
2315 f881945950_439.returns.push(undefined);
2317 f881945950_439.returns.push(undefined);
2319 f881945950_439.returns.push(undefined);
2321 f881945950_439.returns.push(undefined);
2323 f881945950_439.returns.push(undefined);
2325 f881945950_439.returns.push(undefined);
2327 f881945950_439.returns.push(undefined);
2329 f881945950_439.returns.push(undefined);
2331 f881945950_439.returns.push(undefined);
2333 f881945950_439.returns.push(undefined);
2335 f881945950_439.returns.push(undefined);
2337 f881945950_439.returns.push(undefined);
2339 f881945950_439.returns.push(undefined);
2341 f881945950_439.returns.push(undefined);
2343 f881945950_439.returns.push(undefined);
2345 f881945950_439.returns.push(undefined);
2347 f881945950_439.returns.push(undefined);
2349 f881945950_439.returns.push(undefined);
2352 geval("amznJQ.addLogical(\"search-sabc\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/search-sabc/search-sabc-605884639._V1_.js\",]);");
2354 f881945950_16.returns.push(13);
2356 JSBNG_Replay.s6642b77f01f4d49ef240b29032e6da4372359178_0[0](o5);
2358 f881945950_16.returns.push(14);
2360 JSBNG_Replay.sdaedc82b47673ce6de4c0b9c01978bd63c2c50e4_1[0](o5);
2366 f881945950_406.returns.push(o1);
2371 JSBNG_Replay.sdaedc82b47673ce6de4c0b9c01978bd63c2c50e4_2[0]();
2378 f881945950_0.returns.push(o1);
2380 o1.getHours = f881945950_413;
2382 f881945950_413.returns.push(13);
2384 o1.getMinutes = f881945950_414;
2386 f881945950_414.returns.push(59);
2388 o1.getSeconds = f881945950_415;
2392 f881945950_415.returns.push(49);
2394 f881945950_406.returns.push(null);
2396 f881945950_406.returns.push(null);
2398 f881945950_16.returns.push(15);
2400 f881945950_406.returns.push(o4);
2404 f881945950_0.returns.push(o1);
2406 o1.getHours = f881945950_413;
2408 f881945950_413.returns.push(13);
2410 o1.getMinutes = f881945950_414;
2412 f881945950_414.returns.push(59);
2414 o1.getSeconds = f881945950_415;
2418 f881945950_415.returns.push(50);
2420 f881945950_406.returns.push(null);
2422 f881945950_406.returns.push(null);
2424 f881945950_16.returns.push(16);
2426 f881945950_406.returns.push(o4);
2430 f881945950_0.returns.push(o1);
2432 o1.getHours = f881945950_413;
2434 f881945950_413.returns.push(13);
2436 o1.getMinutes = f881945950_414;
2438 f881945950_414.returns.push(59);
2440 o1.getSeconds = f881945950_415;
2444 f881945950_415.returns.push(51);
2446 f881945950_406.returns.push(null);
2448 f881945950_406.returns.push(null);
2450 f881945950_16.returns.push(17);
2452 f881945950_406.returns.push(o4);
2456 f881945950_0.returns.push(o1);
2458 o1.getHours = f881945950_413;
2460 f881945950_413.returns.push(13);
2462 o1.getMinutes = f881945950_414;
2464 f881945950_414.returns.push(59);
2466 o1.getSeconds = f881945950_415;
2470 f881945950_415.returns.push(52);
2472 f881945950_406.returns.push(null);
2474 f881945950_406.returns.push(null);
2476 f881945950_16.returns.push(18);
2478 f881945950_406.returns.push(o4);
2482 f881945950_0.returns.push(o1);
2484 o1.getHours = f881945950_413;
2486 f881945950_413.returns.push(13);
2488 o1.getMinutes = f881945950_414;
2490 f881945950_414.returns.push(59);
2492 o1.getSeconds = f881945950_415;
2496 f881945950_415.returns.push(53);
2498 f881945950_406.returns.push(null);
2500 f881945950_406.returns.push(null);
2502 f881945950_16.returns.push(19);
2504 f881945950_406.returns.push(o4);
2508 f881945950_0.returns.push(o1);
2510 o1.getHours = f881945950_413;
2512 f881945950_413.returns.push(13);
2514 o1.getMinutes = f881945950_414;
2516 f881945950_414.returns.push(59);
2518 o1.getSeconds = f881945950_415;
2522 f881945950_415.returns.push(54);
2524 f881945950_406.returns.push(null);
2526 f881945950_406.returns.push(null);
2528 f881945950_16.returns.push(20);
2530 f881945950_406.returns.push(o4);
2534 f881945950_0.returns.push(o1);
2536 o1.getHours = f881945950_413;
2538 f881945950_413.returns.push(13);
2540 o1.getMinutes = f881945950_414;
2542 f881945950_414.returns.push(59);
2544 o1.getSeconds = f881945950_415;
2548 f881945950_415.returns.push(55);
2550 f881945950_406.returns.push(null);
2552 f881945950_406.returns.push(null);
2554 f881945950_16.returns.push(21);
2556 f881945950_406.returns.push(o4);
2560 f881945950_0.returns.push(o1);
2562 o1.getHours = f881945950_413;
2564 f881945950_413.returns.push(13);
2566 o1.getMinutes = f881945950_414;
2568 f881945950_414.returns.push(59);
2570 o1.getSeconds = f881945950_415;
2574 f881945950_415.returns.push(56);
2576 f881945950_406.returns.push(null);
2578 f881945950_406.returns.push(null);
2580 f881945950_16.returns.push(22);
2582 f881945950_406.returns.push(o4);
2586 f881945950_0.returns.push(o1);
2588 o1.getHours = f881945950_413;
2590 f881945950_413.returns.push(13);
2592 o1.getMinutes = f881945950_414;
2594 f881945950_414.returns.push(59);
2596 o1.getSeconds = f881945950_415;
2600 f881945950_415.returns.push(57);
2602 f881945950_406.returns.push(null);
2604 f881945950_406.returns.push(null);
2606 f881945950_16.returns.push(23);
2608 f881945950_406.returns.push(o4);
2612 f881945950_0.returns.push(o1);
2614 o1.getHours = f881945950_413;
2616 f881945950_413.returns.push(13);
2618 o1.getMinutes = f881945950_414;
2620 f881945950_414.returns.push(59);
2622 o1.getSeconds = f881945950_415;
2626 f881945950_415.returns.push(58);
2628 f881945950_406.returns.push(null);
2630 f881945950_406.returns.push(null);
2632 f881945950_16.returns.push(24);
2634 f881945950_406.returns.push(o4);
2638 f881945950_0.returns.push(o1);
2640 o1.getHours = f881945950_413;
2642 f881945950_413.returns.push(13);
2644 o1.getMinutes = f881945950_414;
2646 f881945950_414.returns.push(59);
2648 o1.getSeconds = f881945950_415;
2652 f881945950_415.returns.push(59);
2654 f881945950_406.returns.push(null);
2656 f881945950_406.returns.push(null);
2658 f881945950_16.returns.push(25);
2660 f881945950_406.returns.push(o4);
2664 f881945950_0.returns.push(o1);
2666 o1.getHours = f881945950_413;
2668 f881945950_413.returns.push(14);
2670 o1.getMinutes = f881945950_414;
2672 f881945950_414.returns.push(0);
2674 o1.getSeconds = f881945950_415;
2678 f881945950_415.returns.push(0);
2680 f881945950_406.returns.push(null);
2682 f881945950_406.returns.push(null);
2684 f881945950_16.returns.push(26);
2686 f881945950_406.returns.push(o4);
2690 f881945950_0.returns.push(o1);
2692 o1.getHours = f881945950_413;
2694 f881945950_413.returns.push(14);
2696 o1.getMinutes = f881945950_414;
2698 f881945950_414.returns.push(0);
2700 o1.getSeconds = f881945950_415;
2704 f881945950_415.returns.push(1);
2706 f881945950_406.returns.push(null);
2708 f881945950_406.returns.push(null);
2710 f881945950_16.returns.push(27);
2712 f881945950_406.returns.push(o4);
2716 f881945950_0.returns.push(o1);
2718 o1.getHours = f881945950_413;
2720 f881945950_413.returns.push(14);
2722 o1.getMinutes = f881945950_414;
2724 f881945950_414.returns.push(0);
2726 o1.getSeconds = f881945950_415;
2730 f881945950_415.returns.push(2);
2732 f881945950_406.returns.push(null);
2734 f881945950_406.returns.push(null);
2736 f881945950_16.returns.push(28);
2738 f881945950_406.returns.push(o4);
2742 f881945950_0.returns.push(o1);
2744 o1.getHours = f881945950_413;
2746 f881945950_413.returns.push(14);
2748 o1.getMinutes = f881945950_414;
2750 f881945950_414.returns.push(0);
2752 o1.getSeconds = f881945950_415;
2756 f881945950_415.returns.push(3);
2758 f881945950_406.returns.push(null);
2760 f881945950_406.returns.push(null);
2762 f881945950_16.returns.push(29);
2764 f881945950_406.returns.push(o4);
2768 f881945950_0.returns.push(o1);
2770 o1.getHours = f881945950_413;
2772 f881945950_413.returns.push(14);
2774 o1.getMinutes = f881945950_414;
2776 f881945950_414.returns.push(0);
2778 o1.getSeconds = f881945950_415;
2782 f881945950_415.returns.push(4);
2784 f881945950_406.returns.push(null);
2786 f881945950_406.returns.push(null);
2788 f881945950_16.returns.push(30);
2790 f881945950_406.returns.push(o4);
2794 f881945950_0.returns.push(o1);
2796 o1.getHours = f881945950_413;
2798 f881945950_413.returns.push(14);
2800 o1.getMinutes = f881945950_414;
2802 f881945950_414.returns.push(0);
2804 o1.getSeconds = f881945950_415;
2808 f881945950_415.returns.push(5);
2810 f881945950_406.returns.push(null);
2812 f881945950_406.returns.push(null);
2814 f881945950_16.returns.push(31);
2816 f881945950_406.returns.push(o4);
2821 f881945950_0.returns.push(o1);
2823 o1.getHours = f881945950_413;
2825 f881945950_413.returns.push(14);
2827 o1.getMinutes = f881945950_414;
2829 f881945950_414.returns.push(0);
2831 o1.getSeconds = f881945950_415;
2835 f881945950_415.returns.push(6);
2837 f881945950_406.returns.push(null);
2839 f881945950_406.returns.push(null);
2841 f881945950_16.returns.push(32);
2843 f881945950_406.returns.push(o4);
2849 JSBNG_Replay.s6642b77f01f4d49ef240b29032e6da4372359178_1[0]();
2851 o1.type = "mozvisibilitychange";
2853 o1.originalEvent = void 0;
2855 o0.mozVisibilityState = "hidden";
2859 f881945950_0.returns.push(o2);
2864 fpc.call(JSBNG_Replay.sd77f26a2825b7813fef421f4fc64cccaae936b24_7[0], o0,o1);
2870 cb(); return null; }