Merge branch 'master' of /home/git/concurrency-benchmarks
[c11concurrency-benchmarks.git] / jsbench-2013.1 / amazon / firefox / urm.js
1 /* Replayable replacements for global functions */
2
3 /***************************************************************
4  * BEGIN STABLE.JS
5  **************************************************************/
6 //! stable.js 0.1.3, https://github.com/Two-Screen/stable
7 //! © 2012 Stéphan Kochen, Angry Bytes. MIT licensed.
8 (function() {
9
10 // A stable array sort, because `Array#sort()` is not guaranteed stable.
11 // This is an implementation of merge sort, without recursion.
12
13 var stable = function(arr, comp) {
14     if (typeof(comp) !== 'function') {
15         comp = function(a, b) {
16             a = String(a);
17             b = String(b);
18             if (a < b) return -1;
19             if (a > b) return 1;
20             return 0;
21         };
22     }
23
24     var len = arr.length;
25
26     if (len <= 1) return arr;
27
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.
31     var oarr = arr;
32     for (var chk = 1; chk < len; chk *= 2) {
33         arr = pass(arr, comp, chk);
34     }
35     for (var i = 0; i < len; i++) {
36         oarr[i] = arr[i];
37     }
38     return oarr;
39 };
40
41 // Run a single pass with the given chunk size. Returns a new array.
42 var pass = function(arr, comp, chk) {
43     var len = arr.length;
44     // Output, and position.
45     var result = new Array(len);
46     var i = 0;
47     // Step size / double chunk size.
48     var dbl = chk * 2;
49     // Bounds of the left and right chunks.
50     var l, r, e;
51     // Iterators over the left and right chunk.
52     var li, ri;
53
54     // Iterate over pairs of chunks.
55     for (l = 0; l < len; l += dbl) {
56         r = l + chk;
57         e = r + chk;
58         if (r > len) r = len;
59         if (e > len) e = len;
60
61         // Iterate both chunks in parallel.
62         li = l;
63         ri = r;
64         while (true) {
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++];
71                 }
72                 else {
73                     result[i++] = arr[ri++];
74                 }
75             }
76             // Nothing to compare, just flush what's left.
77             else if (li < r) {
78                 result[i++] = arr[li++];
79             }
80             else if (ri < e) {
81                 result[i++] = arr[ri++];
82             }
83             // Both iterators are at the chunk ends.
84             else {
85                 break;
86             }
87         }
88     }
89
90     return result;
91 };
92
93 var arrsort = function(comp) {
94     return stable(this, comp);
95 };
96
97 if (Object.defineProperty) {
98     Object.defineProperty(Array.prototype, "sort", {
99         configurable: true, writable: true, enumerable: false,
100         value: arrsort
101     });
102 } else {
103     Array.prototype.sort = arrsort;
104 }
105
106 })();
107 /***************************************************************
108  * END STABLE.JS
109  **************************************************************/
110
111 /*
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.
116  *
117  * Copyright (C) 2011, 2012 Purdue University
118  * Written by Gregor Richards
119  * All rights reserved.
120  * 
121  * Redistribution and use in source and binary forms, with or without
122  * modification, are permitted provided that the following conditions are met:
123  * 
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.
129  * 
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.
141  */
142
143 (function() {
144     // global eval alias
145     var geval = eval;
146
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) {
152         inbrowser = true;
153         if (window.parent && "JSBNG_handleResult" in window.parent) {
154             inharness = true;
155         }
156     } else if (typeof global !== "undefined") {
157         window = global;
158         window.top = window;
159     } else {
160         window = (function() { return this; })();
161         window.top = window;
162     }
163
164     if ("console" in window) {
165         window.JSBNG_Console = window.console;
166     }
167
168     var callpath = [];
169
170     // Workaround for bound functions as events
171     delete Function.prototype.bind;
172
173     // global state
174     var JSBNG_Replay = window.top.JSBNG_Replay = {
175         push: function(arr, fun) {
176             arr.push(fun);
177             return fun;
178         },
179
180         path: function(str) {
181             verifyPath(str);
182         },
183
184         forInKeys: function(of) {
185             var keys = [];
186             for (var k in of)
187                 keys.push(k);
188             return keys.sort();
189         }
190     };
191
192     // the actual replay runner
193     function onload() {
194         try {
195             delete window.onload;
196         } catch (ex) {}
197
198         var jr = JSBNG_Replay$;
199         var cb = function() {
200             var end = new Date().getTime();
201             finished = true;
202
203             var msg = "Time: " + (end - st) + "ms";
204     
205             if (inharness) {
206                 window.parent.JSBNG_handleResult({error:false, time:(end - st)});
207             } else if (inbrowser) {
208                 var res = document.createElement("div");
209     
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));
219     
220                 document.body.appendChild(res);
221             } else if (typeof console !== "undefined") {
222                 console.log(msg);
223             } else if (typeof print !== "undefined") {
224                 // hopefully not the browser print() function :)
225                 print(msg);
226             }
227         };
228
229         // force it to JIT
230         jr(false);
231
232         // then time it
233         var st = new Date().getTime();
234         while (jr !== null) {
235             jr = jr(true, cb);
236         }
237     }
238
239     // add a frame at replay time
240     function iframe(pageid) {
241         var iw;
242         if (inbrowser) {
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>");
249             iw.document.close();
250         } else {
251             // no general way, just lie and do horrible things
252             var topwin = window;
253             (function() {
254                 var window = {};
255                 window.window = window;
256                 window.top = topwin;
257                 window.JSBNG_Replay_geval = function(str) {
258                     eval(str);
259                 }
260                 iw = window;
261             })();
262         }
263         return iw;
264     }
265
266     // called at the end of the replay stuff
267     function finalize() {
268         if (inbrowser) {
269             setTimeout(onload, 0);
270         } else {
271             onload();
272         }
273     }
274
275     // verify this recorded value and this replayed value are close enough
276     function verify(rep, rec) {
277         if (rec !== rep &&
278             (rep === rep || rec === rec) /* NaN test */) {
279             // FIXME?
280             if (typeof rec === "function" && typeof rep === "function") {
281                 return true;
282             }
283             if (typeof rec !== "object" || rec === null ||
284                 !(("__JSBNG_unknown_" + typeof(rep)) in rec)) {
285                 return false;
286             }
287         }
288         return true;
289     }
290
291     // general message
292     var firstMessage = true;
293     function replayMessage(msg) {
294         if (inbrowser) {
295             if (firstMessage)
296                 document.open();
297             firstMessage = false;
298             document.write(msg);
299         } else {
300             console.log(msg);
301         }
302     }
303
304     // complain when there's an error
305     function verificationError(msg) {
306         if (finished) return;
307         if (inharness) {
308             window.parent.JSBNG_handleResult({error:true, msg: msg});
309         } else replayMessage(msg);
310         throw new Error();
311     }
312
313     // to verify a set
314     function verifySet(objstr, obj, prop, gvalstr, gval) {
315         if (/^on/.test(prop)) {
316             // these aren't instrumented compatibly
317             return;
318         }
319
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);
324         }
325     }
326
327     // to verify a call or new
328     function verifyCall(iscall, func, cthis, cargs) {
329         var ok = true;
330         var callArgs = func.callArgs[func.inst];
331         iscall = iscall ? 1 : 0;
332         if (cargs.length !== callArgs.length - 1) {
333             ok = false;
334         } else {
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;
338             }
339         }
340         if (!ok) {
341             var msg = "Call verification failure!";
342             verificationError(msg);
343         }
344
345         return func.returns[func.inst++];
346     }
347
348     // to verify the callpath
349     function verifyPath(func) {
350         var real = callpath.shift();
351         if (real !== func) {
352             var msg = "Call path verification failure! Expected " + real + ", found " + func;
353             verificationError(msg);
354         }
355     }
356
357     // figure out how to define getters
358     var defineGetter;
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});
364         };
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);
372         };
373     } else {
374         defineGetter = function() {
375             verificationError("This replay requires getters for correct behavior, and your JS engine appears to be incapable of defining getters. Sorry!");
376         };
377     }
378
379     var defineRegetter = function(obj, prop, getter, setter) {
380         defineGetter(obj, prop, function() {
381             return getter.call(this, prop);
382         }, function(val) {
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,
387                 "value": val
388             });
389         });
390     }
391
392     // for calling events
393     var fpc = Function.prototype.call;
394
395 // resist the urge, don't put a })(); here!
396 /******************************************************************************
397  * Auto-generated below this comment
398  *****************************************************************************/
399 var ow881945950 = window;
400 var f881945950_0;
401 var o0;
402 var f881945950_7;
403 var f881945950_16;
404 var f881945950_17;
405 var o1;
406 var o2;
407 var o3;
408 var f881945950_65;
409 var f881945950_393;
410 var f881945950_395;
411 var f881945950_397;
412 var o4;
413 var o5;
414 var f881945950_406;
415 var o6;
416 var o7;
417 var o8;
418 var f881945950_413;
419 var f881945950_414;
420 var f881945950_415;
421 var f881945950_423;
422 var f881945950_427;
423 var f881945950_439;
424 var f881945950_443;
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 = [];
430 // 1
431 // record generated by JSBench  at 2013-07-10T17:55:49.619Z
432 // 2
433 // 3
434 f881945950_0 = function() { return f881945950_0.returns[f881945950_0.inst++]; };
435 f881945950_0.returns = [];
436 f881945950_0.inst = 0;
437 // 4
438 ow881945950.JSBNG__Date = f881945950_0;
439 // 5
440 o0 = {};
441 // 6
442 ow881945950.JSBNG__document = o0;
443 // 17
444 f881945950_7 = function() { return f881945950_7.returns[f881945950_7.inst++]; };
445 f881945950_7.returns = [];
446 f881945950_7.inst = 0;
447 // 18
448 ow881945950.JSBNG__addEventListener = f881945950_7;
449 // 19
450 ow881945950.JSBNG__top = ow881945950;
451 // 28
452 ow881945950.JSBNG__scrollX = 0;
453 // 29
454 ow881945950.JSBNG__scrollY = 0;
455 // 38
456 f881945950_16 = function() { return f881945950_16.returns[f881945950_16.inst++]; };
457 f881945950_16.returns = [];
458 f881945950_16.inst = 0;
459 // 39
460 ow881945950.JSBNG__setTimeout = f881945950_16;
461 // 40
462 f881945950_17 = function() { return f881945950_17.returns[f881945950_17.inst++]; };
463 f881945950_17.returns = [];
464 f881945950_17.inst = 0;
465 // 41
466 ow881945950.JSBNG__setInterval = f881945950_17;
467 // 60
468 ow881945950.JSBNG__frames = ow881945950;
469 // 63
470 ow881945950.JSBNG__self = ow881945950;
471 // 70
472 ow881945950.JSBNG__content = ow881945950;
473 // 81
474 ow881945950.JSBNG__closed = false;
475 // 84
476 ow881945950.JSBNG__pkcs11 = null;
477 // 87
478 ow881945950.JSBNG__opener = null;
479 // 88
480 ow881945950.JSBNG__defaultStatus = "";
481 // 89
482 o1 = {};
483 // 90
484 ow881945950.JSBNG__location = o1;
485 // 91
486 ow881945950.JSBNG__innerWidth = 994;
487 // 92
488 ow881945950.JSBNG__innerHeight = 603;
489 // 93
490 ow881945950.JSBNG__outerWidth = 994;
491 // 94
492 ow881945950.JSBNG__outerHeight = 690;
493 // 95
494 ow881945950.JSBNG__screenX = 24;
495 // 96
496 ow881945950.JSBNG__screenY = 28;
497 // 97
498 ow881945950.JSBNG__mozInnerScreenX = 0;
499 // 98
500 ow881945950.JSBNG__mozInnerScreenY = 0;
501 // 99
502 ow881945950.JSBNG__pageXOffset = 0;
503 // 100
504 ow881945950.JSBNG__pageYOffset = 0;
505 // 101
506 ow881945950.JSBNG__scrollMaxX = 0;
507 // 102
508 ow881945950.JSBNG__scrollMaxY = 0;
509 // 103
510 ow881945950.JSBNG__fullScreen = false;
511 // 136
512 ow881945950.JSBNG__frameElement = null;
513 // 141
514 ow881945950.JSBNG__mozPaintCount = 0;
515 // 144
516 ow881945950.JSBNG__mozAnimationStartTime = 1373479177771;
517 // 145
518 o2 = {};
519 // 146
520 ow881945950.JSBNG__mozIndexedDB = o2;
521 // 151
522 o3 = {};
523 // 152
524 ow881945950.JSBNG__performance = o3;
525 // 155
526 ow881945950.JSBNG__devicePixelRatio = 1;
527 // 160
528 f881945950_65 = function() { return f881945950_65.returns[f881945950_65.inst++]; };
529 f881945950_65.returns = [];
530 f881945950_65.inst = 0;
531 // 161
532 ow881945950.JSBNG__Image = f881945950_65;
533 // 166
534 ow881945950.JSBNG__name = "uaMatch";
535 // 173
536 ow881945950.JSBNG__status = "";
537 // 176
538 ow881945950.JSBNG__Components = undefined;
539 // 771
540 ow881945950.JSBNG__indexedDB = o2;
541 // undefined
542 o2 = null;
543 // 804
544 ow881945950.JSBNG__onerror = null;
545 // 809
546 // 0
547 JSBNG_Replay$ = function(real, cb) { if (!real) return;
548 // 811
549 o2 = {};
550 // 812
551 f881945950_0.returns.push(o2);
552 // undefined
553 o2 = null;
554 // 810
555 geval("var ue_t0 = ((ue_t0 || +new JSBNG__Date()));");
556 // 814
557 o2 = {};
558 // 815
559 f881945950_0.returns.push(o2);
560 // undefined
561 o2 = null;
562 // 816
563 o2 = {};
564 // 817
565 f881945950_0.returns.push(o2);
566 // undefined
567 o2 = null;
568 // 818
569 o2 = {};
570 // 819
571 f881945950_0.returns.push(o2);
572 // undefined
573 o2 = null;
574 // 820
575 o2 = {};
576 // 821
577 f881945950_0.returns.push(o2);
578 // undefined
579 o2 = null;
580 // 822
581 o2 = {};
582 // 823
583 f881945950_0.returns.push(o2);
584 // undefined
585 o2 = null;
586 // 824
587 ow881945950.JSBNG__onJSBNG__stop = undefined;
588 // 825
589 f881945950_393 = function() { return f881945950_393.returns[f881945950_393.inst++]; };
590 f881945950_393.returns = [];
591 f881945950_393.inst = 0;
592 // 826
593 ow881945950.JSBNG__onbeforeunload = f881945950_393;
594 // 827
595 o0.webkitHidden = void 0;
596 // 828
597 o0.oHidden = void 0;
598 // 829
599 o0.msHidden = void 0;
600 // 830
601 o0.mozHidden = false;
602 // 831
603 o0.mozVisibilityState = "visible";
604 // 832
605 o2 = {};
606 // 833
607 f881945950_0.returns.push(o2);
608 // undefined
609 o2 = null;
610 // 834
611 f881945950_395 = function() { return f881945950_395.returns[f881945950_395.inst++]; };
612 f881945950_395.returns = [];
613 f881945950_395.inst = 0;
614 // 835
615 o0.JSBNG__addEventListener = f881945950_395;
616 // 836
617 f881945950_395.returns.push(undefined);
618 // 837
619 f881945950_7.returns.push(undefined);
620 // 838
621 o2 = {};
622 // 839
623 f881945950_0.returns.push(o2);
624 // 840
625 f881945950_397 = function() { return f881945950_397.returns[f881945950_397.inst++]; };
626 f881945950_397.returns = [];
627 f881945950_397.inst = 0;
628 // 841
629 o2.getTime = f881945950_397;
630 // undefined
631 o2 = null;
632 // 842
633 f881945950_397.returns.push(1373479177880);
634 // 843
635 o2 = {};
636 // 844
637 f881945950_0.returns.push(o2);
638 // undefined
639 o2 = null;
640 // 845
641 o2 = {};
642 // 846
643 f881945950_0.returns.push(o2);
644 // undefined
645 o2 = null;
646 // 847
647 o2 = {};
648 // 848
649 f881945950_0.returns.push(o2);
650 // undefined
651 o2 = null;
652 // 813
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();");
654 // 850
655 o2 = {};
656 // 851
657 f881945950_65.returns.push(o2);
658 // 852
659 // 853
660 // undefined
661 o2 = null;
662 // 849
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})();");
664 // 854
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}());");
666 // 855
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;");
668 // 856
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;");
670 // 857
671 geval("var gbEnableTwisterJS = 0;\nvar isTwisterPage = 0;");
672 // 858
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;");
674 // 859
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});");
676 // 860
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});");
678 // 862
679 o2 = {};
680 // 863
681 f881945950_0.returns.push(o2);
682 // 864
683 o2.getTime = f881945950_397;
684 // undefined
685 o2 = null;
686 // 865
687 f881945950_397.returns.push(1373479178159);
688 // 861
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)));");
690 // 867
691 o2 = {};
692 // 868
693 f881945950_0.returns.push(o2);
694 // 869
695 o2.getTime = f881945950_397;
696 // 870
697 f881945950_397.returns.push(1373479178221);
698 // 871
699 o4 = {};
700 // 872
701 f881945950_65.returns.push(o4);
702 // 873
703 // 874
704 // 866
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\")));");
706 // 877
707 o5 = {};
708 // 878
709 f881945950_65.returns.push(o5);
710 // 879
711 // 875
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})();");
713 // 880
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;");
715 // 881
716 geval("function e5209abad2ea9a8e8a3d19b988fd4501696abff96(JSBNG__event) {\n    return false;\n};\n;");
717 // 883
718 f881945950_406 = function() { return f881945950_406.returns[f881945950_406.inst++]; };
719 f881945950_406.returns = [];
720 f881945950_406.inst = 0;
721 // 884
722 o0.getElementById = f881945950_406;
723 // 885
724 o6 = {};
725 // 886
726 f881945950_406.returns.push(o6);
727 // 889
728 o7 = {};
729 // 890
730 f881945950_406.returns.push(o7);
731 // 891
732 o7.className = "size0 bottom-thumbs main-image-widget-for-dp standard";
733 // 892
734 // 893
735 // 894
736 // 895
737 o8 = {};
738 // 896
739 o6.style = o8;
740 // 897
741 // 882
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);");
743 // 898
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;");
745 // 899
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});");
747 // 900
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 &quot;Add to Cart&quot;\");\n    });\n});");
749 // 901
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;");
751 // 902
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;");
753 // 904
754 o2 = {};
755 // 905
756 f881945950_0.returns.push(o2);
757 // 906
758 o2.getTime = f881945950_397;
759 // undefined
760 o2 = null;
761 // 907
762 f881945950_397.returns.push(1373479178221);
763 // 908
764 o4 = {};
765 // 909
766 f881945950_65.returns.push(o4);
767 // 910
768 // 911
769 // undefined
770 o4 = null;
771 // 903
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;");
773 // 914
774 o5 = {};
775 // 915
776 f881945950_65.returns.push(o5);
777 // 916
778 // undefined
779 o5 = null;
780 // 912
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})();");
782 // 917
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;");
784 // 918
785 geval("function e5209abad2ea9a8e8a3d19b988fd4501696abff96(JSBNG__event) {\n    return false;\n};\n;");
786 // 920
787 f881945950_406 = function() { return f881945950_406.returns[f881945950_406.inst++]; };
788 f881945950_406.returns = [];
789 f881945950_406.inst = 0;
790 // 922
791 o6 = {};
792 // 923
793 f881945950_406.returns.push(o6);
794 // 926
795 o7 = {};
796 // 927
797 f881945950_406.returns.push(o7);
798 // 928
799 o7.className = "size0 bottom-thumbs main-image-widget-for-dp standard";
800 // 929
801 // undefined
802 o7 = null;
803 // 930
804 // 931
805 // 932
806 o8 = {};
807 // 933
808 o6.style = o8;
809 // undefined
810 o6 = null;
811 // 934
812 // undefined
813 o8 = null;
814 // 919
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);");
816 // 935
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;");
818 // 936
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});");
820 // 937
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 &quot;Add to Cart&quot;\");\n    });\n});");
822 // 938
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;");
824 // 939
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;");
826 // 941
827 o2 = {};
828 // undefined
829 o2 = null;
830 // 940
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;");
832 // 942
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});");
834 // 943
835 geval("function e0ad247b2845d5a62f8d680c69024109c41a3aba5(JSBNG__event) {\n    return false;\n};\n;");
836 // 944
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;");
838 // 945
839 geval("function ef6ad9c87b00e618dc7a9b5e5140bbc8ba2edd739(JSBNG__event) {\n    window.open(this.href, \"_blank\", \"location=yes,width=700,height=400\");\n    return false;\n};\n;");
840 // 946
841 geval("function ed3bd13821903ecb97b20e31910662670d650c5cb(JSBNG__event) {\n    window.open(this.href, \"_blank\", \"location=yes,width=700,height=400\");\n    return false;\n};\n;");
842 // 947
843 geval("function ea6dbd42abc1e9b3dbebd197268ce92a9b0e0b4ad(JSBNG__event) {\n    window.open(this.href, \"_blank\", \"location=yes,width=700,height=570\");\n    return false;\n};\n;");
844 // 948
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;");
846 // 949
847 geval("amznJQ.onReady(\"bylinePopover\", function() {\n\n});");
848 // 950
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});");
850 // 951
851 geval("function ed2276bf20246f30c68990f23f81d89eadb38c166(JSBNG__event) {\n    return acrPopoverHover(this, 1);\n};\n;");
852 // 952
853 geval("function ecf07c0edda27bc80d526213d7c6929ffbddc8bbc(JSBNG__event) {\n    return acrPopoverHover(this, 0);\n};\n;");
854 // 953
855 geval("function efaf91b69248e7e79f131f7036cba56d101e7bfb6(JSBNG__event) {\n    return acrPopoverHover(this, 1);\n};\n;");
856 // 954
857 geval("function efb799c660c9baca416793b32167d426e04dee131(JSBNG__event) {\n    return acrPopoverHover(this, 0);\n};\n;");
858 // 955
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;");
860 // 956
861 geval("amznJQ.declareAvailable(\"gbPriceBlockFields\");");
862 // 958
863 o2 = {};
864 // 959
865 f881945950_0.returns.push(o2);
866 // 960
867 f881945950_413 = function() { return f881945950_413.returns[f881945950_413.inst++]; };
868 f881945950_413.returns = [];
869 f881945950_413.inst = 0;
870 // 961
871 o2.getHours = f881945950_413;
872 // 962
873 f881945950_413.returns.push(13);
874 // 963
875 f881945950_414 = function() { return f881945950_414.returns[f881945950_414.inst++]; };
876 f881945950_414.returns = [];
877 f881945950_414.inst = 0;
878 // 964
879 o2.getMinutes = f881945950_414;
880 // 965
881 f881945950_414.returns.push(59);
882 // 966
883 f881945950_415 = function() { return f881945950_415.returns[f881945950_415.inst++]; };
884 f881945950_415.returns = [];
885 f881945950_415.inst = 0;
886 // 967
887 o2.getSeconds = f881945950_415;
888 // 968
889 f881945950_415.returns.push(38);
890 // 969
891 o4 = {};
892 // 970
893 f881945950_0.returns.push(o4);
894 // 971
895 o4.getHours = f881945950_413;
896 // 972
897 f881945950_413.returns.push(13);
898 // 973
899 o4.getMinutes = f881945950_414;
900 // 974
901 f881945950_414.returns.push(59);
902 // 975
903 o4.getSeconds = f881945950_415;
904 // 976
905 f881945950_415.returns.push(38);
906 // 977
907 o0.layers = void 0;
908 // 978
909 o0.all = void 0;
910 // 981
911 f881945950_406.returns.push(null);
912 // 986
913 f881945950_406.returns.push(null);
914 // 987
915 f881945950_16.returns.push(2);
916 // 957
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};");
918 // 988
919 geval("ftRegisterCountdownElementID(\"ftCountdown\");\nftRegisterEntireMessageElementID(\"ftMessage\");");
920 // 989
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;");
922 // 992
923 o5 = {};
924 // 993
925 f881945950_406.returns.push(o5);
926 // 994
927 o6 = {};
928 // 995
929 o5.style = o6;
930 // 997
931 // 990
932 geval("var timerDiv = JSBNG__document.getElementById(\"ftMessageTimer\");\nif (((timerDiv && timerDiv.style))) {\n    timerDiv.style.display = \"inline\";\n}\n;\n;");
933 // 998
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;");
935 // 999
936 geval("function ee976dbac42452e3152d3a48f703b0a8e017fa4d8(JSBNG__event) {\n    javascript:\n    Vellum.h();\n};\n;");
937 // 1000
938 geval("function ed771f07937fda9c8dd04b0376cf96f16a586029a(JSBNG__event) {\n    javascript:\n    Vellum.h();\n};\n;");
939 // 1001
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});");
941 // 1003
942 o7 = {};
943 // 1004
944 f881945950_0.returns.push(o7);
945 // 1005
946 o2 = {};
947 // 1006
948 f881945950_0.returns.push(o2);
949 // 1007
950 f881945950_413 = function() { return f881945950_413.returns[f881945950_413.inst++]; };
951 f881945950_413.returns = [];
952 f881945950_413.inst = 0;
953 // 1008
954 o2.getHours = f881945950_413;
955 // 1009
956 f881945950_413.returns.push(13);
957 // 1010
958 f881945950_414 = function() { return f881945950_414.returns[f881945950_414.inst++]; };
959 f881945950_414.returns = [];
960 f881945950_414.inst = 0;
961 // 1011
962 o2.getMinutes = f881945950_414;
963 // 1012
964 f881945950_414.returns.push(59);
965 // 1013
966 f881945950_415 = function() { return f881945950_415.returns[f881945950_415.inst++]; };
967 f881945950_415.returns = [];
968 f881945950_415.inst = 0;
969 // 1014
970 o2.getSeconds = f881945950_415;
971 // 1015
972 f881945950_415.returns.push(38);
973 // 1016
974 o4 = {};
975 // 1017
976 f881945950_0.returns.push(o4);
977 // 1018
978 o4.getHours = f881945950_413;
979 // 1019
980 f881945950_413.returns.push(13);
981 // 1020
982 o4.getMinutes = f881945950_414;
983 // 1021
984 f881945950_414.returns.push(59);
985 // 1022
986 o4.getSeconds = f881945950_415;
987 // 1023
988 f881945950_415.returns.push(38);
989 // 1028
990 f881945950_406.returns.push(null);
991 // 1033
992 f881945950_406.returns.push(null);
993 // 1034
994 f881945950_16.returns.push(2);
995 // 1002
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;");
997 // 1035
998 geval("ftRegisterCountdownElementID(\"ftCountdown\");\nftRegisterEntireMessageElementID(\"ftMessage\");");
999 // 1036
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;");
1001 // 1039
1002 o5 = {};
1003 // 1040
1004 f881945950_406.returns.push(o5);
1005 // 1041
1006 o6 = {};
1007 // 1042
1008 o5.style = o6;
1009 // 1044
1010 // 1037
1011 geval("var timerDiv = JSBNG__document.getElementById(\"ftMessageTimer\");\nif (((timerDiv && timerDiv.style))) {\n    timerDiv.style.display = \"inline\";\n}\n;\n;");
1012 // 1045
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};");
1014 // 1046
1015 geval("function ee976dbac42452e3152d3a48f703b0a8e017fa4d8(JSBNG__event) {\n    javascript:\n    Vellum.h();\n};\n;");
1016 // 1047
1017 geval("function ed771f07937fda9c8dd04b0376cf96f16a586029a(JSBNG__event) {\n    javascript:\n    Vellum.h();\n};\n;");
1018 // 1048
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});");
1020 // 1050
1021 o7 = {};
1022 // 1051
1023 f881945950_0.returns.push(o7);
1024 // 1052
1025 o8 = {};
1026 // 1053
1027 o2 = {};
1028 // 1054
1029 f881945950_0.returns.push(o2);
1030 // 1055
1031 f881945950_413 = function() { return f881945950_413.returns[f881945950_413.inst++]; };
1032 f881945950_413.returns = [];
1033 f881945950_413.inst = 0;
1034 // 1056
1035 o2.getHours = f881945950_413;
1036 // 1057
1037 f881945950_413.returns.push(13);
1038 // 1058
1039 f881945950_414 = function() { return f881945950_414.returns[f881945950_414.inst++]; };
1040 f881945950_414.returns = [];
1041 f881945950_414.inst = 0;
1042 // 1059
1043 o2.getMinutes = f881945950_414;
1044 // 1060
1045 f881945950_414.returns.push(59);
1046 // 1061
1047 f881945950_415 = function() { return f881945950_415.returns[f881945950_415.inst++]; };
1048 f881945950_415.returns = [];
1049 f881945950_415.inst = 0;
1050 // 1062
1051 o2.getSeconds = f881945950_415;
1052 // undefined
1053 o2 = null;
1054 // 1063
1055 f881945950_415.returns.push(38);
1056 // 1064
1057 o4 = {};
1058 // 1065
1059 f881945950_0.returns.push(o4);
1060 // 1066
1061 o4.getHours = f881945950_413;
1062 // 1067
1063 f881945950_413.returns.push(13);
1064 // 1068
1065 o4.getMinutes = f881945950_414;
1066 // 1069
1067 f881945950_414.returns.push(59);
1068 // 1070
1069 o4.getSeconds = f881945950_415;
1070 // undefined
1071 o4 = null;
1072 // 1071
1073 f881945950_415.returns.push(38);
1074 // 1076
1075 f881945950_406.returns.push(null);
1076 // 1081
1077 f881945950_406.returns.push(null);
1078 // 1082
1079 f881945950_16.returns.push(2);
1080 // 1049
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;");
1082 // 1083
1083 geval("ftRegisterCountdownElementID(\"ftCountdown\");\nftRegisterEntireMessageElementID(\"ftMessage\");");
1084 // 1084
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;");
1086 // 1087
1087 o5 = {};
1088 // 1088
1089 f881945950_406.returns.push(o5);
1090 // 1089
1091 o6 = {};
1092 // 1090
1093 o5.style = o6;
1094 // undefined
1095 o5 = null;
1096 // 1092
1097 // undefined
1098 o6 = null;
1099 // 1085
1100 geval("var timerDiv = JSBNG__document.getElementById(\"ftMessageTimer\");\nif (((timerDiv && timerDiv.style))) {\n    timerDiv.style.display = \"inline\";\n}\n;\n;");
1101 // 1093
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;");
1103 // 1094
1104 geval("function ee976dbac42452e3152d3a48f703b0a8e017fa4d8(JSBNG__event) {\n    javascript:\n    Vellum.h();\n};\n;");
1105 // 1095
1106 geval("function ed771f07937fda9c8dd04b0376cf96f16a586029a(JSBNG__event) {\n    javascript:\n    Vellum.h();\n};\n;");
1107 // 1096
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});");
1109 // 1098
1110 o7 = {};
1111 // 1099
1112 f881945950_0.returns.push(o7);
1113 // undefined
1114 o7 = null;
1115 // 1100
1116 o8 = {};
1117 // undefined
1118 o8 = null;
1119 // 1101
1120 o2 = {};
1121 // undefined
1122 o2 = null;
1123 // 1097
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;");
1125 // 1103
1126 o2 = {};
1127 // 1104
1128 f881945950_0.returns.push(o2);
1129 // undefined
1130 o2 = null;
1131 // 1102
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;");
1133 // 1105
1134 geval("function e51d7970767549cda27023a52a400a94280d471f5(JSBNG__event) {\n    amz_expandPostBodyDescription(\"PS\", [\"psGradient\",\"psPlaceHolder\",]);\n    return false;\n};\n;");
1135 // 1106
1136 geval("function e5c5178e859fbed387086d382315ddf2817c1731d(JSBNG__event) {\n    amz_collapsePostBodyDescription(\"PS\", [\"psGradient\",\"psPlaceHolder\",]);\n    return false;\n};\n;");
1137 // 1107
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});");
1139 // 1108
1140 geval("function ef2d35c5b582d6058ac633b57d69c8b9ac542ebec(JSBNG__event) {\n    return false;\n};\n;");
1141 // 1109
1142 geval("function ecf51729fd790a7ea3ccc34e61cae1ad6542b3ab2(JSBNG__event) {\n    return false;\n};\n;");
1143 // 1110
1144 geval("function edd8e3d0178c67cf94e61d6831fdd582864ee9797(JSBNG__event) {\n    return false;\n};\n;");
1145 // 1112
1146 f881945950_423 = function() { return f881945950_423.returns[f881945950_423.inst++]; };
1147 f881945950_423.returns = [];
1148 f881945950_423.inst = 0;
1149 // 1113
1150 o0.createElement = f881945950_423;
1151 // 1114
1152 o2 = {};
1153 // 1115
1154 f881945950_423.returns.push(o2);
1155 // 1116
1156 // 1117
1157 o4 = {};
1158 // 1118
1159 o0.body = o4;
1160 // 1119
1161 o5 = {};
1162 // 1120
1163 o4.childNodes = o5;
1164 // 1121
1165 o5.length = 2;
1166 // 1123
1167 f881945950_427 = function() { return f881945950_427.returns[f881945950_427.inst++]; };
1168 f881945950_427.returns = [];
1169 f881945950_427.inst = 0;
1170 // 1124
1171 o4.insertBefore = f881945950_427;
1172 // undefined
1173 o4 = null;
1174 // 1127
1175 o4 = {};
1176 // 1128
1177 o5["0"] = o4;
1178 // undefined
1179 o5 = null;
1180 // undefined
1181 o4 = null;
1182 // 1129
1183 f881945950_427.returns.push(o2);
1184 // undefined
1185 o2 = null;
1186 // 1111
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;");
1188 // 1131
1189 o2 = {};
1190 // 1132
1191 o0.head = o2;
1192 // 1134
1193 o4 = {};
1194 // 1135
1195 f881945950_423.returns.push(o4);
1196 // 1136
1197 // 1137
1198 // 1138
1199 o2.insertBefore = f881945950_427;
1200 // 1139
1201 o5 = {};
1202 // 1140
1203 o2.firstChild = o5;
1204 // undefined
1205 o2 = null;
1206 // undefined
1207 o5 = null;
1208 // 1141
1209 f881945950_427.returns.push(o4);
1210 // undefined
1211 o4 = null;
1212 // 1130
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})();");
1214 // 1142
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\",]);");
1216 // 1143
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});");
1218 // 1144
1219 geval("function e4a4bcedba65b380893f77d4dd29526130ee3b4d1(JSBNG__event) {\n    return acrPopoverHover(this, 1);\n};\n;");
1220 // 1145
1221 geval("function edeb92174417d8dc1c0e6f67c4ca60200f797789e(JSBNG__event) {\n    return acrPopoverHover(this, 0);\n};\n;");
1222 // 1146
1223 geval("function ed89eaa1f3ad51711a79f8d9d280a54d2800bbe33(JSBNG__event) {\n    return acrPopoverHover(this, 1);\n};\n;");
1224 // 1147
1225 geval("function e6347802676af907c8a2f7c8d51ebf8ecb4cc78ea(JSBNG__event) {\n    return acrPopoverHover(this, 0);\n};\n;");
1226 // 1148
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});");
1228 // 1149
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});");
1230 // 1150
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});");
1232 // 1151
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;");
1234 // 1152
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\";");
1236 // 1154
1237 o2 = {};
1238 // 1155
1239 f881945950_0.returns.push(o2);
1240 // 1156
1241 o2.getTime = f881945950_397;
1242 // 1157
1243 f881945950_397.returns.push(1373479178512);
1244 // 1153
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};");
1246 // 1159
1247 o4 = {};
1248 // 1160
1249 f881945950_0.returns.push(o4);
1250 // 1158
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;");
1252 // 1161
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});");
1254 // 1162
1255 geval("function e4a4bcedba65b380893f77d4dd29526130ee3b4d1(JSBNG__event) {\n    return acrPopoverHover(this, 1);\n};\n;");
1256 // 1163
1257 geval("function edeb92174417d8dc1c0e6f67c4ca60200f797789e(JSBNG__event) {\n    return acrPopoverHover(this, 0);\n};\n;");
1258 // 1164
1259 geval("function ed89eaa1f3ad51711a79f8d9d280a54d2800bbe33(JSBNG__event) {\n    return acrPopoverHover(this, 1);\n};\n;");
1260 // 1165
1261 geval("function e6347802676af907c8a2f7c8d51ebf8ecb4cc78ea(JSBNG__event) {\n    return acrPopoverHover(this, 0);\n};\n;");
1262 // 1166
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});");
1264 // 1167
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});");
1266 // 1168
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});");
1268 // 1169
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;");
1270 // 1170
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\";");
1272 // 1172
1273 o2 = {};
1274 // 1173
1275 f881945950_0.returns.push(o2);
1276 // 1174
1277 o2.getTime = f881945950_397;
1278 // undefined
1279 o2 = null;
1280 // 1175
1281 f881945950_397.returns.push(1373479178512);
1282 // 1171
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};");
1284 // 1177
1285 o4 = {};
1286 // 1178
1287 f881945950_0.returns.push(o4);
1288 // 1176
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};");
1290 // 1180
1291 o4.getTime = f881945950_397;
1292 // undefined
1293 o4 = null;
1294 // 1181
1295 f881945950_397.returns.push(1373479178517);
1296 // 1179
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(\"&nbsp;\"));\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&nbsp;\\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&nbsp;\\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};");
1298 // 1183
1299 o2 = {};
1300 // 1184
1301 f881945950_65.returns.push(o2);
1302 // 1185
1303 o1.protocol = "http:";
1304 // undefined
1305 o1 = null;
1306 // 1186
1307 f881945950_7.returns.push(undefined);
1308 // 1182
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;");
1310 // 1187
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});");
1312 // 1188
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});");
1314 // 1189
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;");
1316 // 1190
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});");
1318 // 1191
1319 geval("amznJQ.addLogical(\"gridReviewCSS-US\", []);\namznJQ.addLogical(\"reviewsCSS-US\", []);");
1320 // 1192
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\")));");
1322 // 1193
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;");
1324 // 1194
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;");
1326 // 1195
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;");
1328 // 1196
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;");
1330 // 1197
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;");
1332 // 1198
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;");
1334 // 1199
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;");
1336 // 1200
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});");
1338 // 1201
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;");
1340 // 1202
1341 geval("function efdff100ee742fecb8b858e7fddf0cfe2386b205d(JSBNG__event) {\n    showSLF();\n};\n;");
1342 // 1203
1343 geval("amznJQ.available(\"jQuery\", function() {\n    var obj = [{\n        provider: \"g\",\n        description: \"Chosen by top software vendors. View live examples &amp; 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&nbsp;\\u003C/span\\u003E&nbsp;\")) + \"             \\u003C/span\\u003E\")) + \"         \\u003C/span\\u003E&nbsp;&nbsp;\")) + \"     \\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&nbsp;\\u003C/span\\u003E&nbsp; \\u003C/span\\u003E\\u003C/span\\u003E&nbsp;&nbsp;\\u003Ca target=\\\"_blank\\\" href=\\\"\" + adPropertiesDelimiter)) + \"redirectUrl\")) + adPropertiesDelimiter)) + \"\\\" rel=\\\"nofollow\\\"\\u003E\\u003Cb\\u003E\")) + adPropertiesDelimiter)) + \"title\")) + adPropertiesDelimiter)) + \"\\u003C/b\\u003E\\u003C/a\\u003E&nbsp;\\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&nbsp;&nbsp;&nbsp;&nbsp;\\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&nbsp;&nbsp;&nbsp;&nbsp;\\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 &amp; 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;");
1344 // 1204
1345 geval("function e3bb840522a6e7e8409178efff0ea058acfb1acea(JSBNG__event) {\n    return false;\n};\n;");
1346 // 1205
1347 geval("function e507f26413b06f51fcaf835e5bf9a04e9d0b3d2f7(JSBNG__event) {\n    return false;\n};\n;");
1348 // 1206
1349 geval("function e3137a023a5ae8ea7e80054e3fedf41a5d201998f(JSBNG__event) {\n    return false;\n};\n;");
1350 // 1207
1351 geval("function e31000786ba1c36e79389f374509c774c9f5cbfd9(JSBNG__event) {\n    amznJQ.available(\"jQuery\", function() {\n        window.AMZN_LIKE_SUBMIT = true;\n    });\n    return false;\n};\n;");
1352 // 1208
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&nbsp;\\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});");
1354 // 1209
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});");
1356 // 1210
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});");
1358 // 1211
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});");
1360 // 1212
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;");
1362 // 1214
1363 ow881945950.JSBNG__attachEvent = undefined;
1364 // 1215
1365 f881945950_7.returns.push(undefined);
1366 // 1213
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})));");
1368 // 1216
1369 geval("amznJQ.addLogical(\"amazonLike\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/amazonLike/amazonLike-682075628._V1_.js\",]);");
1370 // 1217
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});");
1372 // 1218
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;");
1374 // 1219
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;");
1376 // 1220
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});");
1378 // 1221
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});");
1380 // 1222
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;");
1382 // 1224
1383 o1 = {};
1384 // 1225
1385 o0.ue_backdetect = o1;
1386 // 1227
1387 o4 = {};
1388 // 1228
1389 o1.ue_back = o4;
1390 // undefined
1391 o1 = null;
1392 // 1231
1393 o4.value = "1";
1394 // undefined
1395 o4 = null;
1396 // 1232
1397 o1 = {};
1398 // 1233
1399 f881945950_0.returns.push(o1);
1400 // 1234
1401 o1.getTime = f881945950_397;
1402 // undefined
1403 o1 = null;
1404 // 1235
1405 f881945950_397.returns.push(1373479179086);
1406 // 1236
1407 f881945950_7.returns.push(undefined);
1408 // 1237
1409 f881945950_439 = function() { return f881945950_439.returns[f881945950_439.inst++]; };
1410 f881945950_439.returns = [];
1411 f881945950_439.inst = 0;
1412 // 1238
1413 ow881945950.JSBNG__onload = f881945950_439;
1414 // 1223
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};");
1416 // 1240
1417 o1 = {};
1418 // 1241
1419 o3.navigation = o1;
1420 // 1242
1421 o1.type = 0;
1422 // 1243
1423 o4 = {};
1424 // 1244
1425 f881945950_0.returns.push(o4);
1426 // undefined
1427 o4 = null;
1428 // 1245
1429 o4 = {};
1430 // 1246
1431 f881945950_0.returns.push(o4);
1432 // 1247
1433 f881945950_443 = function() { return f881945950_443.returns[f881945950_443.inst++]; };
1434 f881945950_443.returns = [];
1435 f881945950_443.inst = 0;
1436 // 1248
1437 o4.toGMTString = f881945950_443;
1438 // undefined
1439 o4 = null;
1440 // 1249
1441 f881945950_443.returns.push("Invalid Date");
1442 // 1250
1443 o4 = {};
1444 // 1251
1445 f881945950_0.returns.push(o4);
1446 // undefined
1447 o4 = null;
1448 // 1239
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};");
1450 // 1253
1451 o4 = {};
1452 // 1254
1453 f881945950_0.returns.push(o4);
1454 // 1255
1455 o4.getHours = f881945950_413;
1456 // 1256
1457 f881945950_413.returns.push(13);
1458 // 1257
1459 o4.getMinutes = f881945950_414;
1460 // 1258
1461 f881945950_414.returns.push(59);
1462 // 1259
1463 o4.getSeconds = f881945950_415;
1464 // undefined
1465 o4 = null;
1466 // 1260
1467 f881945950_415.returns.push(40);
1468 // 1265
1469 f881945950_406.returns.push(null);
1470 // 1270
1471 f881945950_406.returns.push(null);
1472 // 1271
1473 f881945950_16.returns.push(3);
1474 // 1273
1475 o4 = {};
1476 // 1274
1477 f881945950_406.returns.push(o4);
1478 // 1275
1479 // 1276
1480 o5 = {};
1481 // 1277
1482 f881945950_0.returns.push(o5);
1483 // 1278
1484 o5.getHours = f881945950_413;
1485 // 1279
1486 f881945950_413.returns.push(13);
1487 // 1280
1488 o5.getMinutes = f881945950_414;
1489 // 1281
1490 f881945950_414.returns.push(59);
1491 // 1282
1492 o5.getSeconds = f881945950_415;
1493 // undefined
1494 o5 = null;
1495 // 1283
1496 f881945950_415.returns.push(41);
1497 // 1288
1498 f881945950_406.returns.push(null);
1499 // 1293
1500 f881945950_406.returns.push(null);
1501 // 1294
1502 f881945950_16.returns.push(4);
1503 // 1296
1504 f881945950_406.returns.push(o4);
1505 // 1297
1506 o5 = {};
1507 // 1298
1508 f881945950_0.returns.push(o5);
1509 // 1299
1510 o5.getHours = f881945950_413;
1511 // 1300
1512 f881945950_413.returns.push(13);
1513 // 1301
1514 o5.getMinutes = f881945950_414;
1515 // 1302
1516 f881945950_414.returns.push(59);
1517 // 1303
1518 o5.getSeconds = f881945950_415;
1519 // undefined
1520 o5 = null;
1521 // 1304
1522 f881945950_415.returns.push(42);
1523 // 1309
1524 f881945950_406.returns.push(null);
1525 // 1314
1526 f881945950_406.returns.push(null);
1527 // 1315
1528 f881945950_16.returns.push(5);
1529 // 1317
1530 f881945950_406.returns.push(o4);
1531 // 1318
1532 o5 = {};
1533 // 1319
1534 f881945950_0.returns.push(o5);
1535 // 1320
1536 o5.getHours = f881945950_413;
1537 // 1321
1538 f881945950_413.returns.push(13);
1539 // 1322
1540 o5.getMinutes = f881945950_414;
1541 // 1323
1542 f881945950_414.returns.push(59);
1543 // 1324
1544 o5.getSeconds = f881945950_415;
1545 // undefined
1546 o5 = null;
1547 // 1325
1548 f881945950_415.returns.push(43);
1549 // 1330
1550 f881945950_406.returns.push(null);
1551 // 1335
1552 f881945950_406.returns.push(null);
1553 // 1336
1554 f881945950_16.returns.push(6);
1555 // 1338
1556 f881945950_406.returns.push(o4);
1557 // 1339
1558 o5 = {};
1559 // 1340
1560 f881945950_0.returns.push(o5);
1561 // 1341
1562 o5.getHours = f881945950_413;
1563 // 1342
1564 f881945950_413.returns.push(13);
1565 // 1343
1566 o5.getMinutes = f881945950_414;
1567 // 1344
1568 f881945950_414.returns.push(59);
1569 // 1345
1570 o5.getSeconds = f881945950_415;
1571 // undefined
1572 o5 = null;
1573 // 1346
1574 f881945950_415.returns.push(44);
1575 // 1351
1576 f881945950_406.returns.push(null);
1577 // 1356
1578 f881945950_406.returns.push(null);
1579 // 1357
1580 f881945950_16.returns.push(7);
1581 // 1359
1582 f881945950_406.returns.push(o4);
1583 // 1360
1584 o5 = {};
1585 // 1361
1586 f881945950_0.returns.push(o5);
1587 // 1362
1588 o5.getHours = f881945950_413;
1589 // 1363
1590 f881945950_413.returns.push(13);
1591 // 1364
1592 o5.getMinutes = f881945950_414;
1593 // 1365
1594 f881945950_414.returns.push(59);
1595 // 1366
1596 o5.getSeconds = f881945950_415;
1597 // undefined
1598 o5 = null;
1599 // 1367
1600 f881945950_415.returns.push(45);
1601 // 1372
1602 f881945950_406.returns.push(null);
1603 // 1377
1604 f881945950_406.returns.push(null);
1605 // 1378
1606 f881945950_16.returns.push(8);
1607 // 1380
1608 f881945950_406.returns.push(o4);
1609 // 1381
1610 o5 = {};
1611 // 1382
1612 f881945950_0.returns.push(o5);
1613 // 1383
1614 o5.getHours = f881945950_413;
1615 // 1384
1616 f881945950_413.returns.push(13);
1617 // 1385
1618 o5.getMinutes = f881945950_414;
1619 // 1386
1620 f881945950_414.returns.push(59);
1621 // 1387
1622 o5.getSeconds = f881945950_415;
1623 // undefined
1624 o5 = null;
1625 // 1388
1626 f881945950_415.returns.push(46);
1627 // 1393
1628 f881945950_406.returns.push(null);
1629 // 1398
1630 f881945950_406.returns.push(null);
1631 // 1399
1632 f881945950_16.returns.push(9);
1633 // 1401
1634 f881945950_406.returns.push(o4);
1635 // 1402
1636 o5 = {};
1637 // 1403
1638 f881945950_0.returns.push(o5);
1639 // 1404
1640 o5.getHours = f881945950_413;
1641 // 1405
1642 f881945950_413.returns.push(13);
1643 // 1406
1644 o5.getMinutes = f881945950_414;
1645 // 1407
1646 f881945950_414.returns.push(59);
1647 // 1408
1648 o5.getSeconds = f881945950_415;
1649 // undefined
1650 o5 = null;
1651 // 1409
1652 f881945950_415.returns.push(47);
1653 // 1414
1654 f881945950_406.returns.push(null);
1655 // 1419
1656 f881945950_406.returns.push(null);
1657 // 1420
1658 f881945950_16.returns.push(10);
1659 // 1422
1660 f881945950_406.returns.push(o4);
1661 // 1423
1662 o5 = {};
1663 // 1424
1664 f881945950_0.returns.push(o5);
1665 // 1425
1666 o5.getHours = f881945950_413;
1667 // 1426
1668 f881945950_413.returns.push(13);
1669 // 1427
1670 o5.getMinutes = f881945950_414;
1671 // 1428
1672 f881945950_414.returns.push(59);
1673 // 1429
1674 o5.getSeconds = f881945950_415;
1675 // undefined
1676 o5 = null;
1677 // 1430
1678 f881945950_415.returns.push(48);
1679 // 1435
1680 f881945950_406.returns.push(null);
1681 // 1440
1682 f881945950_406.returns.push(null);
1683 // 1441
1684 f881945950_16.returns.push(11);
1685 // 1443
1686 f881945950_406.returns.push(o4);
1687 // 1444
1688 o5 = {};
1689 // 1445
1690 o6 = {};
1691 // 1446
1692 f881945950_0.returns.push(o6);
1693 // 1447
1694 o6.getTime = f881945950_397;
1695 // undefined
1696 o6 = null;
1697 // 1448
1698 f881945950_397.returns.push(1373479188430);
1699 // 1458
1700 o6 = {};
1701 // 1459
1702 o3.timing = o6;
1703 // undefined
1704 o3 = null;
1705 // 1461
1706 o6.navigationStart = 1373479173975;
1707 // 1464
1708 o6.unloadEventStart = 1373479177633;
1709 // 1465
1710 o6.unloadEventEnd = 1373479177645;
1711 // 1466
1712 o6.redirectStart = 0;
1713 // 1467
1714 o6.redirectEnd = 0;
1715 // 1468
1716 o6.fetchStart = 1373479173976;
1717 // 1469
1718 o6.domainLookupStart = 1373479173976;
1719 // 1470
1720 o6.domainLookupEnd = 1373479173976;
1721 // 1471
1722 o6.connectStart = 1373479173976;
1723 // 1472
1724 o6.connectEnd = 1373479173976;
1725 // 1473
1726 o6.secureConnectionStart = void 0;
1727 // 1474
1728 o6.requestStart = 1373479173977;
1729 // 1475
1730 o6.responseStart = 1373479177632;
1731 // 1476
1732 o6.responseEnd = 1373479177679;
1733 // 1477
1734 o6.domLoading = 1373479177633;
1735 // 1478
1736 o6.domInteractive = 1373479179088;
1737 // 1479
1738 o6.domContentLoadedEventStart = 1373479179096;
1739 // 1480
1740 o6.domContentLoadedEventEnd = 1373479179096;
1741 // 1481
1742 o6.domComplete = 1373479188429;
1743 // 1482
1744 o6.loadEventStart = 1373479188429;
1745 // 1483
1746 o6.loadEventEnd = 0;
1747 // undefined
1748 o6 = null;
1749 // 1486
1750 o1.redirectCount = 0;
1751 // undefined
1752 o1 = null;
1753 // 1488
1754 o1 = {};
1755 // 1489
1756 f881945950_0.returns.push(o1);
1757 // 1490
1758 o1.getTime = f881945950_397;
1759 // undefined
1760 o1 = null;
1761 // 1491
1762 f881945950_397.returns.push(1373479188476);
1763 // 1492
1764 o1 = {};
1765 // 1493
1766 f881945950_65.returns.push(o1);
1767 // 1494
1768 // undefined
1769 o1 = null;
1770 // 1495
1771 o1 = {};
1772 // 1496
1773 f881945950_0.returns.push(o1);
1774 // undefined
1775 o1 = null;
1776 // 1497
1777 f881945950_17.returns.push(12);
1778 // 1498
1779 f881945950_439.returns.push(undefined);
1780 // 1499
1781 f881945950_439.returns.push(undefined);
1782 // 1500
1783 f881945950_439.returns.push(undefined);
1784 // 1501
1785 f881945950_439.returns.push(undefined);
1786 // 1502
1787 f881945950_439.returns.push(undefined);
1788 // 1503
1789 f881945950_439.returns.push(undefined);
1790 // 1504
1791 f881945950_439.returns.push(undefined);
1792 // 1505
1793 f881945950_439.returns.push(undefined);
1794 // 1506
1795 f881945950_439.returns.push(undefined);
1796 // 1507
1797 f881945950_439.returns.push(undefined);
1798 // 1508
1799 f881945950_439.returns.push(undefined);
1800 // 1509
1801 f881945950_439.returns.push(undefined);
1802 // 1510
1803 f881945950_439.returns.push(undefined);
1804 // 1511
1805 f881945950_439.returns.push(undefined);
1806 // 1512
1807 f881945950_439.returns.push(undefined);
1808 // 1513
1809 f881945950_439.returns.push(undefined);
1810 // 1514
1811 f881945950_439.returns.push(undefined);
1812 // 1515
1813 f881945950_439.returns.push(undefined);
1814 // 1516
1815 f881945950_439.returns.push(undefined);
1816 // 1517
1817 f881945950_439.returns.push(undefined);
1818 // 1518
1819 f881945950_439.returns.push(undefined);
1820 // 1519
1821 f881945950_439.returns.push(undefined);
1822 // 1520
1823 f881945950_439.returns.push(undefined);
1824 // 1521
1825 f881945950_439.returns.push(undefined);
1826 // 1522
1827 f881945950_439.returns.push(undefined);
1828 // 1523
1829 f881945950_439.returns.push(undefined);
1830 // 1524
1831 f881945950_439.returns.push(undefined);
1832 // 1525
1833 f881945950_439.returns.push(undefined);
1834 // 1526
1835 f881945950_439.returns.push(undefined);
1836 // 1527
1837 f881945950_439.returns.push(undefined);
1838 // 1528
1839 f881945950_439.returns.push(undefined);
1840 // 1529
1841 f881945950_439.returns.push(undefined);
1842 // 1530
1843 f881945950_439.returns.push(undefined);
1844 // 1531
1845 f881945950_439.returns.push(undefined);
1846 // 1532
1847 f881945950_439.returns.push(undefined);
1848 // 1533
1849 f881945950_439.returns.push(undefined);
1850 // 1534
1851 f881945950_439.returns.push(undefined);
1852 // 1535
1853 f881945950_439.returns.push(undefined);
1854 // 1536
1855 f881945950_439.returns.push(undefined);
1856 // 1537
1857 f881945950_439.returns.push(undefined);
1858 // 1538
1859 f881945950_439.returns.push(undefined);
1860 // 1539
1861 f881945950_439.returns.push(undefined);
1862 // 1540
1863 f881945950_439.returns.push(undefined);
1864 // 1541
1865 f881945950_439.returns.push(undefined);
1866 // 1542
1867 f881945950_439.returns.push(undefined);
1868 // 1543
1869 f881945950_439.returns.push(undefined);
1870 // 1544
1871 f881945950_439.returns.push(undefined);
1872 // 1545
1873 f881945950_439.returns.push(undefined);
1874 // 1546
1875 f881945950_439.returns.push(undefined);
1876 // 1547
1877 f881945950_439.returns.push(undefined);
1878 // 1548
1879 f881945950_439.returns.push(undefined);
1880 // 1549
1881 f881945950_439.returns.push(undefined);
1882 // 1550
1883 f881945950_439.returns.push(undefined);
1884 // 1551
1885 f881945950_439.returns.push(undefined);
1886 // 1552
1887 f881945950_439.returns.push(undefined);
1888 // 1553
1889 f881945950_439.returns.push(undefined);
1890 // 1554
1891 f881945950_439.returns.push(undefined);
1892 // 1555
1893 f881945950_439.returns.push(undefined);
1894 // 1556
1895 f881945950_439.returns.push(undefined);
1896 // 1557
1897 f881945950_439.returns.push(undefined);
1898 // 1558
1899 f881945950_439.returns.push(undefined);
1900 // 1559
1901 f881945950_439.returns.push(undefined);
1902 // 1560
1903 f881945950_439.returns.push(undefined);
1904 // 1561
1905 f881945950_439.returns.push(undefined);
1906 // 1562
1907 f881945950_439.returns.push(undefined);
1908 // 1563
1909 f881945950_439.returns.push(undefined);
1910 // 1564
1911 f881945950_439.returns.push(undefined);
1912 // 1565
1913 f881945950_439.returns.push(undefined);
1914 // 1566
1915 f881945950_439.returns.push(undefined);
1916 // 1567
1917 f881945950_439.returns.push(undefined);
1918 // 1568
1919 f881945950_439.returns.push(undefined);
1920 // 1569
1921 f881945950_439.returns.push(undefined);
1922 // 1570
1923 f881945950_439.returns.push(undefined);
1924 // 1571
1925 f881945950_439.returns.push(undefined);
1926 // 1572
1927 f881945950_439.returns.push(undefined);
1928 // 1573
1929 f881945950_439.returns.push(undefined);
1930 // 1574
1931 f881945950_439.returns.push(undefined);
1932 // 1575
1933 f881945950_439.returns.push(undefined);
1934 // 1576
1935 f881945950_439.returns.push(undefined);
1936 // 1577
1937 f881945950_439.returns.push(undefined);
1938 // 1578
1939 f881945950_439.returns.push(undefined);
1940 // 1579
1941 f881945950_439.returns.push(undefined);
1942 // 1580
1943 f881945950_439.returns.push(undefined);
1944 // 1581
1945 f881945950_439.returns.push(undefined);
1946 // 1582
1947 f881945950_439.returns.push(undefined);
1948 // 1583
1949 f881945950_439.returns.push(undefined);
1950 // 1584
1951 f881945950_439.returns.push(undefined);
1952 // 1585
1953 f881945950_439.returns.push(undefined);
1954 // 1586
1955 f881945950_439.returns.push(undefined);
1956 // 1587
1957 f881945950_439.returns.push(undefined);
1958 // 1588
1959 f881945950_439.returns.push(undefined);
1960 // 1589
1961 f881945950_439.returns.push(undefined);
1962 // 1590
1963 f881945950_439.returns.push(undefined);
1964 // 1591
1965 f881945950_439.returns.push(undefined);
1966 // 1592
1967 f881945950_439.returns.push(undefined);
1968 // 1593
1969 f881945950_439.returns.push(undefined);
1970 // 1594
1971 f881945950_439.returns.push(undefined);
1972 // 1595
1973 f881945950_439.returns.push(undefined);
1974 // 1596
1975 f881945950_439.returns.push(undefined);
1976 // 1597
1977 f881945950_439.returns.push(undefined);
1978 // 1598
1979 f881945950_439.returns.push(undefined);
1980 // 1599
1981 f881945950_439.returns.push(undefined);
1982 // 1600
1983 f881945950_439.returns.push(undefined);
1984 // 1601
1985 f881945950_439.returns.push(undefined);
1986 // 1602
1987 f881945950_439.returns.push(undefined);
1988 // 1603
1989 f881945950_439.returns.push(undefined);
1990 // 1604
1991 f881945950_439.returns.push(undefined);
1992 // 1605
1993 f881945950_439.returns.push(undefined);
1994 // 1606
1995 f881945950_439.returns.push(undefined);
1996 // 1607
1997 f881945950_439.returns.push(undefined);
1998 // 1608
1999 f881945950_439.returns.push(undefined);
2000 // 1609
2001 f881945950_439.returns.push(undefined);
2002 // 1610
2003 f881945950_439.returns.push(undefined);
2004 // 1611
2005 f881945950_439.returns.push(undefined);
2006 // 1612
2007 f881945950_439.returns.push(undefined);
2008 // 1613
2009 f881945950_439.returns.push(undefined);
2010 // 1614
2011 f881945950_439.returns.push(undefined);
2012 // 1615
2013 f881945950_439.returns.push(undefined);
2014 // 1616
2015 f881945950_439.returns.push(undefined);
2016 // 1617
2017 f881945950_439.returns.push(undefined);
2018 // 1618
2019 f881945950_439.returns.push(undefined);
2020 // 1619
2021 f881945950_439.returns.push(undefined);
2022 // 1620
2023 f881945950_439.returns.push(undefined);
2024 // 1621
2025 f881945950_439.returns.push(undefined);
2026 // 1622
2027 f881945950_439.returns.push(undefined);
2028 // 1623
2029 f881945950_439.returns.push(undefined);
2030 // 1624
2031 f881945950_439.returns.push(undefined);
2032 // 1625
2033 f881945950_439.returns.push(undefined);
2034 // 1626
2035 f881945950_439.returns.push(undefined);
2036 // 1627
2037 f881945950_439.returns.push(undefined);
2038 // 1628
2039 f881945950_439.returns.push(undefined);
2040 // 1629
2041 f881945950_439.returns.push(undefined);
2042 // 1630
2043 f881945950_439.returns.push(undefined);
2044 // 1631
2045 f881945950_439.returns.push(undefined);
2046 // 1632
2047 f881945950_439.returns.push(undefined);
2048 // 1633
2049 f881945950_439.returns.push(undefined);
2050 // 1634
2051 f881945950_439.returns.push(undefined);
2052 // 1635
2053 f881945950_439.returns.push(undefined);
2054 // 1636
2055 f881945950_439.returns.push(undefined);
2056 // 1637
2057 f881945950_439.returns.push(undefined);
2058 // 1638
2059 f881945950_439.returns.push(undefined);
2060 // 1639
2061 f881945950_439.returns.push(undefined);
2062 // 1640
2063 f881945950_439.returns.push(undefined);
2064 // 1641
2065 f881945950_439.returns.push(undefined);
2066 // 1642
2067 f881945950_439.returns.push(undefined);
2068 // 1643
2069 f881945950_439.returns.push(undefined);
2070 // 1644
2071 f881945950_439.returns.push(undefined);
2072 // 1645
2073 f881945950_439.returns.push(undefined);
2074 // 1646
2075 f881945950_439.returns.push(undefined);
2076 // 1647
2077 f881945950_439.returns.push(undefined);
2078 // 1648
2079 f881945950_439.returns.push(undefined);
2080 // 1649
2081 f881945950_439.returns.push(undefined);
2082 // 1650
2083 f881945950_439.returns.push(undefined);
2084 // 1651
2085 f881945950_439.returns.push(undefined);
2086 // 1652
2087 f881945950_439.returns.push(undefined);
2088 // 1653
2089 f881945950_439.returns.push(undefined);
2090 // 1654
2091 f881945950_439.returns.push(undefined);
2092 // 1655
2093 f881945950_439.returns.push(undefined);
2094 // 1656
2095 f881945950_439.returns.push(undefined);
2096 // 1657
2097 f881945950_439.returns.push(undefined);
2098 // 1658
2099 f881945950_439.returns.push(undefined);
2100 // 1659
2101 f881945950_439.returns.push(undefined);
2102 // 1660
2103 f881945950_439.returns.push(undefined);
2104 // 1661
2105 f881945950_439.returns.push(undefined);
2106 // 1662
2107 f881945950_439.returns.push(undefined);
2108 // 1663
2109 f881945950_439.returns.push(undefined);
2110 // 1664
2111 f881945950_439.returns.push(undefined);
2112 // 1665
2113 f881945950_439.returns.push(undefined);
2114 // 1666
2115 f881945950_439.returns.push(undefined);
2116 // 1667
2117 f881945950_439.returns.push(undefined);
2118 // 1668
2119 f881945950_439.returns.push(undefined);
2120 // 1669
2121 f881945950_439.returns.push(undefined);
2122 // 1670
2123 f881945950_439.returns.push(undefined);
2124 // 1671
2125 f881945950_439.returns.push(undefined);
2126 // 1672
2127 f881945950_439.returns.push(undefined);
2128 // 1673
2129 f881945950_439.returns.push(undefined);
2130 // 1674
2131 f881945950_439.returns.push(undefined);
2132 // 1675
2133 f881945950_439.returns.push(undefined);
2134 // 1676
2135 f881945950_439.returns.push(undefined);
2136 // 1677
2137 f881945950_439.returns.push(undefined);
2138 // 1678
2139 f881945950_439.returns.push(undefined);
2140 // 1679
2141 f881945950_439.returns.push(undefined);
2142 // 1680
2143 f881945950_439.returns.push(undefined);
2144 // 1681
2145 f881945950_439.returns.push(undefined);
2146 // 1682
2147 f881945950_439.returns.push(undefined);
2148 // 1683
2149 f881945950_439.returns.push(undefined);
2150 // 1684
2151 f881945950_439.returns.push(undefined);
2152 // 1685
2153 f881945950_439.returns.push(undefined);
2154 // 1686
2155 f881945950_439.returns.push(undefined);
2156 // 1687
2157 f881945950_439.returns.push(undefined);
2158 // 1688
2159 f881945950_439.returns.push(undefined);
2160 // 1689
2161 f881945950_439.returns.push(undefined);
2162 // 1690
2163 f881945950_439.returns.push(undefined);
2164 // 1691
2165 f881945950_439.returns.push(undefined);
2166 // 1692
2167 f881945950_439.returns.push(undefined);
2168 // 1693
2169 f881945950_439.returns.push(undefined);
2170 // 1694
2171 f881945950_439.returns.push(undefined);
2172 // 1695
2173 f881945950_439.returns.push(undefined);
2174 // 1696
2175 f881945950_439.returns.push(undefined);
2176 // 1697
2177 f881945950_439.returns.push(undefined);
2178 // 1698
2179 f881945950_439.returns.push(undefined);
2180 // 1699
2181 f881945950_439.returns.push(undefined);
2182 // 1700
2183 f881945950_439.returns.push(undefined);
2184 // 1701
2185 f881945950_439.returns.push(undefined);
2186 // 1702
2187 f881945950_439.returns.push(undefined);
2188 // 1703
2189 f881945950_439.returns.push(undefined);
2190 // 1704
2191 f881945950_439.returns.push(undefined);
2192 // 1705
2193 f881945950_439.returns.push(undefined);
2194 // 1706
2195 f881945950_439.returns.push(undefined);
2196 // 1707
2197 f881945950_439.returns.push(undefined);
2198 // 1708
2199 f881945950_439.returns.push(undefined);
2200 // 1709
2201 f881945950_439.returns.push(undefined);
2202 // 1710
2203 f881945950_439.returns.push(undefined);
2204 // 1711
2205 f881945950_439.returns.push(undefined);
2206 // 1712
2207 f881945950_439.returns.push(undefined);
2208 // 1713
2209 f881945950_439.returns.push(undefined);
2210 // 1714
2211 f881945950_439.returns.push(undefined);
2212 // 1715
2213 f881945950_439.returns.push(undefined);
2214 // 1716
2215 f881945950_439.returns.push(undefined);
2216 // 1717
2217 f881945950_439.returns.push(undefined);
2218 // 1718
2219 f881945950_439.returns.push(undefined);
2220 // 1719
2221 f881945950_439.returns.push(undefined);
2222 // 1720
2223 f881945950_439.returns.push(undefined);
2224 // 1721
2225 f881945950_439.returns.push(undefined);
2226 // 1722
2227 f881945950_439.returns.push(undefined);
2228 // 1723
2229 f881945950_439.returns.push(undefined);
2230 // 1724
2231 f881945950_439.returns.push(undefined);
2232 // 1725
2233 f881945950_439.returns.push(undefined);
2234 // 1726
2235 f881945950_439.returns.push(undefined);
2236 // 1727
2237 f881945950_439.returns.push(undefined);
2238 // 1728
2239 f881945950_439.returns.push(undefined);
2240 // 1729
2241 f881945950_439.returns.push(undefined);
2242 // 1730
2243 f881945950_439.returns.push(undefined);
2244 // 1731
2245 f881945950_439.returns.push(undefined);
2246 // 1732
2247 f881945950_439.returns.push(undefined);
2248 // 1733
2249 f881945950_439.returns.push(undefined);
2250 // 1734
2251 f881945950_439.returns.push(undefined);
2252 // 1735
2253 f881945950_439.returns.push(undefined);
2254 // 1736
2255 f881945950_439.returns.push(undefined);
2256 // 1737
2257 f881945950_439.returns.push(undefined);
2258 // 1738
2259 f881945950_439.returns.push(undefined);
2260 // 1739
2261 f881945950_439.returns.push(undefined);
2262 // 1740
2263 f881945950_439.returns.push(undefined);
2264 // 1741
2265 f881945950_439.returns.push(undefined);
2266 // 1742
2267 f881945950_439.returns.push(undefined);
2268 // 1743
2269 f881945950_439.returns.push(undefined);
2270 // 1744
2271 f881945950_439.returns.push(undefined);
2272 // 1745
2273 f881945950_439.returns.push(undefined);
2274 // 1746
2275 f881945950_439.returns.push(undefined);
2276 // 1747
2277 f881945950_439.returns.push(undefined);
2278 // 1748
2279 f881945950_439.returns.push(undefined);
2280 // 1749
2281 f881945950_439.returns.push(undefined);
2282 // 1750
2283 f881945950_439.returns.push(undefined);
2284 // 1751
2285 f881945950_439.returns.push(undefined);
2286 // 1752
2287 f881945950_439.returns.push(undefined);
2288 // 1753
2289 f881945950_439.returns.push(undefined);
2290 // 1754
2291 f881945950_439.returns.push(undefined);
2292 // 1755
2293 f881945950_439.returns.push(undefined);
2294 // 1756
2295 f881945950_439.returns.push(undefined);
2296 // 1757
2297 f881945950_439.returns.push(undefined);
2298 // 1758
2299 f881945950_439.returns.push(undefined);
2300 // 1759
2301 f881945950_439.returns.push(undefined);
2302 // 1760
2303 f881945950_439.returns.push(undefined);
2304 // 1761
2305 f881945950_439.returns.push(undefined);
2306 // 1762
2307 f881945950_439.returns.push(undefined);
2308 // 1763
2309 f881945950_439.returns.push(undefined);
2310 // 1764
2311 f881945950_439.returns.push(undefined);
2312 // 1765
2313 f881945950_439.returns.push(undefined);
2314 // 1766
2315 f881945950_439.returns.push(undefined);
2316 // 1767
2317 f881945950_439.returns.push(undefined);
2318 // 1768
2319 f881945950_439.returns.push(undefined);
2320 // 1769
2321 f881945950_439.returns.push(undefined);
2322 // 1770
2323 f881945950_439.returns.push(undefined);
2324 // 1771
2325 f881945950_439.returns.push(undefined);
2326 // 1772
2327 f881945950_439.returns.push(undefined);
2328 // 1773
2329 f881945950_439.returns.push(undefined);
2330 // 1774
2331 f881945950_439.returns.push(undefined);
2332 // 1775
2333 f881945950_439.returns.push(undefined);
2334 // 1776
2335 f881945950_439.returns.push(undefined);
2336 // 1777
2337 f881945950_439.returns.push(undefined);
2338 // 1778
2339 f881945950_439.returns.push(undefined);
2340 // 1779
2341 f881945950_439.returns.push(undefined);
2342 // 1780
2343 f881945950_439.returns.push(undefined);
2344 // 1781
2345 f881945950_439.returns.push(undefined);
2346 // 1782
2347 f881945950_439.returns.push(undefined);
2348 // 1783
2349 f881945950_439.returns.push(undefined);
2350 // 1784
2351 // 1252
2352 geval("amznJQ.addLogical(\"search-sabc\", [\"http://z-ecx.images-amazon.com/images/G/01/browser-scripts/search-sabc/search-sabc-605884639._V1_.js\",]);");
2353 // 1786
2354 f881945950_16.returns.push(13);
2355 // 1785
2356 JSBNG_Replay.s6642b77f01f4d49ef240b29032e6da4372359178_0[0](o5);
2357 // 1788
2358 f881945950_16.returns.push(14);
2359 // 1787
2360 JSBNG_Replay.sdaedc82b47673ce6de4c0b9c01978bd63c2c50e4_1[0](o5);
2361 // undefined
2362 o5 = null;
2363 // 1791
2364 o1 = {};
2365 // 1792
2366 f881945950_406.returns.push(o1);
2367 // 1793
2368 // undefined
2369 o1 = null;
2370 // 1789
2371 JSBNG_Replay.sdaedc82b47673ce6de4c0b9c01978bd63c2c50e4_2[0]();
2372 // 1795
2373 // undefined
2374 o2 = null;
2375 // 1796
2376 o1 = {};
2377 // 1797
2378 f881945950_0.returns.push(o1);
2379 // 1798
2380 o1.getHours = f881945950_413;
2381 // 1799
2382 f881945950_413.returns.push(13);
2383 // 1800
2384 o1.getMinutes = f881945950_414;
2385 // 1801
2386 f881945950_414.returns.push(59);
2387 // 1802
2388 o1.getSeconds = f881945950_415;
2389 // undefined
2390 o1 = null;
2391 // 1803
2392 f881945950_415.returns.push(49);
2393 // 1808
2394 f881945950_406.returns.push(null);
2395 // 1813
2396 f881945950_406.returns.push(null);
2397 // 1814
2398 f881945950_16.returns.push(15);
2399 // 1816
2400 f881945950_406.returns.push(o4);
2401 // 1817
2402 o1 = {};
2403 // 1818
2404 f881945950_0.returns.push(o1);
2405 // 1819
2406 o1.getHours = f881945950_413;
2407 // 1820
2408 f881945950_413.returns.push(13);
2409 // 1821
2410 o1.getMinutes = f881945950_414;
2411 // 1822
2412 f881945950_414.returns.push(59);
2413 // 1823
2414 o1.getSeconds = f881945950_415;
2415 // undefined
2416 o1 = null;
2417 // 1824
2418 f881945950_415.returns.push(50);
2419 // 1829
2420 f881945950_406.returns.push(null);
2421 // 1834
2422 f881945950_406.returns.push(null);
2423 // 1835
2424 f881945950_16.returns.push(16);
2425 // 1837
2426 f881945950_406.returns.push(o4);
2427 // 1838
2428 o1 = {};
2429 // 1839
2430 f881945950_0.returns.push(o1);
2431 // 1840
2432 o1.getHours = f881945950_413;
2433 // 1841
2434 f881945950_413.returns.push(13);
2435 // 1842
2436 o1.getMinutes = f881945950_414;
2437 // 1843
2438 f881945950_414.returns.push(59);
2439 // 1844
2440 o1.getSeconds = f881945950_415;
2441 // undefined
2442 o1 = null;
2443 // 1845
2444 f881945950_415.returns.push(51);
2445 // 1850
2446 f881945950_406.returns.push(null);
2447 // 1855
2448 f881945950_406.returns.push(null);
2449 // 1856
2450 f881945950_16.returns.push(17);
2451 // 1858
2452 f881945950_406.returns.push(o4);
2453 // 1859
2454 o1 = {};
2455 // 1860
2456 f881945950_0.returns.push(o1);
2457 // 1861
2458 o1.getHours = f881945950_413;
2459 // 1862
2460 f881945950_413.returns.push(13);
2461 // 1863
2462 o1.getMinutes = f881945950_414;
2463 // 1864
2464 f881945950_414.returns.push(59);
2465 // 1865
2466 o1.getSeconds = f881945950_415;
2467 // undefined
2468 o1 = null;
2469 // 1866
2470 f881945950_415.returns.push(52);
2471 // 1871
2472 f881945950_406.returns.push(null);
2473 // 1876
2474 f881945950_406.returns.push(null);
2475 // 1877
2476 f881945950_16.returns.push(18);
2477 // 1879
2478 f881945950_406.returns.push(o4);
2479 // 1880
2480 o1 = {};
2481 // 1881
2482 f881945950_0.returns.push(o1);
2483 // 1882
2484 o1.getHours = f881945950_413;
2485 // 1883
2486 f881945950_413.returns.push(13);
2487 // 1884
2488 o1.getMinutes = f881945950_414;
2489 // 1885
2490 f881945950_414.returns.push(59);
2491 // 1886
2492 o1.getSeconds = f881945950_415;
2493 // undefined
2494 o1 = null;
2495 // 1887
2496 f881945950_415.returns.push(53);
2497 // 1892
2498 f881945950_406.returns.push(null);
2499 // 1897
2500 f881945950_406.returns.push(null);
2501 // 1898
2502 f881945950_16.returns.push(19);
2503 // 1900
2504 f881945950_406.returns.push(o4);
2505 // 1901
2506 o1 = {};
2507 // 1902
2508 f881945950_0.returns.push(o1);
2509 // 1903
2510 o1.getHours = f881945950_413;
2511 // 1904
2512 f881945950_413.returns.push(13);
2513 // 1905
2514 o1.getMinutes = f881945950_414;
2515 // 1906
2516 f881945950_414.returns.push(59);
2517 // 1907
2518 o1.getSeconds = f881945950_415;
2519 // undefined
2520 o1 = null;
2521 // 1908
2522 f881945950_415.returns.push(54);
2523 // 1913
2524 f881945950_406.returns.push(null);
2525 // 1918
2526 f881945950_406.returns.push(null);
2527 // 1919
2528 f881945950_16.returns.push(20);
2529 // 1921
2530 f881945950_406.returns.push(o4);
2531 // 1922
2532 o1 = {};
2533 // 1923
2534 f881945950_0.returns.push(o1);
2535 // 1924
2536 o1.getHours = f881945950_413;
2537 // 1925
2538 f881945950_413.returns.push(13);
2539 // 1926
2540 o1.getMinutes = f881945950_414;
2541 // 1927
2542 f881945950_414.returns.push(59);
2543 // 1928
2544 o1.getSeconds = f881945950_415;
2545 // undefined
2546 o1 = null;
2547 // 1929
2548 f881945950_415.returns.push(55);
2549 // 1934
2550 f881945950_406.returns.push(null);
2551 // 1939
2552 f881945950_406.returns.push(null);
2553 // 1940
2554 f881945950_16.returns.push(21);
2555 // 1942
2556 f881945950_406.returns.push(o4);
2557 // 1943
2558 o1 = {};
2559 // 1944
2560 f881945950_0.returns.push(o1);
2561 // 1945
2562 o1.getHours = f881945950_413;
2563 // 1946
2564 f881945950_413.returns.push(13);
2565 // 1947
2566 o1.getMinutes = f881945950_414;
2567 // 1948
2568 f881945950_414.returns.push(59);
2569 // 1949
2570 o1.getSeconds = f881945950_415;
2571 // undefined
2572 o1 = null;
2573 // 1950
2574 f881945950_415.returns.push(56);
2575 // 1955
2576 f881945950_406.returns.push(null);
2577 // 1960
2578 f881945950_406.returns.push(null);
2579 // 1961
2580 f881945950_16.returns.push(22);
2581 // 1963
2582 f881945950_406.returns.push(o4);
2583 // 1964
2584 o1 = {};
2585 // 1965
2586 f881945950_0.returns.push(o1);
2587 // 1966
2588 o1.getHours = f881945950_413;
2589 // 1967
2590 f881945950_413.returns.push(13);
2591 // 1968
2592 o1.getMinutes = f881945950_414;
2593 // 1969
2594 f881945950_414.returns.push(59);
2595 // 1970
2596 o1.getSeconds = f881945950_415;
2597 // undefined
2598 o1 = null;
2599 // 1971
2600 f881945950_415.returns.push(57);
2601 // 1976
2602 f881945950_406.returns.push(null);
2603 // 1981
2604 f881945950_406.returns.push(null);
2605 // 1982
2606 f881945950_16.returns.push(23);
2607 // 1984
2608 f881945950_406.returns.push(o4);
2609 // 1985
2610 o1 = {};
2611 // 1986
2612 f881945950_0.returns.push(o1);
2613 // 1987
2614 o1.getHours = f881945950_413;
2615 // 1988
2616 f881945950_413.returns.push(13);
2617 // 1989
2618 o1.getMinutes = f881945950_414;
2619 // 1990
2620 f881945950_414.returns.push(59);
2621 // 1991
2622 o1.getSeconds = f881945950_415;
2623 // undefined
2624 o1 = null;
2625 // 1992
2626 f881945950_415.returns.push(58);
2627 // 1997
2628 f881945950_406.returns.push(null);
2629 // 2002
2630 f881945950_406.returns.push(null);
2631 // 2003
2632 f881945950_16.returns.push(24);
2633 // 2005
2634 f881945950_406.returns.push(o4);
2635 // 2006
2636 o1 = {};
2637 // 2007
2638 f881945950_0.returns.push(o1);
2639 // 2008
2640 o1.getHours = f881945950_413;
2641 // 2009
2642 f881945950_413.returns.push(13);
2643 // 2010
2644 o1.getMinutes = f881945950_414;
2645 // 2011
2646 f881945950_414.returns.push(59);
2647 // 2012
2648 o1.getSeconds = f881945950_415;
2649 // undefined
2650 o1 = null;
2651 // 2013
2652 f881945950_415.returns.push(59);
2653 // 2018
2654 f881945950_406.returns.push(null);
2655 // 2023
2656 f881945950_406.returns.push(null);
2657 // 2024
2658 f881945950_16.returns.push(25);
2659 // 2026
2660 f881945950_406.returns.push(o4);
2661 // 2027
2662 o1 = {};
2663 // 2028
2664 f881945950_0.returns.push(o1);
2665 // 2029
2666 o1.getHours = f881945950_413;
2667 // 2030
2668 f881945950_413.returns.push(14);
2669 // 2031
2670 o1.getMinutes = f881945950_414;
2671 // 2032
2672 f881945950_414.returns.push(0);
2673 // 2033
2674 o1.getSeconds = f881945950_415;
2675 // undefined
2676 o1 = null;
2677 // 2034
2678 f881945950_415.returns.push(0);
2679 // 2039
2680 f881945950_406.returns.push(null);
2681 // 2044
2682 f881945950_406.returns.push(null);
2683 // 2045
2684 f881945950_16.returns.push(26);
2685 // 2047
2686 f881945950_406.returns.push(o4);
2687 // 2048
2688 o1 = {};
2689 // 2049
2690 f881945950_0.returns.push(o1);
2691 // 2050
2692 o1.getHours = f881945950_413;
2693 // 2051
2694 f881945950_413.returns.push(14);
2695 // 2052
2696 o1.getMinutes = f881945950_414;
2697 // 2053
2698 f881945950_414.returns.push(0);
2699 // 2054
2700 o1.getSeconds = f881945950_415;
2701 // undefined
2702 o1 = null;
2703 // 2055
2704 f881945950_415.returns.push(1);
2705 // 2060
2706 f881945950_406.returns.push(null);
2707 // 2065
2708 f881945950_406.returns.push(null);
2709 // 2066
2710 f881945950_16.returns.push(27);
2711 // 2068
2712 f881945950_406.returns.push(o4);
2713 // 2069
2714 o1 = {};
2715 // 2070
2716 f881945950_0.returns.push(o1);
2717 // 2071
2718 o1.getHours = f881945950_413;
2719 // 2072
2720 f881945950_413.returns.push(14);
2721 // 2073
2722 o1.getMinutes = f881945950_414;
2723 // 2074
2724 f881945950_414.returns.push(0);
2725 // 2075
2726 o1.getSeconds = f881945950_415;
2727 // undefined
2728 o1 = null;
2729 // 2076
2730 f881945950_415.returns.push(2);
2731 // 2081
2732 f881945950_406.returns.push(null);
2733 // 2086
2734 f881945950_406.returns.push(null);
2735 // 2087
2736 f881945950_16.returns.push(28);
2737 // 2089
2738 f881945950_406.returns.push(o4);
2739 // 2090
2740 o1 = {};
2741 // 2091
2742 f881945950_0.returns.push(o1);
2743 // 2092
2744 o1.getHours = f881945950_413;
2745 // 2093
2746 f881945950_413.returns.push(14);
2747 // 2094
2748 o1.getMinutes = f881945950_414;
2749 // 2095
2750 f881945950_414.returns.push(0);
2751 // 2096
2752 o1.getSeconds = f881945950_415;
2753 // undefined
2754 o1 = null;
2755 // 2097
2756 f881945950_415.returns.push(3);
2757 // 2102
2758 f881945950_406.returns.push(null);
2759 // 2107
2760 f881945950_406.returns.push(null);
2761 // 2108
2762 f881945950_16.returns.push(29);
2763 // 2110
2764 f881945950_406.returns.push(o4);
2765 // 2111
2766 o1 = {};
2767 // 2112
2768 f881945950_0.returns.push(o1);
2769 // 2113
2770 o1.getHours = f881945950_413;
2771 // 2114
2772 f881945950_413.returns.push(14);
2773 // 2115
2774 o1.getMinutes = f881945950_414;
2775 // 2116
2776 f881945950_414.returns.push(0);
2777 // 2117
2778 o1.getSeconds = f881945950_415;
2779 // undefined
2780 o1 = null;
2781 // 2118
2782 f881945950_415.returns.push(4);
2783 // 2123
2784 f881945950_406.returns.push(null);
2785 // 2128
2786 f881945950_406.returns.push(null);
2787 // 2129
2788 f881945950_16.returns.push(30);
2789 // 2131
2790 f881945950_406.returns.push(o4);
2791 // 2132
2792 o1 = {};
2793 // 2133
2794 f881945950_0.returns.push(o1);
2795 // 2134
2796 o1.getHours = f881945950_413;
2797 // 2135
2798 f881945950_413.returns.push(14);
2799 // 2136
2800 o1.getMinutes = f881945950_414;
2801 // 2137
2802 f881945950_414.returns.push(0);
2803 // 2138
2804 o1.getSeconds = f881945950_415;
2805 // undefined
2806 o1 = null;
2807 // 2139
2808 f881945950_415.returns.push(5);
2809 // 2144
2810 f881945950_406.returns.push(null);
2811 // 2149
2812 f881945950_406.returns.push(null);
2813 // 2150
2814 f881945950_16.returns.push(31);
2815 // 2152
2816 f881945950_406.returns.push(o4);
2817 // 2153
2818 // 2154
2819 o1 = {};
2820 // 2155
2821 f881945950_0.returns.push(o1);
2822 // 2156
2823 o1.getHours = f881945950_413;
2824 // 2157
2825 f881945950_413.returns.push(14);
2826 // 2158
2827 o1.getMinutes = f881945950_414;
2828 // 2159
2829 f881945950_414.returns.push(0);
2830 // 2160
2831 o1.getSeconds = f881945950_415;
2832 // undefined
2833 o1 = null;
2834 // 2161
2835 f881945950_415.returns.push(6);
2836 // 2166
2837 f881945950_406.returns.push(null);
2838 // 2171
2839 f881945950_406.returns.push(null);
2840 // 2172
2841 f881945950_16.returns.push(32);
2842 // 2174
2843 f881945950_406.returns.push(o4);
2844 // undefined
2845 o4 = null;
2846 // 2175
2847 o1 = {};
2848 // 1794
2849 JSBNG_Replay.s6642b77f01f4d49ef240b29032e6da4372359178_1[0]();
2850 // 2177
2851 o1.type = "mozvisibilitychange";
2852 // 2178
2853 o1.originalEvent = void 0;
2854 // 2179
2855 o0.mozVisibilityState = "hidden";
2856 // 2180
2857 o2 = {};
2858 // 2181
2859 f881945950_0.returns.push(o2);
2860 // undefined
2861 o2 = null;
2862 // 2182
2863 // 2176
2864 fpc.call(JSBNG_Replay.sd77f26a2825b7813fef421f4fc64cccaae936b24_7[0], o0,o1);
2865 // undefined
2866 o0 = null;
2867 // undefined
2868 o1 = null;
2869 // 2183
2870 cb(); return null; }
2871 finalize(); })();