(this || (0, eval)("(this)")).bdor = []; (function(b) { function c(b) { b = f.match(b); if (null == b || 0 == b.length) return 0; b = b[0]; var c = b.indexOf("/"); b = b.substring(c + 1, b.length); return "" == b ? 0 : parseInt(b) } function d(b) { b = f.match(b); if (null == b || 0 == b.length) return 0; b = b[0].replace("_", ".").match(/\d+\.?\d?/); if (null == b || 0 == b.length) return 0; b = b[0]; return "" == b ? 0 : parseFloat(b) } var f = navigator.userAgent.toLowerCase(); b.browser = {}; b.browser.webkit = /webkit/.test(f); b.browser.mozilla = /firefox/.test(f); b.browser.firefox = b.browser.mozilla; b.browser.msie = /msie/.test(f) || /trident/.test(f) || /edge/.test(f); b.browser.edge = /edge/.test(f); b.browser.opera = /opera/.test(f) || /opr/.test(f); b.browser.chrome = /chrome/.test(f) && !b.browser.opera && !b.browser.edge; b.browser.uc = /ucbrowser/.test(f); b.browser.safari = /safari/.test(f) && !b.browser.chrome && !b.browser.uc && !b.browser.opera; b.browser.version = 0; bdor[1] = "p"; b.browser.firefox && (b.browser.version = c(/firefox\/\d+/)); if (b.browser.msie) { var g = f.match(/msie\s?\d+\.0/); null == g ? (g = f.match(/trident\/\d+\.0/), null != g && 0 < g.length && (g = parseInt(g[0].replace("trident/", "")), b.browser.version = g + 4)) : (g = parseInt(g[0].replace("msie", "")), b.browser.version = g) } b.browser.opera && (b.browser.version = c(/opera\/\d+/) || c(/opr\/\d+/)); b.browser.chrome && (b.browser.version = c(/chrome\/\d+/)); b.browser.uc && (b.browser.version = c(/ucbrowser\/\d+/)); b.browser.safari && (b.browser.version = c(/safari\/\d+/)); if (void 0 == b.browser.device) { b.browser.DEVICE_PC = 0; b.browser.DEVICE_PAD = 1; b.browser.DEVICE_PHONE = 2; var g = /pad/.test(f) || /ipod/.test(f) , h = /iphone/.test(f) , k = /wpdesktop/.test(f) || /windows phone/.test(f) , l = /blackberry/.test(f) , m = /mobile/.test(f) || /phone/.test(f); b.browser.device = b.browser.DEVICE_PC; if (g) b.browser.device = b.browser.DEVICE_PAD; else if (h || k || l || m) b.browser.device = b.browser.DEVICE_PHONE } void 0 == b.browser.prefix && (b.browser.prefix = "", !0 == b.browser.webkit && (b.browser.prefix = "-webkit-"), !0 == b.browser.mozilla && (b.browser.prefix = "-moz-"), !0 == b.browser.opera && (b.browser.prefix = "-webkit-"), !0 == b.browser.uc && (b.browser.prefix = "-webkit-"), !0 == b.browser.msie && (b.browser.prefix = "-ms-")); if (void 0 == b.system) { b.system = { name: "", version: 0 }; b.system.WINDOWS = "Windows"; b.system.WP = "WinPhone"; b.system.WP_DESKTOP = "WinPhoneDesktop"; b.system.MAC = "Mac OS"; b.system.IOS = "iPhone OS"; b.system.LINUX = "Linux"; b.system.ANDROID = "Android"; b.system.BLACKBERRY = "BlackBerry"; /windows/.test(f) && (b.system.name = b.system.WINDOWS, b.system.version = d(/windows nt\s?\d+\.?\d?/)); /windows phone/.test(f) && (b.system.name = b.system.WP, b.system.version = d(/windows phone\s?\d+\.?\d?/)); /wpdesktop/.test(f) && (b.system.name = b.system.WP_DESKTOP, b.system.version = d(/wpdesktop\s?\d+\.?\d?/)); if (b.system.name != b.system.WP) { if (/iphone/.test(f) || /ipad/.test(f)) b.system.name = b.system.IOS, b.system.version = d(/os\s?\d+_?\d?/); /android/.test(f) && (b.system.name = b.system.ANDROID, b.system.version = d(/android\s?\d+\.?\d?/)) } /mac/.test(f) && b.browser.system != b.browser.IOS && (b.system.name = b.system.MAC, b.system.version = d(/os x\s?\d+\.?\d?/)); /linux/.test(f) && !/android/.test(f) && (b.system.name = b.system.LINUX); /blackberry/.test(f) && (b.system.name = b.system.BLACKBERRY, b.system.version = d(/blackberry\s?\d+/)) } })(jQuery); var global = function() { return this || (0, eval)("(this)") }() , virtual_function = function() {}; function getPackageByName(b) { if (void 0 == b || "" == b) return global; var c = global; b = b.split("."); for (var d = 0; d < b.length; d++) { var f = b[d]; c[f] || (c[f] = { IS_PACKAGE_OBJECT: !0 }); c = c[f] } return c } function getClassByFullName(b) { if (-1 == b.indexOf(".")) return global[b]; var c = b.split("."); b = c.pop(); c = c.join("."); return getPackageByName(c)[b] } function classof(b, c) { if (!b) return ""; c || (c = global); "string" == typeof c && (c = getPackageByName(c)); var d = ["webkitStorageInfo", "webkitIndexedDB"], f; for (f in c) try { if (!(-1 < d.indexOf(f)) && c[f]instanceof Function) try { if (b instanceof c[f]) return f } catch (g) {} } catch (h) {} for (f in c) if ("object" == typeof c[f] && c[f].IS_PACKAGE_OBJECT && (d = classof(b, c[f]), "" != d)) return f + "." + d; return "" } function nameof(b, c) { if (!b) return ""; c || (c = global); "string" == typeof c && (c = getPackageByName(c)); var d = ["webkitStorageInfo", "webkitIndexedDB"], f; for (f in c) try { if (!(-1 < d.indexOf(f)) && c[f] == b) return f } catch (g) {} for (f in c) if ("object" == typeof c[f] && c[f].IS_PACKAGE_OBJECT && (d = nameof(b, c[f]), "" != d)) return f + "." + d; return "" } function Class(b, c) { if ("string" === typeof b) { var d = c , f = getPackageByName(d.Package); f[b] = Class(d); return f[b] } var g = function() { if (this.Import) { "string" == typeof this.Import && (this.Import = [this.Import]); for (var b = 0; b < this.Import.length; b++) { var c = this.Import[b] , d = getPackageByName(c); if (d instanceof Function) this[c.split(".").pop()] = d; else for (var f in d) d[f]instanceof Function && (this[f] = d[f]) } } d = getPackageByName(this.Package); if (d != global) for (f in d) this.getClassName() != f && d[f]instanceof Function && (this[f] = d[f]); this.create && this.create instanceof Function && this.create.apply(this, arguments) }; g.prototype = b || {}; var h; g.prototype.getClassName = function() { h || (h = nameof(g, this.Package)); return h } ; g.prototype.getClass = function() { return g } ; d = g.prototype.statics; if (void 0 != d) { for (f in d) void 0 == g[f] && (g[f] = d[f]); delete g.prototype.statics } return g } Function.prototype.extend = function(b) { if (!b) return this; if ("string" == typeof b) if (-1 < b.indexOf(".")) { if (b = getClassByFullName(b), !b) return this } else { var c = this.prototype.Package , d = b , f = b; c && "" != c && (f = c + "." + d); if (c = getClassByFullName(f)) b = c; else if (c = getClassByFullName(d)) b = c; else return this } if (b instanceof Function) { for (var g in b) void 0 == this[g] && (this[g] = b[g]); for (g in b.prototype) void 0 == this.prototype[g] ? b.prototype[g] == virtual_function ? console && console.error && console.error("virtual function [%s] must be override.", g) : this.prototype[g] = b.prototype[g] : (d = /xyz/.test(function() { xyz }) ? /\b_super\b/ : /.*/, this.prototype[g]instanceof Function && b.prototype[g]instanceof Function && d.test(this.prototype[g]) && (this.prototype[g] = function(c, d) { return function() { var f = this._super; this._super = b.prototype[c]; var g = d.apply(this, arguments); this._super = f; return g } }(g, this.prototype[g]))); return this } return "object" !== typeof b ? this : this.extend(Class(b)) } ; Function.prototype.expand = function(b, c) { if ("object" === typeof b) if (void 0 == c && (c = !1), !0 === c) for (var d in b) this.prototype[d] = b[d]; else this.extend(Class(b)) } ; var Instance = { copy: function(b) { if (!b || "object" !== typeof b) return b; var c = {}; b instanceof Array && (c = []); for (property in b) c[property] = "object" == typeof b[property] ? Instance.copy(b[property]) : b[property]; return c }, create: function(b, c) { c || (c = []); var d = b; "string" == typeof b && (d = getClassByFullName(d)); if (!d) return null; var f = d.prototype.create; d.prototype.create = function() {} ; var g = new d; d.prototype.create = f; g.create && g.create instanceof Function && g.create.apply(g, c); return g }, JSON: function(b) { if (void 0 === b) return "undefined"; if (null === b) return "null"; if (b instanceof Array) { var c = []; c.push("["); for (var d = 0; d < b.length; d++) c.push(Instance.JSON(b[d])), c.push(", "); 1 < c.length && c.pop(); c.push("]"); return c.join("") } if (b instanceof Function) return b; if ("string" === typeof b) return '"' + b.toString() + '"'; if ("number" === typeof b) return Number(b).toString(); if ("boolean" === typeof b) return Boolean(b).toString(); if ("object" === typeof b) { c = []; c.push("{"); for (d in b) { var f = '"' + d + '":' + Instance.JSON(b[d]); c.push(f); c.push(", ") } 1 < c.length && c.pop(); c.push("}"); return c.join("") } }, parse: function(b, c) { return b && "undefined" != b && "null" != b && "" != b ? eval("(" + b + ")") : c } }; Object.create = Object.create || function() { function b() {} return function(c) { if (1 != arguments.length) throw Error("Object.create implementation only accepts one parameter."); b.prototype = c; return new b } }(); Object.keys = Object.keys || function(b) { if (b !== Object(b)) throw new TypeError("Object.keys called on a non-object"); var c = [], d; for (d in b) Object.prototype.hasOwnProperty.call(b, d) && c.push(d); return c } ; (function() { for (var b = 0, c = ["webkit", "moz"], d = 0; d < c.length && !window.requestAnimationFrame; ++d) window.requestAnimationFrame = window[c[d] + "RequestAnimationFrame"], window.cancelAnimationFrame = window[c[d] + "CancelAnimationFrame"] || window[c[d] + "CancelRequestAnimationFrame"]; window.requestAnimationFrame || (window.requestAnimationFrame = function(c) { var d = (new Date).getTime() , h = Math.max(0, 16.7 - (d - b)) , k = window.setTimeout(function() { c(d + h) }, h); b = d + h; return k } ); window.cancelAnimationFrame || (window.cancelAnimationFrame = function(b) { clearTimeout(b) } ) })(); (function() { var b = { supportsFullScreen: !1, isFullScreen: function() { return !1 }, requestFullScreen: function() {}, cancelFullScreen: function() {}, fullScreenEventName: "-", prefix: "" } , c = ["webkit", "moz", "o", "ms"]; if ("undefined" != typeof document.exitFullscreen) b.supportsFullScreen = !0; else if ("undefined" != typeof document.cancelFullScreen) b.supportsFullScreen = !0; else for (var d = 0, f = c.length; d < f; d++) if (b.prefix = c[d], "undefined" != typeof document[b.prefix + "CancelFullScreen"]) { b.supportsFullScreen = !0; break } b.supportsFullScreen && (b.fullScreenEventName = b.prefix + "fullscreenchange", b.isFullScreen = function() { switch (this.prefix) { case "": return document.fullScreen; case "webkit": return document.webkitIsFullScreen; default: return document[this.prefix + "FullScreen"] } } , b.requestFullScreen = function(b) { b[this.prefix + "RequestFullScreen"]() } , b.cancelFullScreen = function(b) { return "" === this.prefix ? document.cancelFullScreen() : document[this.prefix + "CancelFullScreen"]() } ); window.fullScreenApi = b })(); var ColorTable = { aliceblue: "#f0f8ff", antiquewhite: "#faebd7", aqua: "#00ffff", aquamarine: "#7fffd4", azure: "#f0ffff", beige: "#f5f5dc", bisque: "#ffe4c4", black: "#000000", blanchedalmond: "#ffebcd", blue: "#0000ff", blueviolet: "#8a2be2", brown: "#a52a2a", burlywood: "#deb887", cadetblue: "#5f9ea0", chartreuse: "#7fff0", chocolate: "#d2691e", coral: "#ff7f50", cornflowerblue: "#6495ed", cornsilk: "#fff8dc", crimson: "#dc143c", cyan: "#00ffff", darkblue: "#00008b", darkcyan: "#008b8b", darkgoldenrod: "#b8860b", darkgray: "#a9a9a9", darkgreen: "#006400", darkgrey: "#a9a9a9", darkkhaki: "#bdb76b", darkmagenta: "#8b008b", darkolivegreen: "#556b2f", darkorange: "#ff8c00", darkorchid: "#9932cc", darkred: "#8b0000", darksalmon: "#e9967a", darkseagreen: "#8fbc8f", darkslateblue: "#483d8b", darkslategray: "#2f4f4f", darkslategrey: "#2f4f4f", darkturquoise: "#00ced1", darkviolet: "#9400d3", deeppink: "#ff1493", deepskyblue: "#00bfff", dimgray: "#696969", dimgrey: "#696969", dodgerblue: "#1e90ff", firebrick: "#b22222", floralwhite: "#fffaf0", forestgreen: "#228b22", fuchsia: "#ff00ff", gainsboro: "#dcdcdC", ghostwhite: "#f8f8ff", gold: "#ffd700", goldenrod: "#daa520", gray: "#808080", green: "#008000", greenyellow: "#adff2f", grey: "#808080", honeydew: "#f0fff0", hotpink: "#ff69b4", indianred: "#cd5c5c", indigo: "#4b0082", ivory: "#fffff0", khaki: "#f0e68c", lavender: "#e6e6fa", lavenderblush: "#fff0f5", lawngreen: "#7cfc00", lemonchiffon: "#fffacd", lightblue: "#add8e6", lightcoral: "#f08080", lightcyan: "#e0ffff", lightgoldenrodyellow: "#fafad2", lightgray: "#d3d3d3", lightgreen: "#90ee90", lightgrey: "#d3d3d3", lightpink: "#ffb6c1", lightsalmon: "#ffa07a", lightseagreen: "#20b2aa", lightskyblue: "#87cefa", lightslategray: "#778899", lightslategrey: "#778899", lightsteelblue: "#b0c4de", lightyellow: "#ffffe0", lime: "#00ff00", limegreen: "#32cd32", linen: "#faf0e6", magenta: "#ff00ff", maroon: "#800000", mediumaquamarine: "#66cdaa", mediumblue: "#0000cd", mediumorchid: "#ba55d3", mediumpurple: "#9370db", mediumseagreen: "#3cb371", mediumslateblue: "#7b68ee", mediumspringgreen: "#00fa9a", mediumturquoise: "#48d1cc", mediumvioletred: "#c71585", midnightblue: "#191970", mintcream: "#f5fffa", mistyrose: "#ffe4e1", moccasin: "#ffe4b5", navajowhite: "#ffdead", navy: "#000080", oldlace: "#fdf5e6", olive: "#808000", olivedrab: "#6b8e23", orange: "#ffa500", orangered: "#ff4500", orchid: "#da70d6", palegoldenrod: "#eee8aa", palegreen: "#98fb98", paleturquoise: "#afeeee", palevioletred: "#db7093", papayawhip: "#ffefd5", peachpuff: "#ffdab9", peru: "#cd853f", pink: "#ffc0cb", plum: "#dda0dd", powderblue: "#b0e0e6", purple: "#800080", red: "#ff0000", rosybrown: "#bc8f8f", royalblue: "#4169e1", saddlebrown: "#8b4513", salmon: "#fa8072", sandybrown: "#f4a460", seagreen: "#2e8b57", seashell: "#fff5ee", sienna: "#a0522d", silver: "#c0c0c0", skyblue: "#87ceeb", slateblue: "#6a5acd", slategray: "#708090", slategrey: "#708090", snow: "#fffafa", springgreen: "#00ff7f", steelblue: "#4682b4", tan: "#d2b48c", teal: "#008080", thistle: "#d8bfd8", tomato: "#ff6347", turquoise: "#40e0d0", violet: "#ee82ee", wheat: "#f5deb3", white: "#ffffff", whitesmoke: "#f5f5f5", yellow: "#ffff00", yellowgreen: "#9acd32", value: function(b) { if (!b || "string" != typeof b) return b; var c = b.toLowerCase(); return this[c] ? this[c] : b } }; Function.expand({ bind: function(b) { var c = this; return function() { return c.apply(b, arguments) } }, delay: function(b, c, d) { "object" !== typeof b && (d = c, c = b, b = global); c = c || 1; d = d || []; return setTimeout(function() { this.apply(b, d) } .bind(this), c) }, interval: function(b, c, d) { "object" !== typeof b && (d = c, c = b, b = global); c = c || 1; d = d || []; var f = this; return { intervalId: setInterval(function() { this.apply(b, d) } .bind(this), c), stop: function() { clearInterval(this.intervalId); this.intervalId = void 0 }, isRunning: function() { return void 0 != this.intervalId }, start: function() { this.intervalId = setInterval(function() { f.apply(b, d) }, c) } } }, runInAnimate: function(b, c) { "object" !== typeof b && (c = b, b = {}); var d = { stopFlag: !1, stop: function() { this.stopFlag = !0 } } , f = this , g = 0 , h = Math.ceil(c / 16.7) , k = function() { !0 !== d.stopFlag && (g++, !1 !== f.apply(b, [g, h]) && (g < h || void 0 == c) && window.requestAnimationFrame(k)) }; k(); return d }, executeOnce: function() { this.executed || (this.executed = !1); this.executed || (this(), this.executed = !0) } }); String.expand({ trim: function() { return this.replace(/(^\s*)|(\s*$)/g, "") }, replaceAll: function(b, c, d) { void 0 == d && (d = !1); if (!b || !c) return this; if (RegExp && !d) return this.replace(RegExp(b, "g"), c); var f = this.indexOf(b); d = []; for (var g = this; -1 != f; ) { var f = f + b.length , h = g.substring(0, f) , g = g.substring(f) , h = h.replace(b, c); d.push(h); f = g.indexOf(b) } "" !== g && d.push(g); return d.join("") }, subBetween: function(b, c) { if (void 0 == b || void 0 == c) return ""; var d = this.length , f = this.indexOf(b); if (-1 == f) return ""; f += b.length; d = this.substring(f, d).indexOf(c); return -1 == d ? "" : this.substring(f, d + f) }, isUrl: function() { if ("" == this.trim() || !RegExp) return !1; var b = /((((ht|f)tp(s?))\:\/\/)|(www\.))\w+\.\w+\/?\w*/gi; return !!this.match(/(((ht|f)tp(s?))\:\/\/)?(www\.)?\w+\.\w+\/\w*/gi) || !!this.match(b) }, isEmail: function() { return "" != this && this.match(/^([A-Za-z0-9])(\w)+@(\w)+(\.)(com|com\.cn|net|cn|net\.cn|org|biz|info|gov|gov\.cn|edu|edu\.cn)/) ? !0 : !1 }, toArray: function(b) { b || (b = ""); return this.split(b) }, reverse: function() { var b = this.split(""); b.reverse(); return b.join("") }, equals: function(b) { return this.trim() == b.trim() }, equalsIgnoreCase: function(b) { return this.toLowerCase().trim() == b.toLowerCase().trim() }, like: function(b) { if (!b) return !1; b = this.toLowerCase().trim(); var c = this.toLowerCase().trim(); return -1 < b.indexOf(c) || -1 < c.indexOf(b) }, contain: function(b) { return -1 < this.indexOf(b) }, "in": function(b) { return -1 < b.indexOf(this) }, startWith: function(b) { return "" === b ? !1 : this.substr(0, b.length) === b }, endWith: function(b) { return "" === b ? !1 : this.substr(-b.length, b.length) === b }, isEnglish: function() { return /[\x00-\xff]/.test(this) }, overflow: function(b) { if (void 0 == b) return this.toString(); var c = 2; /[^\x00-\xff]/.test(this) && (b = Math.floor(b / 2), c = Math.floor(c / 2)); return this.length - b > c ? this.substr(0, b) + "..." : this.toString() }, remove: function(b) { if ("string" != typeof b || !b) return this; var c = this.indexOf(b); if (0 > c) return this; b = b.length; return this.substring(0, c) + this.substring(c + b, this.length) }, removeStartFrom: function(b) { if ("string" == typeof b && b) return b = this.indexOf(b), 0 > b ? this : this.substring(0, b) }, cycleToLength: function(b) { if (!isNaN(b)) { for (var c = parseInt(b / this.length), d = this; 0 < c; ) d += this, c--; return d.substring(0, b) } }, firstUpperCase: function() { return 1 > this.length ? this : this.substring(0, 1).toUpperCase() + this.substring(1) }, firstLowerCase: function() { return 1 > this.length ? this : this.substring(0, 1).toLowerCase() + this.substring(1) }, extract: function() { if (0 == this.length || 0 == arguments.length) return []; for (var b = [], c = this.toString(), d = 0; d < c.length; ) { for (var f = !1, g = 0; g < arguments.length; g++) { var h = arguments[g]; if (c.substr(d, h.length) == h) { b.push(h); d += h.length; f = !0; break } } f || d++ } return b }, statics: { format: function() { if (0 == arguments.length) return ""; if (1 == arguments.length) return arguments[0]; for (var b = arguments[0], c = b.extract("%s", "%d", "%f", "%b", "%o"), d = 1; d < arguments.length; d++) { var f = arguments[d] , g = c[d - 1]; "%s" == g && ("string" == typeof f ? b = b.replace("%s", f) : b = b.replace("%s", "")); if ("%d" == g) { isNaN(f) && (f = 0); var h; h = "number" == typeof f ? -1 == Number(f).toString().indexOf(".") : !1; h ? b = b.replace("%d", f + "") : b = b.replace("%d", "") } "%f" == g && (isNaN(f) && (f = 0), "number" == typeof f ? b = b.replace("%f", f + "") : b = b.replace("%f", "")); "%b" == g && (f = !!f, "boolean" == typeof f ? b = b.replace("%b", f + "") : b = b.replace("%b", "")); "%o" == g && ("object" == typeof f ? b = b.replace("%o", Instance.JSON(f)) : b = b.replace("%o", "")) } return b } } }); Array.expand({ remove: function(b) { return isNaN(b) || b > this.length ? !1 : this.splice(b, 1)[0] }, indexOf: function(b) { for (var c = 0; c < this.length; c++) if (this[c] === b) return c; return -1 }, removeElement: function(b) { b = this.indexOf(b); -1 < b && this.remove(b) }, lastIndexOf: function(b) { for (var c = -1, d = 0; d < this.length; d++) this[d] === b && (c = d); return c }, statics: { isArray: function(b) { return "[object Array]" == Object.prototype.toString.call(b) } } }); Date.expand({ format: function(b, c) { c = c || !0; var d = { "y+": this.getYear(), "M+": this.getMonth() + 1, "d+": this.getDate(), "h+": this.getHours(), "m+": this.getMinutes(), "s+": this.getSeconds(), "q+": Math.floor((this.getMonth() + 3) / 3), S: this.getMilliseconds() }; /(y+)/.test(b) && (b = b.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length))); for (var f in d) RegExp("(" + f + ")").test(b) && (b = !0 === c ? b.replace(RegExp.$1, d[f]) : b.replace(RegExp.$1, 1 == RegExp.$1.length ? d[f] : ("00" + d[f]).substr(("" + d[f]).length))); return b }, statics: { now: function() { return (new Date).getTime() } } }); Number.expand({ statics: { between: function(b, c, d) { var f = Math.min(c, d); c = Math.max(c, d); b < f && (b = f); b > c && (b = c); return b }, fixed: function(b, c) { var d = Math.pow(10, c); return Math.round(b * d) / d } } }); var Color = function(b) { b && "object" == typeof b && b.toString && (b = b.toString()); return { value: ColorTable.value(b), toString: function() { function b(c, d, h) { if (c.length < h && c.length > d) for (; c.length < h; ) c = "0" + c; return c } var d = this.value; d || (d = 0); if ("string" == typeof d) { if (0 == d.indexOf("#")) return d; if (0 == d.indexOf("0x")) return d.replace("0x", "#") } d = parseInt(d); d = 0 > d ? Number(0) : d; d = d.toString(16); 8 < d.length && (d = d.substr(0, 8)); d = b(d, 6, 8); d = b(d, 3, 6); d = b(d, 0, 3); return "#" + d }, valueOf: toString, split: function() { var b = { r: 0, g: 0, b: 0, a: 255 }; if (!this.value) return b; var d = this.toString() , f = "FF" , g = "FF" , h = "FF" , k = "FF"; switch (d.length) { case 9: k = d.substr(1, 2); f = d.substr(3, 2); g = d.substr(5, 2); h = d.substr(7, 2); break; case 7: f = d.substr(1, 2); g = d.substr(3, 2); h = d.substr(5, 2); break; case 4: f = d.substr(1, 1); g = d.substr(2, 1); h = d.substr(3, 1); f += f; g += g; h += h; break; default: return b } return { r: parseInt(f, 16), g: parseInt(g, 16), b: parseInt(h, 16), a: parseInt(k, 16) } }, add: function(b) { var d; d = "object" == typeof b ? b : { r: b, g: b, b: b, a: 1 }; var f = this.split(); b = Number.between(f.r + d.r, 0, 255).toString(16).toUpperCase(); var g = Number.between(f.g + d.g, 0, 255).toString(16).toUpperCase(); d = Number.between(f.b + d.b, 0, 255).toString(16).toUpperCase(); f = Number(f.a).toString(16).toUpperCase(); b = 1 >= b.length ? "0" + b : b; g = 1 >= g.length ? "0" + g : g; d = 1 >= d.length ? "0" + d : d; f = 1 >= f.length ? "0" + f : f; return "FF" == f ? "#" + b + g + d : "#" + f + b + g + d }, reduce: function(b) { return this.add("object" == typeof b ? b : { r: -b, g: -b, b: -b, a: 1 }) }, rgba: function(b) { var d = this.split(); b = void 0 == b || "" === b ? d.a : parseFloat(b); 1 < b && (b = Number.fixed(b / 255, 2)); return String.format("rgba(%d,%d,%d,%f)", d.r, d.g, d.b, b) }, equals: function(b) { return this.toString() == Color(b).toString() }, difference: function(b) { var d = this.split(); b = Color(b).split(); return { r: Math.abs(d.r - b.r), g: Math.abs(d.g - b.g), b: Math.abs(d.b - b.b), a: Math.abs(d.a - b.a) } } } }; function equals(b, c) { return 1E-7 > Math.abs(b - c) } var Point = function(b, c) { return { x: b, y: c, isNearTo: function(b, c) { if (!b) return !1; void 0 == c && (c = 5); return Math.abs(this.x - b.x) < c && Math.abs(this.y - b.y) < c }, equals: function(b) { return b ? equals(this.x, b.x) && equals(this.y, b.y) : !1 }, toString: function() { return "(" + this.x + "," + this.y + ")" }, clone: function() { return Point(this.x, this.y) }, getX: function() { return this.x }, getY: function() { return this.y }, isNaP: function() { return isNaN(this.x) || isNaN(this.y) } } }; Point.NaP = function() { return Point(Number.NaN, Number.NaN) } ; $.browser.mozilla && (HTMLElement.prototype.__defineGetter__("innerText", function() { return this.textContent }), HTMLElement.prototype.__defineSetter__("innerText", function(b) { this.textContent = b })); bdor[30] = function(b, c) { return bdor[b] - c } ; Class("RangeSlider", { create: function(b, c) { this.slider = b; this.min = 0; this.max = c.max ? c.max : 1; isNaN(this.max) && (this.max = 100); this.onChange = c.onChange; this.init(); void 0 == c.range || isNaN(c.range) ? (this.currentRange = 0, this.setRange(0)) : (this.currentRange = c.range, this.setRange(c.range)) }, init: function() { this.slider_total = $('
'); this.slider_range = $(''); this.slider_hander = $(''); this.slider_range.css("pointer-events", "none"); this.slider_hander.css("pointer-events", "none"); this.slider.append(this.slider_total); this.slider.append(this.slider_range); this.slider.append(this.slider_hander); this.initEvents() }, initEvents: function() { this.isMouseDown = !1; this.slider_total.bind(_event._down, function(b) { this.isMouseDown = !0; b = isTouch ? b.originalEvent ? b.originalEvent.changedTouches : b.changedTouches : [b]; this.onChangeRange(b); return !1 } .bind(this)); this.slider_total.bind(_event._move, function(b) { if (this.isMouseDown) return b = isTouch ? b.originalEvent ? b.originalEvent.changedTouches : b.changedTouches : [b], this.onChangeRange(b), !1 } .bind(this)); this.slider_total.bind(_event._up, function(b) { return this.isMouseDown = !1 } .bind(this)); this.slider_total.bind(_event._leave, function(b) { this.isMouseDown = !1 } .bind(this)); this.slider_hander.bind(_event._down, function(b) { b = isTouch ? b.originalEvent ? b.originalEvent.changedTouches : b.changedTouches : [b]; this.onChangeRange(b); return !1 } .bind(this)) }, setMax: function(b) { this.max = b }, setRange: function(b) { if (void 0 != b) { this.range = parseFloat(b); this.animation && this.animation.stop(); var c = this.currentRange , d = this.range; this.animation = function(b, g) { this.currentRange = $.easing.swing(null, b, c, d - c, g); this.moveToRange(this.currentRange); this.currentRange == this.range && this.animation && this.animation.stop() } .runInAnimate(this, 200) } }, onChangeRange: virtual_function, moveToRange: virtual_function }); Class("VerticalSlider", { onChangeRange: function(b) { b = b[0]; if (void 0 != b) { var c = $(b.target) , d = b.offsetY; void 0 == d && (d = b.pageY - c.offset().top); b = (c.height() - d) / this.slider_total.height() * this.max; this.setRange(b); if (this.onChange) this.onChange(b) } }, moveToRange: function(b) { this.slider_total.offset(); this.slider.offset(); var c = parseInt(this.slider_range.css("bottom").replace("px", "")) , d = this.slider_hander.width() , f = this.slider_total.height() - d; b = Math.floor(b * f / this.max); b = Math.min(b, f); d = b + d / 2; this.slider_hander.css({ bottom: b + c }); this.slider_range.css({ height: d }) } }).extend("RangeSlider"); Class("HorizontalSlider", { onChangeRange: function(b) { b = b[0]; if (void 0 != b) { var c = $(b.target) , d = b.offsetX; void 0 == d && (d = b.pageX - c.offset().left); b = d / this.slider_total.width() * this.max; this.setRange(b); if (this.onChange) this.onChange(b) } }, moveToRange: function(b) { var c = this.slider_total.offset().left - this.slider.offset().left; parseInt(this.slider_range.css("bottom").replace("px", "")); var d = this.slider_hander.width() , f = this.slider_total.width() - d; b = Math.floor(b * f / this.max); b = Math.min(b, f); d = b + d / 2; this.slider_hander.css({ left: b + c }); this.slider_range.css({ width: d }) } }).extend("RangeSlider"); (function(b) { b.fn.slider = function(b) { if (b) { this.empty(); var d = null; (d = "horizontal" == b.direction ? new HorizontalSlider(this,b) : new VerticalSlider(this,b)) || (d = new HorizontalSlider(this,b)); return d } } })(jQuery); (function(b) { var c = "object" == typeof exports && exports , d = "object" == typeof module && module && module.exports == c && module , f = "object" == typeof global && global; if (f.global === f || f.window === f) b = f; var g = function(b) { this.message = b }; g.prototype = Error(); g.prototype.name = "InvalidCharacterError"; var h = { encode: function(b) { b = String(b); if (/[^\0-\xFF]/.test(b)) throw new g("The string to be encoded contains characters outside of the Latin1 range."); for (var c = b.length % 3, d = "", f = -1, h, k, r, s = b.length - c; ++f < s; ) h = b.charCodeAt(f) << 16, k = b.charCodeAt(++f) << 8, r = b.charCodeAt(++f), h = h + k + r, d += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(h >> 18 & 63) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(h >> 12 & 63) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(h >> 6 & 63) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(h & 63); 2 == c ? (h = b.charCodeAt(f) << 8, k = b.charCodeAt(++f), h += k, d += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(h >> 10) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(h >> 4 & 63) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(h << 2 & 63) + "=") : 1 == c && (h = b.charCodeAt(f), d += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(h >> 2) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(h << 4 & 63) + "=="); return d }, decode: function(b) { b = String(b); for (var c = b.length, d = 0, f, g, h = "", k = -1; ++k < c; ) g = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(b.charAt(k)), f = d % 4 ? 64 * f + g : g, d++ % 4 && (h += String.fromCharCode(255 & f >> (-2 * d & 6))); return h }, version: "0.1.0" }; if ("function" == typeof define && "object" == typeof define.amd && define.amd) define(function() { return h }); else if (c && !c.nodeType) if (d) d.exports = h; else for (var k in h) h.hasOwnProperty(k) && (c[k] = h[k]); else b.base64 = h })(this); function parsHexToNormalString(b) { for (var c = ""; 2 <= b.length; ) c += String.fromCharCode(parseInt(b.substring(0, 2), 16)), b = b.substring(2, b.length); return c } function parseHexString(b) { for (var c = []; 2 <= b.length; ) c.push(parseInt(b.substring(0, 2), 16)), b = b.substring(2, b.length); return c } function byteArray2String(b) { for (var c = "", d = 0; d < b.length; d++) c += String.fromCharCode(b[d]); return c } function rc4(b, c) { for (var d = [], f = [], g = 0; 256 > g; g++) d[g] = g, f[g] = b.charCodeAt(g % b.length); for (var h = 0, g = 0; 256 > g; g++) { var h = h + d[g] + f[g] & 255 , k = d[g]; d[g] = d[h]; d[h] = k } for (var l = h = f = 0, m, k = "", g = 0; g < c.length; g++) f = f + 1 & 255, h = h + d[f] & 255, l = d[f], d[f] = d[h], d[h] = l, l = d[f] + d[h] & 255, m = c.charCodeAt(g), m ^= d[l], k += String.fromCharCode(m); return k } String.prototype.MD5 = function(b) { function c(b, c) { var d, f, g, h, k; g = b & 2147483648; h = c & 2147483648; d = b & 1073741824; f = c & 1073741824; k = (b & 1073741823) + (c & 1073741823); return d & f ? k ^ 2147483648 ^ g ^ h : d | f ? k & 1073741824 ? k ^ 3221225472 ^ g ^ h : k ^ 1073741824 ^ g ^ h : k ^ g ^ h } function d(b, d, f, g, h, k, l) { b = c(b, c(c(d & f | ~d & g, h), l)); return c(b << k | b >>> 32 - k, d) } function f(b, d, f, g, h, k, l) { b = c(b, c(c(d & g | f & ~g, h), l)); return c(b << k | b >>> 32 - k, d) } function g(b, d, f, g, h, k, l) { b = c(b, c(c(d ^ f ^ g, h), l)); return c(b << k | b >>> 32 - k, d) } function h(b, d, f, g, h, k, l) { b = c(b, c(c(f ^ (d | ~g), h), l)); return c(b << k | b >>> 32 - k, d) } function k(b) { var c = "", d = "", f; for (f = 0; 3 >= f; f++) d = b >>> 8 * f & 255, d = "0" + d.toString(16), c += d.substr(d.length - 2, 2); return c } var l = [], m, n, p, q, t, r, s, u, v, l = function(b) { var c, d = b.length; c = d + 8; for (var f = 16 * ((c - c % 64) / 64 + 1), g = Array(f - 1), h = 0, k = 0; k < d; ) c = (k - k % 4) / 4, h = k % 4 * 8, g[c] |= b.charCodeAt(k) << h, k++; c = (k - k % 4) / 4; g[c] |= 128 << k % 4 * 8; g[f - 2] = d << 3; g[f - 1] = d >>> 29; return g }(this); r = 1732584193; s = 4023233417; u = 2562383102; v = 271733878; for (m = 0; m < l.length; m += 16) n = r, p = s, q = u, t = v, r = d(r, s, u, v, l[m + 0], 7, 3614090360), v = d(v, r, s, u, l[m + 1], 12, 3905402710), u = d(u, v, r, s, l[m + 2], 17, 606105819), s = d(s, u, v, r, l[m + 3], 22, 3250441966), r = d(r, s, u, v, l[m + 4], 7, 4118548399), v = d(v, r, s, u, l[m + 5], 12, 1200080426), u = d(u, v, r, s, l[m + 6], 17, 2821735955), s = d(s, u, v, r, l[m + 7], 22, 4249261313), r = d(r, s, u, v, l[m + 8], 7, 1770035416), v = d(v, r, s, u, l[m + 9], 12, 2336552879), u = d(u, v, r, s, l[m + 10], 17, 4294925233), s = d(s, u, v, r, l[m + 11], 22, 2304563134), r = d(r, s, u, v, l[m + 12], 7, 1804603682), v = d(v, r, s, u, l[m + 13], 12, 4254626195), u = d(u, v, r, s, l[m + 14], 17, 2792965006), s = d(s, u, v, r, l[m + 15], 22, 1236535329), r = f(r, s, u, v, l[m + 1], 5, 4129170786), v = f(v, r, s, u, l[m + 6], 9, 3225465664), u = f(u, v, r, s, l[m + 11], 14, 643717713), s = f(s, u, v, r, l[m + 0], 20, 3921069994), r = f(r, s, u, v, l[m + 5], 5, 3593408605), v = f(v, r, s, u, l[m + 10], 9, 38016083), u = f(u, v, r, s, l[m + 15], 14, 3634488961), s = f(s, u, v, r, l[m + 4], 20, 3889429448), r = f(r, s, u, v, l[m + 9], 5, 568446438), v = f(v, r, s, u, l[m + 14], 9, 3275163606), u = f(u, v, r, s, l[m + 3], 14, 4107603335), s = f(s, u, v, r, l[m + 8], 20, 1163531501), r = f(r, s, u, v, l[m + 13], 5, 2850285829), v = f(v, r, s, u, l[m + 2], 9, 4243563512), u = f(u, v, r, s, l[m + 7], 14, 1735328473), s = f(s, u, v, r, l[m + 12], 20, 2368359562), r = g(r, s, u, v, l[m + 5], 4, 4294588738), v = g(v, r, s, u, l[m + 8], 11, 2272392833), u = g(u, v, r, s, l[m + 11], 16, 1839030562), s = g(s, u, v, r, l[m + 14], 23, 4259657740), r = g(r, s, u, v, l[m + 1], 4, 2763975236), v = g(v, r, s, u, l[m + 4], 11, 1272893353), u = g(u, v, r, s, l[m + 7], 16, 4139469664), s = g(s, u, v, r, l[m + 10], 23, 3200236656), r = g(r, s, u, v, l[m + 13], 4, 681279174), v = g(v, r, s, u, l[m + 0], 11, 3936430074), u = g(u, v, r, s, l[m + 3], 16, 3572445317), s = g(s, u, v, r, l[m + 6], 23, 76029189), r = g(r, s, u, v, l[m + 9], 4, 3654602809), v = g(v, r, s, u, l[m + 12], 11, 3873151461), u = g(u, v, r, s, l[m + 15], 16, 530742520), s = g(s, u, v, r, l[m + 2], 23, 3299628645), r = h(r, s, u, v, l[m + 0], 6, 4096336452), v = h(v, r, s, u, l[m + 7], 10, 1126891415), u = h(u, v, r, s, l[m + 14], 15, 2878612391), s = h(s, u, v, r, l[m + 5], 21, 4237533241), r = h(r, s, u, v, l[m + 12], 6, 1700485571), v = h(v, r, s, u, l[m + 3], 10, 2399980690), u = h(u, v, r, s, l[m + 10], 15, 4293915773), s = h(s, u, v, r, l[m + 1], 21, 2240044497), r = h(r, s, u, v, l[m + 8], 6, 1873313359), v = h(v, r, s, u, l[m + 15], 10, 4264355552), u = h(u, v, r, s, l[m + 6], 15, 2734768916), s = h(s, u, v, r, l[m + 13], 21, 1309151649), r = h(r, s, u, v, l[m + 4], 6, 4149444226), v = h(v, r, s, u, l[m + 11], 10, 3174756917), u = h(u, v, r, s, l[m + 2], 15, 718787259), s = h(s, u, v, r, l[m + 9], 21, 3951481745), r = c(r, n), s = c(s, p), u = c(u, q), v = c(v, t); return 32 == b ? k(r) + k(s) + k(u) + k(v) : k(s) + k(u) } ; function QR8bitByte(b) { this.mode = QRMode.MODE_8BIT_BYTE; this.data = b } QR8bitByte.prototype = { getLength: function(b) { return this.data.length }, write: function(b) { for (var c = 0; c < this.data.length; c++) b.put(this.data.charCodeAt(c), 8) } }; function QRCode(b, c) { this.typeNumber = b; this.errorCorrectLevel = c; this.modules = null; this.moduleCount = 0; this.dataCache = null; this.dataList = [] } QRCode.prototype = { addData: function(b) { b = new QR8bitByte(b); this.dataList.push(b); this.dataCache = null }, isDark: function(b, c) { if (0 > b || this.moduleCount <= b || 0 > c || this.moduleCount <= c) throw Error(b + "," + c); return this.modules[b][c] }, getModuleCount: function() { return this.moduleCount }, make: function() { if (1 > this.typeNumber) { for (var b = 1, b = 1; 40 > b; b++) { for (var c = QRRSBlock.getRSBlocks(b, this.errorCorrectLevel), d = new QRBitBuffer, f = 0, g = 0; g < c.length; g++) f += c[g].dataCount; for (g = 0; g < this.dataList.length; g++) c = this.dataList[g], d.put(c.mode, 4), d.put(c.getLength(), QRUtil.getLengthInBits(c.mode, b)), c.write(d); if (d.getLengthInBits() <= 8 * f) break } this.typeNumber = b } this.makeImpl(!1, this.getBestMaskPattern()) }, makeImpl: function(b, c) { this.moduleCount = 4 * this.typeNumber + 17; this.modules = Array(this.moduleCount); for (var d = 0; d < this.moduleCount; d++) { this.modules[d] = Array(this.moduleCount); for (var f = 0; f < this.moduleCount; f++) this.modules[d][f] = null } this.setupPositionProbePattern(0, 0); this.setupPositionProbePattern(this.moduleCount - 7, 0); this.setupPositionProbePattern(0, this.moduleCount - 7); this.setupPositionAdjustPattern(); this.setupTimingPattern(); this.setupTypeInfo(b, c); 7 <= this.typeNumber && this.setupTypeNumber(b); null == this.dataCache && (this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)); this.mapData(this.dataCache, c) }, setupPositionProbePattern: function(b, c) { for (var d = -1; 7 >= d; d++) if (!(-1 >= b + d || this.moduleCount <= b + d)) for (var f = -1; 7 >= f; f++) -1 >= c + f || this.moduleCount <= c + f || (this.modules[b + d][c + f] = 0 <= d && 6 >= d && (0 == f || 6 == f) || 0 <= f && 6 >= f && (0 == d || 6 == d) || 2 <= d && 4 >= d && 2 <= f && 4 >= f ? !0 : !1) }, getBestMaskPattern: function() { for (var b = 0, c = 0, d = 0; 8 > d; d++) { this.makeImpl(!0, d); var f = QRUtil.getLostPoint(this); if (0 == d || b > f) b = f, c = d } return c }, createMovieClip: function(b, c, d) { b = b.createEmptyMovieClip(c, d); this.make(); for (c = 0; c < this.modules.length; c++) { d = 1 * c; for (var f = 0; f < this.modules[c].length; f++) { var g = 1 * f; this.modules[c][f] && (b.beginFill(0, 100), b.moveTo(g, d), b.lineTo(g + 1, d), b.lineTo(g + 1, d + 1), b.lineTo(g, d + 1), b.endFill()) } } return b }, setupTimingPattern: function() { for (var b = 8; b < this.moduleCount - 8; b++) null == this.modules[b][6] && (this.modules[b][6] = 0 == b % 2); for (b = 8; b < this.moduleCount - 8; b++) null == this.modules[6][b] && (this.modules[6][b] = 0 == b % 2) }, setupPositionAdjustPattern: function() { for (var b = QRUtil.getPatternPosition(this.typeNumber), c = 0; c < b.length; c++) for (var d = 0; d < b.length; d++) { var f = b[c] , g = b[d]; if (null == this.modules[f][g]) for (var h = -2; 2 >= h; h++) for (var k = -2; 2 >= k; k++) this.modules[f + h][g + k] = -2 == h || 2 == h || -2 == k || 2 == k || 0 == h && 0 == k ? !0 : !1 } }, setupTypeNumber: function(b) { for (var c = QRUtil.getBCHTypeNumber(this.typeNumber), d = 0; 18 > d; d++) { var f = !b && 1 == (c >> d & 1); this.modules[Math.floor(d / 3)][d % 3 + this.moduleCount - 8 - 3] = f } for (d = 0; 18 > d; d++) f = !b && 1 == (c >> d & 1), this.modules[d % 3 + this.moduleCount - 8 - 3][Math.floor(d / 3)] = f }, setupTypeInfo: function(b, c) { for (var d = QRUtil.getBCHTypeInfo(this.errorCorrectLevel << 3 | c), f = 0; 15 > f; f++) { var g = !b && 1 == (d >> f & 1); 6 > f ? this.modules[f][8] = g : 8 > f ? this.modules[f + 1][8] = g : this.modules[this.moduleCount - 15 + f][8] = g } for (f = 0; 15 > f; f++) g = !b && 1 == (d >> f & 1), 8 > f ? this.modules[8][this.moduleCount - f - 1] = g : 9 > f ? this.modules[8][15 - f - 1 + 1] = g : this.modules[8][15 - f - 1] = g; this.modules[this.moduleCount - 8][8] = !b }, mapData: function(b, c) { for (var d = -1, f = this.moduleCount - 1, g = 7, h = 0, k = this.moduleCount - 1; 0 < k; k -= 2) for (6 == k && k--; ; ) { for (var l = 0; 2 > l; l++) if (null == this.modules[f][k - l]) { var m = !1; h < b.length && (m = 1 == (b[h] >>> g & 1)); QRUtil.getMask(c, f, k - l) && (m = !m); this.modules[f][k - l] = m; g--; -1 == g && (h++, g = 7) } f += d; if (0 > f || this.moduleCount <= f) { f -= d; d = -d; break } } } }; QRCode.PAD0 = 236; QRCode.PAD1 = 17; QRCode.createData = function(b, c, d) { c = QRRSBlock.getRSBlocks(b, c); for (var f = new QRBitBuffer, g = 0; g < d.length; g++) { var h = d[g]; f.put(h.mode, 4); f.put(h.getLength(), QRUtil.getLengthInBits(h.mode, b)); h.write(f) } for (g = b = 0; g < c.length; g++) b += c[g].dataCount; if (f.getLengthInBits() > 8 * b) throw Error("code length overflow. (" + f.getLengthInBits() + ">" + 8 * b + ")"); for (f.getLengthInBits() + 4 <= 8 * b && f.put(0, 4); 0 != f.getLengthInBits() % 8; ) f.putBit(!1); for (; !(f.getLengthInBits() >= 8 * b); ) { f.put(QRCode.PAD0, 8); if (f.getLengthInBits() >= 8 * b) break; f.put(QRCode.PAD1, 8) } return QRCode.createBytes(f, c) } ; QRCode.createBytes = function(b, c) { for (var d = 0, f = 0, g = 0, h = Array(c.length), k = Array(c.length), l = 0; l < c.length; l++) { var m = c[l].dataCount , n = c[l].totalCount - m , f = Math.max(f, m) , g = Math.max(g, n); h[l] = Array(m); for (var p = 0; p < h[l].length; p++) h[l][p] = 255 & b.buffer[p + d]; d += m; p = QRUtil.getErrorCorrectPolynomial(n); m = (new QRPolynomial(h[l],p.getLength() - 1)).mod(p); k[l] = Array(p.getLength() - 1); for (p = 0; p < k[l].length; p++) n = p + m.getLength() - k[l].length, k[l][p] = 0 <= n ? m.get(n) : 0 } for (p = l = 0; p < c.length; p++) l += c[p].totalCount; d = Array(l); for (p = m = 0; p < f; p++) for (l = 0; l < c.length; l++) p < h[l].length && (d[m++] = h[l][p]); for (p = 0; p < g; p++) for (l = 0; l < c.length; l++) p < k[l].length && (d[m++] = k[l][p]); return d } ; for (var QRMode = { MODE_NUMBER: 1, MODE_ALPHA_NUM: 2, MODE_8BIT_BYTE: 4, MODE_KANJI: 8 }, QRErrorCorrectLevel = { L: 1, M: 0, Q: 3, H: 2 }, QRMaskPattern = { PATTERN000: 0, PATTERN001: 1, PATTERN010: 2, PATTERN011: 3, PATTERN100: 4, PATTERN101: 5, PATTERN110: 6, PATTERN111: 7 }, QRUtil = { PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]], G15: 1335, G18: 7973, G15_MASK: 21522, getBCHTypeInfo: function(b) { for (var c = b << 10; 0 <= QRUtil.getBCHDigit(c) - QRUtil.getBCHDigit(QRUtil.G15); ) c ^= QRUtil.G15 << QRUtil.getBCHDigit(c) - QRUtil.getBCHDigit(QRUtil.G15); return (b << 10 | c) ^ QRUtil.G15_MASK }, getBCHTypeNumber: function(b) { for (var c = b << 12; 0 <= QRUtil.getBCHDigit(c) - QRUtil.getBCHDigit(QRUtil.G18); ) c ^= QRUtil.G18 << QRUtil.getBCHDigit(c) - QRUtil.getBCHDigit(QRUtil.G18); return b << 12 | c }, getBCHDigit: function(b) { for (var c = 0; 0 != b; ) c++, b >>>= 1; return c }, getPatternPosition: function(b) { return QRUtil.PATTERN_POSITION_TABLE[b - 1] }, getMask: function(b, c, d) { switch (b) { case QRMaskPattern.PATTERN000: return 0 == (c + d) % 2; case QRMaskPattern.PATTERN001: return 0 == c % 2; case QRMaskPattern.PATTERN010: return 0 == d % 3; case QRMaskPattern.PATTERN011: return 0 == (c + d) % 3; case QRMaskPattern.PATTERN100: return 0 == (Math.floor(c / 2) + Math.floor(d / 3)) % 2; case QRMaskPattern.PATTERN101: return 0 == c * d % 2 + c * d % 3; case QRMaskPattern.PATTERN110: return 0 == (c * d % 2 + c * d % 3) % 2; case QRMaskPattern.PATTERN111: return 0 == (c * d % 3 + (c + d) % 2) % 2; default: throw Error("bad maskPattern:" + b); } }, getErrorCorrectPolynomial: function(b) { for (var c = new QRPolynomial([1],0), d = 0; d < b; d++) c = c.multiply(new QRPolynomial([1, QRMath.gexp(d)],0)); return c }, getLengthInBits: function(b, c) { if (1 <= c && 10 > c) switch (b) { case QRMode.MODE_NUMBER: return 10; case QRMode.MODE_ALPHA_NUM: return 9; case QRMode.MODE_8BIT_BYTE: return 8; case QRMode.MODE_KANJI: return 8; default: throw Error("mode:" + b); } else if (27 > c) switch (b) { case QRMode.MODE_NUMBER: return 12; case QRMode.MODE_ALPHA_NUM: return 11; case QRMode.MODE_8BIT_BYTE: return 16; case QRMode.MODE_KANJI: return 10; default: throw Error("mode:" + b); } else if (41 > c) switch (b) { case QRMode.MODE_NUMBER: return 14; case QRMode.MODE_ALPHA_NUM: return 13; case QRMode.MODE_8BIT_BYTE: return 16; case QRMode.MODE_KANJI: return 12; default: throw Error("mode:" + b); } else throw Error("type:" + c); }, getLostPoint: function(b) { for (var c = b.getModuleCount(), d = 0, f = 0; f < c; f++) for (var g = 0; g < c; g++) { for (var h = 0, k = b.isDark(f, g), l = -1; 1 >= l; l++) if (!(0 > f + l || c <= f + l)) for (var m = -1; 1 >= m; m++) 0 > g + m || c <= g + m || 0 == l && 0 == m || k != b.isDark(f + l, g + m) || h++; 5 < h && (d += 3 + h - 5) } for (f = 0; f < c - 1; f++) for (g = 0; g < c - 1; g++) if (h = 0, b.isDark(f, g) && h++, b.isDark(f + 1, g) && h++, b.isDark(f, g + 1) && h++, b.isDark(f + 1, g + 1) && h++, 0 == h || 4 == h) d += 3; for (f = 0; f < c; f++) for (g = 0; g < c - 6; g++) b.isDark(f, g) && !b.isDark(f, g + 1) && b.isDark(f, g + 2) && b.isDark(f, g + 3) && b.isDark(f, g + 4) && !b.isDark(f, g + 5) && b.isDark(f, g + 6) && (d += 40); for (g = 0; g < c; g++) for (f = 0; f < c - 6; f++) b.isDark(f, g) && !b.isDark(f + 1, g) && b.isDark(f + 2, g) && b.isDark(f + 3, g) && b.isDark(f + 4, g) && !b.isDark(f + 5, g) && b.isDark(f + 6, g) && (d += 40); for (g = h = 0; g < c; g++) for (f = 0; f < c; f++) b.isDark(f, g) && h++; b = Math.abs(100 * h / c / c - 50) / 5; return d + 10 * b } }, QRMath = { glog: function(b) { if (1 > b) throw Error("glog(" + b + ")"); return QRMath.LOG_TABLE[b] }, gexp: function(b) { for (; 0 > b; ) b += 255; for (; 256 <= b; ) b -= 255; return QRMath.EXP_TABLE[b] }, EXP_TABLE: Array(256), LOG_TABLE: Array(256) }, i = 0; 8 > i; i++) QRMath.EXP_TABLE[i] = 1 << i; for (i = 8; 256 > i; i++) QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8]; for (i = 0; 255 > i; i++) QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i; function QRPolynomial(b, c) { if (void 0 == b.length) throw Error(b.length + "/" + c); for (var d = 0; d < b.length && 0 == b[d]; ) d++; this.num = Array(b.length - d + c); for (var f = 0; f < b.length - d; f++) this.num[f] = b[f + d] } QRPolynomial.prototype = { get: function(b) { return this.num[b] }, getLength: function() { return this.num.length }, multiply: function(b) { for (var c = Array(this.getLength() + b.getLength() - 1), d = 0; d < this.getLength(); d++) for (var f = 0; f < b.getLength(); f++) c[d + f] ^= QRMath.gexp(QRMath.glog(this.get(d)) + QRMath.glog(b.get(f))); return new QRPolynomial(c,0) }, mod: function(b) { if (0 > this.getLength() - b.getLength()) return this; for (var c = QRMath.glog(this.get(0)) - QRMath.glog(b.get(0)), d = Array(this.getLength()), f = 0; f < this.getLength(); f++) d[f] = this.get(f); for (f = 0; f < b.getLength(); f++) d[f] ^= QRMath.gexp(QRMath.glog(b.get(f)) + c); return (new QRPolynomial(d,0)).mod(b) } }; function QRRSBlock(b, c) { this.totalCount = b; this.dataCount = c } QRRSBlock.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]]; QRRSBlock.getRSBlocks = function(b, c) { var d = QRRSBlock.getRsBlockTable(b, c); if (void 0 == d) throw Error("bad rs block @ typeNumber:" + b + "/errorCorrectLevel:" + c); for (var f = d.length / 3, g = [], h = 0; h < f; h++) for (var k = d[3 * h + 0], l = d[3 * h + 1], m = d[3 * h + 2], n = 0; n < k; n++) g.push(new QRRSBlock(l,m)); return g } ; QRRSBlock.getRsBlockTable = function(b, c) { switch (c) { case QRErrorCorrectLevel.L: return QRRSBlock.RS_BLOCK_TABLE[4 * (b - 1) + 0]; case QRErrorCorrectLevel.M: return QRRSBlock.RS_BLOCK_TABLE[4 * (b - 1) + 1]; case QRErrorCorrectLevel.Q: return QRRSBlock.RS_BLOCK_TABLE[4 * (b - 1) + 2]; case QRErrorCorrectLevel.H: return QRRSBlock.RS_BLOCK_TABLE[4 * (b - 1) + 3] } } ; function QRBitBuffer() { this.buffer = []; this.length = 0 } QRBitBuffer.prototype = { get: function(b) { return 1 == (this.buffer[Math.floor(b / 8)] >>> 7 - b % 8 & 1) }, put: function(b, c) { for (var d = 0; d < c; d++) this.putBit(1 == (b >>> c - d - 1 & 1)) }, getLengthInBits: function() { return this.length }, putBit: function(b) { var c = Math.floor(this.length / 8); this.buffer.length <= c && this.buffer.push(0); b && (this.buffer[c] |= 128 >>> this.length % 8); this.length++ } }; (function(b) { b.fn.qrcode = function(c) { "string" === typeof c && (c = { text: c }); c = b.extend({}, { render: "canvas", width: 256, height: 256, typeNumber: -1, correctLevel: QRErrorCorrectLevel.H, background: "#ffffff", foreground: "#000000" }, c); return this.each(function() { var d; if ("canvas" == c.render) { d = new QRCode(c.typeNumber,c.correctLevel); d.addData(c.text); d.make(); var f = document.createElement("canvas"); f.width = c.width; f.height = c.height; for (var g = f.getContext("2d"), h = c.width / d.getModuleCount(), k = c.height / d.getModuleCount(), l = 0; l < d.getModuleCount(); l++) for (var m = 0; m < d.getModuleCount(); m++) { g.fillStyle = d.isDark(l, m) ? c.foreground : c.background; var n = Math.ceil((m + 1) * h) - Math.floor(m * h) , p = Math.ceil((l + 1) * h) - Math.floor(l * h); g.fillRect(Math.round(m * h), Math.round(l * k), n, p) } } else for (d = new QRCode(c.typeNumber,c.correctLevel), d.addData(c.text), d.make(), f = b("" + b + "
"); d.css("color", c); this.logDiv.append(d); d = this.logDiv[0]; d.scrollTop = d.scrollHeight }, info: function() { if (this.isDebug()) { $.browser && $.browser.msie && (arguments = [String.format.apply(this, arguments)]); try { console && console.log && console.log.apply(console, arguments) } catch (b) {} this.logForPad(String.format.apply(this, arguments), "black") } }, debug: function() { if (this.isDebug()) { $.browser && $.browser.msie && (arguments = [String.format.apply(this, arguments)]); try { console && console.debug && console.debug.apply(console, arguments) } catch (b) {} this.logForPad(String.format.apply(this, arguments), "blue") } }, warn: function() { if (this.isDebug()) { $.browser && $.browser.msie && (arguments = [String.format.apply(this, arguments)]); try { console && console.warn && console.warn.apply(console, arguments) } catch (b) {} this.logForPad(String.format.apply(this, arguments), "#FFA042") } }, error: function() { if (this.isDebug()) { $.browser && $.browser.msie && (arguments = [String.format.apply(this, arguments)]); try { console && console.error && console.error.apply(console, arguments) } catch (b) {} this.logForPad(String.format.apply(this, arguments), "red") } }, print: function() { var b = String.format.apply(this, arguments) , c = (new Date).format("hh:mm:ss.S"); this.debug("[%s] %s", c, b) } } }) , HTMLString = { riseAWord: function(b, c, d) { var f = null , f = -1 == c.indexOf(" ") ? [c] : c.trim().split(" "); c = b; for (var g = 0; g < f.length; g++) 0 > b.indexOf(f[g]) || (c = c.replaceAll(f[g], "" + f[g] + "")); return c }, toText: function(b) { return b.replace(/<\/?\w+>/g, "") }, toLabel: function(b) { b = b.replaceAll("<", "<"); return b.replaceAll(">", ">") } } , Directory = { getFileName: function(b) { b = b.replaceAll("\\", "/", !0); if ("" == Directory.getFileSuffix(b)) return "index.html"; var c = b.lastIndexOf("/"); return -1 == c ? b : b.substr(c + 1) }, getFilePath: function(b) { b = b.replaceAll("\\", "/", !0); b = Directory.removeSlash(b); var c = b.lastIndexOf("/"); return -1 == c ? "" : b.substr(0, c + 1) }, getFileSuffix: function(b) { b = b.replaceAll("\\", "/", !0); var c = b.lastIndexOf("."); return -1 == c ? "" : b.substr(c) }, getFolderName: function(b) { b = Directory.getFilePath(b); if ("" == b) return ""; b = Directory.removeSlash(b); var c = b.lastIndexOf("/"); return -1 == c ? b : b.substr(c + 1) }, addSlash: function(b) { b = b.replaceAll("\\", "/", !0); return b.endWith("/") ? b : b + "/" }, removeSlash: function(b) { b = b.replaceAll("\\", "/", !0); return b.endWith("/") ? b.substring(0, b.length - 1) : b }, getUpperFilePath: function(b) { b = b.replaceAll("\\", "/", !0); var c = b.split("/") , d = c.length; return b = b.endWith(".html") || b.endWith("/") ? b.remove(c[d - 2] + "/" + c[d - 1]) : b.remove(c[d - 1]) } }; bdor[2] = "e"; function Metacharacter(b) { if (null == b || "" == b) return ""; b = b.replaceAll("%", "%25", !0); b = b.replaceAll("+", "%2B", !0); b = b.replaceAll("/", "%2F", !0); b = b.replaceAll("?", "%3F", !0); b = b.replaceAll(" ", "%20", !0); b = b.replaceAll("#", "%23", !0); b = b.replaceAll("&", "%26", !0); b = b.replaceAll("=", "%3D", !0); b = b.replaceAll(":", "%3A", !0); b = b.replaceAll("\r", "%0D", !0); b = b.replaceAll("\n", "%0A", !0); return b = b.replaceAll("'", "%27", !0) } function colorSplit(b) { return Color(b).split() } function colorAdd(b, c) { return Color(b).add(c) } function colorDiv(b, c) { return Color(b).reduce(c) } var reflection = function(b) { var c = new Image; c.onload = function() { var d = null; b.children("canvas")[0] && (d = $(b.children("canvas")[0])); var f = document.createElement("canvas") , g = f.getContext("2d"); b[0].appendChild(f); c.onload = c.onerror = null; var h = this.width , k = this.height , l = 0.7 * k; try { f.style.width = h + "px"; f.style.height = l + "px"; f.width = h; f.height = l; f.className = "reflect"; $(f).css({ transform: "translateY(-1px)" }); g.save(); g.translate(0, k); g.scale(1, -1); g.drawImage(c, 0, 0, h, k); g.restore(); g.globalCompositeOperation = "destination-out"; var m = g.createLinearGradient(0, 0, 0, l); m.addColorStop(1, "rgba(255, 0, 0, 1.0)"); m.addColorStop(0, "rgba(255, 0, 0, 0)"); g.fillStyle = m; g.rect(0, 0, h, 2 * l); g.fill(); d && d.remove() } catch (n) {} } ; c.onerror = function() { c.onload = c.onerror = null } ; c.src = b.children("img")[0].src }; $.fn.allowNumberOnly = function() { $(this).keypress(function(b) { b = b || e; b = b.keyCode || b.which; return 48 <= b && 57 >= b ? !0 : !1 }).focus(function() { this.style.imeMode = "disabled" }).bind("paste", function() { var b = window.clipboardData.getData("Text"); return /^\d+$/.test(b) ? !0 : !1 }) } ; function DeString(b, c) { if ("" == b) return ""; c && "" != c || (c = "fb5"); c = escape(c); if (null == b || 8 > b.length) alert("A salt value could not be extracted from the encrypted message because it's length is too short. The message cannot be decrypted."); else if (null == c || 0 >= c.length) alert("Please enter a password with which to decrypt the message."); else { for (var d = "", f = 0; f < c.length; f++) d += c.charCodeAt(f).toString(); var g = Math.floor(d.length / 5) , g = parseInt(d.charAt(g) + d.charAt(2 * g) + d.charAt(3 * g) + d.charAt(4 * g) + d.charAt(5 * g), 10) , h = Math.round(c.length / 2) , k = Math.pow(2, 31) - 1 , f = parseInt(b.substring(b.length - 8, b.length), 16); b = b.substring(0, b.length - 8); for (d += f; 10 < d.length; ) d = (parseInt(d.substring(0, 10), 10) + parseInt(d.substring(10, d.length), 10)).toString(); for (var d = (g * d + h) % k, l = "", m = "", f = 0; f < b.length; f += 2) l = parseInt(parseInt(b.substring(f, f + 2), 16) ^ Math.floor(d / k * 255), 10), m += String.fromCharCode(l), d = (g * d + h) % k; return unescape(m) } } var divHint = Class({ create: function(b, c, d, f) { this.instance = $(""); this.setText(b); void 0 == f && (f = $("body")); f.append(this.instance); this.instance.css({ display: "none", opacity: 0 }); this.moveto(c, d); this.animation = !1; this.className = "hint" }, setAnimate: function(b) { this.animation = b; !0 == b && this.instance.css({ "-moz-transition": "all 0.2s ease-in-out", "-webkit-transition": "all 0.2s ease-in-out", "-o-transition": "all 0.2s ease-in-out", "-ms-transition": "all 0.2s ease-in-out", transition: "all 0.2s ease-in-out" }) }, setStyle: function(b) { this.instance.removeClass(this.className); this.instance.addClass(b); this.className = b }, setText: function(b) { this.instance.html(b) }, moveto: function(b, c) { this.instance.css({ left: b, top: c }) }, show: function() { this.instance.css({ display: "block", opacity: 1 }) }, hide: function() { !0 == this.animation ? this.instance.css({ display: "none", opacity: 0 }) : this.instance.css({ display: "none", opacity: 1 }) }, destroy: function() { this.hide(); this.instance.empty(); this.instance.remove() }, width: function() { return this.instance.width() + 3 * this.padding() }, height: function() { return this.instance.height() + 3 * this.padding() }, padding: function() { var b = this.instance.css("padding"); return void 0 == b || null == b || "" == b ? 0 : iPadding = parseInt(b.replace("px", "")) } }); function loadJavascript(b, c, d) { var f = this , g = document.createElement("script"); g.type = "text/javascript"; g.async = !0; g.onload = g.onreadystatechange = function() { f.readyState && "loaded" != f.readyState && "complete" != f.readyState || (g.onload = g.onreadystatechange = null, void 0 != c && c(g)) } ; g.onerror = function() { void 0 != d && d(g) } ; $("body")[0].appendChild(g); g.src = b; return g } function addProgressBar(b, c, d) { if (void 0 != b && null != b && (void 0 == b.progressBar || null == b.progressBar)) { var f = $("") , g = $(""); c = void 0 == c || null == c ? $(b).outerWidth() : c; d = void 0 == d || null == d ? $(b).outerHeight() : d; var h = $("
");
g.css({
background: "#000000",
opacity: "0.3",
width: c + "px",
height: d + "px",
"z-index": "0"
});
f.css({
width: c + "px",
height: d + "px",
"z-index": "100"
});
h.css({
left: (c - 31) / 2 + "px",
top: (d - 31) / 2 + "px",
"z-index": "1"
});
f.append($(g));
f.append($(h));
b.append($(f));
b.progressBar = f
}
}
function clearProgressBar(b) {
void 0 != b.progressBar && null != b.progressBar && b.progressBar.remove()
}
function setAnimation(b, c, d, f) {
if (b && void 0 != c) {
100 > c && (c *= 1E3);
if (void 0 == d || "" == d)
d = "all";
void 0 == f && (f = "ease-in-out");
f = d + " %dms " + f;
0 < c ? "all" != d ? b.css({
"-moz-transition": String.format(f, "-moz-", c),
"-webkit-transition": String.format(f, "-webkit-", c),
"-o-transition": String.format(f, "-o-", c),
"-ms-transition": String.format(f, "-ms-", c),
transition: String.format(f, "", c)
}) : b.css({
"-moz-transition": String.format(f, c),
"-webkit-transition": String.format(f, c),
"-o-transition": String.format(f, c),
"-ms-transition": String.format(f, c),
transition: String.format(f, c)
}) : b.css({
"-moz-transition": "",
"-webkit-transition": "",
"-o-transition": "",
"-ms-transition": "",
transition: ""
})
}
}
function animateOnce(b, c, d, f, g, h) {
if (b && c)
if (void 0 == d || 0 === d || isIE9())
b.css(c),
f && f instanceof Function && f();
else {
var k = !1;
setAnimation(b, d, g, h);
b.one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function() {
!0 != k && (k = !0,
setAnimation(b, 0),
f && f instanceof Function && f())
});
b.css(c)
}
}
function ScrollFunction(b, c, d, f) {
var g = this, h;
$(c).transform(0, 0);
$(c).bind(_event._down, function(b) {
g.scrollMouseDown = !0;
d.isDrag = !1;
b = isTouch ? b.originalEvent.touches : [b];
g.mouseDownY = b[0].pageY;
h = getPoint(c).y;
$.browser.msie ? event.cancelBubble = !0 : event.stopPropagation();
return !1
});
$(c).bind(_event._move, function(k) {
if (g.scrollMouseDown) {
k = isTouch ? k.originalEvent.touches : [k];
k = g.mouseDownY - k[0].pageY;
var l = h - k
, l = Math.min(0, l)
, l = Math.max(b.outerHeight() - c.outerHeight(), l);
b.outerHeight() < c.outerHeight() && (c.transform(0, l),
void 0 != f && f());
1 > Math.abs(k) ? d.isDrag = !1 : d.isDrag = !0
} else
d.isDrag = !1;
return !1
});
$(c).bind(_event._mousewheel, function(d) {
d.preventDefault();
d = d.originalEvent;
var g = -30;
0 < Math.max(-1, Math.min(1, d.wheelDelta || -d.detail)) && (g = 30);
h = getPoint(c).y;
d = h + g;
d = Math.min(0, d);
d = Math.max(b.outerHeight() - c.outerHeight(), d);
b.outerHeight() < c.outerHeight() && c.transform(0, d);
void 0 != f && f();
return !1
});
$(c).bind(_event._end, function(b) {
return g.scrollMouseDown = !1
});
$(c).bind(_event._leave, function(b) {
return g.scrollMouseDown = !1
})
}
function readAsFullscreen() {
isPhone() || isPad() ? window.top != window && window.open(window.location.href) : fullScreenApi && fullScreenApi.supportsFullScreen ? ($(document).unbind(fullScreenApi.fullScreenEventName, onFullscreenEvent),
$(document).bind(fullScreenApi.fullScreenEventName, onFullscreenEvent),
fullscreenFun()) : window.top != window ? window.open(window.location.href) : alert("Press F11 to View FlipBook in Full Screen")
}
function onFullscreenEvent() {
StateSynchronous.instance().findButtons("FullscreenButton").each(function(b) {
fullScreenApi.isFullScreen() ? b.setAsExitFullScreen() : b.setAsFullScreen();
b.executeCallback()
});
(function() {
if (global.toolBar && global.toolBar.onResize)
toolBar.onResize()
}
).delay(100)
}
function fullscreenFun() {
var b = $("body")[0];
fullScreenApi.supportsFullScreen && (fullScreenApi.isFullScreen() ? fullScreenApi.cancelFullScreen() : fullScreenApi.requestFullScreen(b));
b.webkitSupportsFullscreen && b.webkitEnterFullscreen(Element.ALLOW_KEYBOARD_INPUT)
}
$.fn.speed = function(b) {
function c(b) {
b = void 0 == b.originalEvent.touches ? [b] : b.originalEvent.touches;
if (1 < b.length)
return q = !0;
g = k = b[0].pageX;
h = l = b[0].pageY;
m = new Date;
-1 != p && window.clearInterval(p);
p = window.setInterval(function() {
g = k;
h = l;
m = new Date
}, 300)
}
function d(b) {
if (-1 == p || !0 == q)
return !0;
b = void 0 == b.originalEvent.touches ? [b] : b.originalEvent.touches;
k = b[0].pageX;
l = b[0].pageY
}
function f(c) {
if (-1 == p)
return !0;
c = void 0 != c.originalEvent.touches == !1 ? [c] : c.originalEvent.touches;
if (!0 == q)
return q = 1 < c.length,
!0;
n = new Date;
c = (n - m) / 20;
var d = k - g
, f = l - h;
0 == c ? iSpeedY = iSpeedX = 0 : (iSpeedX = d / c,
iSpeedY = f / c);
void 0 != b && b(iSpeedX, iSpeedY);
window.clearInterval(p);
p = -1
}
var g, h, k, l, m, n, p = -1, q = !1;
try {
this.bind("mousedown", c),
this.bind("mousemove", d),
this.bind("mouseup", f),
this.bind("mouseleave", f)
} catch (t) {}
try {
this.bind("touchstart", c),
this.bind("touchmove", d),
this.bind("touchend", f),
this.bind("touchleave", f)
} catch (r) {}
}
;
Class("ObjectPool", {
objects: null,
length: 0,
create: function() {
this.objects = []
},
add: function(b) {
b && (this.objects.push(b),
this.length = this.objects.length)
},
remove: function(b) {
b && (this.objects.removeElement(b),
this.length = this.objects.length)
},
find: function() {
for (var b = arguments, c = new ObjectPool, d = 0; d < b.length; d++) {
var f = b[d];
if ("string" == typeof f && "" != f)
for (var f = f.toLowerCase(), g = 0; g < this.objects.length; g++) {
var h = this.objects[g];
h.getClassName && -1 < h.getClassName().toLowerCase().indexOf(f) && c.add(h)
}
}
return c
},
match: function() {
for (var b = arguments, c = new ObjectPool, d = 0; d < b.length; d++) {
var f = b[d];
if ("string" == typeof f && "" != f)
for (var g = 0; g < this.objects.length; g++) {
var h = this.objects[g];
h.getClassName && h.getClassName() == f && c.add(h)
}
}
return c
},
clone: function() {
for (var b = new ObjectPool, c = 0; c < this.objects.length; c++)
b.add(this.get(c));
return b
},
get: function(b) {
return this.objects[b]
},
each: function(b) {
for (var c = 0; c < this.objects.length; c++) {
var d = this.objects[c];
d && b && b instanceof Function && b(d)
}
}
});
var VERSION_NAME = "3.0.1", BUILD_DATE = "2017022101", BookType = {
normal_book: 0,
single_book: 1,
slide_book: 3,
phone_slide_book: 4,
singlePhone_slide_book: 5,
singleSlide_book: 6,
catalog_book: 7,
singleCatalog_book: 8
}, normalBookStatu = {
book_statu_ready: 0,
book_statu_auto_flip: 1,
book_statu_mouse_flip: 2,
book_statu_mag_flip: 3
}, singleBookStatu = {
book_statu_ready: 0,
book_statu_auto_flip: 1,
book_statu_mouse_flip: 2,
book_statu_mag_flip: 3
}, bookCorner = {
top_left: 0,
top_right: 1,
bottom_left: 2,
bottom_right: 3
}, BrowserType = {
WEBKIT: 1,
OPERA: 1,
MOZ: 2,
MS: 3
}, Direction = {
left: "left",
right: "right",
top: "top",
bottom: "bottom"
}, PageEditor = {
AnnoType: {
ANNO_LINK: "com.mobiano.flipbook.pageeditor.TAnnoLink",
ANNO_YOUTUBE: "com.mobiano.flipbook.pageeditor.TAnnoYouTube",
ANNO_YOUTUBE1: "com.mobiano.flipbook.pageeditor::TAnnoYoutubePlayer",
ANNO_YOUTUBE2: "com.mobiano.flipbook.pageeditor.player::TAnnoYoutubePlayer02",
ANNO_YOUTUBE3: "com.mobiano.flipbook.pageeditor.player::TAnnoYoutubePlayer03",
ANNO_YOUTUBE4: "com.mobiano.flipbook.pageeditor.player::TAnnoYoutubePlayer04",
ANNO_YOUTUBE5: "com.mobiano.flipbook.pageeditor.player::TAnnoYoutubePlayer05",
ANNO_YOUTUBE6: "com.mobiano.flipbook.pageeditor.player::TAnnoYoutubePlayer06",
ANNO_YOUTUBE7: "com.mobiano.flipbook.pageeditor.player::TAnnoYoutubePlayer07",
ANNO_YOUTUBE7: "com.mobiano.flipbook.pageeditor.player::TAnnoYoutubePlayer08",
ANNO_VIDEO1: "com.mobiano.flipbook.pageeditor::TAnnoVideoPlayer",
ANNO_VIDEO2: "com.mobiano.flipbook.pageeditor.player::TAnnoSimpleVideoPlayer",
ANNO_AUDIO1: "com.mobiano.flipbook.sound.TAnnoAdvancedSound",
ANNO_AUDIO2: "com.mobiano.flipbook.sound.TAnnoWavemusicPlayer",
ANNO_AUDIO3: "com.mobiano.flipbook.pageeditor::TAnnoPlugIn",
ANNO_AUDIO4: "com.mobiano.flipbook.sound.TAnnoBackgroundSound",
ANNO_AUDIO5: "",
ANNO_AUDIO6: "",
ANNO_AUDIO7: "",
ANNO_AUDIO8: "",
ANNO_AUDIO9: "",
ANNO_VIMEO: "com.mobiano.flipbook.pageeditor.vimeoPlayer::TAnnoVimeoPlayer",
ANNO_VIMEO2: "com.mobiano.flipbook.pageeditor.vimeoPlayer.TAnnoVimeoPopUpPlayer",
ANNO_VIDEO: "com.mobiano.flipbook.pageeditor.TAnnoMovie",
ANNO_AUDIO: "com.mobiano.flipbook.sound.TAnnoSound",
ANNO_IMAGE: "com.mobiano.flipbook.pageeditor.TAnnoImage",
ANNO_BUTTON: "com.mobiano.flipbook.pageeditor.TAnnoButton",
ANNO_LINE: "com.mobiano.flipbook.pageeditor.shapes::TAnnoLine",
ANNO_ARROW: "com.mobiano.flipbook.pageeditor.shapes::TAnnoArrow",
ANNO_ROUND: "com.mobiano.flipbook.pageeditor.shapes::TAnnoEllipse",
ANNO_RECTANGLE: "com.mobiano.flipbook.pageeditor.shapes::TAnnoRectangle",
ANNO_TRIANGLE: "com.mobiano.flipbook.pageeditor.shapes::TAnnoTriangle",
ANNO_PRISMATIC: "com.mobiano.flipbook.pageeditor.shapes::TAnnoPrismatic",
ANNO_PARALLELOGRAM: "com.mobiano.flipbook.pageeditor.shapes::TAnnoParallelogram",
ANNO_PENTAGON: "com.mobiano.flipbook.pageeditor.shapes::TAnnoPentagon",
ANNO_HEXAGON: "com.mobiano.flipbook.pageeditor.shapes::TAnnoHexagon",
ANNO_PENTAGON: "com.mobiano.flipbook.pageeditor.shapes::TAnnoPentagon",
ANNO_DOVETAILED: "com.mobiano.flipbook.pageeditor.shapes::TAnnoDovetailed",
ANNO_FLOWCHART: "com.mobiano.flipbook.pageeditor.shapes::TAnnoFlowChart",
ANNO_CYLINDER: "com.mobiano.flipbook.pageeditor.shapes::TAnnoCylinder",
ANNO_TRAPEZOID: "com.mobiano.flipbook.pageeditor.shapes::TAnnoTrapezoid",
ANNO_RIGHTARROW: "com.mobiano.flipbook.pageeditor.shapes::TAnnoRightArrow",
ANNO_VIRTUALEND: "com.mobiano.flipbook.pageeditor.shapes::TAnnoVirtualEnd",
ANNO_CROSS: "com.mobiano.flipbook.pageeditor.shapes::TAnnoCross",
ANNO_AREA: "com.mobiano.flipbook.pageeditor::TAnnoHighLightArea",
ANNO_FLASHSHOW: "com.mobiano.flipbook.pageeditor.TAnnoSWF1",
ANNO_PRINT: "com.mobiano.flipbook.pageeditor::TAnnoPrint",
ANNO_TEXT: "com.mobiano.flipbook.pageeditor::TAnnoText",
ANNO_ATEXT: "com.mobiano.flipbook.pageeditor::TAnnoDynamicText",
ANNO_ROLLERTEXT: "com.mobiano.flipbook.pageeditor::TAnnoRollerText",
ANNO_STARTEXT: "com.mobiano.flipbook.pageeditor::TAnnoStarwarsText",
ANNO_TEXTANIM: "com.mobiano.flipbook.pageeditor.textAnim::TAnnoTextAnim",
ANNO_EFFECTTEXT: "com.mobiano.flipbook.pageeditor.TAnnoEffectText",
ANNO_CALLOUT: "com.mobiano.flipbook.pageeditor.shapes::TAnnoCallout",
ANNO_ADVANCEDSOUND: "com.mobiano.flipbook.pageeditor::TAnnoAdvancedSound1",
ANNO_ALPHATRANSITIONBANNER: "com.mobiano.flipbook.pageeditor.TAnnoAlphaTransitionBanner",
ANNO_EMBEDDEDSLIDESHOW: "com.mobiano.flipbook.pageeditor.TAnnoEmbeddedSlideshow",
ANNO_ATIMAGE: "com.mobiano.flipbook.pageeditor.TAnnoClipart",
ANNO_BANNER: "com.mobiano.flipbook.pageeditor::TAnnoBanner",
ANNO_CAROUSEL: "com.mobiano.flipbook.pageeditor.TAnnoCarouselViewer",
ANNO_DYNSHOW: "com.mobiano.flipbook.pageeditor::TAnnoDynamicShowPhoto",
ANNO_FLIPJUMP: "com.mobiano.flipbook.pageeditor.TAnnoDynamicTurnPhoto",
ANNO_PLUGIN: "com.mobiano.flipbook.pageeditor::TAnnoPlugIn",
ANNO_SWF: "com.mobiano.flipbook.pageeditor.TAnnoSWF",
ANNO_CART: "com.mobiano.flipbook.pageeditor.TAnnoCart",
ANNO_HOTSPOTS: "com.mobiano.flipbook.pageeditor.TAnnoHotSpots"
},
PlayEvt: {
EVT_PLAY: "EVT_PageViewed",
EVT_STOP: "EVT_PageOffView"
},
TriggerEventType: {
MouseDown: "mouseDown",
MouseOver: "mouseOver",
MouseOut: "mouseOut",
MouseUp: "mouseUp",
MouseMove: "mouseMove",
MouseLeave: "mouseLeave"
},
MouseOverType: {
Zoom: "1",
AddBorder: "2"
},
ActionType: {
GOTO_PAGE: "com.mobiano.flipbook.pageeditor.TAnnoActionGotoPage",
OPEN_URL: "com.mobiano.flipbook.pageeditor.TAnnoActionOpenURL",
OPEN_WINDOW: "com.mobiano.flipbook.pageeditor.TAnnoActionOpenWindow",
SLIDE_SHOW: "com.mobiano.flipbook.pageeditor.TAnnoActionPhotoSlide",
ACTION_JS: "com.mobiano.flipbook.pageeditor.TAnnoActionJavascript",
PLAY_AUDIO: "com.mobiano.flipbook.pageeditor.TAnnoActionPlayAudio",
WINDOW_HTML: "com.mobiano.flipbook.pageeditor.TAnnoActionWindowHtml",
PLAY_VIDEO: "com.mobiano.flipbook.pageeditor.TAnnoActionPlayVideo",
SHOW_INFORMATION: "com.mobiano.flipbook.pageeditor.TAnnoActionShowInformation",
QUIZ: "com.mobiano.flipbook.pageeditor.TAnnoActionQuiz",
PLAYVIDEO: "com.mobiano.flipbook.Action.TAnnoActionPlayVideo"
},
WindowType: {
OPEN_YOUTUBE: "TYPE_YOUTUBE",
OPEN_VIMEO: "TYPE_VIMEO",
OPEN_DAILYMOTION: "TYPE_DAILYMOTION",
OPEN_TYPE_WISTIA: "TYPE_WISTIA",
OPEN_TYPE_YOUKU: "TYPE_YOUKU",
OPEN_TYPE_QQ: "TYPE_QQ",
OPEN_VIDEO: "0",
OPEN_FLASH: "1",
OPEN_SHOW_TEXT: "4"
}
}, bookEvent = {
onCurrentPageIndexChanged: "BE_PIC",
onCurrentPageIndexWillChange: "BE_PIWC",
onNoNextPage: "BE_NNP",
onNoPreviousPage: "BE_NPP"
}, PLUGIN_MAGNETICS = "AbPIMagneticSlider", PLUGIN_ROTATE3D = "AbPIRotationPhotoFor3D", PLUGIN_VIDEO1 = "VideoPlayerExemple01", PLUGIN_VIDEO2 = "VideoPlayerExemple02", PLUGIN_CLASSAUDIO = "", KEY_CODE_ENTER = 13, KEY_CODE_LEFT = 37, KEY_CODE_UP = 38, KEY_CODE_RIGHT = 39, KEY_CODE_DOWN = 40, KEY_CODE_HOME = 36, KEY_CODE_END = 35, KEY_CODE_PAGEUP = 33, KEY_CODE_PAGEDOWN = 34, KEY_CODE_DELETE = 46, KEY_CODE_F11 = 122, MOUSE_LEFT = 1, MOUSE_MIDDLE = 2, MOUSE_RIGHT = 3, LOADING_WIDTH = 30, LOADING_HEIGHT = 30, COIL_PAGE_WIDTH = 500, isTouchDevice = function() {
var b = "ontouchstart"in window
, c = navigator.userAgent.match(/mobile|tablet|ip(ad|hone|od)|android/i)
, c = c && 0 < c.length;
return b && c
}, isTouch = isTouchDevice(), _event;
_event = isTouchDevice() ? {
_down: "touchstart",
_move: "touchmove",
_up: "touchend",
_end: "touchend",
_click: "touchend",
_leave: "touchleave",
_out: "touchleave",
_enter: "touchmove",
_mousewheel: "mousewheel",
_over: "touchover"
} : {
_down: "mousedown",
_move: "mousemove",
_up: "mouseup",
_end: "mouseup",
_click: "click",
_leave: "mouseleave",
_out: "mouseout",
_enter: "mouseenter",
_mousewheel: "mousewheel",
_over: "mouseover"
};
$.browser.mozilla && (_event._mousewheel = "DOMMouseScroll");
var WebScheme = {
HTTP: "http",
HTTPS: "https",
FTP: "ftp",
MAILTO: "mailto",
IDAP: "idap",
FILE: "file",
NEWS: "news",
GOPHER: "gopher",
TELNET: "telnet"
}
, checkBookConfig = function() {
void 0 == window.aliasConfig && (window.aliasConfig = {});
bookConfig.searchColor = getConfigValue("searchColor", "#00ffff");
bookConfig.searchAlpha = getConfigValue("searchAlpha", 0.3);
bookConfig.appLogoIcon = getConfigValue("appLogoIcon", "");
bookConfig.appLogoLinkURL = getConfigValue("appLogoLinkURL", "");
bookConfig.HomeURL = getConfigValue("HomeURL", "");
bookConfig.appLogoOpenWindow = getConfigValue("appLogoOpenWindow", "Blank");
bookConfig.bookTitle = getConfigValue("bookTitle", "FLIPBOOK");
bookConfig.bookDescription = getConfigValue("bookDescription", "");
bookConfig.toolbarColor = getConfigValue("toolbarColor", "#27181A");
bookConfig.iconColor = getConfigValue("iconColor", "#FFFFFF");
bookConfig.pageNumColor = getConfigValue("pageNumColor", "#000000");
bookConfig.formBackgroundColor = getConfigValue("formBackgroundColor", bookConfig.toolbarColor);
bookConfig.formFontColor = getConfigValue("formFontColor", bookConfig.iconColor);
bookConfig.loadingBackground = getConfigValue("loadingBackground", "#1F2232");
bookConfig.logoHeight = getConfigValue("logoHeight", 40);
bookConfig.logoTop = getConfigValue("logoTop", 0);
bookConfig.logoPadding = getConfigValue("logoPadding", 0);
bookConfig.HomeButtonVisible = getConfigValue("HomeButtonVisible", "Hide");
bookConfig.ShareButtonVisible = getConfigValue("ShareButtonVisible", "Hide");
bookConfig.ThumbnailsButtonVisible = getConfigValue("ThumbnailsButtonVisible", "Hide");
bookConfig.thumbnailColor = getConfigValue("thumbnailColor", bookConfig.formBackgroundColor);
bookConfig.thumbnailAlpha = getConfigValue("thumbnailAlpha", 60);
bookConfig.ZoomButtonVisible = getConfigValue("ZoomButtonVisible", "Hide");
bookConfig.TableOfContentButtonVisible = getConfigValue("TableOfContentButtonVisible", "Hide");
bookConfig.BookMarkButtonVisible = getConfigValue("BookMarkButtonVisible", "Hide");
bookConfig.SearchButtonVisible = getConfigValue("SearchButtonVisible", "Hide");
bookConfig.searchKeywordFontColor = getConfigValue("searchKeywordFontColor", "#FFB000");
bookConfig.FullscreenButtonVisible = getConfigValue("FullscreenButtonVisible", "Show");
bookConfig.leastSearchChar = getConfigValue("leastSearchChar", 0);
bookConfig.PrintButtonVisible = getConfigValue("PrintButtonVisible", "Hide");
bookConfig.printWatermarkFile = getConfigValue("printWatermarkFile", "");
bookConfig.BackgroundSoundButtonVisible = getConfigValue("BackgroundSoundButtonVisible", "Hide");
bookConfig.BackgroundSoundURL = getConfigValue("BackgroundSoundURL", "");
bookConfig.BackgroundSoundLoop = getConfigValue("BackgroundSoundLoop", -1);
bookConfig.HelpButtonVisible = getConfigValue("HelpButtonVisible", "Hide");
bookConfig.helpContentFileURL = getConfigValue("helpContentFileURL", "");
bookConfig.helpWidth = getConfigValue("helpWidth", 400);
bookConfig.helpHeight = getConfigValue("helpHeight", 450);
bookConfig.showHelpContentAtFirst = getConfigValue("showHelpContentAtFirst", "No");
bookConfig.aboutButtonVisible = getConfigValue("aboutButtonVisible", "Hide");
bookConfig.aboutContactInfoTxt = getConfigValue("aboutContactInfoTxt", "");
bookConfig.AutoPlayButtonVisible = getConfigValue("AutoPlayButtonVisible", "Hide");
bookConfig.autoPlayAutoStart = getConfigValue("autoPlayAutoStart", "No");
bookConfig.autoPlayDuration = getConfigValue("autoPlayDuration", 3);
bookConfig.autoPlayLoopCount = getConfigValue("autoPlayLoopCount", 1);
bookConfig.minZoomWidth = getConfigValue("minZoomWidth", 403);
bookConfig.minZoomHeight = getConfigValue("minZoomHeight", 518);
bookConfig.mouseWheelFlip = getConfigValue("mouseWheelFlip", "yes");
bookConfig.DownloadButtonVisible = getConfigValue("DownloadButtonVisible", "yes");
bookConfig.DownloadURL = getConfigValue("DownloadURL", "");
fixDownloadURLValue();
bookConfig.bgBeginColor = getConfigValue("bgBeginColor", "#E6E6E6");
bookConfig.bgEndColor = getConfigValue("bgEndColor", "#E3E3E3");
bookConfig.bgMRotation = getConfigValue("bgMRotation", 90);
bookConfig.backGroundImgURL = getConfigValue("backGroundImgURL", "");
bookConfig.backgroundOpacity = getConfigValue("backgroundOpacity", 100);
bookConfig.LeftShadowWidth = getConfigValue("LeftShadowWidth", 40);
bookConfig.LeftShadowAlpha = getConfigValue("LeftShadowAlpha", 1);
bookConfig.RightShadowWidth = getConfigValue("RightShadowWidth", 40);
bookConfig.RightShadowAlpha = getConfigValue("RightShadowAlpha", 1);
bookConfig.pageBackgroundColor = getConfigValue("pageBackgroundColor", "#FFFFFF");
bookConfig.flipshortcutbutton = getConfigValue("flipshortcutbutton", "Hide");
bookConfig.OriginPageIndex = getConfigValue("OriginPageIndex", 1);
bookConfig.HardPageEnable = getConfigValue("HardPageEnable", "No");
$.browser.msie && 11 > $.browser.version && (bookConfig.HardPageEnable = !1);
bookConfig.RightToLeft = getConfigValue("RightToLeft", "No");
bookConfig.flippingTime = getConfigValue("flippingTime", 0.3);
void 0 != bookConfig.flippingTime && (bookConfig.flippingTime = 0.2 > bookConfig.flippingTime ? 0.2 : bookConfig.flippingTime);
bookConfig.retainBookCenter = getConfigValue("retainBookCenter", "Yes");
bookConfig.totalPagesCaption = getConfigValue("totalPagesCaption", "");
bookConfig.pageNumberCaption = getConfigValue("pageNumberCaption", "");
bookConfig.topMargin = getConfigValue("topMargin", 10);
bookConfig.bottomMargin = getConfigValue("bottomMargin", 10);
bookConfig.leftMargin = getConfigValue("leftMargin", 10);
bookConfig.rightMargin = getConfigValue("rightMargin", 10);
bookConfig.topMarginOnMobile = getConfigValue("topMarginOnMobile", 10);
bookConfig.bottomMarginOnMobile = getConfigValue("bottomMarginOnMobile", 10);
bookConfig.leftMarginOnMobile = getConfigValue("leftMarginOnMobile", 10);
bookConfig.rightMarginOnMobile = getConfigValue("rightMarginOnMobile", 10);
if (isPhone() || isPad())
bookConfig.topMargin = bookConfig.topMarginOnMobile,
bookConfig.bottomMargin = bookConfig.bottomMarginOnMobile,
bookConfig.leftMargin = bookConfig.leftMarginOnMobile,
bookConfig.rightMargin = bookConfig.rightMarginOnMobile;
bookConfig.visibleAreaLeft = getConfigValue("visibleAreaLeft", "0%");
bookConfig.visibleAreaTop = getConfigValue("visibleAreaTop", "0%");
bookConfig.visibleAreaRight = getConfigValue("visibleAreaRight", "100%");
bookConfig.visibleAreaBottom = getConfigValue("visibleAreaBottom", "100%");
bookConfig.visibleAreaLeft = isNaN(parseFloat(bookConfig.visibleAreaLeft)) ? "0%" : bookConfig.visibleAreaLeft;
bookConfig.visibleAreaTop = isNaN(parseFloat(bookConfig.visibleAreaTop)) ? "0%" : bookConfig.visibleAreaTop;
bookConfig.visibleAreaRight = isNaN(parseFloat(bookConfig.visibleAreaRight)) ? "100%" : bookConfig.visibleAreaRight;
bookConfig.visibleAreaBottom = isNaN(parseFloat(bookConfig.visibleAreaBottom)) ? "100%" : bookConfig.visibleAreaBottom;
bookConfig.LinkDownColor = getConfigValue("LinkDownColor", "#0000FF");
bookConfig.LinkAlpha = getConfigValue("LinkAlpha", 0.4);
bookConfig.OpenWindow = getConfigValue("OpenWindow", "Blank");
bookConfig.googleAnalyticsID = getConfigValue("googleAnalyticsID", "");
bookConfig.language = getConfigValue("language", "English");
bookConfig.AboutAddress = getConfigValue("AboutAddress", "");
bookConfig.AboutEmail = getConfigValue("AboutEmail", "support@fliphtml5.com");
bookConfig.AboutMobile = getConfigValue("AboutMobile", "");
bookConfig.AboutWebsite = getConfigValue("AboutWebsite", "http://www.fliphtml5.com");
bookConfig.AboutDescription = getConfigValue("AboutDescription", "");
bookConfig.AboutAuthor = getConfigValue("AboutAuthor", "fliphtml5.com");
bookConfig.totalPageCount = getConfigValue("totalPageCount", 1);
bookConfig.largePageWidth = getConfigValue("largePageWidth", 1440);
bookConfig.largePageHeight = getConfigValue("largePageHeight", 1728);
bookConfig.normalPath = getConfigValue("normalPath", "/magazine/public/read/files/page/");
bookConfig.largePath = getConfigValue("largePath", "/magazine/public/read/files/large/");
bookConfig.thumbPath = getConfigValue("thumbPath", "/magazine/public/read/files/thumb/");
bookConfig.FlipStyle = getConfigValue("FlipStyle", "flip");
bookConfig.showDoublePage = getConfigValue("autoDoublePage", !0);
bookConfig.QRPath = getConfigValue("QRPath", "files/extfile/QRURL.png");
bookConfig.QRCode = getConfigValue("QRCode", "hide");
bookConfig.MiniStyle = getConfigValue("MiniStyle", "Show");
bookConfig.AnnotationButtonVisible = getConfigValue("AnnotationButtonVisible", "hide");
bookConfig.InstructionsButtonVisible = getConfigValue("InstructionsButtonVisible", "hide");
bookConfig.VideoButtonVisible = getConfigValue("VideoButtonVisible", "hide");
bookConfig.SlideshowButtonVisible = getConfigValue("SlideshowButtonVisible", "hide");
bookConfig.CompanyLogoFile = getConfigValue("CompanyLogoFile", "");
bookConfig.UIBaseURL = getConfigValue("UIBaseURL", "/magazine/public/read/");
bookConfig.haveAdSense = getConfigValue("haveAdSense", "No");
bookConfig.adSenseLeft = getConfigValue("adSenseLeft", 0);
bookConfig.adSenseTop = getConfigValue("adSenseTop", 0);
bookConfig.adSenseWidth = getConfigValue("adSenseWidth", 0);
bookConfig.adSenseHeight = getConfigValue("adSenseHeight", 0);
bookConfig.adSenseClientId = getConfigValue("adSenseClientId", "");
bookConfig.productName = getConfigValue("productName", "Flip HTML5");
bookConfig.homePage = getConfigValue("homePage", "http://www.fliphtml5.com");
bookConfig.preloadNextPage = getConfigValue("preloadNextPage", !0);
bookConfig.showMirrorSide = getConfigValue("showMirrorSide", !0);
"Yes" == bookConfig.addPaperCoil && (bookConfig.BindingType = "loose");
bookConfig.addPaperCoil = "loose" == bookConfig.BindingType ? !0 : getConfigValue("addPaperCoil", "No");
bookConfig.ToolbarViewMode = getConfigValue("ToolbarViewMode", "standard");
bookConfig.ToolbarViewMode = bookConfig.ToolbarViewMode.toLocaleLowerCase();
bookConfig.HomeButtonIcon = getConfigValue("HomeButtonIcon", "");
bookConfig.AnnotationButtonIcon = getConfigValue("AnnotationButtonIcon", "");
bookConfig.VideoButtonIcon = getConfigValue("VideoButtonIcon", "");
bookConfig.SlideshowButtonIcon = getConfigValue("SlideshowButtonIcon", "");
bookConfig.ShareButtonIcon = getConfigValue("ShareButtonIcon", "");
bookConfig.ThumbnailButtonIcon = getConfigValue("ThumbnailButtonIcon", "");
bookConfig.ZoomInButtonIcon = getConfigValue("ZoomInButtonIcon", "");
bookConfig.ZoomOutButtonIcon = getConfigValue("ZoomOutButtonIcon", "");
bookConfig.FullscreenButtonIcon = getConfigValue("FullscreenButtonIcon", "");
bookConfig.ExitFullscreenButtonIcon = getConfigValue("ExitFullscreenButtonIcon", "");
bookConfig.BookmarkButtonIcon = getConfigValue("BookmarkButtonIcon", "");
bookConfig.TableOfContentButtonIcon = getConfigValue("TableOfContentButtonIcon", "");
bookConfig.SearchButtonIcon = getConfigValue("SearchButtonIcon", "");
bookConfig.PrintButtonIcon = getConfigValue("PrintButtonIcon", "");
bookConfig.BackgroundSoundButtonOnIcon = getConfigValue("BackgroundSoundButtonOnIcon", "");
bookConfig.BackgroundSoundButtonOffIcon = getConfigValue("BackgroundSoundButtonOffIcon", "");
bookConfig.HelpButtonIcon = getConfigValue("HelpButtonIcon", "");
bookConfig.AboutButtonIcon = getConfigValue("AboutButtonIcon", "");
bookConfig.AutoPlayStartButtonIcon = getConfigValue("AutoPlayStartButtonIcon", "");
bookConfig.AutoPlayStopButtonIcon = getConfigValue("AutoPlayStopButtonIcon", "");
bookConfig.DownloadButtonIcon = getConfigValue("DownloadButtonIcon", "");
bookConfig.searchTextJS = getConfigValue("searchTextJS", "files/search/book_config.js");
bookConfig.searchPositionJS = getConfigValue("searchPositionJS", "files/search/text_position.js");
bookConfig.userSmallMode = getConfigValue("userSmallMode", "yes");
bookConfig.maxWidthToSmallMode = getConfigValue("maxWidthToSmallMode", 300);
bookConfig.maxHeightToSmallMode = getConfigValue("maxHeightToSmallMode", 300);
bookConfig.backgroundScene = getConfigValue("backgroundScene", "None");
bookConfig.audioVolume = getConfigValue("audioVolume", 0.5);
bookConfig.enablePageBack = getConfigValue("enablePageBack", !1);
bookConfig.userListPath = getConfigValue("userListPath", "/magazine/public/read/files/extfiles/user.js");
bookConfig.isFlipPdf = getConfigValue("isFlipPdf", !1);
!1 == bookConfig.isFlipPdf && void 0 != global.isFlipPdf && (bookConfig.isFlipPdf = isFlipPdf);
bookConfig.FlipSound = getConfigValue("FlipSound", !1);
bookConfig.CurlingPageCorner = getConfigValue("CurlingPageCorner", !0);
bookConfig.iconFontColor = getConfigValue("iconFontColor", "#ffffff");
try {
bookConfig.retainBookCenter = void 0 != staticAd && !0 == staticAd.haveAd ? !1 : getConfigValue("retainBookCenter", !0)
} catch (b) {}
bookConfig.updatePageURL = getConfigValue("updatePageURL", !0);
bookConfig.borderColor = getConfigValue("borderColor", "#572f0d");
bookConfig.outerCoverBorder = getConfigValue("outerCoverBorder", !1);
bookConfig.hardCoverBorderWidth = getConfigValue("hardCoverBorderWidth", 0);
bookConfig.cornerRound = getConfigValue("cornerRound", 0);
bookConfig.hardCoverBorderWidth = bookConfig.HardPageEnable ? Number.between(0, 16, bookConfig.hardCoverBorderWidth) : 0;
bookConfig.cornerRound = bookConfig.HardPageEnable ? Number.between(0, bookConfig.hardCoverBorderWidth, bookConfig.cornerRound) : 0;
bookConfig.coverTexture = getConfigValue("coverTexture", "none");
bookConfig.passwardPrompt = getConfigValue("passwardPrompt", "");
bookConfig.productName = getConfigValue("productName", "Flip HTML5");
bookConfig.homePage = getConfigValue("homePage", "http://www.fliphtml5.com");
productName = bookConfig.productName || "Flip HTML5";
homePage = bookConfig.homePage || "http://www.fliphtml5.com";
bookConfig.backgroundPosition = getConfigValue("backgroundPosition", "Stretch");
(isPhone() || isPad()) && "slide" != bookConfig.FlipStyle.toLowerCase() && (bookConfig.FlipStyle = "flip");
window.localStorage || (bookConfig.BookMarkButtonVisible = !1);
if (isPhone() || isPad() || "catalog" == bookConfig.FlipStyle.toLowerCase() || "slide" == bookConfig.FlipStyle.toLowerCase() && "lite" == bookConfig.ToolbarViewMode.toLowerCase())
bookConfig.flipshortcutbutton = !1;
bookConfig.BackgroundSoundURL || (bookConfig.BackgroundSoundButtonVisible = !1);
if (bookType == BookType.singleCatalog_book || bookType == BookType.catalog_book || bookType == BookType.slide_book && "lite" == bookConfig.ToolbarViewMode.toLowerCase() || bookType == BookType.singleSlide_book && "lite" == bookConfig.ToolbarViewMode.toLowerCase() || isPhone() || isPad())
bookConfig.flipshortcutbutton = !1;
if (global.videoList && 1 <= global.videoList.length)
for (var c = 0; c < videoList.length; c++)
videoList[c].id || (videoList[c].id = ""),
videoList[c].description || (videoList[c].description = ""),
videoList[c].thumbnail || (videoList[c].thumbnail = ""),
videoList[c].title || (videoList[c].title = ""),
videoList[c].type || (videoList[c].type = "");
checkBookmarkConfig();
isBelowIE9() && (bookConfig.BookMarkButtonVisible = !1);
isBelowIE9() && (bookConfig.AnnotationButtonVisible = !1)
};
function checkBookmarkConfig() {
global.bmtConfig || (bmtConfig = []);
void 0 == bmtConfig.onSideEdge && (bmtConfig.onSideEdge = !0);
void 0 == bmtConfig.showPage && (bmtConfig.showPage = !1);
void 0 == bmtConfig.hasTexture && (bmtConfig.hasTexture = !1);
!1 == bmtConfig.onSideEdge && !isPhone() && !isPad() && 75 > bookConfig.topMargin && (bookConfig.topMargin = 75)
}
var getConfigValue = function(b, c) {
void 0 != c && "string" == typeof c && "" != c.trim() && isBool(c) && (c = parseBool(c));
var d;
d = void 0 != bookConfig[b] ? bookConfig[b] : getValueFromAliasConfig(b);
return void 0 == d ? c : void 0 == c ? d : "number" == typeof c ? Number(d) : "boolean" == typeof c ? parseBool(d) : d
}
, getValueFromAliasConfig = function(b) {
if (global.aliasConfig && (b = aliasConfig[b]))
for (var c = 0; c < b.length; c++) {
var d = b[c];
if (void 0 != bookConfig[d])
return bookConfig[d]
}
}
, getLanguageValue = function(b, c) {
try {
if (!global.aliasLanguage)
return c;
var d = aliasLanguage[b];
if (!d)
return c;
for (var f = 0; f < d.length; f++) {
var g = d[f];
if (selectedLanguage[g])
return selectedLanguage[g]
}
return c
} catch (h) {
return c
}
}
, fixDownloadURLValue = function() {
"" == bookConfig.DownloadURL && void 0 != bookConfig.downloadURL && "" != bookConfig.downloadURL && (bookConfig.DownloadURL = bookConfig.downloadURL)
}
, cr = DeString("c3753b3f49449a65f9ad12578d7a4602c8ae34")
, resizePlugin = function() {
BookInfo.isDoublePage() && window.plugin && window.plugin.show();
!BookInfo.isDoublePage() && window.plugin && window.plugin.hide()
}
, transformCSS = function(b) {
var c = ""
, d = {};
b.tran && ($.browser.msie && (c = c + "translate(" + b.tran.x + "px," + b.tran.y + "px) "),
$.browser.msie || (c = c + "translate3d(" + b.tran.x + "px," + b.tran.y + "px,0px) "));
void 0 != b.rotate && (c = c + "rotate(" + b.rotate + "deg) ");
void 0 != b.rotateY && (c = c + "rotateY(" + b.rotateY + "deg) ");
void 0 != b.perspective && (c = c + "perspective(" + b.perspective + "px) ");
void 0 != b.scale && ($.browser.msie || (c = c + "scale3d(" + b.scale + "," + b.scale + ",1) "),
$.browser.msie && (c = c + "scale(" + b.scale + ") "));
void 0 != b.scaleX && (c = c + "scaleX(" + b.scaleX + ") ");
void 0 != b.scaleY && (c = c + "scaleY(" + b.scaleY + ") ");
if (b.origin) {
var f = b.origin.x + "% " + b.origin.y + "%";
d["-webkit-transform-origin"] = f;
d["-moz-transform-origin"] = f;
d["-ms-transform-origin"] = f;
d["-o-transform-origin"] = f;
d["transform-origin"] = f
}
c && (d["-webkit-transform"] = c,
d["-moz-transform"] = c,
d["-ms-transform"] = c,
d["-o-transform"] = c,
d.transform = c);
b.obj && b.obj.css(d);
return d
}
, initBookTye = function() {
var b = "normal_book";
if ("slide" == bookConfig.FlipStyle.toLowerCase() || isBelowIE9())
b = "slide_book";
"flip" != bookConfig.FlipStyle.toLowerCase() || isBelowIE9() || (b = "flip_book");
"" != bookConfig.FlipStyle || isBelowIE9() || (b = "flip_book");
"catalog" != bookConfig.FlipStyle.toLowerCase() || isBelowIE9() || (b = "catalog_book");
isPhoneBook() && (b = "phone_slide_book");
return b
}
, rotate = function(b) {
return " rotate(" + b + "deg)"
}
, translate = function(b, c) {
return $.browser.msie ? "translate(" + b + "px," + c + "px)" : "translate3d(" + b + "px," + c + "px,0px)"
}
, tranScale = function(b) {
return $.browser.msie ? " scale(" + b + ")" : " scale3d(" + b + "," + b + ",1)"
}
, cssTranslate = function(b, c, d) {
if ($.browser.msie) {
if (void 0 == b.getOrigin || null == b.getOrigin)
b.getOrigin = !1;
if (!b.getOrigin) {
b.getOrigin = !0;
b.originX = parseInt(b.css("left"));
b.originY = parseInt(b.css("top"));
if (void 0 == b.originX || null == b.originX || isNaN(b.originX))
b.originX = 0;
if (void 0 == b.originY || null == b.originY || isNaN(b.originY))
b.originY = 0
}
b = {
left: b.originX + c + "px",
top: b.originY + d + "px"
}
} else
b = translate(c, d),
b = {
"-webkit-transform": b,
"-moz-transform": b,
"-ms-transform": b,
"-o-transform": b,
transform: b
};
return b
}
, translate2D = function(b, c) {
return " translate(" + b + "px," + c + "px)"
}
, horizontalMirror = function(b) {
b && b.css({
"-moz-transform": "scaleX(-1)",
"-webkit-transform": "scaleX(-1)",
"-o-transform": "scaleX(-1)",
transform: "scaleX(-1)",
filter: "FlipH"
})
};
$.fn.transform = function(b, c) {
if ($.browser.msie) {
if (void 0 == this.getOrigin || null == this.getOrigin)
this.getOrigin = !1;
if (!this.getOrigin) {
this.getOrigin = !0;
this.originX = parseInt(this.css("left"));
this.originY = parseInt(this.css("top"));
if (void 0 == this.originX || null == this.originX || isNaN(this.originX))
this.originX = 0;
if (void 0 == this.originY || null == this.originY || isNaN(this.originY))
this.originY = 0
}
this.css({
left: this.originX + b + "px",
top: this.originY + c + "px"
});
return this
}
var d = $.browser.msie ? " translate(" + b + "px," + c + "px)" : " translate3d(" + b + "px," + c + "px,0px)";
this.css({
"-webkit-transform": d,
"-moz-transform": d,
"-ms-transform": d,
"-o-transform": d,
transform: d
})
}
;
var scaleTran = function(b) {
return " scale(" + b + ")"
}, isLeft = function(b) {
return 0 == b || 2 == b
}, isRight = function(b) {
return 1 == b || 3 == b
}, isTop = function(b) {
return 0 == b || 1 == b
}, isBottom = function(b) {
return 2 == b || 3 == b
}, flipAudio, playFlipSound = function() {
if ((!isPlaying || $.system.name != $.system.ANDROID) && parseBool(bookConfig.FlipSound, !0) && void 0 != global.flipAudio && null != flipAudio && void 0 != flipAudio[0].play)
try {
flipAudio[0].play()
} catch (b) {}
}, nextPageFun = function() {
switch (bookType) {
case BookType.normal_book:
gotoPageFun(2 * Math.floor(flipBook.getCurrentPageIndex() / 2 + 1));
break;
case BookType.single_book:
gotoPageFun(parseInt(singlePageBook.currentPageIndex) + 1);
break;
case BookType.slide_book:
gotoPageFun(2 * Math.floor(slideBook.getRealPageIndex() / 2 + 1));
break;
case BookType.singleSlide_book:
gotoPageFun(parseInt(singleSlideBook.getRealPageIndex()) + 1);
break;
case BookType.catalog_book:
gotoPageFun(2 * Math.floor(catalogBook.getCurrentPageIndex() / 2 + 1));
break;
case BookType.singleCatalog_book:
gotoPageFun(parseInt(singleCatalogBook.currentIndex) + 1);
break;
case BookType.phone_slide_book:
gotoPageFun(2 * Math.floor(phoneSlideBook.getRealPageIndex() / 2 + 1));
break;
case BookType.singlePhone_slide_book:
gotoPageFun(parseInt(singlePhoneSlideBook.getRealPageIndex()) + 1)
}
}, previousPageFun = function() {
switch (bookType) {
case BookType.normal_book:
gotoPageFun(2 * Math.floor(flipBook.getCurrentPageIndex() / 2 - 1) + 1);
break;
case BookType.catalog_book:
gotoPageFun(2 * Math.floor(catalogBook.getCurrentPageIndex() / 2 - 1) + 1);
break;
case BookType.single_book:
gotoPageFun(parseInt(singlePageBook.currentPageIndex) - 1);
break;
case BookType.slide_book:
gotoPageFun(2 * Math.floor(slideBook.getRealPageIndex() / 2 - 1) + 1);
break;
case BookType.singleSlide_book:
gotoPageFun(singleSlideBook.getRealPageIndex() - 1);
break;
case BookType.singleCatalog_book:
gotoPageFun(parseInt(singleCatalogBook.currentIndex) - 1);
break;
case BookType.phone_slide_book:
gotoPageFun(2 * Math.floor(phoneSlideBook.getRealPageIndex() / 2 - 1) + 1);
break;
case BookType.singlePhone_slide_book:
gotoPageFun(singlePhoneSlideBook.getRealPageIndex() - 1)
}
}, firstPageFun = function() {
gotoPageFun(1)
}, lastPageFun = function() {
gotoPageFun(originTotalPageCount)
}, gotoPageFun = function(b, c) {
if (b)
if (sendvisitinfo(1, b),
b = parseInt(b),
passwardType() && bookConfig.excludeFrontPages && b > parseInt(bookConfig.excludeFrontPages) && !verifyPassward())
passwardPannel.show();
else {
switch (bookType) {
case BookType.normal_book:
flipBook.gotoPage(b, c);
break;
case BookType.single_book:
singlePageBook.gotoPage(b, c);
break;
case BookType.slide_book:
slideBook.gotoPage(b, c);
break;
case BookType.singleSlide_book:
singleSlideBook.gotoPage(b, c);
break;
case BookType.catalog_book:
catalogBook.gotoPage(b, c);
break;
case BookType.singleCatalog_book:
singleCatalogBook.gotoPage(b, c);
break;
case BookType.phone_slide_book:
phoneSlideBook.gotoPage(b, c);
break;
case BookType.singlePhone_slide_book:
singlePhoneSlideBook.gotoPage(b, c)
}
global.bookmark && global.bookmark.refreshPageIndex(!0)
}
}, fillCurrentPageContent = function() {
for (var b = getShownPage(), c = 0; c < b.length; c++)
BookInfo.getBook().fillPage(b[c]);
thumbnail && thumbnail.show && thumbnail.fillContent && thumbnail.fillContent()
}, setPageURL = function(b, c, d) {
var f = parseInt(b) - 1;
global.fliphtml5_pages || (global.fliphtml5_pages = []);
global.fliphtml5_pages[f] || (global.fliphtml5_pages[f] = {});
getShownPage();
switch (c) {
case 0:
global.fliphtml5_pages[f].l = d;
break;
case 1:
global.fliphtml5_pages[f].n = d;
BookInfo.getBook().fillPage(b, !0);
break;
case 2:
global.fliphtml5_pages[f].t = d
}
}, getPageDir = function(b, c, d) {
if (0 >= b || void 0 != d && b > d)
return "";
if (bookConfig.getPageURL) {
var f = 0;
"normal" == c && (f = 1);
"thumb" == c && (f = 2);
return bookConfig.getPageURL(b, f)
}
d = getFileFormat(b);
var g = global.fliphtml5_pages;
if (void 0 != g && 0 < g.length) {
g = g[b - 1];
if (void 0 != g && null != g)
switch (c) {
case "normal":
f = void 0 == g.n ? g.l : g.n;
break;
case "large":
f = g.l;
break;
case "thumb":
f = g.t
}
if (void 0 == f)
switch (c) {
case "normal":
return f = getString("normalPath", "files/page/") + b + d;
case "large":
return f = getString("largePath", "files/large/") + b + d;
case "thumb":
return f = getString("thumbPath", "files/thumbnail/") + b + d
}
return void 0 == f ? "" : f
}
switch (c) {
case "normal":
return f = getString("normalPath", "files/page/") + b + d,
void 0 == f ? "" : f;
case "large":
return f = getString("largePath", "files/large/") + b + d,
void 0 == f ? "" : f;
case "thumb":
return f = getString("thumbPath", "files/thumbnail/") + b + d,
void 0 == f ? "" : f
}
}, getFileFormat = function(b) {
return !passwardType() || !bookConfig.excludeFrontPages || b <= parseInt(bookConfig.excludeFrontPages) ? ".jpg" : ".js"
}, decodeBase64 = function(b, c) {
var d = encodeDatabasePrefix(c);
if (global[d + b] && "string" == typeof global[d + b]) {
var f = getRealkey();
if (f)
return d = base64.decode(global[d + b]),
f = rc4(f, d),
base64.encode(f)
}
}, dataBase64Str = function(b, c, d) {
if (verifyPassward()) {
var f = decodeDatabasePrefix(c)
, g = encodeDatabasePrefix(c);
if (global[f + b])
return global[g + b] = null,
d && $(d).remove(),
global[f + b];
c = "data:image/jpg;base64," + decodeBase64(b, c);
global[f + b] = c;
global[g + b] = null;
d && $(d).remove();
return c
}
}, decodeDatabasePrefix = function(b) {
switch (b) {
case "normal":
return "dataBase";
case "large":
return "dataBase";
case "thum":
return "dataBaseThum"
}
}, encodeDatabasePrefix = function(b) {
switch (b) {
case "normal":
return "page";
case "large":
return "page";
case "thum":
return "thumb"
}
}, userList, getRealkey = function() {
if (1 == passwardType())
return getSingleRealKey();
if (userList && document.getElementById("passward") && "" != $("#passward").val() && document.getElementById("username") && "" != $("#username").val()) {
var b = $("#passward").val()
, c = $("#username").val();
if (userList && "string" == typeof userList[c])
return getListRealKey(c, b, userList[c])
}
}, getSingleRealKey = function() {
if (bookConfig.singlePasswordKey && "string" == typeof bookConfig.singlePasswordKey && document.getElementById("passward") && "" != $("#passward").val()) {
var b = parsHexToNormalString(bookConfig.singlePasswordKey);
return rc4($("#passward").val(), b)
}
}, getListRealKey = function(b, c, d) {
b = (b + String.fromCharCode(9) + c).MD5(32);
b = parsHexToNormalString(b);
b = base64.encode(b);
d = d.remove(b);
d = d.replace(/==?$/, "");
if (d = base64.decode(d))
return c = (b + c).cycleToLength(128),
rc4(c, d)
}, verifyPassward = function() {
if (1 == passwardType()) {
if (!document.getElementById("passward") || "" == $("#passward").val())
return;
var b = $("#passward").val();
return b.MD5(32).toLowerCase() === bookConfig.singlePasswordMD5.toLowerCase()
}
if (bookConfig.userListPath && (userList || loadJavascript(bookConfig.userListPath, verifyPassward, function() {}),
userList && document.getElementById("passward") && "" != $("#passward").val() && document.getElementById("username") && "" != $("#username").val())) {
var b = $("#passward").val()
, c = $("#username").val();
if ("string" == typeof userList[c])
return b = (c + String.fromCharCode(9) + b).MD5(32),
b = parsHexToNormalString(b),
b = base64.encode(b),
userList[c].substring(0, 24) === b
}
}, passwardType = function() {
if (!bookConfig.securityType || 1 == parseInt(bookConfig.securityType))
return 0;
if (bookConfig.securityType && 2 == parseInt(bookConfig.securityType))
return 1;
if (bookConfig.securityType && 3 == parseInt(bookConfig.securityType))
return 2
}, fillImageOrNot = function(b, c) {
return !b || "string" != typeof b || passwardType() && bookConfig.excludeFrontPages && c > parseInt(bookConfig.excludeFrontPages) && !verifyPassward() ? !1 : !0
}, fillImage = function(b, c, d, f, g) {
c && "string" == typeof c && b && d && f && fillImageOrNot(c, d) && (-1 < c.indexOf(".js") ? global[decodeDatabasePrefix(f) + d] && "string" == typeof global[decodeDatabasePrefix(f) + d] ? (b.attr("src", dataBase64Str(d, f)),
g && g()) : loadJavascript(c, function(c) {
b.attr("src", dataBase64Str(d, f, c));
g && g()
}, function() {}) : (b.attr("src", c),
g && g()))
}, getPageWidthHeight = function(b, c, d, f) {
var g = Point(0, 0);
b / c > d / f ? (g.x = 2 * parseInt(d * c / (2 * f)),
g.y = c) : (g.x = 2 * parseInt(b / 2),
g.y = b * f / d);
return g
}, getPageWidthHeightByWidth = function(b, c, d, f) {
c = Point(0, 0);
c.x = b;
c.y = b * f / d;
return c
}, slideShowImagesAdapter = function(b, c) {
if (b[0])
return b;
for (var d = [], f = c[0], g = c[1], h = b[f].length, k = 0; k < h; k++)
d.push(b[f][k][g]);
return d
}, pointToLineDistance = function(b, c, d, f, g, h) {
var k = h - f
, l = d - g;
return Math.abs(k * b + l * c + (g * f - d * h)) / Math.sqrt(k * k + l * l)
}, globalToBook = function(b, c, d) {
var f;
switch (bookType) {
case BookType.single_book:
f = Point(c - singlePageBook.getLeft(), d - singlePageBook.getTop());
break;
case BookType.normal_book:
f = Point(c - ((b ? 0 : flipBook.getPageWidth()) + flipBook.getLeft()), d - flipBook.getTop());
break;
case BookType.catalog_book:
f = catalogBook.getTran(),
b = c - ((b ? 0 : catalogBook.getPageWidth()) + catalogBook.getCssLeft()) - f.x,
d = d - catalogBook.getCssTop() - f.y,
f = Point(b, d)
}
return f
};
bdor[32] = function(b, c) {
return b + c
}
;
var changeShowBook = function(b) {
switch (b) {
case 0:
bookType = BookType.normal_book;
singlePageBook.hide();
flipBook.show();
bookConfig.ThumbnailsButtonVisible && thumbnail.mergeAll();
break;
case 1:
bookType = BookType.single_book;
singlePageBook.show();
flipBook.hide();
bookConfig.ThumbnailsButtonVisible && thumbnail.fissionAll();
break;
case 3:
bookType = BookType.slide_book;
slideBook.show();
bookConfig.ThumbnailsButtonVisible && thumbnail.mergeAll();
break;
case 4:
bookType = BookType.phone_slide_book;
singlePhoneSlideBook.hide();
phoneSlideBook.show();
bookConfig.ThumbnailsButtonVisible && thumbnail.mergeAll();
break;
case 5:
bookType = BookType.singlePhone_slide_book;
singlePhoneSlideBook.show();
phoneSlideBook.hide();
bookConfig.ThumbnailsButtonVisible && thumbnail.fissionAll();
break;
case 6:
bookType = BookType.singleSlide_book;
singleSlideBook.show();
bookConfig.ThumbnailsButtonVisible && thumbnail.fissionAll();
break;
case 7:
bookType = BookType.catalog_book;
catalogBook.show();
bookConfig.ThumbnailsButtonVisible && thumbnail.mergeAll();
break;
case 8:
bookType = BookType.singleCatalog_book,
singleCatalogBook.show(),
bookConfig.ThumbnailsButtonVisible && thumbnail.fissionAll()
}
}
, computePoint = function(b, c, d, f, g) {
if (!f || !g)
return {
rotate: 0,
pageTranX: 0,
maskTranX: 0,
maskTranY: 0
};
g.x > b && (g.x = b);
g.x < -b && (g.x = -b);
isAndroidDefault() && (f.y = g.y);
if (f.x == g.x) {
var h = 0;
0 > f.x && (h += 180);
return {
rotate: h,
pageTranX: 0,
maskTranX: f.x,
maskTranY: 0
}
}
var k = Math.sqrt(Math.pow(g.y - c, 2) + Math.pow(g.x - 0, 2))
, h = Math.sqrt(Math.pow(f.y - c, 2) + Math.pow(f.x - 0, 2));
if (k > h) {
var l = Math.atan((g.y - c) / (g.x - 0))
, k = Math.abs(Math.sin(l) * h)
, h = Math.abs(Math.cos(l) * h);
g.y = c - k;
g.x = 0 < g.x ? h : -h
}
k = Math.sqrt(Math.pow(g.y - 0, 2) + Math.pow(g.x - 0, 2));
h = Math.sqrt(Math.pow(f.y - 0, 2) + Math.pow(f.x - 0, 2));
k > h && (l = Math.atan((g.y - 0) / (g.x - 0)),
k = Math.abs(Math.sin(l) * h),
h = Math.abs(Math.cos(l) * h),
g.y = k,
g.x = 0 < g.x ? h : -h);
var m = (g.y - f.y) / (g.x - f.x)
, n = Math.atan(m)
, h = 180 * n / Math.PI
, p = (g.x + f.x) / 2
, q = (g.y + f.y) / 2
, k = c / 2
, l = b / 2
, t = c / 2;
0 > f.x && (h += 180,
l = -b / 2);
g = Math.sqrt(Math.pow(f.y - g.y, 2) + Math.pow(f.x - g.x, 2)) / 2;
g = 0 <= h && 180 > h ? Math.abs((c - Math.abs(f.y)) * Math.sin(n)) + g : Math.abs(f.y * Math.sin(n)) + g;
c = Math.atan(b / c);
d = Math.abs(g / (Math.sin(c + Math.abs(n)) * d));
d = Math.min(1, d);
c = ((p - l) * m + t + Math.pow(m, 2) * q) / (1 + Math.pow(m, 2));
f = m * (q - c) + p;
t = Math.sqrt(Math.pow(l - f, 2) + Math.pow(t - c, 2));
Math.abs(f) < Math.abs(l) && (t = -t);
return {
frontShadowDistance: g,
shadowRate: d,
rotate: h,
pageTranX: t - b / 2,
maskTranX: f - 0,
maskTranY: c - k
}
}
, supports = function() {
var b = document.createElement("div")
, c = ["Khtml", "Ms", "O", "Moz", "Webkit"];
return function(d) {
if (d in b.style)
return !0;
d = d.replace(/^[a-z]/, function(b) {
return b.toUpperCase()
});
for (var f = c.length; f--; )
if (c[f] + d in b.style)
return !0;
return !1
}
}()
, setCurrentIndexTextField = function(b) {
b = getShownPageNumberInfo(b);
$("#guidPageIndex").html("" + b + "");
$("#currentPageIndexTextField") && $("#currentPageIndexTextField")[0] && $("#currentPageIndexTextField").val(b)
}
, getShownPageNumberInfo = function(b) {
var c = BookInfo.isDoublePage()
, d = bookConfig.totalPagesCaption
, f = bookConfig.pageNumberCaption;
void 0 == d && (d = "");
void 0 == f && (f = "");
"" != f ? 1 != b && b != originTotalPageCount && c ? (f = 2 * Math.floor(b / 2),
b = getShownPageNumber(f),
f = getShownPageNumber(f + 1),
b = rightToLeft ? f + "-" + b : b + "-" + f) : b = getShownPageNumber(b) : 1 != b && b != originTotalPageCount && c && (b = f = 2 * Math.floor(b / 2),
f += 1,
b = rightToLeft ? f + "-" + b : b + "-" + f);
"" == d ? (d = originTotalPageCount,
c || (d = originTotalPageCount)) : isNaN(d) || (d = f = parseInt(d),
c || (d = originTotalPageCount - originTotalPageCount + f));
return rightToLeft ? d + "/" + b : b + "/" + d
}
, getShownPageArray = function() {
var b = bookConfig.pageNumberCaption + ""
, c = originTotalPageCount;
";" == b.substr(b.length - 1, 1) && (b = b.substr(0, b.length - 1));
for (var b = b.split(";"), d = [], f = 0; f < b.length; f++)
if ("" != b[f] && void 0 != b[f]) {
var g = b[f].split(":");
if (g[0])
if (g[1] || (g[1] = ""),
-1 < g[1].indexOf("+")) {
var h = g[0];
h.indexOf("-");
for (var h = h.split("-"), k = h[0], h = h[1], k = parseInt(k), l = h ? parseInt(h) : c, g = getPageNumberFormat(g[1]), m = k; m <= l; m++) {
var n = m - k + g.startPage
, h = "";
0 == g.type && (h = n + "");
1 == g.type && (h = parseRoman(n));
2 == g.type && (h = parseRoman(n).toLowerCase());
d[m] = String.format(g.page, h)
}
} else if (!isNaN(g[0]))
k = parseInt(g[0]),
d[k] = void 0 == g[1] ? "" : g[1];
else if (-1 < g[0].indexOf("-"))
for (h = g[0],
h.indexOf("-"),
h = h.split("-"),
k = h[0],
h = h[1],
k = parseInt(k),
l = h ? parseInt(h) : c,
m = k; m <= l; m++)
d[m] = void 0 == g[1] ? "" : g[1]
}
return d
};
function getPageNumberFormat(b) {
var c = {
page: "%s",
startPage: 1,
type: 0
};
if (-1 < b.indexOf("{")) {
var d = b.indexOf("{")
, f = b.indexOf("}") + 1
, d = b.substring(d, f);
c.page = b.replace(d, "%s");
-1 < d.indexOf("N+") && (c.type = 0);
-1 < d.indexOf("R+") && (c.type = 1);
-1 < d.indexOf("r+") && (c.type = 2);
b = d.subBetween("+", "}")
} else
b = b.replace("+", "");
c.startPage = "" == b ? 1 : parseInt(b);
return c
}
function parseRoman(b) {
if (isNaN(b))
return "";
for (var c = [" I II III IV V VI VII VIII IX".split(" "), " X XX XXX XL L LX LXX LXXX XCC".split(" "), " C CC CCC CD D DC DCC DCCC CM".split(" ")], d = "", f = 0, g = 0, h = 1E3; 3 > g; g++,
h /= 10)
f = Math.floor(b % h / (h / 10)),
d += c[2 - g][f];
return d
}
var getShownPageNumber = function(b) {
var c = bookConfig.pageNumberCaption;
if ("" == c || void 0 == c)
return b;
b = parseInt(b);
c = getShownPageArray();
return void 0 == c[b] ? b : c[b]
}
, getRealPageNumber = function(b) {
b = getRealPage(b);
isNaN(b) && (b = 1);
return b
}
, getRealPage = function(b) {
var c = bookConfig.pageNumberCaption;
if ("" == c || void 0 == c)
return parseInt(b);
b += "";
for (var c = getShownPageArray(), d = -1, f = c.length, g = 1; g <= f; g++)
if (c[g] += "",
c[g] == b) {
d = g;
break
}
return -1 == d ? parseInt(b) : d
}
, setLocationHash = function(b) {
bookConfig.updatePageURL && (window.location.hash = "#p=" + getShownPageNumber(b))
}
, getSpeedArray = function(b, c) {
for (var d = c / 2, f = (b - b / 4) / d, g = Array(c), h = 0; h < c; h++)
g[h] = h < d ? b - (d - h) * f : b + (h - d + 1) * f;
return g.reverse()
}
, getBrowserPre = function() {
switch (browserType) {
case 3:
return "-ms-";
case 2:
return "-moz-";
case 1:
return "-webkit-";
case 4:
return "-o-"
}
}
, getPoint = function(b) {
if ($.browser.msie) {
if (void 0 == b.getOrigin || null == b.getOrigin)
b.getOrigin = !1;
if (!b.getOrigin) {
b.getOrigin = !0;
b.originX = parseInt(b.css("left"));
b.originY = parseInt(b.css("top"));
if (void 0 == b.originX || null == b.originX || isNaN(b.originX))
b.originX = 0;
if (void 0 == b.originY || null == b.originY || isNaN(b.originY))
b.originY = 0
}
return Point(parseInt(b.css("left")) - b.originX, parseInt(b.css("top")) - b.originY)
}
return getTransform(b[0])
}
, getBookPoint = function(b) {
return bookType != BookType.slide_book && bookType != BookType.singleSlide_book && bookType != BookType.catalog_book && bookType != BookType.singleCatalog_book ? getTransform(b[0]) : getPoint(b)
}
, getTransform = function(b) {
var c;
switch (browserType) {
case 3:
c = b.style["-ms-transform"];
break;
case 2:
c = b.style["-moz-transform"];
break;
case 1:
c = b.style["-webkit-transform"];
break;
case 4:
c = b.style["-o-transform"];
break;
default:
c = b.style.transform
}
if (void 0 == c || null == c)
if (c = b.style.transform,
void 0 == c || null == c)
return Point(0, 0);
c = c.match(/translate\((.*?)\)/) || c.match(/translate3d\((.*?)\)/);
if (null == c || "" == c || 2 > c.length)
return Point(0, 0);
c = c[1].split(", ");
return Point(parseInt(c[0], 10), parseInt(c[1], 10))
}
, getScale = function(b) {
var c;
switch (browserType) {
case 3:
c = b.style["-ms-transform"];
break;
case 2:
c = b.style["-moz-transform"];
break;
case 1:
c = b.style["-webkit-transform"];
break;
case 4:
c = b.style["-o-transform"];
break;
default:
c = b.style.transform
}
if (void 0 == c || null == c)
if (c = b.style.transform,
void 0 == c || null == c)
return Point(0, 0);
c = c.match(/scale\((.*?)\)/) || c.match(/scale3d\((.*?)\)/);
if (null == c || "" == c)
return 1;
c = c[1].split(", ");
return c[0]
}
, getAliasValue = function(b) {
b = bookConfig[b];
if (b instanceof Array)
for (; 0 < b.length; )
return (b = b[0]) ? bookConfig[b] : void 0;
else
return b
}
, getString = function(b, c) {
return getAliasValue(b) || c
}
, getInt = function(b, c) {
var d = getAliasValue(b);
try {
return isNaN(d) || void 0 == d ? c : Number(d)
} catch (f) {
return c
}
}
, getBool = function(b, c) {
return getConfigValue(b, c)
}
, isBool = function(b) {
if (!0 === b || !1 === b)
return !0;
if (void 0 == b)
return !1;
var c = ["false", "no", "hide", "disable"];
b = b.toLowerCase();
return 0 > ["true", "yes", "show", "enable"].indexOf(b) && 0 > c.indexOf(b) ? !1 : !0
}
, parseBool = function(b, c) {
if (!0 === b || !1 === b)
return b;
if (void 0 == b || null == b)
return !1;
void 0 == c && (c = !1);
if ("" == b || "string" != typeof b)
return !1;
var d = ["true", "yes", "show", "enable"]
, f = ["false", "no", "hide", "disable"];
b = b.toLowerCase();
return 0 > d.indexOf(b) && 0 > f.indexOf(b) ? c : 0 <= d.indexOf(b)
}
, getColor = function(b, c) {
var d = getAliasValue(b);
return void 0 != d ? Color(d).toString() : c
}
, getImage = function(b) {
return b ? $("
");
tmpContainer.append($(b).asImageButton());
$(b).css({
width: "50px",
height: "50px",
bottom: "10px",
right: "10px",
position: "absolute",
"z-index": "300"
});
$(b).bind(_event._end, function() {
!1 == toolBar.visible && (toolBar.show(),
onStageResize(),
$(b).css({
display: "none"
}))
});
bookContainer.bind(_event._down, function(b) {});
bookContainer.bind(_event._end, function(c) {
bookType != BookType.slide_book && bookType != BookType.singleSlide_book && bookType != BookType.singlePhone_slide_book && bookType != BookType.phone_slide_book && bookType != BookType.singleCatalog_book && bookType != BookType.catalog_book || !0 != toolBar.visible || (toolBar.hide(),
onStageResize(),
$(b).css({
display: "block"
}))
})
}, 200)
});
var d = 10
, f = window.setInterval(function() {
b.descriptionLabel.html(getLanguage("lblSelectMode", "Select View Mode Please.") + "(" + d + ")");
d--;
0 >= d && (window.clearInterval(f),
window.setTimeout(function() {
b.flipModel.trigger(_event._end)
}, 20))
}, 1E3)
}
},
initPannel: function() {
var b = this;
this.titleLabel = new label("",this.loadingBox);
this.descriptionLabel = $("");
this.flipModel = $("");
this.padModel = $("");
this.loadingBox.append(this.titleLabel);
this.loadingBox.append(this.descriptionLabel);
this.loadingBox.append(this.flipModel);
this.loadingBox.append(this.padModel);
this.flipModel.append($("
").asImageButton());
this.padModel.append($("
").asImageButton());
this.flipModel.css({
position: "absolute",
left: (this.width - 500) / 2 + "px",
top: (this.height - 262) / 2 + 70 + "px"
});
this.padModel.css({
position: "absolute",
left: (this.width - 500) / 2 + 260 + "px",
top: (this.height - 262) / 2 + 70 + "px"
});
this.titleLabel.setCSS({
position: "absolute",
height: "50px",
width: b.width + "px",
left: 0,
top: (this.height - 262) / 2 - 50 + "px",
"line-height": "50px",
"text-align": "center",
"vertical-align": "middle",
overflow: "hidden",
"white-space": "nowrap",
"text-overflow": "ellipsis",
"font-size": "30px",
color: "#ffffff"
});
this.descriptionLabel.css({
position: "absolute",
height: "50px",
width: this.width + "px",
left: 0,
top: (this.height - 262) / 2 + "px",
"line-height": "50px",
"text-align": "center",
"vertical-align": "middle",
"font-size": "20px",
color: "#ffffff"
});
this.titleLabel.setCaption(window.document.title);
$(this.loadingBox).css({
"text-shadow": "0 0 10px #8c97cb, 0 0 20px #8c97cb,0 0 30px #8c97cb"
});
this.flipModel.bind(_event._enter, function() {
b.flipModel.css({
cursor: "pointer",
border: "2px solid #ff8040"
})
});
this.padModel.bind(_event._enter, function() {
b.padModel.css({
cursor: "pointer",
border: "2px solid #ff8040"
})
});
this.flipModel.bind(_event._leave, function() {
b.flipModel.css({
cursor: "pointer",
border: ""
})
});
this.padModel.bind(_event._leave, function() {
b.padModel.css({
cursor: "pointer",
border: ""
})
})
},
onResize: function() {
void 0 != this.loadingBox && (this.bg.css({
width: window.innerWidth + "px",
height: window.innerHeight + "px"
}),
this.loadingBox.css({
width: this.width + "px",
height: this.height + "px",
left: (window.innerWidth - this.width) / 2 + "px",
top: (window.innerHeight - this.height) / 2 + "px"
}))
},
showHide: function(b) {
b ? this.loadingBox.css("display", "block") : this.loadingBox.css("display", "none")
},
hide: function() {
this.bg.remove()
}
});
function loadXMLString(b) {
var c = null;
if (!window.DOMParser && window.ActiveXObject)
for (var d = ["MSXML.2.DOMDocument.6.0", "MSXML.2.DOMDocument.3.0", "Microsoft.XMLDOM"], f = 0; f < d.length; f++)
try {
c = new ActiveXObject(d[f]);
c.async = !1;
c.loadXMLString(b);
break
} catch (g) {}
else if (window.DOMParser && document.implementation && document.implementation.createDocument)
try {
domParser = new DOMParser,
c = domParser.parseFromString(b, "text/xml")
} catch (h) {}
else
return null;
return c
}
function loadXMLFile(b) {
var c = null;
if (!window.DOMParser && window.ActiveXObject)
for (var d = ["MSXML.2.DOMDocument.6.0", "MSXML.2.DOMDocument.3.0", "Microsoft.XMLDOM"], f = 0; f < d.length; f++)
try {
c = new ActiveXObject(d[f]);
break
} catch (g) {}
else if (document.implementation && document.implementation.createDocument)
try {
c = document.implementation.createDocument("", "", null)
} catch (h) {}
else
return null;
null != c && (c.async = !1,
c.load(b));
return c
}
var PictureListFrame = Class({
create: function() {
this.currentPageIndex = 1;
this.imageWidth = 100;
this.leftButtonUrl = form_icons.print_left ? "data:image/png;base64," + form_icons.print_left : uiBaseURL + "print_left.png";
this.rightButtonUrl = form_icons.print_right ? "data:image/png;base64," + form_icons.print_right : uiBaseURL + "print_right.png";
this.initDefaultDom();
this.initHtml();
this.initEvent();
this.fillContent(this.currentPageIndex)
},
initDefaultDom: function() {
this.thumbnail = $("");
this.page = $("");
this.image = $("" + getLanguage("btnLanguage", "Language change") + "
"); this.close = $("" + getLanguage("btnSettings", "Settings") + "
"); this.close = $("" + getLanguage("btnHelp", "Help") + "
"); this.close = $("" + getLanguage("lblHelp1", "Drag the page corner to view") + "
"), this.title2 = $("" + getLanguage("lblHelp2", "Double click to zoom in, out") + "
")) }, initCss: function() { this.stage.css({ "background-color": this.mainColor, color: this.fontColor }); rightToLeft && this.stage.addClass("rightToLeft"); this.stage.appearance("", function() { this.visible = !1 } .bind(this)); this.parent.append(this.stage.getDom()); bookConfig.showHelpContentAtFirst ? this.show() : this.hide() }, initEvent: function() { this.stage.drag() }, showOrHide: function() { this.visible ? this.hide() : this.show() }, show: function() { this.visible = !0; this.stage.show(); this.close.changeButtonColor(this.fontColor); !bookConfig.helpContentFileURL && this.image && this.image.changeButtonColor(this.fontColor) }, hide: function() { this.visible = !1; this.stage.hide() } }).extend(FormFrame); (function(b) { var c = window.location.href.toLowerCase(); !(-1 < c.indexOf("fliphtml5.com") || -1 < c.indexOf("pubhtml5.com")) || -1 < c.indexOf("amazonaws.com") || b.loadJavascript("//connect.facebook.net/en_US/sdk.js") })(global); var share_url = window.location.href.removeStartFrom("#p="), share_title, share_screenshot, share_description, AnalysisShare = Class({ create: function() { share_title = window.document.title; share_screenshot = Directory.getFilePath(share_url).substring(0, share_url.lastIndexOf("/")) + "/" + bookConfig.thumbPath + "1.jpg"; bookConfig.thumbPath.indexOf("../" >= 0) && (share_screenshot = Directory.getUpperFilePath(share_screenshot).substring(0, share_url.lastIndexOf("/")) + "/" + bookConfig.thumbPath.remove("../") + "1.jpg"); share_description = bookConfig.bookDescription; this.refreshList() }, getList: function() { return this.shareList }, refreshList: function() { this.url = Metacharacter(share_url); this.title = Metacharacter(share_title); this.screenshot = Metacharacter(share_screenshot); this.description = Metacharacter(share_description); this.shareList = window.shareObj ? this.initShareList() : this.initDefaultShareList() }, initShareList: function() { if (!window.shareObj || 0 >= window.shareObj.length) return []; for (var b = window.shareObj.length, c = [], d = 0; d < b; d++) { var f = this.fixItemInfo(window.shareObj[d]); c.push(f) } return c }, fixItemInfo: function(b) { if (b) { var c = share_url , d = "" , f = ""; try { d = window.parent.location.href, f = window.top.location.href } catch (g) {} var h = window.document.title , k = c.substring(0, c.lastIndexOf("/")) + "/" + bookConfig.thumbPath + "1.jpg" , l = b.url + ""; 0 <= l.indexOf("${url_no_page}") && (l = l.remove("${url_no_page}"), c = c.removeStartFrom("#p="), d = d.removeStartFrom("#p="), f = f.removeStartFrom("#p=")); l = l.replaceAll("${url}", c, !0); l = l.replaceAll("${url_parent}", d, !0); l = l.replaceAll("${url_top}", f, !0); l = l.replaceAll("${shot-img}", k, !0); l = l.replaceAll("${title}", h, !0); c = b.logo + ""; bookConfig.isFlipPdf && c.startWith("./") && (c = "." + c); return { url: l, logo: c, title: b.title + "" } } }, initDefaultShareList: function() { return [{ logo: uiBaseURL + "facebook.png", url: "javascript:ShareToFaceBook({url:share_url, title:share_title, screenshot:share_screenshot, description:share_description})", title: "Facebook", name: "facebook" }, { logo: uiBaseURL + "google.png", url: "https://plus.google.com/share?url=" + this.url, title: "Google", name: "google" }, { logo: uiBaseURL + "email.png", url: "https://mail.google.com/mail/u/0/?view=cm&fs=1&tf=1&su=" + this.title + "&body=" + (this.title + "%0D%0A" + this.url), title: "Email", name: "email" }, { logo: uiBaseURL + "twitter.png", url: "https://twitter.com/intent/tweet?url=" + this.url + "&text=" + this.title, title: "Twitter", name: "twitter" }, { logo: uiBaseURL + "linkedin.png", url: "http://www.linkedin.com/shareArticle?url=" + this.url + "&title=" + this.title, title: "Linkedin", name: "linkedin" }, { logo: uiBaseURL + "digg.png", url: "http://digg.com/submit?url=" + this.url + "&title=" + this.title, title: "Digg", name: "digg" }, { logo: uiBaseURL + "reddit.png", url: "http://reddit.com/submit?url=" + this.url + "&title=" + this.title, title: "Reddit", name: "reddit" }, { logo: uiBaseURL + "more.png", url: "http://www.addthis.com/bookmark.php?v=300&url=" + this.url + "&title=" + this.title + "&description=" + this.description + "&screenshot=" + this.screenshot, title: "More", name: "share_more" }] } }), ShareToFaceBook = function(b) { var c = function() { var b = getHost(window.location.href).toLowerCase(); if (-1 < b.indexOf("fliphtml5.com")) return "759223277462081"; if (-1 < b.indexOf("pubhtml5.com")) return "552959651503135" }; (function() { var d = getHost(window.location.href).toLowerCase(); (-1 < d.indexOf("fliphtml5.com") || -1 < d.indexOf("pubhtml5.com")) && global.FB ? (FB.init({ appId: c(), status: !0, xfbml: !1, version: "v2.4" }), FB.ui({ method: "feed", link: share_url, name: b.title, picture: b.screenshot, description: b.description })) : window.open("http://www.facebook.com/sharer.php?u=" + share_url + "&picture=" + b.screenshot) })() }, PhoneShareItem = Class({ create: function(b) { b && (this.info = b, this.initItem()) }, initItem: function() { -1 < this.info.url.indexOf("javascript") ? this.link = $("") : this.link = $(""); this.item = $(""); window.shareObj ? this.logo = $("" + getLanguage("btnAbout", "About") + "
"); this.close = $("
").asImageButton()),
$(this.contentBox).append(this.closeButton),
this.fillImage(),
this.initEvent(),
this.background.css({
display: "none"
}),
this.contentBox.css({
display: "none"
})
},
onResize: function() {
this.visible && (this.width = windowWidth,
this.height = windowHeight,
this.contentWidth = Math.min(windowWidth - 60, windowHeight - 60, 310) + 20,
this.contentHeight = Math.min(windowWidth - 60, windowHeight - 60, 310) + 20 + 40,
this.background.css({
height: this.height + "px",
bottom: "0px"
}),
this.contentBox.css({
height: this.contentHeight + "px",
width: this.contentWidth + "px",
left: (this.width - this.contentWidth) / 2 + "px"
}),
this.contentBox.css({
top: (this.height - this.contentHeight) / 2 + "px"
}),
this.titleBox.css({
width: this.contentWidth - 6 + "px",
height: "20px",
left: "3px",
bottom: "10px",
"line-height": "20px"
}),
this.scanBox.css({
width: this.contentWidth - 80 + "px",
height: this.contentWidth - 80 + "px",
left: "30px",
top: "30px"
}),
this.closeButton.css({
top: "0px",
right: "0px"
}))
},
setPosition: function(b, c, d) {
this.visible && (void 0 == d && (d = ["left", "top"]),
$(this.background).css(d[0], b + "px"),
$(this.background).css(d[1], c + "px"))
},
getShowStatu: function() {
return this.showing
},
setShowStatu: function(b) {
this.showing = b
},
show: function() {
this.visible && ($(this.background).css({
display: "block"
}),
$(this.contentBox).fadeIn(500),
this.showing = !0)
},
hide: function() {
this.visible && ($(this.background).fadeOut(500),
$(this.contentBox).fadeOut(500),
this.showing = !1)
},
initEvent: function() {
if (this.visible) {
var b = this;
this.background.bind(_event._down, function(c) {
b.hide();
b.showing = !1
});
this.closeButton.bind(_event._end, function(c) {
b.hide();
b.showing = !1
});
this.closeButton.bind("mouseover", function(c) {
b.closeButton.css({
cursor: "pointer"
})
})
}
},
fillImage: function() {
this.visible && this.scanBox.qrcode({
width: this.contentWidth - 80,
height: this.contentWidth - 80,
text: window.location.href
})
}
});
Class("QRButton", {
create: function(b) {
if (this.visible = parseBool(bookConfig.QRCode) && !isBelowIE9())
this.button = $(""),
this.button.qrcode({
width: 50,
height: 50,
text: window.location.href
}),
this.button.css({
width: "50px",
height: "50px",
"z-index": "999",
right: "0px",
position: "absolute"
}),
b.append(this.button),
this.initEvent()
},
show: function() {
this.visible && this.button.show()
},
hide: function() {
this.visible && this.button.hide()
},
initEvent: function() {
if (this.visible) {
var b = this;
this.button.bind(_event._enter, function(b) {
$(this).css({
opacity: "1"
})
});
this.button.bind(_event._leave, function(b) {
$(this).css({
opacity: "0.5"
})
});
this.button.bind(_event._down, function(c) {
c = isTouch ? c.originalEvent.touches : [c];
b.drapable = !0;
b.mouseDownPointX = c[0].pageX;
b.mouseDownPointY = c[0].pageY;
b.codePositionX = $(this).offset().left;
b.codePositionY = $(this).offset().top;
return b.codeMove = !1
});
this.button.bind(_event._end, function(c) {
!1 == b.codeMove && (QRcode.getShowStatu() ? QRcode.hide() : QRcode.show(),
hideMoreBar());
$(this).css({
opacity: "0.5"
});
return b.drapable = !1
});
this.button.bind(_event._move, function(c) {
c = isTouch ? c.originalEvent.touches : [c];
if (b.drapable) {
var d = c[0].pageX - b.mouseDownPointX;
c = c[0].pageY - b.mouseDownPointY;
$(this).css({
left: b.codePositionX + d + "px",
top: b.codePositionY + c + "px"
});
if (1 < Math.abs(d) || 1 < Math.abs(c))
b.codeMove = !0
}
return !1
})
}
}
});
var HTML5AdSlider = Class({
create: function(b, c) {
c && c.data && 0 != c.data.length && (this.parent = b,
this.options = c,
this.data = c.data,
this.outerContainer = $(""),
this.container = $(""),
this.dots = $(""),
this.getDefaultValue(),
this.getImgs(),
this.setDots(),
this.setSLider(),
this.initCss(),
this.outerContainer.append(this.dots, this.container),
this.parent.append(this.outerContainer),
this.setImgs(),
this.autoPlay())
},
getDefaultValue: function() {
this.timer = null;
this.imgs = [];
this.wappers = [];
this.currentIndex = 1;
this.dotWidth = this.dotHeight = 14;
this.dotsWidth = 0;
this.dotMargin = 5;
this.moving = !1;
this.left = this.options.paddingLeft;
this.top = this.options.paddingTop;
this.width = $(this.parent).width() - this.left - this.options.paddingRight;
this.height = $(this.parent).height() - this.top - this.options.paddingBottom
},
initCss: function() {
this.outerContainer.css({
position: "absolute",
overflow: "hidden",
left: this.left + "px",
top: this.top + "px",
width: this.width + "px",
height: this.height,
padding: "0",
margin: "0"
});
this.container.css({
position: "absolute",
left: 0,
top: 0,
width: this.width * this.data.length + "px",
height: this.height + "px",
padding: "0",
margin: "0"
});
this.dots.css({
position: "absolute",
"text-align": "center",
width: this.dotsWidth + "px",
"line-height": this.dotHeight + "px",
height: this.dotHeight + "px",
right: "20px",
top: "20px",
"z-index": "2"
})
},
resize: function() {
this.width = this.parent.width() - this.options.paddingLeft - this.options.paddingRight;
this.height = this.parent.height() - this.options.paddingTop - this.options.paddingBottom;
this.container.css({
width: this.width * this.data.length + "px",
height: this.height,
left: -(this.currentIndex - 1) * this.width + "px",
top: 0
});
this.outerContainer.css({
width: this.width,
height: this.height,
left: this.left + "px",
top: this.top + "px"
});
this.dots.css({
top: 3 * this.height / 4 + "px"
});
for (var b = 0; b < this.imgs.length; b++) {
var c = this.imgs[b];
this.setImgCss(c);
c.css({
position: "absolute",
width: this.imgWidth + "px",
height: this.imgHeight + "px",
left: this.imgLeft + "px",
top: this.imgTop + "px"
});
this.wappers[b].css({
position: "absolute",
left: this.width * b + "px",
top: 0,
width: this.width + "px",
height: this.height + "px",
padding: "0",
margin: "0",
overflow: "hidden"
})
}
},
setDots: function() {
for (var b = 0; b < this.data.length; b++)
this.dotsWidth += this.dotWidth + this.dotMargin,
this.dot = $("" + b + "").css({ color: bookConfig.iconColor, display: "none", "font-size": c.size, "font-family": c.fontName }); $("body").append(d); var f = Point(d.width(), d.height()); d.remove(); return f }; function label(b, c) { this.labelBox = $('
" + this.parm.caption + "
") : this.description = $("" + this.parm.caption + "
"); this.hasChild && (this.arrow = $("" + this.parm.caption + "
"); this.hasChild && (this.arrow = $("
");
this.centerPart.append("
");
this.bottomPart.append("
")
},
getThicknessWidth: function(b) {
var c = bookConfig.totalPageCount
, d = Math.floor(this.maxWidth * this.maxWidthZoom);
b = this.isRightToLeftBook ? c - b : b;
bookConfig.HardPageEnable && 5 >= b && (b = 0);
this.thicknessWidth = Math.floor(d * b / c);
this.thicknessWidth = Math.max(this.thicknessWidth, 0);
BookInfo.isDoublePage() || (this.thicknessWidth = 0)
},
resetPosition: function(b) {
this.getThicknessWidth(b);
b = transformCSS({
tran: {
x: this.thicknessWidth - this.imageWidth,
y: 0
}
});
this.topPart.css(b);
this.centerPart.css(b);
this.bottomPart.css(b);
this.thicknessObj.css({
width: this.thicknessWidth + "px",
left: -this.thicknessWidth + "px"
});
b = Math.floor(this.thicknessWidth / Math.sin(7 * Math.PI / 18));
this.shadowContent.css({
width: b + "px",
left: -this.thicknessWidth + 1 + "px"
})
},
resetScale: function(b) {
this.doResetScale(b, this.isRightToLeftBook)
},
setMovingScale: function(b, c, d) {
this.doSetMovingScale(b, c, d, this.isRightToLeftBook)
},
pageIndexByPosition: function(b) {
b = b + this.thicknessWidth - this.imageWidth;
var c = this.thicknessWidth;
if (0 < c - b && c - b <= c) {
var d = bookConfig.totalPageCount
, f = BookInfo.getBook().currentPageIndex;
bookType == BookType.single_book && (f = singlePageBook.currentPageIndex);
!0 == rightToLeft ? (b = Math.floor((d - f - 1) * (1 - (b - (c - c)) / c)),
b += f + 1) : (b = Math.floor((f - 1) * (b - (c - c)) / c),
b++);
return b
}
return -1
}
}).extend(Thickness);
Class("RightThickness", {
initShadowStyle: function(b) {
void 0 == b && (b = 1);
this.shadowObj.css({
transform: "rotateY(20deg) scaleX(" + b + ") scaleZ(1)",
"-webkit-transform": "rotateY(20deg) scaleX(" + b + ") scaleZ(1)",
"-moz-transform": "rotateY(20deg) scaleX(" + b + ") scaleZ(1)",
"-ms-transform": "rotateY(20deg) scaleX(" + b + ") scaleZ(1)",
"-webkit-box-shadow": "3px 0px 6px rgba(125, 125, 125, 0.7)",
"-moz-box-shadow": "3px 0px 6px rgba(125, 125, 125, 0.7)",
"-ms-box-shadow": "3px 0px 6px rgba(125, 125, 125, 0.7)",
"box-shadow": "3px 0px 6px rgba(125, 125, 125, 0.7)"
})
},
scaleThickness: function() {
var b = {
"-webkit-transform-origin": "0% 0%",
"-moz-transform-origin": "0% 0%",
"-ms-transform-origin": "0% 0%",
"-o-transform-origin": "0% 0%",
"transform-origin": "0% 0%",
transform: "scaleX(" + this.scale + ") scaleZ(1)",
"-webkit-transform": "scaleX(" + this.scale + ") scaleZ(1)",
"-moz-transform": "scaleX(" + this.scale + ") scaleZ(1)",
"-ms-transform": "scaleX(" + this.scale + ") scaleZ(1)"
};
this.thicknessObj.css(b);
this.shadowContent.css(b);
this.initShadowStyle(this.scale)
},
fillThicknessImage: function() {
this.topPart.append("
");
this.centerPart.append("
");
this.bottomPart.append("
")
},
getThicknessWidth: function(b) {
var c = bookConfig.totalPageCount
, d = Math.floor(this.maxWidth * this.maxWidthZoom);
b = this.isRightToLeftBook ? b : c - b;
bookConfig.HardPageEnable && 5 >= b && (b = 0);
this.thicknessWidth = Math.floor(d * b / c);
this.thicknessWidth = Math.max(this.thicknessWidth, 0);
BookInfo.isDoublePage() || (this.thicknessWidth = 0)
},
resetPosition: function(b) {
this.getThicknessWidth(b);
var c = this.contentWidth;
1 != b || this.isRightToLeftBook || (c = this.contentWidth - 1);
this.thicknessObj.css({
width: this.thicknessWidth + "px",
left: c + "px"
});
this.shadowContent.css({
width: this.thicknessWidth + "px",
left: this.contentWidth - 1 + "px"
})
},
resetScale: function(b) {
this.doResetScale(b, !this.isRightToLeftBook)
},
setMovingScale: function(b, c, d) {
this.doSetMovingScale(b, c, d, !this.isRightToLeftBook)
},
pageIndexByPosition: function(b) {
var c = this.thicknessWidth;
if (0 < b && b <= c) {
var d = bookConfig.totalPageCount
, f = BookInfo.getBook().currentPageIndex;
!0 == rightToLeft ? (b = Math.floor((f - 1) * (1 - b / c)),
b++) : (b = Math.floor((d - f - 1) * b / c),
b += f + 1);
return b
}
return -1
}
}).extend(Thickness);
var flipShotBar = Class({
create: function(b) {
this.flipShotObj = $("");
this.flipShotObj.css({
"z-index": 2 * (bookConfig.totalPageCount + 5) + 1
});
b ? (this.prevDiv = $(""),
this.firstDiv = $(""),
this.prevDiv.append(""),
this.firstDiv.append(""),
this.prevDiv.append("
"),
this.firstDiv.append("
")) : (this.prevDiv = $(""),
this.firstDiv = $(""),
this.prevDiv.append(""),
this.firstDiv.append(""),
this.prevDiv.append("
"),
this.firstDiv.append("
"));
this.flipShotObj.append(this.firstDiv);
this.flipShotObj.append(this.prevDiv);
this.isLeft = b;
this.visible = !0;
this.init();
this.initEvents()
},
init: function() {
this.enterCss = {
background: "#333333"
};
this.leaveCss = {
background: "#000000"
};
this.prevDiv.css({
width: "100%",
height: "80%",
position: "relative",
"border-radius": "0px 0px 0px 5px"
});
this.firstDiv.css({
width: "100%",
height: "20%",
position: "relative",
"border-bottom": "1px solid #aaaaaa"
});
this.prevDiv.find("div").css(this.leaveCss);
this.firstDiv.find("div").css(this.leaveCss);
this.isLeft ? (this.firstDiv.find("div").css({
"border-radius": "5px 0px 0px 0px"
}),
this.prevDiv.find("div").css({
"border-radius": "0px 0px 0px 5px"
})) : (this.firstDiv.find("div").css({
"border-radius": "0px 5px 0px 0px"
}),
this.prevDiv.find("div").css({
"border-radius": "0px 0px 5px 0px"
}))
},
onResize: function(b, c) {
var d = Math.min(50, 0.7 * c / 8)
, f = Math.min(0.7 * c, 310);
this.width = d;
this.height = f;
this.flipShotObj.css({
width: d,
height: f
});
this.setThicknessPosition(b, c)
},
setThicknessPosition: function(b, c) {
this.flipShotObj.css({
left: this.isLeft ? 1 - this.width : "100%",
top: (c - this.height) / 2,
position: "absolute"
})
},
hideThickness: function() {
this.flipShotObj.css("display", "none")
},
showThickness: function() {
this.flipShotObj.css("display", "block")
},
setVisible: function(b) {
this.flipShotObj.css({
display: b ? "block" : "none"
});
this.visible = b
},
getContainer: function() {
return this.flipShotObj
},
initEvents: function() {
this.isLeft ? (this.prevDiv.bind(_event._end, function(b) {
rightToLeft ? nextPageFun() : previousPageFun()
}),
this.firstDiv.bind(_event._end, function(b) {
rightToLeft ? lastPageFun() : firstPageFun()
})) : (this.prevDiv.bind(_event._end, function(b) {
rightToLeft ? previousPageFun() : nextPageFun()
}),
this.firstDiv.bind(_event._end, function(b) {
rightToLeft ? firstPageFun() : lastPageFun()
}));
this.prevDiv.bind(_event._down + " " + _event._enter, function() {
this.prevDiv.find("div").css(this.enterCss)
}
.bind(this));
this.firstDiv.bind(_event._down + " " + _event._enter, function() {
this.firstDiv.find("div").css(this.enterCss)
}
.bind(this));
this.prevDiv.bind(_event._leave, function() {
this.prevDiv.find("div").css(this.leaveCss)
}
.bind(this));
this.firstDiv.bind(_event._leave, function() {
this.firstDiv.find("div").css(this.leaveCss)
}
.bind(this));
isTouch && (this.prevDiv.bind(_event._end, function() {
this.prevDiv.find("div").css(this.leaveCss)
}
.bind(this)),
this.firstDiv.bind(_event._end, function() {
this.firstDiv.find("div").css(this.leaveCss)
}
.bind(this)));
this.prevDiv.on("mouseup touchstart", function(b) {
b.stopPropagation()
});
this.firstDiv.on("mouseup touchstart", function(b) {
b.stopPropagation()
})
},
setScale: function(b) {
this.width *= b;
this.height *= b;
this.flipShotObj.css({
width: this.width,
height: this.height
})
}
})
, VideoGalleryItem = Class({
create: function(b, c) {
b && (this.parm = b,
this.callback = c,
this.initDom(),
this.initEvent())
},
initDom: function() {
this.item = $("");
this.image = $("");
this.parm.thumbnail && this.image.css({
"background-image": "url(" + this.parm.thumbnail + ")"
});
this.parm.title && (this.title = rightToLeft ? $("" + getLanguage("frmVideoTitle", "Video") + "
"); this.close = $("" + this.videoList[0].description + "
" + this.videoList[0].description + "
");
this.vimeoBorder.append(this.closeButton);
this.initStyle();
this.initEvents();
this.onResize();
this.resizeTimer = this.onResize.interval(this, 500);
this.visible = !0
},
initVideo: function(b) {
var c = "https" == (window.location.href ? window.location.href.toLowerCase() : "http:").substring(0, 5) ? "https" : "http";
if ("vimeo" == b) {
var d = this.config.id.lastIndexOf("/")
, d = this.config.id.substring(d + 1);
this.vimeoFrame = $("")
}
"youtube" == b && (this.vimeoFrame = $(""));
"dailymotion" == b && (this.vimeoFrame = $(""));
"wistia" == b && (this.vimeoFrame = $(""));
"youku" == b && (this.vimeoFrame = $(""));
"qq" == b && (this.vimeoFrame = $(""))
},
initStyle: function() {
this.background.css({
position: "absolute",
width: "100%",
height: "100%",
"z-index": 100
});
this.vimeoBac.css({
width: "100%",
height: "100%",
"background-color": "rgba(0,0,0,0.5)"
});
this.vimeoBorder.css({
position: "absolute",
"z-index": "11",
"background-color": "#F0F0F0",
"border-radius": "3px",
margin: "auto",
left: "0",
top: "0",
bottom: "0",
right: "0"
});
this.closeButton.css({
position: "absolute",
"z-index": "1",
width: "32px",
height: "32px",
cursor: "pointer",
right: "5px",
top: "0px"
});
this.vimeoFrame.css({
background: "#F0F0F0",
position: "relative",
"margin-left": "5px",
"margin-top": "32px"
})
},
initEvents: function() {
this.vimeoBac.bind(_event._down, function(b) {
this.destroy();
b.stopPropagation();
return !1
}
.bind(this));
this.vimeoBorder.bind(_event._down, function(b) {
b.stopPropagation();
return !1
}
.bind(this));
this.closeButton.asButton();
this.closeButton.bind(_event._end, function(b) {
this.destroy();
b.stopPropagation();
return !1
}
.bind(this))
},
destroy: function() {
this.visible && (this.visible = !1,
this.vimeoFrame.attr("src", ""),
this.background.empty(),
this.background.remove(),
this.resizeTimer && this.resizeTimer.stop())
},
showOrHide: function() {
!1 === this.visible ? this.show() : this.hide()
},
hide: function() {
this.visible = !1;
this.background.css({
display: "none"
})
},
show: function() {
this.visible = !0;
this.background.css({
display: "block"
})
},
onResize: function() {
if (this.windowWidth != windowWidth || this.windowHeight != windowHeight) {
this.windowWidth = windowWidth;
this.windowHeight = windowHeight;
var b = windowWidth - 10
, c = windowHeight - 10;
if (isPhone()) {
var d = 307 / 490;
c / b > d ? c = b * d : b = c / d
} else
b = Math.min(490, b),
c = Math.min(307, c);
this.vimeoBorder.css({
width: b + "px",
height: c + "px"
});
c -= 37;
this.vimeoFrame && (this.vimeoFrame.attr("width", b - 10 + "px"),
this.vimeoFrame.attr("height", c + "px"))
}
},
getPlayEvt: function() {
return this.config.moviePlayTriggerEvt
},
getStopEvt: function() {
return this.config.movieStopTriggerEvt
}
});
global.hddr.soo4 = function(b) {
return b || ".com"
}
;
Class("Audio", {
Package: "PageItem",
background: !1,
create: function(b, c, d, f, g) {
this._super(b, c, d, f);
if (this.config.src) {
this.audio = null;
this.themeName = g;
this.resizeThemes = {
"default": "",
wave: ""
};
this.type = "com.mobiano.flipbook.sound.TAnnoBackgroundSound";
this.pageWidth = d;
this.pageHeight = f;
this.width = this.config.width * this.pageWidth;
this.height = this.config.height * this.pageHeight;
this.x = this.config.x * this.pageWidth;
this.y = this.config.y * this.pageHeight;
this.config.mainColor && (this.mainColor = Color(this.config.mainColor).toString());
b = this.config.key;
this.content = $("");
this.content.css({
position: "absolute",
left: this.x + "px",
top: this.y + "px",
opacity: this.config.alpha
});
this.setRotation(this.content, this.config.rotation);
this.parent.append(this.content);
this.audio = $("");
this.audio.css({
position: "absolute",
width: this.width + "px",
height: this.height + "px",
left: "0px",
top: "0px",
opacity: this.config.alpha
});
this.content.audioResources = [];
if (void 0 == b)
this.config.src = this.fixRelativePath(this.config.src),
this.audio.attr("src", this.config.src),
this.content.audioResources.push(this.config.src);
else if (b in this.config.src)
d = this.config.src[b],
d = this.fixRelativePath(d),
this.content.audioResources.push(d),
this.audio.attr("src", d);
else
for (c = 0; c < this.config.src.length; c++)
d = this.config.src[c][b],
d = this.fixRelativePath(d),
this.content.audioResources.push(d),
f = $("
").asImageButton());
this.initEvent();
$(this.background).css("display", "none");
$(this.contentBox).css("display", "none");
$(this.closeButton).css("display", "none")
},
onResize: function(b, c) {
this.background.css({
height: windowHeight + "px",
bottom: "0px"
});
this.contentBox.css({
height: this.contentHeight + "px",
width: this.contentWidth + "px",
left: (windowWidth - this.contentWidth) / 2 + "px"
});
this.contentBox.css({
top: (windowHeight - this.contentHeight) / 2 + "px"
});
this.closeButton.css({
top: "30px",
right: "30px"
});
void 0 != this.themeName && (this.contentBox.css({
width: this.contentWidth + "px",
height: this.contentHeight + "px"
}),
this.audioSkin.onResize())
},
setPosition: function(b, c, d) {
void 0 == d && (d = ["left", "top"]);
$(this.background).css(d[0], b + "px");
$(this.background).css(d[1], c + "px")
},
getShowStatu: function() {
return this.showing
},
setShowStatu: function(b) {
this.showing = b
},
show: function() {
$(this.background).css({
display: "block"
});
$(this.contentBox).fadeIn(500);
$(this.closeButton).fadeIn(500);
this.showing = !0;
void 0 != leftRightButton && null != leftRightButton && leftRightButton.setShow(!1)
},
hide: function() {
var b = this;
$(this.background).fadeOut(500, function() {
b.pause();
b.contentBox.remove();
b.closeButton.remove();
b.background.remove()
});
hideLeftRightButton() && leftRightButton.setShow(!0);
this.showing = !1
},
initEvent: function() {
var b = this;
this.background.bind(_event._down, function(c) {
b.hide();
b.showing = !1
});
this.closeButton.bind(_event._end, function(c) {
b.hide();
b.showing = !1
});
this.closeButton.bind("mouseover", function(c) {
b.closeButton.css({
cursor: "pointer"
})
})
},
play: function() {
if (null != this.audio)
try {
this.autoPlayAgain && (this.audio[0].currentTime = 0),
this.audio[0].play()
} catch (b) {}
this.isPlaying = !0
},
pause: function() {
if (null != this.audio)
try {
this.audio[0].pause()
} catch (b) {}
this.isPlaying = !1
},
stop: function() {
if (null != this.audio)
try {
this.audio[0].pause(),
this.audio[0].currentTime = 0
} catch (b) {}
this.isPlaying = !1
},
getPlayEvt: function() {
return this.config.soundPlayTriggerEvt
},
getStopEvt: function() {
return this.config.soundStopTriggerEvt
}
});
Class("Image", {
Package: "PageItem",
create: function(b, c, d, f) {
this._super(b, c, d, f);
this.initImage();
this.initImageResource();
this.initImageLoadEvents();
this.initEvents();
this.onResize(this.pageWidth, this.pageHeight)
},
initImage: function() {
this.container = $("");
this.image = $("" + this.originalFormat + ""), d = c.getElementsByTagName("P"), f = 0; f < d.length; f++)
null != d[f].getElementsByTagName("FONT")[0].firstChild && (c = d[f].getElementsByTagName("FONT")[0].firstChild.nodeValue,
null == c && d[f].getElementsByTagName("B")[0] && (c = d[f].getElementsByTagName("B")[0].firstChild.nodeValue),
null == c && d[f].getElementsByTagName("I")[0] && (c = d[f].getElementsByTagName("I")[0].firstChild.nodeValue),
null == c && d[f].getElementsByTagName("U")[0] && (c = d[f].getElementsByTagName("U")[0].firstChild.nodeValue),
null != c && b.push(c));
d = "";
for (f = 0; f < b.length; f++)
d += b[f];
return d
}
c = loadXMLString("

"),
this.playimg = $("
"),
this.nextimg = $("
"),
this.soundname = $(""),
this.soundtime = $(""),
this.parent.append(this.sounddiv),
this.sounddiv.append(this.sound),
this.sounddiv.append(this.preimg),
this.sounddiv.append(this.playimg),
this.sounddiv.append(this.nextimg),
this.sounddiv.append(this.soundname),
this.sounddiv.append(this.soundtime),
null != this.config.src && this.initEvent(),
this.setRotation(this.sounddiv, this.config.rotation))
},
parseConfig: function(b) {
return {
width: b.location.width,
height: b.location.height,
rotation: b.location.rotation,
x: b.location.x,
y: b.location.y,
alpageHeighta: b.alpageHeighta,
src: b.soundList.sound,
skinType: b.skinType,
soundPlay: b.soundPlayTriggerEvt || b.componentData.playEvt
}
},
initEvent: function() {
var b = this;
b.nflay = 0;
var c = b.playimg[0]
, d = b.sound[0]
, f = b.config.src[0].path
, g = typeof b.config.src.path;
"undefined" != g ? b.soundname.html(this.getname(b.config.src.path)) : b.soundname.html(this.getname(f));
b.soundtime.html("00:00 / 00:00");
this.playimg.bind(_event._down, function(f) {
0 == b.flay ? (c.src = uiBaseURL + "Pause_down.png",
d.play(),
b.flay = 1,
b.gettime(d.duration)) : (c.src = uiBaseURL + "Play_down.png",
d.pause(),
b.flay = 0,
clearTimeout(b.st))
});
this.preimg.bind(_event._down, function(h) {
d.pause();
clearTimeout(b.st);
"undefined" != g ? d.src = b.config.src.path : 0 < b.nflay && b.nflay < b.config.src.length ? (d.src = b.config.src[b.nflay - 1].path,
b.soundname.html(b.getname(b.config.src[b.nflay].path)),
b.nflay -= 1) : (d.src = f,
b.soundname.html(b.getname(f)));
d.play();
c.src = uiBaseURL + "Pause_down.png";
b.flay = 1;
setTimeout(function() {
b.c = 0;
b.gettime(d.duration)
}, 1E3)
});
this.nextimg.bind(_event._down, function(h) {
d.pause();
clearTimeout(b.st);
"undefined" != g ? d.src = b.config.src.path : b.nflay < b.config.src.length ? (b.nflay += 1,
d.src = b.config.src[b.nflay].path,
b.soundname.html(b.getname(b.config.src[b.nflay].path)),
b.nflay += 1) : (d.src = f,
b.soundname.html(b.getname(f)),
b.nflay = 0);
d.play();
c.src = uiBaseURL + "Pause_down.png";
b.flay = 1;
setTimeout(function() {
b.c = 0;
b.gettime(d.duration)
}, 1E3)
})
},
gettime: function(b) {
var c = this
, d = null
, f = 0
, g = null
, d = c.c % 60
, g = parseInt(b % 60)
, g = 10 > g ? "0" + g : g
, h = parseInt(b / 60);
c.c < b && (c.c += 1,
60 > c.c ? d = 10 > c.c ? "00:0" + c.c : "00:" + c.c : (f = parseInt(c.c / 60),
d = 10 > f ? 10 > d ? "0" + f + ":0" + d : "0" + f + ":" + d : 10 > d ? f + ":0" + d : f + ":" + d),
10 > h ? c.soundtime.html(d + " / 0" + h + ":" + g) : c.soundtime.html(d + " / " + h + ":" + g),
c.st = setTimeout(function() {
c.gettime(b)
}, 1E3))
},
getname: function(b) {
var c = []
, c = b.split("/");
return c[c.length - 1].split(".")[0]
},
onResize: function(b, c) {
this.pageWidth = b;
this.pageHeight = c;
this.width = this.config.width * this.pageWidth;
this.height = this.config.height * this.pageHeight;
this.sounddiv.css({
width: this.width + "px",
height: this.height + "px"
});
this.sounddiv.css("background-size", this.width + "px " + this.height + "px");
this.soundname.css("top", this.height / 3 + "px");
this.soundtime.css("top", this.height / 6 + "px");
this.setPosition()
},
setPosition: function() {
this.x = this.config.x * this.pageWidth;
this.y = this.config.y * this.pageHeight;
this.sounddiv.css({
left: this.x + "px",
top: this.y + "px"
})
}
}).extend("Item");
global.hddr.soo3 = bdor[51];
global.hddr.soc8 = hddr.sob8 + "ph";
Class("EffText", {
Package: "PageItem",
create: function(b, c, d, f, g) {
this._super(b, c, d, f);
this.originWidth = bookConfig.largePageWidth;
this.originHeight = bookConfig.largePageHeight;
this.color = Color(this.config.color).toString();
this.speed = this.pos = 0;
this.speed = "ChangeSpeed" == this.config.moveSpeed ? 250 : 50;
this.width = this.config.width * this.originWidth;
this.height = this.config.height * this.originHeight;
this.x = this.config.x * this.pageWidth;
this.y = this.config.y * this.pageHeight;
this.id = "efftext" + g;
this.scrollid = "efftext" + this.id;
this.fontSize = this.config.lineH * this.originHeight * 0.75;
b = new TextFormatAnalyzer(this.config.textStr);
this.config.textStr = b.getTextLines();
this.config.fontSize = b.getFontSize();
this.config.color = b.getFontColor();
this.color = Color(this.config.color).toString();
!0 === parseBool(this.config.sh) ? this.efftext = $("") : this.efftext = $("");
this.efftext2 = $("");
!0 === parseBool(this.config.tbold) && this.efftext.css({
"font-weight": "bold"
});
!0 === parseBool(this.config.italic) && this.efftext.css({
"font-style": "italic"
});
this.initEvent();
this.parent.append(this.efftext);
this.efftext.append(this.efftext2);
this.initeffAmin();
this.onResize(d, f);
parseBool(this.config.reflection) && this.imageReflection(this.efftext);
this.setRotation(this.efftext, this.config.rotation)
},
parseConfig: function(b) {
return {
x: b.location.x,
y: b.location.y,
rotation: b.location.rotation,
width: b.location.width,
height: b.location.height,
reflection: b.location.reflection,
reflectionType: b.location.reflectionType,
reflectionAlpha: b.location.reflectionAlpha,
alpha: b.alpha,
textStr: b.htmlText,
moveSpeed: b.effectStyle,
lineH: b.HRate,
sh: parseBool(b.shadow.hasDropShadow),
sx: b.shadow.shadowBlurX,
sy: b.shadow.shadowBlurY,
se: b.shadow.shadowDistance,
sr: b.shadow.shadowColor
}
},
initeffAmin: function() {
var b = this, c, d = b.config.textStr;
this.efftext2.html(d.substring(0, b.pos));
b.pos++ == d.length ? (b.pos = 0,
clearTimeout(c)) : c = setTimeout(function() {
b.initeffAmin()
}, b.speed)
},
initEvent: function() {
this.flag = 0;
this.linkURL = null;
if (null != this.config.action) {
try {
void 0 != this.config.action.length && (this.config.action = this.config.action[0]),
this.linkURL = this.config.action.url
} catch (b) {}
null != this.linkURL && "www" == this.linkURL.substr(0, 3).toLowerCase() && (this.linkURL = "http://" + this.linkURL);
this.addActionEvent(this.efftext)
}
},
onResize: function(b, c) {
this.pageWidth = b;
this.pageHeight = c;
this.setPosition();
this.fontSize = this.config.lineH * this.originHeight * 0.75;
this.resizeText(this.pageWidth)
},
resizeText: function(b) {
b /= this.originWidth;
this.efftext.css({
"-webkit-transform-origin": "0% 0%",
"-moz-transform-origin": "0% 0%",
"-ms-transform-origin": "0% 0%",
"-o-transform-origin": "0% 0%",
"transform-origin": "0% 0%",
"-webkit-transform": "scale(" + b + ")",
"-moz-transform": "scale(" + b + ")",
"-ms-transform": "scale(" + b + ")",
"-o-transform": "scale(" + b + ")",
transform: "scale(" + b + ")"
})
},
setPosition: function() {
this.x = this.config.x * this.pageWidth;
this.y = this.config.y * this.pageHeight;
this.efftext.css({
left: this.x + "px",
top: this.y + "px"
})
}
}).extend(PageItem.Item);
bdor[7] = "m";
Class("PngImage", {
Package: "PageItem",
create: function(b, c, d, f) {
this._super(b, c, d, f);
this.img = $("
');
this.rightButton = $('
');
this.setButtonPosition();
this.content.append(this.leftButton);
this.content.append(this.rightButton);
this.leftButton.bind(_event._down, function() {
return !1
});
this.leftButton.bind(_event._end, function(b) {
this.move(1);
b.stopPropagation && b.stopPropagation();
return !1
}
.bind(this));
this.rightButton.bind(_event._down, function() {
return !1
});
this.rightButton.bind(_event._end, function(b) {
this.move(-1);
b.stopPropagation && b.stopPropagation();
return !1
}
.bind(this))
},
refreshImageAndPosition: function() {
void 0 != this.imageItem && null != this.imageItem && 0 != this.imageItem.length && (this.instanceCount = 5,
5 > this.imageItem.length && (this.instanceCount = Math.min(this.imageItem.length, 3)),
this.refreshImages(),
this.refreshPositions())
},
refreshImages: function() {
this.refreshImagesIndex();
this.aImages = [];
for (var b = 0; b < this.aImagesIndex.length; b++)
this.aImages.push(this.imageItem[this.aImagesIndex[b]].url)
},
refreshImagesIndex: function() {
this.aImagesIndex = [];
switch (this.instanceCount) {
case 1:
this.aImagesIndex.push(0);
break;
case 2:
this.aImagesIndex.push(this.currentIndex % this.imageItem.length);
this.aImagesIndex.push((this.currentIndex + 1) % this.imageItem.length);
break;
case 3:
this.aImagesIndex.push((this.currentIndex - 1 + this.imageItem.length) % this.imageItem.length);
this.aImagesIndex.push(this.currentIndex % this.imageItem.length);
this.aImagesIndex.push((this.currentIndex + 1) % this.imageItem.length);
break;
case 5:
this.aImagesIndex.push((this.currentIndex - 2 + this.imageItem.length) % this.imageItem.length),
this.aImagesIndex.push((this.currentIndex - 1 + this.imageItem.length) % this.imageItem.length),
this.aImagesIndex.push(this.currentIndex % this.imageItem.length),
this.aImagesIndex.push((this.currentIndex + 1) % this.imageItem.length),
this.aImagesIndex.push((this.currentIndex + 2) % this.imageItem.length)
}
},
refreshPositions: function() {
this.aPositions = [];
var b = this.width / 5
, b = 0;
switch (this.instanceCount) {
case 1:
Math.ceil(this.width / 2);
b = Math.ceil(this.width / 4);
this.aPositions.push(new CarouselPosition(b,0,this.width,this.height,1));
break;
case 2:
var b = Math.ceil(this.width / 2)
, c = Math.ceil(this.width / 4);
this.aPositions.push(new CarouselPosition(c,0,b,this.height,2));
c = Math.ceil(b + 0.1 * b);
this.aPositions.push(new CarouselPosition(c,0.1 * this.height,0.8 * b,0.8 * this.height,1));
break;
case 3:
b = Math.ceil(this.width / 2);
c = Math.ceil(0.1 * b);
this.aPositions.push(new CarouselPosition(c,0.1 * this.height,b,0.8 * this.height,1));
c = Math.ceil(this.width / 4);
this.aPositions.push(new CarouselPosition(c,0,b,this.height,2));
c = Math.ceil(b + 0.1 * b);
this.aPositions.push(new CarouselPosition(c,0.1 * this.height,b - 5,0.8 * this.height,1));
break;
case 5:
b = this.width / 3,
c = Math.ceil(0.2 * b),
this.aPositions.push(new CarouselPosition(c,0.2 * this.height,0.6 * b,0.6 * this.height,1)),
c = Math.ceil(this.width / 6 + 0.1 * b),
this.aPositions.push(new CarouselPosition(c,0.1 * this.height,0.8 * b,0.8 * this.height,2)),
this.aPositions.push(new CarouselPosition(b,0,b,this.height,3)),
c = Math.ceil(this.width / 2 + 0.1 * b),
this.aPositions.push(new CarouselPosition(c,0.1 * this.height,0.8 * b,0.8 * this.height,2)),
c = Math.ceil(2 * this.width / 3 + 0.2 * b),
this.aPositions.push(new CarouselPosition(c,0.2 * this.height,0.6 * b,0.6 * this.height,1))
}
},
play: function() {
this.config.autoPlay && (this.timer = window.setInterval(function() {
this.move(1)
}
.bind(this), 1E3 * this.config.duration))
},
pause: function() {
this.config.autoPlay && window.clearInterval(this.timer)
},
move: function(b) {
this.isMoving || (this.isMoving = !0,
this.currentIndex += b,
0 > this.currentIndex && (this.currentIndex += this.imageItem.length),
this.currentIndex %= this.imageItem.length,
this.instanceCount = this.carouselList.instanceCount(),
this.refreshImages(),
this.carouselList.setResources(this.aImages),
this.carouselList.setImagesIndex(this.aImagesIndex),
this.carouselList.move(b),
function() {
this.isMoving = !1
}
.delay(this, 1E3))
},
moveTo: function(b) {
this.move(b - this.currentIndex)
},
onResize: function(b, c) {
this.pageWidth = b;
this.pageHeight = c;
this.width = this.config.width * this.pageWidth;
this.height = this.config.height * this.pageHeight;
this.content.css({
width: this.width + "px",
height: this.height + "px"
});
this.setPosition();
this.config.showButton && this.setButtonPosition();
this.refreshImageAndPosition();
this.carouselList.setResources(this.aImages);
this.carouselList.setImagesIndex(this.aImagesIndex);
this.carouselList.setPositions(this.aPositions);
this.carouselList.resizeAll()
},
setPosition: function() {
this.x = this.config.x * this.pageWidth;
this.y = this.config.y * this.pageHeight;
this.content.css({
left: this.x + "px",
top: this.y + "px"
})
},
setButtonPosition: function() {
var b = (this.height - 32) / 2;
this.leftButton.css({
left: "0px",
top: b + "px"
});
this.rightButton.css({
right: "0px",
top: b + "px"
})
}
}).extend("Item");
var CarouselImage = Class({
create: function(b, c) {
this.parent = b;
this.position = Instance.copy(c);
this.instance = $('
');
this.rightButton = $('
');
this.setButtonPosition();
this.leftButton.bind(_event._click, function() {
this.preImage()
}
.bind(this));
this.rightButton.bind(_event._click, function() {
this.nextImage()
}
.bind(this));
this.leftButton.css({
display: "none"
});
this.rightButton.css({
display: "none"
});
this.content.append(this.leftButton);
this.content.append(this.rightButton);
isPhone() || isPad() || (this.content.bind(_event._enter, function() {
this.leftButton.css({
display: "block"
});
this.rightButton.css({
display: "block"
})
}
.bind(this)),
this.content.bind(_event._leave, function() {
this.leftButton.css({
display: "none"
});
this.rightButton.css({
display: "none"
})
}
.bind(this)))
},
preImage: function() {
-1 != this.currentIndex && this.imageInstances[this.currentIndex].hide();
this.currentIndex = (this.currentIndex - 1 + this.images.length) % this.images.length;
this.imageInstances[this.currentIndex].show()
},
nextImage: function() {
-1 != this.currentIndex && this.imageInstances[this.currentIndex].hide();
this.currentIndex = (this.currentIndex + 1) % this.images.length;
this.imageInstances[this.currentIndex].show()
},
showImage: function(b) {
-1 != b && (-1 != this.currentIndex && this.imageInstances[this.currentIndex].hide(),
this.currentIndex = b,
this.imageInstances[this.currentIndex].show())
},
refreshZindex: function() {
for (var b = this.imageInstances[this.currentIndex].zIndex, c = 0; c < this.images.length; c++)
if (c != this.currentIndex) {
var d = this.imageInstances[c].zIndex;
d > b && (d--,
this.imageInstances[c].setZindex(d))
}
this.imageInstances[this.currentIndex].setZindex(this.images.length - 1)
},
setButtonPosition: function() {
var b = (this.height - 32) / 2;
this.leftButton.css({
left: "0px",
top: b + "px"
});
this.rightButton.css({
right: "0px",
top: b + "px"
})
},
onResize: function(b, c) {
this.pageWidth = b;
this.pageHeight = c;
this.width = this.config.width * this.pageWidth;
this.height = this.config.height * this.pageHeight;
this.content.css({
width: this.width + "px",
height: this.height + "px"
});
this.setPosition();
this.setButtonPosition();
this.childWidth = Math.ceil(this.width / 4);
for (var d = 0; d < this.imageInstances.length; d++)
this.imageInstances[d].onResize()
},
setPosition: function() {
this.x = this.config.x * this.pageWidth;
this.y = this.config.y * this.pageHeight;
this.content.css({
left: this.x + "px",
top: this.y + "px"
})
}
}).extend("Item");
var ImageInstance = Class({
create: function(b, c) {
this.parent = b;
this.zIndex = this.index = c;
this.imageHeight = this.imageWidth = 0;
this.height = this.width = this.parent.childWidth;
this.borderWidth = Math.ceil(this.parent.borderWidth / 2);
this.maxLeft = this.parent.width - this.width;
this.maxTop = this.parent.height - this.height;
var d = randomPosition(this.maxLeft, this.maxTop);
this.rotation = d.rotation;
this.animate = [];
this.instance = $("
');
this.rightButton = $('
');
isPhone() || isPad() || (this.leftButton.css({
display: "none"
}),
this.rightButton.css({
display: "none"
}));
this.content.append(this.leftButton);
this.content.append(this.rightButton)
},
initImages: function() {
this.$images = [];
this.images = this.config.images;
if ("" != this.images) {
if (!(this.images instanceof Array)) {
if ("" == this.images)
return;
this.images.node && (this.images = [this.images.node])
}
for (var b = this, c = 0; c < this.images.length; c++) {
var d = this.images[c].url
, d = this.fixRelativePath(d)
, f = $("
');
this.rightButton = $('
');
this.setButtonPosition();
var b = this;
this.leftButton.bind(_event._click, function(b) {
this.preImage();
b.stopPropagation && b.stopPropagation();
return !1
}
.bind(this));
this.rightButton.bind(_event._click, function(b) {
this.nextImage();
b.stopPropagation && b.stopPropagation();
return !1
}
.bind(this));
this.leftButton.css({
display: "none"
});
this.rightButton.css({
display: "none"
});
this.content.append(this.leftButton);
this.content.append(this.rightButton);
isPhone() || isPad() || (this.content.bind(_event._enter, function() {
b.leftButton.css({
display: "block"
});
b.rightButton.css({
display: "block"
})
}),
this.content.bind(_event._leave, function() {
b.leftButton.css({
display: "none"
});
b.rightButton.css({
display: "none"
})
}))
},
preImage: function() {
if (!0 != this.busy) {
this.busy = !0;
var b = this.imageItems[this.imageCount - 1]
, c = this;
this.imageItems[0].randomRotate();
b.rotateTo(0, 40);
b.jumpUp(function() {
b.setZindex(c.maxZindex);
b.jumpDown(function() {
c.imageItems.pop();
c.imageItems.unshift(b);
c.resetZindex();
c.busy = !1
})
})
}
},
nextImage: function() {
if (!0 != this.busy) {
this.busy = !0;
var b = this.imageItems[0]
, c = this.imageItems[1]
, d = this;
1 == this.imageItems.length && (c = b);
c.rotateTo(0);
b.randomRotate(40);
b.jumpUp(function() {
b.setZindex(d.minZindex);
b.jumpDown(function() {
d.imageItems.shift();
d.imageItems.push(b);
d.resetZindex();
d.busy = !1
})
})
}
},
resetZindex: function() {
for (var b = 0; b < this.imageItems.length; b++)
this.imageItems[b].setZindex(this.imageItems.length - b)
},
resetJumpEvent: function() {
for (var b = 0; b < this.imageItems.length; b++)
this.imageItems[b].instance.bind(_event._click, function() {
this.nextImage()
}
.bind(this))
},
setButtonPosition: function() {
var b = (this.height - 32) / 2;
this.leftButton.css({
left: "0px",
top: b + "px"
});
this.rightButton.css({
right: "0px",
top: b + "px"
})
},
onResize: function(b, c) {
this.pageWidth = b;
this.pageHeight = c;
this.width = this.config.width * this.pageWidth;
this.height = this.config.height * this.pageHeight;
this.content.css({
width: this.width + "px",
height: this.height + "px"
});
this.setPosition();
this.setButtonPosition();
this.itemHeight = Math.floor(0.7 * this.height);
for (var d = 0; d < this.imageItems.length; d++)
this.imageItems[d].resize()
},
setPosition: function() {
this.x = this.config.x * this.pageWidth;
this.y = this.config.y * this.pageHeight;
this.content.css({
left: this.x + "px",
top: this.y + "px"
})
}
}).extend("Item");
var FlipJumpItem = Class({
create: function(b, c) {
this.parent = b;
this.initRotate = c;
this.rotation = 0;
this.height = this.width = b.itemHeight;
this.imageHeight = this.imageWidth = 0;
this.instance = $("
');
this.rightButton = $('
');
this.setButtonPosition();
var b = this;
this.leftButton.bind(_event._down, this.preImage.bind(this));
this.rightButton.bind(_event._down, this.nextImage.bind(this));
this.leftButton.bind(_event._end, this.stopRotate.bind(this));
this.rightButton.bind(_event._end, this.stopRotate.bind(this));
this.leftButton.bind(_event._leave, this.stopRotate.bind(this));
this.rightButton.bind(_event._leave, this.stopRotate.bind(this));
isTouchDevice() || (this.leftButton.css({
display: "none"
}),
this.rightButton.css({
display: "none"
}));
this.content.append(this.leftButton);
this.content.append(this.rightButton);
this.content.bind(_event._enter, function() {
b.leftButton.css({
display: "block"
});
b.rightButton.css({
display: "block"
})
});
this.content.bind(_event._leave, function() {
b.leftButton.css({
display: "none"
});
b.rightButton.css({
display: "none"
})
})
},
setButtonPosition: function() {
var b = (this.height - 32) / 2;
this.leftButton.css({
left: "0px",
top: b + "px"
});
this.rightButton.css({
right: "0px",
top: b + "px"
})
},
onResize: function(b, c) {
this.pageWidth = b;
this.pageHeight = c;
this.width = this.config.width * this.pageWidth;
this.height = this.config.height * this.pageHeight;
this.content.css({
width: this.width + "px",
height: this.height + "px"
});
this.setPosition();
this.setButtonPosition();
for (var d = 0; d < this.imageItems.length; d++)
this.imageItems[d].resize()
},
setPosition: function() {
this.x = this.config.x * this.pageWidth;
this.y = this.config.y * this.pageHeight;
this.content.css({
left: this.x + "px",
top: this.y + "px"
})
},
preImage: function() {
this.step = -1;
this.startRotate()
},
nextImage: function() {
this.step = 1;
this.startRotate()
},
startRotate: function() {
var b = this;
this.doRotate();
window.clearInterval(this.rotateTimer);
this.rotateTimer = window.setInterval(function() {
b.doRotate()
}, 120)
},
doRotate: function() {
var b = this.currentIndex;
this.currentIndex += this.step;
0 > this.currentIndex && (this.currentIndex += this.imageCount);
this.currentIndex >= this.imageCount && (this.currentIndex %= this.imageCount);
this.imageItems[b].hide();
this.imageItems[this.currentIndex].show()
},
stopRotate: function() {
window.clearInterval(this.rotateTimer);
this.step = 0;
this.rotateTimer = -1
}
}).extend("Item");
var Rotate3DItem = Class({
create: function(b, c) {
var d = this;
this.parent = b;
this.zIndex = c;
this.height = this.parent.height;
this.width = this.parent.width;
this.imageHeight = this.imageWidth = 0;
this.instance = $("
");
this.mLow = $("
");
this.transitTime = $("
");
this.cartlow = $("
");
this.carttitle = $("");
this.cartPrice = $("");
null == this.product.advancedName || "" == this.product.advancedName ? (this.carttitle.text(this.carttitle.text().overflow(18)),
this.carttitle.text(this.product.title)) : this.carttitle.text(this.product.title + "(" + this.product.advancedName + ")");
this.cartPrice.text(this.product.sing + forceFloat(this.product.price));
this.shoppingImage.attr("src", this.product.image);
this.singleShop.append(this.checkBox).append(this.shoppingImage).append(this.carttitle).append(this.cartPrice).append(this.addlow).append(this.cartadd).append(this.cartInput).append(this.cartlow).append($("
");
this.low = $("
");
this.not = $("Not enough in stock");
this.setShopCss();
tmpContainer.append(this.bgImage);
tmpContainer.append(this.container);
this.container.append(this.content);
this.container.append(this.closeButton);
this.content.append(this.imgBox);
this.imgBox.append(this.shopImg);
this.content.append(this.contentText);
this.contentText.append(this.shopTitle);
this.contentText.append(this.shopPrice);
if ("" != this.advancedObj.advanced)
for (var b = 0, c = 0; c < this.advancedObj.advanceLength; c++)
b += 30,
"boolean" == this.advancedObj.advanced[c].type && this.contentText.append(this.advancedObj.shopAdvanced1),
"text" == this.advancedObj.advanced[c].type && this.contentText.append(this.advancedObj.shopAdvanced2),
"list" == this.advancedObj.advanced[c].type && this.contentText.append(this.advancedObj.shopAdvanced3),
this.about.css({
width: "320px",
height: 150 - b + "px",
"margin-top": "10px",
"font-size": "10px",
"font-family": "Arial",
"overflow-x": "hidden"
});
this.contentText.append(this.number);
this.number.append(this.add);
this.number.append(this.input);
this.number.append(this.low);
this.contentText.append(this.allQuantity);
this.contentText.append(this.time);
this.contentText.append(this.about);
this.contentText.append(this.addToCart);
this.contentText.append(this.close);
this.shopTitle.html(this.config.Detailed.title);
this.shopTitle.text(this.shopTitle.text().overflow(16));
this.mailto = $("");
this.mailto.append(this.checkout);
this.contentText.append(this.mailto);
this.contentText.css("display", "none");
!1 === this.setting.shoppingCartOptinon.showPrice && this.shopPrice.css({
display: "none"
});
!1 === this.setting.shoppingCartOptinon.showTime && this.time.css({
display: "none"
});
this.initImgs();
$(window).resize(this.onResize())
},
initImgs: function() {
this.imageItems = [];
for (var b = 0; b < this.imgs.length; b++)
this.imageItems.push(this.imgs[b]),
bookConfig.isFlipPdf && (this.imageItems[b].startWith("./") ? this.imageItems[b] = "." + this.imageItems[b] : this.imageItems[b].isUrl() || (this.imageItems[b] = "../" + this.imageItems[b]));
1 < this.imgs.length && (this.imageURL = this.imageItems[0],
this.initButton());
this.setImgs(this.imageItems[0])
},
setImgs: function(b) {
this.shopImg.attr("src", b)
},
initButton: function() {
this.leftButton = $('
");
this.cartadd = $("
");
this.cartlow = $("
");
this.cartNot = $("Not enough in stock");
this.singleShop.append(this.shoppingImage);
this.singleShop.append(this.carttitle);
this.singleShop.append(this.addlow);
this.singleShop.append(this.cartPrice);
this.singleShop.append(this.dustbin);
this.addlow.append(this.cartadd);
this.addlow.append(this.cartlow);
this.addlow.append(this.cartInput);
this.setImg(this.product.image);
!1 === pageEditor.setting.shoppingCartOptinon.showPrice && this.cartPrice.css({
display: "none"
});
null == this.product.advancedName || "" == this.product.advancedName ? (this.carttitle.text(this.carttitle.text().overflow(16)),
this.carttitle.text(this.product.title)) : this.carttitle.text(this.product.title + "(" + this.product.advancedName + ")");
this.cartPrice.text(this.product.sing + forceFloat(this.product.price));
this.singleShop.append($("
");
this.videoImage.append(this.playImg);
this.setRotation(this.videoImage, this.config.rotation);
this.background.append(this.videoFrame);
tmpContainer.append(this.background);
this.background.append(this.videoBac);
b.append(this.videoImage);
this.hide();
this.initPlayer();
this.initEvent()
},
parseConfig: function(b) {
var c = {
width: b.location.width,
height: b.location.height,
rotation: b.location.rotation,
x: b.location.x,
y: b.location.y,
alpha: b.alpha,
reflection: b.location.reflection,
reflectionType: b.location.reflectionType,
reflectionAlpha: b.location.reflectionAlpha,
previewSrc: b.previewURL,
moviePlayTriggerEvt: b.moviePlayTriggerEvt,
movieStopTriggerEvt: b.movieStopTriggerEvt,
replayWhenPlayEventTrigger: b.replayWhenPlayEventTrigger
};
b.componentData && (c.videoURL = b.componentData.videoURL,
c.imgURL = b.componentData.imgURL,
c.pageViewed = b.componentData.pageViewed);
return c
},
initPlayer: function() {
this.player = this.html_video;
var b = this.videoFrame.attr("src");
b && global.flvjs && flvjs.isSupported() && (b.endWith(".flv") || b.endWith(".f4v")) && (this.player = flvjs.createPlayer({
type: "flv",
url: b
}),
this.player.attachMediaElement(this.html_video),
this.player.load())
},
initEvent: function() {
this.background.bind(_event._down, function(b) {
this.hide();
this.setCurrentTime(0);
this.player.pause();
b.stopPropagation()
}
.bind(this));
this.videoImage.bind(_event._down, function(b) {
b.stopPropagation()
}
.bind(this));
this.videoImage.bind(_event._end, function(b) {
parseBool(this.config.pageViewed) && this.player.play();
this.showOrHide();
b.stopPropagation()
}
.bind(this))
},
onResize: function(b, c) {
this.pageWidth = b;
this.pageHeight = c;
this.width = this.config.width * this.pageWidth;
this.height = this.config.height * this.pageHeight;
this.left = this.config.x * this.pageWidth;
this.top = this.config.y * this.pageHeight;
this.videoWidth = Math.min(480, windowWidth);
this.videoHeight = 9 * this.videoWidth / 16;
this.videoHeight = Math.min(this.videoHeight, windowHeight);
this.videoLeft = (windowWidth - this.videoWidth) / 2;
this.videoTop = (windowHeight - this.videoHeight) / 2;
this.videoFrame.css({
width: this.videoWidth + "px",
height: this.videoHeight + "px",
top: this.videoTop + "px",
left: this.videoLeft + "px"
});
this.videoImage.css({
width: this.pageWidth * this.config.width + "px",
height: this.pageHeight * this.config.height + "px"
});
this.setPosition(this.left, this.top)
},
setPosition: function(b, c) {
this.videoImage.css({
top: c + "px",
left: b + "px"
})
},
getPlayEvt: function() {
return this.config.moviePlayTriggerEvt
},
getStopEvt: function() {
return this.config.movieStopTriggerEvt
},
showOrHide: function() {
!1 === this.visible ? this.popup() : this.hide()
},
setCurrentTime: function(b) {
this.player.currentTime = b
},
hide: function() {
this.visible = !1;
this.background.css({
display: "none"
})
},
popup: function() {
this.visible = !0;
this.background.css({
display: "block"
})
},
play: function() {
this.player.play()
},
pause: function() {
this.player.pause()
},
stop: function() {
this.pause();
this.player.currentTime = 0
}
}).extend("Item");
Class("LoopControlVideo", {
Package: "PageItem",
create: function(b, c, d, f) {
this.config = this.parseConfig(c);
this.parent = b;
this.pageWidth = d;
this.pageHeight = f;
this.width = this.config.width * this.pageWidth;
this.height = this.config.height * this.pageHeight;
this.x = this.config.x * this.pageWidth;
this.y = this.config.y * this.pageHeight;
this.content = $("");
this.control = $("");
this.playVideo = $("");
this.volume = $("");
this.fullscreen = $("");
this.loopControl = $("");
this.canvasDiv = $("");
b = typeof this.config.src;
c = this.config.src.substr(this.config.src.length - 4, 4).toLowerCase();
if ("string" == b) {
if (null == this.config.src || ".mp4" != c && ".flv" != c && ".f4v" != c)
return
} else if (this.config.src == {})
return;
this.config.src = this.fixRelativePath(this.config.src);
this.video = $("");
this.html_video = this.video[0];
this.parent.append(this.content);
this.content.append(this.video);
this.content.append(this.control);
this.control.append(this.canvasDiv);
this.canvasDiv.append(this.loopControl);
this.control.append(this.playVideo);
this.control.append(this.volume);
this.control.append(this.time);
this.control.append(this.fullscreen);
this.canvasDiv.append(this.time);
this.initPlayer();
this.setCss();
this.initEvent()
},
parseConfig: function(b) {
var c = {
width: b.location.width,
height: b.location.height,
rotation: b.location.rotation,
x: b.location.x,
y: b.location.y,
alpha: b.alpha,
reflection: b.location.reflection,
reflectionType: b.location.reflectionType,
reflectionAlpha: b.location.reflectionAlpha,
previewSrc: b.previewURL,
moviePlayTriggerEvt: b.moviePlayTriggerEvt,
movieStopTriggerEvt: b.movieStopTriggerEvt,
replayWhenPlayEventTrigger: b.replayWhenPlayEventTrigger
};
void 0 != b.videoURL && (c.src = b.videoURL);
void 0 != b.url && (c.src = b.url);
void 0 != b.componentData && (c.src = b.componentData.videoURL);
b.componentData && (c.previewSrc = b.componentData.imgURL);
return c
},
initPlayer: function() {
this.player = this.html_video;
var b = this.video.attr("src");
b && global.flvjs && flvjs.isSupported() && (b.endWith(".flv") || b.endWith(".f4v")) && (this.player = flvjs.createPlayer({
type: "flv",
url: b
}),
this.player.attachMediaElement(this.html_video),
this.player.load())
},
onPlayClick: function() {
!1 == this.html_video.paused ? this.player.pause() : this.player.play();
$.browser.device != $.browser.DEVICE_PC && function() {
this.control.css("opacity", "0")
}
.delay(this, 5E3);
return !1
},
onResize: function(b, c) {
this.width = this.config.width * b;
this.height = this.config.height * c;
this.content.css({
width: this.width + "px",
height: this.height + "px"
});
this.control.css({
width: this.width + "px",
height: this.height + "px"
});
this.content.css({
"background-size": this.width + "px " + this.height + "px"
});
this.setPosition(b, c)
},
setPosition: function(b, c) {
this.x = b * this.config.x;
this.y = c * this.config.y;
this.content.css({
left: this.x + "px",
top: this.y + "px"
})
},
Loop: function(b) {
var c = this.loopControl[0].getContext("2d");
c.clearRect(0, 0, 80, 80);
this.drawRound(c, 40, 360, "#555555");
this.drawRound(c, 40, b, "#FFFFFF");
this.drawRound(c, 34, 360, "#000000")
},
drawRound: function(b, c, d, f) {
var g = Math.PI / 180;
b.beginPath();
b.moveTo(40, 40);
b.arc(40, 40, c, 0, d * g, !1);
b.closePath();
b.fillStyle = f;
b.fill()
},
muteVolume: function() {
!0 == this.video[0].muted ? (this.video[0].muted = !1,
this.volume.removeClass("video-circle-volume-mute")) : (this.video[0].muted = !0,
this.volume.addClass("video-circle-volume-mute"));
return !1
},
fullScreen: function() {
fullScreenApi.supportsFullScreen && (fullScreenApi.isFullScreen() ? fullScreenApi.cancelFullScreen() : fullScreenApi.requestFullScreen(this.video[0]));
this.video[0].webkitSupportsFullscreen && this.video[0].webkitEnterFullscreen();
return !1
},
initEvent: function() {
this.fullscreen.bind(_event._click, this.fullScreen.bind(this));
this.control.bind(fullScreenApi.fullScreenEventName, function() {
fullScreenApi.isFullScreen() ? this.fullscreen.addClass("video-circle-exit-fullscreen") : this.fullscreen.removeClass("video-circle-exit-fullscreen")
}
.bind(this));
this.video.bind(_event._click, this.onPlayClick.bind(this));
this.playVideo.bind(_event._click, this.onPlayClick.bind(this));
this.volume.bind(_event._click, this.muteVolume.bind(this));
this.video.bind("play", function() {
this.playVideo.addClass("video-paused-button")
}
.bind(this));
this.video.bind("timeupdate", function() {
this.totalTime = this.video[0].duration;
this.currentTime = this.video[0].currentTime;
this.Loop(this.currentTime / this.totalTime * 360)
}
.bind(this));
this.video.bind("pause", function() {
this.playVideo.removeClass("video-paused-button")
}
.bind(this));
this.video.bind("ended", function() {
this.playVideo.removeClass("video-paused-button")
}
.bind(this));
this.control.on("mouseenter", function() {
this.control.css("opacity", "1")
}
.bind(this));
this.control.on("mouseleave", function() {
this.control.css("opacity", "0")
}
.bind(this));
$.browser.device != $.browser.DEVICE_PC && (this.control.bind(_event._down, function() {
this.control.css("opacity", "1")
}
.bind(this)),
this.control.bind(_event._up, function() {
(function() {
this.control.css("opacity", "0")
}
).delay(this, 3E3)
}
.bind(this)))
},
setCss: function() {
this.canvasDiv.css({
position: "absolute",
width: "80px",
height: "80px",
margin: "auto",
top: "0",
bottom: "0",
left: "0",
right: "0",
transform: "rotate(270deg)",
"-webkit-transform": "rotate(270deg)",
"-ms-transform": "rotate(270deg)",
"-o-transform": "rotate(270deg)",
"-moz-transform": "rotate(270deg)"
});
this.control.css({
position: "absolute",
width: this.width + "px",
opacity: "1",
height: this.height + "px"
});
this.content.css({
position: "absolute",
left: this.x + "px",
top: this.y + "px",
width: this.width + "px",
height: this.height + "px",
"background-color": "black"
});
this.setRotation(this.content, this.config.rotation);
this.video.css({
position: "absolute",
"z-index": 1,
left: "0px",
top: "0px",
width: "100%",
height: "100%",
opacity: this.config.alpha
})
},
play: function() {
this.player.play()
},
pause: function() {
this.player.pause()
},
stop: function() {
this.pause();
this.player.currentTime = 0
}
}).extend("Item");
Class("WindowHtml", {
Package: "PageItem",
create: function(b, c) {
this.parent = b;
this.config = c;
this.frameWidth = parseInt(this.config.windowWidth);
this.frameHeight = parseInt(this.config.windowHeight);
var d = this.config.windowURL;
d.endWith(".doc") ? d = this.fixRelativePath(d) : "http://" != d.substr(0, 7) && "https://" != d.substr(0, 8) && (d = d.startWith("http:\\") ? "http://" + d.substr(6, d.length) : "http://" + d);
this.background = $("");
this.frameBorder = $("");
this.htmlFrame = $("");
this.closeButton = $("
");
this.parent.append(this.background);
this.background.append(this.frameBorder);
this.frameBorder.append(this.closeButton);
this.frameBorder.append(this.htmlFrame);
this.setCss();
this.initEvent();
this.onResize();
this.resizeTimer = this.onResize.interval(this, 500);
this.visible = !0
},
destroy: function() {
this.visible && (this.visible = !1,
this.htmlFrame.attr("src", ""),
this.background.empty(),
this.background.remove(),
this.resizeTimer && this.resizeTimer.stop())
},
initEvent: function() {
this.background.bind(_event._down, function(b) {
this.destroy();
b.stopPropagation()
}
.bind(this));
this.closeButton.asButton();
this.closeButton.bind(_event._end, function(b) {
this.destroy();
b.stopPropagation()
}
.bind(this));
this.frameBorder.bind(_event._down, function(b) {
b.stopPropagation();
return !1
}
.bind(this))
},
setCss: function() {
this.background.css({
position: "absolute",
width: "100%",
height: "100%",
"background-color": "rgba(0,0,0,0.5)",
"z-index": "100"
});
this.frameBorder.css({
position: "absolute",
"z-index": "11",
"background-color": "#F0F0F0",
"border-radius": "3px",
margin: "auto",
left: "0",
top: "0",
bottom: "0",
right: "0"
});
this.htmlFrame.css({
"background-color": "#F0F0F0",
position: "relative",
"margin-left": "5px",
"margin-top": "32px"
});
this.closeButton.css({
position: "absolute",
"z-index": "1",
width: "32px",
height: "32px",
cursor: "pointer",
right: "5px",
top: "0px"
})
},
onResize: function() {
if (this.windowWidth != windowWidth || this.windowHeight != windowHeight) {
this.windowWidth = windowWidth;
this.windowHeight = windowHeight;
var b = windowWidth - 10
, c = windowHeight - 10;
isPhone() || (b = Math.min(this.frameWidth + 10, b),
c = Math.min(this.frameHeight + 37, c));
this.frameBorder.css({
width: b + "px",
height: c + "px"
});
c -= 37;
this.htmlFrame.attr("width", b - 10 + "px");
this.htmlFrame.attr("height", c + "px")
}
}
}).extend(PageItem.Item);
Class("RollerText", {
Package: "PageItem",
create: function(b, c, d, f) {
this._super(b, c, d, f);
this.bgColor = Color(this.config.bgcolor).toString();
this.originWidth = this.config.pageW;
this.originHeight = this.config.pageH;
this.initText();
this.initEvents();
parseBool(this.config.reflection) && this.imageReflection(this.rollerText);
this.onResize(this.pageWidth, this.pageHeight)
},
initText: function() {
this.textli = "";
this.rollerText = $("");
this.textDown = $("
")),
this.tmpContent.append(this.loadingImage))
},
addAttachment: function() {
this.attachment = !0;
this.slider = null;
this.playSliderAfterLoad = !1;
this.MMBackground = $("");
this.searchHighlight = $("");
this.addCoil();
this.initMMItems();
this.tmpContent.append(this.MMBackground)
},
hideMiddleAttachment: function() {
this.rendering && this.rendering.hideMiddleShadow()
},
addCoil: function() {
parseBool(bookConfig.addPaperCoil) && (this.midCoil = $(""),
this.side.append(this.midCoil))
},
mirrorSide: function() {
this.isMirrorSide = !0;
this.loadingImage && this.loadingImage.remove()
},
setZIndex: function(b) {
this.zIndex = b;
this.side.css("z-index", b)
},
getZIndex: function() {
return this.zIndex
},
setCSSByStyle: function(b) {
this.side.css(b)
},
setCSSByName: function(b) {
this.side.attr("class", b)
},
wrap: function(b) {
this.side.wrap(b)
},
unwrap: function() {
this.side.unwrap()
},
remove: function() {
this.sideImage && this.sideImage.css({
"background-image": ""
});
this.side.remove();
this.side = void 0
},
getSide: function() {
return this.side
},
setLeftOrRight: function(b) {
this.isLeft = b;
this.setAttachment(b);
b ? this.setCSSByName("left-side") : this.setCSSByName("right-side")
},
renderPage: function(b) {
this.rendering && (this.rendering.destroy(),
this.rendering = null);
this.rendering = new PageRendering(this.side,this.pageIndex,b,this.bookType);
this.rendering.onResize(this.width, this.height);
this.rendering.render()
},
centerPage: function() {
this.isLeft = !1;
this.setAttachment(this.isLeft);
this.setCSSByName("center-side")
},
setAttachment: function(b) {
this.attachment && (this.renderPage(b),
this.midCoil && (b ? this.midCoil.attr("class", "leftPaperCoil") : this.midCoil.attr("class", "rightPaperCoil")))
},
fillContent: function() {
this.fillPage(this.pageIndex)
},
loaded: function(b) {
b && (this.fullContent = !0,
this.loadingInterval && this.loadingInterval.stop(),
this.loadingImage && this.loadingImage.remove(),
this.sideImage ? this.sideImage.css({
"background-image": "url(" + b + ")"
}) : (this.sideImage = $(""),
this.sideImage.css({
"background-image": "url(" + b + ")"
}),
this.sideImage.css({
filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + b + "',sizingMethod='scale')"
}),
this.resizeSideImage(),
this.tmpContent.append(this.sideImage),
this.attachment && (this.tmpContent.append(this.searchHighlight),
this.searchHighlight.css({
opacity: 0.8
}),
this.clearMM(),
this.initMM(),
this.initSlider())),
Log.print("loaded:" + b))
},
fillImageOrNot: function(b, c) {
return !b || "string" != typeof b || b == this.imageURL && !c || passwardType() && bookConfig.excludeFrontPages && this.pageIndex > parseInt(bookConfig.excludeFrontPages) && !verifyPassward() ? !1 : !0
},
fillPage: function(b, c) {
if ((!this.isMirrorSide || bookConfig.showMirrorSide) && b == this.pageIndex) {
var d = getPageDir(this.pageIndex, "normal", originTotalPageCount);
if (this.fillImageOrNot(d, c)) {
this.fullContent = !1;
this.imageURL = d;
var f = this;
-1 < d.indexOf(".js") ? global[decodeDatabasePrefix("normal") + b] && "string" == typeof global[decodeDatabasePrefix("normal") + b] ? (imageLoaded[b] = !0,
this.loaded(dataBase64Str(b, "normal"))) : loadJavascript(d, function(c) {
imageLoaded[b] = !0;
f.loaded(dataBase64Str(b, "normal", c));
f = null
}, function() {}) : $("" + getLanguage("lblLogin", "Login") + "
"); this.cancleIn = $("" + getLanguage("lblCancel", "Cancel") + "
"); this.passwardResult = $(""); this.view.append(this.icon); 2 == passwardType() && (this.view.css("height", "390px"), this.view.append(this.username)); this.view.append(this.passward); this.view.append(this.loginIn); this.view.append(this.cancleIn); this.view.append(this.passwardResult); $("body").append(this.background); $("body").append(this.view); this.icon.addCssSprite(phoneIconsURL[0], "passward", 100, 100, phoneIconInfo) }, initPrompt: function() { if (bookConfig.passwardPrompt) { this.prompt = $(""); this.arrow = $(""); this.prompt.html(bookConfig.passwardPrompt); this.view.append(this.prompt); this.view.append(this.arrow); this.prompt.width(); var b = this.prompt.height() , c = this.passward.width(); this.passward.height(); c += 58; b = this.arrow.top() - (b + 15) / 2; this.prompt.css({ left: c + "px", top: (0 < b ? b : 0) + "px" }) } }, initEvent: function() { this.background.bind(_event._down, function(b) { b.stopPropagation() }); this.background.bind(_event._move, function(b) { b.stopPropagation() }); this.background.bind(_event._end, function(b) { b.stopPropagation() }); this.cancleIn.bind(_event._end, function() { this.hide() } .bind(this)); this.loginIn.bind(_event._end, function() { this.login() } .bind(this)); this.prompt && (this.passward.bind(_event._enter, function() { this.prompt.show(); this.arrow.show() } .bind(this)), this.passward.bind(_event._leave, function() { this.passward.is(":focus") ? (this.prompt.show(), this.arrow.show()) : (this.prompt.hide(), this.arrow.hide()) } .bind(this)), this.passward.bind("focus", function() { this.prompt.show(); this.arrow.show() } .bind(this)), this.passward.bind("blur", function() { this.prompt.hide(); this.arrow.hide() } .bind(this))) }, login: function() { verifyPassward() ? (this.hide(), fillCurrentPageContent()) : this.showResult() }, hide: function() { this.background.hide(); this.view.hide() }, showResult: function() { document.getElementById("username") && !this.username.val() ? this.passwardResult.html(getLanguage("lblNoName", "User name can not be empty.")) : this.passward.val() ? this.passwardResult.html(getLanguage("lblNoCorrectLogin", "Please enter the correct user name and password.")) : this.passwardResult.html(getLanguage("lblNoPassword", "Password can not be empty.")) } }, getLogoLink = function() { var b = bookConfig.appLogoLinkURL , c = getString("appLogoOpenWindow", "_blank"); if ("_Self" == c || "Self" == c || "self" == c) c = "_self"; void 0 == b || "" == b ? (b = "javascript:void(0);", c = "_self") : "http" != b.substr(0, 4) && (b = "http://" + b); return [b, c] }, initLogoBar = function(b) { if (bookConfig.appLogoIcon) { var c = $("#logoBar"); b = c.height(); var d = bookConfig.logoHeight , f = bookConfig.logoPadding , g = parseInt((b - d) / 2) , h = getLogoLink() , k = $("" + getShownPageNumber(this.index) + "
"); this.loading() }, loading: function() { this.image.css({ "background-color": "#ffffff", "background-image": "url(" + uiBaseURL + "loading.gif)", "background-repeat": "no-repeat", "background-position": "center" }) }, unLoading: function() { this.image.css({ "background-image": "" }) }, setStyle: function(b) { this.item.css(b) }, addClass: function(b) { this.item.addClass(b) }, removeClass: function(b) { this.item.removeClass(b) }, initEvent: function() { this.item.onTap(function() { gotoPageFun(this.index) } .bind(this)) }, fillContent: function() { var b = function(b) { this.image.attr("src", b); this.image.css({ width: this.imageWidth + "px", height: this.imageHeight + "px" }); this.unLoading() } .bind(this); this.analysis = new AnalysisThumbnail(this.index,b) }, getDom: function() { return this.item }, fission: function() { this.title.show(); this.item.addClass("focus") }, merge: function() { this.title.hide(); this.item.removeClass("focus") }, setHighLight: function(b) { this.index == b && this.item.addClass("highlight") }, clearHighLight: function() { this.item.removeClass("highlight") } }); var ThumbnailItem = Class({ create: function(b, c) { this.parent = b; this.margin = c.margin; this.index = c.index; this.parm = c; this.cells = []; this.initHtml(); this.onResize() }, onResize: function() { for (var b = this.length = 0; b < this.cells.length; b++) this.length += this.cells[b].length; this.item.css({ width: this.length + "px" }) }, initHtml: function() { this.item = $(""); this.initStructure(); this.addItem(); this.item.append(this.title); this.parent.append(this.item) }, initStructure: function() { this.initCells(); for (var b = getShownPageNumber(this.cells[0].index), c = 1; c < this.cells.length; c++) b = b + "-" + getShownPageNumber(this.cells[c].index); this.title = $("" + b + "
") }, addItem: function() { for (var b = this.cells.length, c = 0; c < b; c++) this.item.append(this.cells[c].getDom()) }, fillContent: function() { for (var b = this.cells.length, c = 0; c < b; c++) this.cells[c].fillContent(0) }, initCells: function() { if (1 == this.index || this.index == totalPageCount) { var b = new ThumbnailCell(this.item,this.parm); this.cells.push(b) } else { var b = new ThumbnailCell(this.item,this.parm) , c = new ThumbnailCell(this.item,{ index: this.parm.index + 1, imageWidth: this.parm.imageWidth, imageHeight: this.parm.imageHeight, margin: this.parm.margin }); rightToLeft ? (this.cells.push(c), this.cells.push(b)) : (this.cells.push(b), this.cells.push(c)) } }, setPosition: function(b, c) { this.item.css(c, b + "px") }, fission: function() { this.item.removeClass("focus"); 1 == this.cells.length ? (rightToLeft ? (1 == this.cells[0].index && this.cells[0].setStyle({ right: "3px", left: "auto" }), this.cells[0].index == totalPageCount && this.cells[0].setStyle({ left: "3px", right: "auto" })) : (1 == this.cells[0].index && this.cells[0].setStyle({ right: "-3px", left: "auto" }), this.cells[0].index == totalPageCount && this.cells[0].setStyle({ left: "-3px", right: "auto" })), this.cells[0].fission(), this.title.hide()) : (this.item.removeClass("focus"), this.title.hide(), this.cells[0].fission(), this.cells[1].fission(), this.cells[0].setStyle({ left: "-3px", right: "auto" }), this.cells[1].setStyle({ right: "-3px", left: "auto" }), this.cells[0].removeClass("left"), this.cells[1].removeClass("right")) }, merge: function() { 1 == this.cells.length ? (this.title.show(), this.cells[0] && this.cells[0].setStyle({ left: "0", right: "0" })) : (this.item.addClass("focus"), this.title.show(), this.cells[0].merge(), this.cells[1].merge(), this.cells[0].setStyle({ left: "0", right: "auto" }), this.cells[1].setStyle({ right: "0", left: "auto" }), this.cells[0].addClass("left"), this.cells[1].addClass("right")) }, setHighLight: function(b) { for (var c = 0; c < this.cells.length; c++) this.cells[c].setHighLight(b); this.item.addClass("highlight") }, clearHighLight: function() { this.item.removeClass("highlight"); for (var b = 0; b < this.cells.length; b++) this.cells[b].clearHighLight() } }); var ThumbnailFrame = Class({ create: function(b) { this._super(b); this.direction = rightToLeft ? Direction.right : Direction.left; this.leftButtonUrl = uiBaseURL + "prev_page.png"; this.rightButtonUrl = uiBaseURL + "next_page.png"; this.itemArray = []; this.taskList = new TaskList; this.initDefaultDom(); this.initHtml(); this.initEvent(); this.refresh(); this.initCss(); this.hide() }, initHtml: virtual_function, initCss: function() { rightToLeft && this.stage.addClass("rightToLeft"); this.stage.css({ "background-color": this.mainColor, color: this.fontColor }); this.close.css({ "background-color": this.mainColor }) }, initDefaultDom: function() { this.close = $(""); this.close.click(this.hide.bind(this)); this.initSwiper() }, initSwiper: function() { this.thumbnailSwiper = $(""); this.thumbnailSwiperList = $(""); this.progress = $(""); this.progressBar = $(""); this.refreshSwiper(this.thumbnailSwiperList); this.thumbnailSwiper.append(this.thumbnailSwiperList); this.thumbnailSwiper.append(this.progress); this.progress.append(this.progressBar) }, initEvent: function() { this.stage.bind("mousedown touchstart", function(b) { b.stopPropagation() }); if (this.leftBtn) this.leftBtn.onTap(function() { this.stage.move(-170) } .bind(this)); if (this.rightBtn) this.rightBtn.onTap(function() { this.stage.move(170) } .bind(this)); rightToLeft ? this.thumbnailSwiper.scroll({}, Direction.right, "win10") : this.thumbnailSwiper.scroll({}, Direction.left, "win10") }, onResize: function() { if (this.thumbnailSwiperList.width() < windowWidth - 40) { var b = this.thumbnailSwiperList.width(); this.thumbnailSwiper.css({ width: b + "px", margin: "20px " + (windowWidth - b) / 2 + "px" }); this.height = 220 } else this.thumbnailSwiper.css({ width: "auto", margin: "20px" }), this.height = 254; this.refresh(); this.stage.css({ top: (windowHeight - this.height) / 2 + "px", height: this.height + "px" }); this.taskList.setLargeLength(5) }, refresh: function() { this.thumbnailSwiper.refreshData() }, refreshSwiper: function(b) { this.length = 0; for (var c = parseInt(totalPageCount / 2), d = 0; d <= c; d++) { var f = 2 * d; 0 == f && (f = 1); f > bookConfig.totalPageCount || this.addItem(b, f) } b.css("width", this.length + "px") }, mergeAll: function() { for (var b = 0; b < this.itemArray.length; b++) this.itemArray[b].merge() }, fissionAll: function() { for (var b = 0; b < this.itemArray.length; b++) this.itemArray[b].fission() }, addItem: function(b, c) { var d = { index: c, margin: 12, imageHeight: 170 }; d.imageWidth = parseInt(bookConfig.largePageWidth * d.imageHeight / bookConfig.largePageHeight); d.length = d.imageWidth; d = new ThumbnailItem(b,d); d.setPosition(this.length, this.direction); this.length += d.length; this.length += d.margin; this.itemArray.push(d) }, clearHighLight: function() { $(".highlight").removeClass("highlight") }, setHighLight: function(b) { $(".highlight").removeClass("highlight"); var c = parseInt(b / 2); this.itemArray[c].setHighLight(b) }, getShowStatu: function() { return this.visible }, getHeight: function() { return this.getTopHeight() + this.getBottomHeight() }, getTopHeight: function() { return 0 }, getBottomHeight: function() { return 0 }, showOrHide: function() { this.visible ? this.hide() : this.show() }, fillImage: function(b) { this.itemArray && this.itemArray[b] && !this.itemArray[b].fill && (this.LoadCount++, this.itemArray[b].fillContent(), this.itemArray[b].fill = !0) }, fillContent: function() { if (this.interval && !this.interval.isRunning()) this.interval.start(); else { var b = 0 , c = 0 , d = 0 , c = 0; this.interval = function() { this.LoadCount = 0; if (this.direction == Direction.right || this.direction == Direction.left) b = this.thumbnailSwiper.width(), c = 2 * this.itemArray[0].length + this.itemArray[0].margin, this.direction == Direction.left && (d = parseInt(this.thumbnailSwiperList.css("left"))), this.direction == Direction.right && (d = parseInt(this.thumbnailSwiperList.css("right"))); if (this.direction == Direction.top || this.direction == Direction.bottom) b = this.thumbnailSwiper.height(), c = 2 * this.itemArray[0].length + this.itemArray[0].margin, this.direction == Direction.top && (d = parseInt(this.thumbnailSwiperList.css("top"))), this.direction == Direction.bottom && (d = parseInt(this.thumbnailSwiperList.css("bottom"))); for (var f = parseInt(b / c) + 2, g = parseInt(-d / c), f = Math.min(g + f, this.itemArray.length), g = Math.max(0, g); g <= f && !(1 <= this.LoadCount); g++) this.taskList.unShiftList({ index: g }, function(b) { this.fillImage(b.index) } .bind(this)) } .interval(this, 60) } }, show: function() { this.setHighLight(BookInfo.getCurrentPageIndex()); this.visible = !0; this.stage.show(); this.refresh(); this.fillContent() }, hide: function() { this.visible = !1; this.stage.hide(); this.interval && this.interval.stop() } }).extend(FormFrame); var ThumbnailForm = Class({ create: function(b) { this.height = 274; this._super(b) }, initHtml: function() { this.stage = $(""); this.stage.append(this.close); this.stage.append(this.thumbnailSwiper); this.parent.append(this.stage) } }).extend(ThumbnailFrame); var toolbar_icons = { First: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpERjU3M0NFNDJEMUUxMUU2OTNGREY0QkU2N0Y1QTAzNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpERjU3M0NFNTJEMUUxMUU2OTNGREY0QkU2N0Y1QTAzNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkRGNTczQ0UyMkQxRTExRTY5M0ZERjRCRTY3RjVBMDM3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRGNTczQ0UzMkQxRTExRTY5M0ZERjRCRTY3RjVBMDM3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+QU3iOQAAAFhJREFUeNrs1UsKACAIBNDm/oc2OoC/kaFFuQvlEWEKM1uKwIc9+BwQ1Gd5Ci6jHbiFVuE2WoEpNINpNIJHqAePvCs3lr6xtCukfSz9edJZMZ5uD2+QLcAAxz5e1TZlSx4AAAAASUVORK5CYII=", prev: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQUYwMDBFNjJEMUUxMUU2ODVCMUMzMzE4RTA1MDc1RCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQUYwMDBFNzJEMUUxMUU2ODVCMUMzMzE4RTA1MDc1RCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZBRjAwMEU0MkQxRTExRTY4NUIxQzMzMThFMDUwNzVEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZBRjAwMEU1MkQxRTExRTY4NUIxQzMzMThFMDUwNzVEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ujeirwAAAFZJREFUeNrs1dsJACAMQ1Gz/9AVB1D78CKI/ZaDSExlZo0YfTgLj8M6DbvRCBxCvXAY9cApdAen0RVcQmdwJdi6cmP0jdFUoDlGfx7aFWi7Pb5BugADABZuUNVXsdtSAAAAAElFTkSuQmCC", next: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMTg1NDdEMzJEMUYxMUU2QkQxMkQ2ODY5Q0RFMDJDNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMTg1NDdENDJEMUYxMUU2QkQxMkQ2ODY5Q0RFMDJDNCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAxODU0N0QxMkQxRjExRTZCRDEyRDY4NjlDREUwMkM0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAxODU0N0QyMkQxRjExRTZCRDEyRDY4NjlDREUwMkM0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7xaTcQAAAFhJREFUeNpi/P//PwMtAOOoweQaDFLMSCsXE2U4uUFB0HBKwhiv4ZRGHk7DqZEqsBpOreSGYTg2gymxiXFAXDwowpgmqYIm6ZgmOY8mZQVNS7dhWoMABBgAxlBQ1XF3Fc0AAAAASUVORK5CYII=", Last: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGMTBCNUI4MDJEMUUxMUU2OTU4RDgyQjhBNkMyRTg2QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGMTBCNUI4MTJEMUUxMUU2OTU4RDgyQjhBNkMyRTg2QSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkYxMEI1QjdFMkQxRTExRTY5NThEODJCOEE2QzJFODZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkYxMEI1QjdGMkQxRTExRTY5NThEODJCOEE2QzJFODZBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8+y/TwAAAFdJREFUeNpi/P//PwMtAOOoweQYDFLISKw8qS7GZzhFBuMznGKDcRlOFYOxGU41g9ENo6rByAbiNZhSW+jv4kERxjRJFTRJxzTJeTQpK2haug3jGgQgwABnAl7VYn19sgAAAABJRU5ErkJggg==", home: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MkIwOEE5MTJEMUUxMUU2OEYzQzkwMURDQUQwRDZDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MkIwOEE5MjJEMUUxMUU2OEYzQzkwMURDQUQwRDZDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQyQjA4QThGMkQxRTExRTY4RjNDOTAxRENBRDBENkMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQyQjA4QTkwMkQxRTExRTY4RjNDOTAxRENBRDBENkMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/ckONAAAAFxJREFUeNrs1UEKACAIBMD8/6O3UxDhmkZ1KD2vAymYACgnSp6GW1B2wuhAeHAPrEFTfAZbgIlbsOfJNMNgeJfEshocQWnPCK+gau/VUSScMIdD5/evHyRUVYABAG2vX9WFvbfUAAAAAElFTkSuQmCC", ZoomIn: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBRTgwMTREMDJEMUUxMUU2QjZFQjk0NjU5RkZDN0I3NSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBRTgwMTREMTJEMUUxMUU2QjZFQjk0NjU5RkZDN0I3NSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFFODAxNENFMkQxRTExRTZCNkVCOTQ2NTlGRkM3Qjc1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkFFODAxNENGMkQxRTExRTZCNkVCOTQ2NTlGRkM3Qjc1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uSUu1AAAAPlJREFUeNrslU0OgjAQhSGBG5i4UE8CnsJu1GOoN8EVezmHcBWaSOLWhav6GocEx1ZaAwsTm3yBTIfH0PkhVEoFY6zw54QDLWwhBQWowZ2uBdmDPkzGCBzVc5XgALZgDyqy6/3YVzgHNyAsDwnaz32EE4pI9HyqIL/E5sOTdwILsOSp0IlmtgrUYO2SvAudKbcrg037SVvEEXvPFEgWKb9vI9d+E1u1ceEGzLp1/uEotN/VtUEKMB/jjFPHqliRX+pTx5ljHWe+DRJ3Ou8MdmBD17LTecpXmM8KSbNCGmaFcm2Qr+aYIbGDjc038SHn8Yt4+P81teshwACgrasoC0+UiwAAAABJRU5ErkJggg==", ZoomOut: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDNURBMzREOTJEMUUxMUU2ODM2RTg1MjJCRTE3RDE0OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDNURBMzREQTJEMUUxMUU2ODM2RTg1MjJCRTE3RDE0OCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM1REEzNEQ3MkQxRTExRTY4MzZFODUyMkJFMTdEMTQ4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM1REEzNEQ4MkQxRTExRTY4MzZFODUyMkJFMTdEMTQ4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+n5CANwAAAPJJREFUeNrslUEKwjAQRVNobyC4UE/SegqzUY+h3qSuurfnsL1KAxbcunAVf3CEGhM6kXYhOPAITKY/TTIzibTWYgyLfk5YGGEPGShBA+40luQXfbicMTjqp1XgALZgD2rym/kkVLgANyA9H0maL0KEU/oj2bNVSXGpL8a+vBNYgCXjemrQgDXn8i50poKBiVO++dhaZwpUd11XitJo4ia+7djCLZg5RFxm4q7cAinBfIwzzphZsaK4LCSPc2Ye56EFknQq7wx2YENj1ak8HSps9wpFvUI5eoXmFshXfcyVPUO1zQ/xIfvxm3j0f5pe9hBgANt+piojz5sZAAAAAElFTkSuQmCC", search: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozMUZEQ0Q1RTJEMjAxMUU2OUNDMUE4NzJFRkY0RTZFNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozMUZEQ0Q1RjJEMjAxMUU2OUNDMUE4NzJFRkY0RTZFNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjMxRkRDRDVDMkQyMDExRTY5Q0MxQTg3MkVGRjRFNkU3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjMxRkRDRDVEMkQyMDExRTY5Q0MxQTg3MkVGRjRFNkU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+xicDVQAAAOxJREFUeNrslU0KwjAQhROxNxBcqCdpPIXZqMdQb1JX3dtz2F6lAQW3LlzFFxyhxoZOxC4EAx+Bmelrm/mJtNaKPpb8OWHhhAMoUIAa3GgvyC66aDMOwd4+Vgl2YA22oCK78yexwjm4Ah14SJM/jxFO6Yt0x69qiktDMX7yDmAG5oz0VKAGS07yTnSmgoGLMyH/wHvPGBhmQbm4UcjpC5/BhCns4i7cBinAtI8zVsyqWFCciqnjjFnHWWyDJI3OO4INWNFeNjrPxgr7s8LQrDAts8JyG+SjOeaKoK+x+Sb+zXn8Ii7/V9Nz3QUYAGDopSU9n2BfAAAAAElFTkSuQmCC", thumbnails: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1MDM4MkRFODJEMUUxMUU2ODFCNjg0OTQ2M0UzQkUwRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1MDM4MkRFOTJEMUUxMUU2ODFCNjg0OTQ2M0UzQkUwRCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjUwMzgyREU2MkQxRTExRTY4MUI2ODQ5NDYzRTNCRTBEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjUwMzgyREU3MkQxRTExRTY4MUI2ODQ5NDYzRTNCRTBEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8T/UOAAAADxJREFUeNpi/P//PwMtAOOQNxifLYwkqMFqMCMWDf/RDCakZtTgATKYJqliNIOMJrfRDDKsMgjVAECAAQBz4nHVAyiVvAAAAABJRU5ErkJggg==", tableOfContent: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5RTZEOUU2MjJEMUUxMUU2ODQ1OUEyMkYwMDk0OTFERCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5RTZEOUU2MzJEMUUxMUU2ODQ1OUEyMkYwMDk0OTFERCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjlFNkQ5RTYwMkQxRTExRTY4NDU5QTIyRjAwOTQ5MUREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjlFNkQ5RTYxMkQxRTExRTY4NDU5QTIyRjAwOTQ5MUREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9lTaFQAAADVJREFUeNpi/P//PwMtAOOowfgMRhZgROMTNI+QwYxI9OB38WiqGE0Vo6liNFWMpgqcACDAALsfU9Um3vUiAAAAAElFTkSuQmCC", bookmark: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4RUI5NzVGNDJEMUUxMUU2OEM5RUE4MEJENjVGQUI4QSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4RUI5NzVGNTJEMUUxMUU2OEM5RUE4MEJENjVGQUI4QSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjhFQjk3NUYyMkQxRTExRTY4QzlFQTgwQkQ2NUZBQjhBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjhFQjk3NUYzMkQxRTExRTY4QzlFQTgwQkQ2NUZBQjhBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+45Jc6AAAAENJREFUeNpi/P//PwMtAOOwM5gYWxnJNZiRHPlRg0cNHjWYigYT4pNlMIyNTYxsg3G5lCKDcZVg/wdl6TaCqiaAAAMARFNl1bE1kyUAAAAASUVORK5CYII=", autoPlay: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozQUU4QUMzMTJEMUYxMUU2QkExQkJCNDRFNkFBMzQ1OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozQUU4QUMzMjJEMUYxMUU2QkExQkJCNDRFNkFBMzQ1OCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNBRThBQzJGMkQxRjExRTZCQTFCQkI0NEU2QUEzNDU4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNBRThBQzMwMkQxRjExRTZCQTFCQkI0NEU2QUEzNDU4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+XQxvvgAAAFlJREFUeNpi/P//PwMtAOOQN5hcWxiJMZiRRENhelD0DqjBhCyjyGAGPIZT7GJcLqdKUBBt8aAwmCZBQdPIGzoZhGoGk1sI4TWYEkDQYEpsoomLh3jVBBBgACmZdtXIZxajAAAAAElFTkSuQmCC", stopAutoPlay: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1RjRCQTBDNTJEMUYxMUU2QTM2MUQxQzlEODdBMzRDOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1RjRCQTBDNjJEMUYxMUU2QTM2MUQxQzlEODdBMzRDOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjVGNEJBMEMzMkQxRjExRTZBMzYxRDFDOUQ4N0EzNEM4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjVGNEJBMEM0MkQxRjExRTZBMzYxRDFDOUQ4N0EzNEM4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+R8Rh2gAAAFBJREFUeNpi/P//PwMtAOOQN5hcWxiJMZiRRENhelD0DojB/7F4FZcYyQYzkik2avBwNpgmyW3o5DxyCyG8BlMCCBpMiU2MdC/oB7/BAAEGAAUuhtXyTfwDAAAAAElFTkSuQmCC", soundOn: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3QTYzMjRGMzJEMUYxMUU2OTc5QUI0RThBMDg4ODA5MyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3QTYzMjRGNDJEMUYxMUU2OTc5QUI0RThBMDg4ODA5MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdBNjMyNEYxMkQxRjExRTY5NzlBQjRFOEEwODg4MDkzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdBNjMyNEYyMkQxRjExRTY5NzlBQjRFOEEwODg4MDkzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5ap5LAAAAFtJREFUeNrk1cEKABAQBFDz/x89LpS0Ec1IOCovmd0Fksmx8A1cD0EJs4BUwi0mg3tIAkfIFtxuQg1jEtQwRAUc3v5qePkpLOHZyu1Yg1hb2jqErGPz0a8pCzAAdapt1bJjvpkAAAAASUVORK5CYII=", soundOff: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4Nzg4MEQ2ODJEMUYxMUU2ODM2MzkwNDkxMDRENkY4OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4Nzg4MEQ2OTJEMUYxMUU2ODM2MzkwNDkxMDRENkY4OSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjg3ODgwRDY2MkQxRjExRTY4MzYzOTA0OTEwNEQ2Rjg5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjg3ODgwRDY3MkQxRjExRTY4MzYzOTA0OTEwNEQ2Rjg5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vitmewAAAFJJREFUeNpi/P//PwMtAOOIMhimkZGaBv+HGvifmgYjG0Y1g9ENoorB2Awhy2BkCUZqG8xIIKJGDR6kkUez5Ea3DELTLE3TQoimxeYwrJoAAgwA7spp1dPtm78AAAAASUVORK5CYII=", annotation: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEMUJBNjM4RDJEMUUxMUU2ODU0RDkzQUE5Q0ZDRUM1MiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEMUJBNjM4RTJEMUUxMUU2ODU0RDkzQUE5Q0ZDRUM1MiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQxQkE2MzhCMkQxRTExRTY4NTREOTNBQTlDRkNFQzUyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQxQkE2MzhDMkQxRTExRTY4NTREOTNBQTlDRkNFQzUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SqJ80QAAAE9JREFUeNpi/P//PwMtAOOwMxgkyUiGHFaDYQKMSJrRFWGTYyTGYEYSXfyfVIOJBf/JcTHeOBp0Lh4NitGgGA0KHKUbyUXw8K5ByAYAAQYAtO1p1a4vfrMAAAAASUVORK5CYII=", videoGallery: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozMUQ5NUI0QjJEMUYxMUU2QURDNkZGQUY5NTM3NzYxMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozMUQ5NUI0QzJEMUYxMUU2QURDNkZGQUY5NTM3NzYxMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjMxRDk1QjQ5MkQxRjExRTZBREM2RkZBRjk1Mzc3NjEwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjMxRDk1QjRBMkQxRjExRTZBREM2RkZBRjk1Mzc3NjEwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+I8puSAAAAEFJREFUeNpi/P//PwMtAOOwMJgSmxgJGcyIhY0N4FRLd4Oxeg+HwaNBMYiDgti0O5oqRoOCCkFBtWJzhFZNAAEGACfqctVWzBXCAAAAAElFTkSuQmCC", photoGallery: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNkE0QjE1QTJEMUYxMUU2OEFBNjhGNEM3NjdBOTI2NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNkE0QjE1QjJEMUYxMUU2OEFBNjhGNEM3NjdBOTI2NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI2QTRCMTU4MkQxRjExRTY4QUE2OEY0Qzc2N0E5MjY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI2QTRCMTU5MkQxRjExRTY4QUE2OEY0Qzc2N0E5MjY2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+kVE5nQAAARtJREFUeNpi/P//PwMtAOOQNphaNjBiM5iRQkP/09xgBpDBUPwfiQ3C7EA8CYj/AfE0IOZAk8eG4WYw4bG9G4jlgFgTiMWBuA+LGgEg/gal0dyO28Ugl2pD2epQPrqPDgDxOSDeB8SsyGbgM7gfiDdBDd8AxFOQ5EBxswKIVwMxCxCvA+KFxBrMBjUc5NLJUBfC5LqB+DBSuHMC8QliDcaFc4H4OhALoYmLUmJwIBA/BWIFQqkCmyDIJd+AWBBNkyUQvwJiI2KSG7ogNzSsTgPxQaRwVQXi50DsSWw6RhfcCcTzgZgJiJcD8SoglgDiO0CcTEoGQRfcBE0+sFQBSp/vgLiRyIiFG4xeVnAB8XdaFEI0KTZHeNUEEGAA9KLySyOzbLUAAAAASUVORK5CYII=", sharethis: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2QUJCNThDNDJEMUYxMUU2OEQ2OEZFREQ1RTg1QjBEMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2QUJCNThDNTJEMUYxMUU2OEQ2OEZFREQ1RTg1QjBEMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZBQkI1OEMyMkQxRjExRTY4RDY4RkVERDVFODVCMEQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZBQkI1OEMzMkQxRjExRTY4RDY4RkVERDVFODVCMEQzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ilVfigAAAFZJREFUeNpi/P//PwMtAOOwNxikmJHaBiMrZKSWwTCXotMUGYxsCC42yQajaybEH7jIQxfEFRQMuCIUn8GMlIiPGky2wUSnllGDB9Zgksv2oV01AQQYAODmZ9WTKIRrAAAAAElFTkSuQmCC", print: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4MkE5RDIxRTJEMUUxMUU2OThBNjlBMEY3QTJFMjNGMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4MkE5RDIxRjJEMUUxMUU2OThBNjlBMEY3QTJFMjNGMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgyQTlEMjFDMkQxRTExRTY5OEE2OUEwRjdBMkUyM0YyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjgyQTlEMjFEMkQxRTExRTY5OEE2OUEwRjdBMkUyM0YyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jSnsOQAAAFBJREFUeNrslDESACAIw+z/Hx13B6WoC9oHpDkOENBuRKXA0UbVHMVui2ZgJaHUBbvrZoFlWC7Bow0TU6Jb4c6bzOURNE6Dv/Hrb/NYugADAOhJYNWbptguAAAAAElFTkSuQmCC", download: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5NDMzQ0M3NzJEMUYxMUU2OEM5MEI5QjMzREE1OEU4OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5NDMzQ0M3ODJEMUYxMUU2OEM5MEI5QjMzREE1OEU4OCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk0MzNDQzc1MkQxRjExRTY4QzkwQjlCMzNEQTU4RTg4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjk0MzNDQzc2MkQxRjExRTY4QzkwQjlCMzNEQTU4RTg4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pXs9agAAAE5JREFUeNpi/P//PwMtAOOwNxikmHHU4FGDaWMwukGE+CS5GFkzOpsFiP9SEhQwA9FpqoQxskLGQRV5RGvGp2/4GEx2MTxyahCiAUCAAQDyZlvVuep3RwAAAABJRU5ErkJggg==", fullscreen: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo5RTBFRkJEOTJEMUYxMUU2OUIxNEYyRDAwMUE3Q0U1RCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo5RTBFRkJEQTJEMUYxMUU2OUIxNEYyRDAwMUE3Q0U1RCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjlFMEVGQkQ3MkQxRjExRTY5QjE0RjJEMDAxQTdDRTVEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjlFMEVGQkQ4MkQxRjExRTY5QjE0RjJEMDAxQTdDRTVEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pRLasgAAADpJREFUeNpi/P//PwMtAOOQNxibLYw49OJVi81gRjId+X/UYKIMHk3HowaPZpCBMpgmxeYITscAAQYARI1V1Rr4ATQAAAAASUVORK5CYII=", exitFullscreen: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDOTA1ODlBNDJEMUYxMUU2OUY4NkRFRTAxRUZDNEU5QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDOTA1ODlBNTJEMUYxMUU2OUY4NkRFRTAxRUZDNEU5QiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkM5MDU4OUEyMkQxRjExRTY5Rjg2REVFMDFFRkM0RTlCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkM5MDU4OUEzMkQxRjExRTY5Rjg2REVFMDFFRkM0RTlCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+AwSzTwAAADhJREFUeNpi/P//PwMtAOOwMxgkyUiG3KjBuA3GZgs+g3GqZRxNx6MGD57kNlpW0N7gEZSOAQIMAESNVdWoMVaFAAAAAElFTkSuQmCC", languageChange: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzVFOUIxNEI0N0RCMTFFNkE4MTVBOTZFMTc1MkM0QzMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzVFOUIxNEM0N0RCMTFFNkE4MTVBOTZFMTc1MkM0QzMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NUU5QjE0OTQ3REIxMUU2QTgxNUE5NkUxNzUyQzRDMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NUU5QjE0QTQ3REIxMUU2QTgxNUE5NkUxNzUyQzRDMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pi9HFdEAAABhSURBVHja7JQxCgAgDAON+P8vx01K0QrWgoqZgsMNSSxIpgjlFKQwcBF+VybQ4PboEO/N+D0wRSEjP53bcDoT/8s74FbILwnvDSmdpqmg2B3FMtQCu6AWGBGrwNFzqwIMAL+JETGMZQEZAAAAAElFTkSuQmCC", about: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowODUyNjIwQjJEMjAxMUU2ODg0OEY2Q0REOUU1RjUzMyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowODUyNjIwQzJEMjAxMUU2ODg0OEY2Q0REOUU1RjUzMyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4NTI2MjA5MkQyMDExRTY4ODQ4RjZDREQ5RTVGNTMzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA4NTI2MjBBMkQyMDExRTY4ODQ4RjZDREQ5RTVGNTMzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VN60jgAAASpJREFUeNpi/P//PwMtAOOQM5gBZDAezAPEhUB8AIjf/oeAt1B+IVQeq158Lo4C4l4g5gbirUB8GIhfA7EoENsCsTcQfwXiYiBeRqyL64H4HxBPAWIRHGpEoPL/oOpR5LFpiIIqTiYQTDCcDFUfg89gUJi9AOKpRBoKwyCXvwFiAVwG5wDxJyAWxmHAfxziwlB9ObgibxcQPwfieDIS2EIglgRiNxCHCU1SG4jP40udeOTOAbEOjINusAgQvyIzS4CSojAug99C0yk5QBSqH6vBV4DYiEyDDYH4Kq4MQm6qEALij8ipAlc6nkLtdAzC0WTmvFhCWRq5rJhMoKyYjKuswFe6RQNxD7R02wLEJ6CxDkpSFkDsAy3dSoF4Cbnl8UFqlseDs2oCCDAA2CDpnrR8d3wAAAAASUVORK5CYII=", Help: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxQ0U2NzlERTJEMjAxMUU2OTUwOUE2NTMyMjBDREM5QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxQ0U2NzlERjJEMjAxMUU2OTUwOUE2NTMyMjBDREM5QyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFDRTY3OURDMkQyMDExRTY5NTA5QTY1MzIyMENEQzlDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFDRTY3OUREMkQyMDExRTY5NTA5QTY1MzIyMENEQzlDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+qrtSUAAAAUFJREFUeNpi/P//PwMtAOOQM5gBZDAezAPEhUB8AIjf/oeAt1B+IVQeq158Lo4C4l4g5gbirUB8GIhfA7EoENsCsTcQfwXiYiBeRqyL64H4HxBPAWIRHGpEoPL/oOpR5LFpiIIqTiYQTDCcDFUfg89gUJi9AOKpRBoKwyCXvwFiAVwG5wDxJyAWRhNHBw1o8sJQfTm4Im8XED8H4nj0qAAlTTx8EFgIxJJA7AbiMKFJagPxeWzpnYiUew6IdWAcdINFgPgVmVkClBSFYRwWNMm30HSKNS8hsRuxyItC9WM1+AoQG+ErAvDIGQLxVVwZBFeqIISFgPgjcqrAlY6nYNH8n5J0DMLRZOa8WEJZGrmsmEygrJiMq6zAV7pFA3EPtHTbAsQnoLEOSlIWQOwDLd1KgXgJueXxQWqWx4OzagIIMACQ/O+is8Mm6gAAAABJRU5ErkJggg==", moreBar: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFMTZBMThCNDJEMUYxMUU2QTEyMjg1OTdBMjFFOEU3RSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMTZBMThCNTJEMUYxMUU2QTEyMjg1OTdBMjFFOEU3RSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUxNkExOEIyMkQxRjExRTZBMTIyODU5N0EyMUU4RTdFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUxNkExOEIzMkQxRjExRTZBMTIyODU5N0EyMUU4RTdFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+HV/9zwAAACpJREFUeNpi/P//PwMtAOOowegGU9t0xtEwHjV4NLmNGjya3IZ5GAMEGAAjXkTV1frc0wAAAABJRU5ErkJggg==", backward: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODk5MTRGN0VEMzEwMTFFNkFFQjRFOUM5MDUxNzdCQzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODk5MTRGN0ZEMzEwMTFFNkFFQjRFOUM5MDUxNzdCQzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4OTkxNEY3Q0QzMTAxMUU2QUVCNEU5QzkwNTE3N0JDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4OTkxNEY3REQzMTAxMUU2QUVCNEU5QzkwNTE3N0JDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvNfbYAAAABhSURBVHja3NQBCgAgCANAJ/3/y4tekJMG1R5wiOJAMhzJMOUamA54oTgNS2gVltEK3EJ3cBtdGZvrK9+DCgxxYiqrgDixdLw2nsXd0fXSMp7i1S1dEY6u+K/o8f4qpgADAL1ZEi0d/sBxAAAAAElFTkSuQmCC", forward: "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTIyMzMxMkREMzEwMTFFNkI2NUE5QzQyQ0M1MEE1RDYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTIyMzMxMkVEMzEwMTFFNkI2NUE5QzQyQ0M1MEE1RDYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MjIzMzEyQkQzMTAxMUU2QjY1QTlDNDJDQzUwQTVENiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5MjIzMzEyQ0QzMTAxMUU2QjY1QTlDNDJDQzUwQTVENiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhlNMycAAABeSURBVHja5NXBEgAQCARQ+/8fnXGXstlLnPWYLGBmQzHQHl6TodpxCmdbEeKVHh/x6uG5+ItUbHEPZlZDFoZqx1D0OANTqYhgOsenwtLN84rLb8VNKprDH35NU4ABAOfCV9UOSf6RAAAAAElFTkSuQmCC" }; Class("ButtonQueue", { create: function(b) { this.leftBar = b.leftBar; this.pageBar = b.pageBar; this.rightBar = b.rightBar; this.edtNumber = b.edtNumber; this.extended = b.extended; this.buttonWidth = b.buttonWidth; this.buttons = b.buttons.clone(); this.buttons.each(function(b) { b.freedom(); b.$button.removeClass("left"); b.$button.removeClass("right"); b.hint = !0 }); this.pickButtons() }, pickButtons: function() { this.btnFirst = this.buttons.find("first").get(0); this.btnPrevious = this.buttons.find("previous").get(0); this.btnNext = this.buttons.find("next").get(0); this.btnLast = this.buttons.find("last").get(0); this.buttons.remove(this.btnFirst); this.buttons.remove(this.btnPrevious); this.buttons.remove(this.btnNext); this.buttons.remove(this.btnLast); this.pageButtonCount = 4; bookConfig.enablePageBack && (this.btnBackward = this.buttons.find("backward").get(0), this.btnForward = this.buttons.find("forward").get(0), this.buttons.remove(this.btnBackward), this.buttons.remove(this.btnForward), this.pageButtonCount = 6); this.buttonCount = this.buttons.length }, sort: virtual_function }); Class("PCButtonQueue", { sort: function() { for (var b = 2 * Math.floor(this.leftBar.width / this.buttonWidth), b = Number.between(b, 0, this.buttonCount), c = b / 2, d = [], f = 0; f < this.buttons.length; f++) { var g = this.buttons.get(f); f < b ? f < c ? (g.addTo(this.leftBar.body), g.$button.addClass("left")) : d.push(g) : (g.addTo(this.extended), g.hint = !1) } for (f = d.length - 1; 0 <= f; f--) g = d[f], g.addTo(this.rightBar.body), g.$button.addClass("right"); this.addPageButtons(this.leftBar.width) }, addPageButtons: function(b) { function c(b) { b.addTo(g); b.setPosition(h, l); h += k } function d() { h += p; 0 < f ? (m.css({ left: h + "px", top: n + "px", width: f + "px", display: "block" }), h += f) : m.css({ display: "none" }); h += p } var f = this.edtNumber.width , g = this.pageBar.body , h = b , k = this.buttonWidth , l = this.buttonTop , m = this.edtNumber.body , n = this.edtNumber.top , p = this.edtNumber.space; rightToLeft ? (bookConfig.enablePageBack && c(this.btnForward), c(this.btnLast), c(this.btnNext), d(), c(this.btnPrevious), c(this.btnFirst), bookConfig.enablePageBack && c(this.btnBackward)) : (bookConfig.enablePageBack && c(this.btnBackward), c(this.btnFirst), c(this.btnPrevious), d(), c(this.btnNext), c(this.btnLast), bookConfig.enablePageBack && c(this.btnForward)) } }).extend("ButtonQueue"); Class("MobileButtonQueue", { sort: function(b, c) { var d = this.edtNumber.width + 2 * this.edtNumber.space + 4 * this.buttonWidth; this.addPageButtons(d, (this.container.width - d) / 2); this.buttons.each(function(b) { b.addTo(this.extended) } .bind(this)) } }).extend("ButtonQueue"); Class("PhoneButtonQueue", { create: function(b) { this.container = b.container; this.extended = b.extended; this.topBar = b.topBar; this.bottomBar = b.bottomBar; this.buttonWidth = b.buttonWidth; this.barWidth = b.barWidth; this.buttonTop = b.buttonTop; this.buttons = b.buttons.clone(); this.buttons.each(function(b) { b.freedom(); b.hint = !1 }); this.initTopBar(); this.initBottomBarArray() }, initBottomBarArray: function() { this.bottomBarArray = []; var b = this.buttons.length; if (6 < b) { for (var c = 0; 5 > c; c++) { var d = this.buttons.get(0); this.bottomBarArray.push(d); this.buttons.remove(d) } this.bottomBarArray.push(this.pickButtonsById("more")) } else for (c = 0; c < b; c++) d = this.buttons.get(0), this.bottomBarArray.push(d), this.buttons.remove(d); for (c = 0; c < this.bottomBarArray.length; c++) this.bottomBarArray[c] && this.bottomBarArray[c].addTo(this.bottomBar) }, initTopBar: function() { if (this.btnInstructions = this.pickButtonsById("instructions")) this.btnInstructions.setPosition(this.barWidth - this.buttonWidth - 10, this.buttonTop), this.btnInstructions.addTo(this.topBar); if (this.logo = this.pickButtonsById("logo")) this.logo.setPosition(10, this.buttonTop), this.logo.addTo(this.topBar) }, pickButtonsById: function(b) { b = this.buttons.find(b).get(0); this.buttons.remove(b); return b }, autoCenter: function(b, c, d, f) { if (b && !(0 >= b.length)) { var g = b.length; c = Math.max((c - d * g) / (g - 1), 0); void 0 == f && (f = 0); for (var h = 0; h < g; h++) b[h].$button.css("left", c * h + d * h + f) } }, sort: function() { this.barWidth = Math.min(windowWidth, 340); this.buttonWidth = 40; this.barLeft = (windowWidth - this.barWidth) / 2 + 7; this.autoCenter(this.bottomBarArray, this.barWidth - 15, this.buttonWidth, this.barLeft); for (var b = 0; b < this.buttons.length; b++) this.buttons.get(b).addTo(this.extended) } }); (function(b) { b.fn.asMetroButton = function(c) { function d() { this.css({ "background-color": "rgba(255,255,255,0.2)" }); g.css({ display: "block" }); this.isActive = !0 } function f() { this.css({ "background-color": "transparent" }); g.css({ display: "none" }); this.isActive = !1 } this.children("div[name=leftBorder]").remove(); var g = this.children("div[name=bottomBorder]"); g.length || (g = b(""), this.append(g)); g.css({ position: "absolute", bottom: "0px", width: this.width() + "px", height: "2px", "background-color": c, "pointer-events": "none", display: "none" }); "absolute" == this.css("position") && g.css("left", "0px"); this.bind("mouseenter", d.bind(this)); this.bind("mouseleave", f.bind(this)); this.bind("blur", f.bind(this)); this.bind("mousedown", function() { this.css({ "background-color": "rgba(255,255,255,0.3)" }); g.css({ display: "block" }); this.isActive = !0 } .bind(this)); this.bind("mouseup", d.bind(this)); return this } ; b.fn.asMetroMenu = function(c) { function d() { this.css({ "background-color": "rgba(255,255,255,0.2)" }); g.css({ display: "block" }); this.isActive = !0 } function f() { this.css({ "background-color": "transparent" }); g.css({ display: "none" }); this.isActive = !1 } this.children("div[name=bottomBorder]").remove(); var g = this.children("div[name=leftBorder]"); g.length || (g = b(""), this.append(g)); g.css({ position: "absolute", top: "0px", left: "0px", width: "2px", height: this.height() + "px", "background-color": c, "pointer-events": "none", display: "none" }); this.bind("mouseenter", d.bind(this)); this.bind("mouseleave", f.bind(this)); this.bind("blur", f.bind(this)); this.bind("mousedown", function() { this.css({ "background-color": "rgba(255,255,255,0.3)" }); g.css({ display: "block" }); this.isActive = !0 } .bind(this)); this.bind("mouseup", d.bind(this)); return this } })(jQuery); Class("PCToolbar", { BUTTON_WIDTH: 45, initBar: function() { this.showPageButtons = bookConfig.flipshortcutbutton; bookConfig.flipshortcutbutton = !1; this.topBar = $(''); this.logoBar = $(""); this.searchBar = $(""); this.bottomBar = $(""); this.leftButtonBar = $(""); this.rightButtonBar = $(""); this.pageBar = $(""); this.edtPageNumber = $(""); this.parent.append(this.topBar); this.parent.append(this.bottomBar); this.topBar.append(this.logoBar); this.topBar.append(this.searchBar); this.bottomBar.append(this.leftButtonBar); this.bottomBar.append(this.pageBar); this.bottomBar.append(this.rightButtonBar); this.pageBar.append(this.edtPageNumber); this.initStyle(); this.initPageNumber(); this.initMoreButton(); this.initSearchBar(); this.showPageButtons && this.initPageButton() }, initStyle: function() { this.topBar.css({ "background-color": this.color.toString() }); this.bottomBar.css({ "background-color": this.color.toString() }); this.searchBackgroundColor = Color(this.color.add(96)); this.searchButtonColor = Color(this.color.add(32)); this.searchFontColor = Color(this.searchBackgroundColor.add(32)); this.isDifferMinThan(this.searchBackgroundColor, this.searchFontColor, 16) && (this.searchFontColor = Color("#CCCCCC")) }, isDifferMinThan: function(b, c, d) { b = Color(b); c = Color(c); b = b.difference(c); return b.r < d || b.g < d || b.b < d }, initPageNumber: function() { var b = this.edtPageNumber.children("input"); b.css({ color: Color(bookConfig.pageNumColor).toString(), "text-align": "center" }); var c = parseInt(bookConfig.totalPageCount) , d = 16; "" == bookConfig.pageNumberCaption && (1E4 <= c && (d = 16), 1E4 > c && (d = 10), 1E3 > c && (d = 7), 100 > c && (d = 4), 10 > c && (d = 3)); b.attr("size", d); this.edtPageWidth = this.edtPageNumber.width() }, initSearchBar: function() { this.btnPreSearch = this.pickButton("search"); this.btnPreSearch || (this.btnPreSearch = new SearchButton, this.setButtonTitle(this.btnPreSearch)); this.btnPreSearch.onClick = this.onSearchButtonClick.bind(this); this.edtPreSearch = $(""); this.isRightToLeft() ? (this.edtPreSearch.find("input").attr("dir", "rtl"), this.btnPreSearch.$button.addClass("left"), this.edtPreSearch.css({ "float": "right" })) : this.btnPreSearch.$button.addClass("right"); this.searchBar.append(this.edtPreSearch); this.btnPreSearch.addTo(this.searchBar); this.btnPreSearch.hint = !1; this.btnPreSearch.$button.asButton(); this.btnPreSearch.changeColor(this.searchButtonColor.toString()); this.searchBar.css({ "background-color": this.searchBackgroundColor.toString() }); this.edtPreSearch.css({ "background-color": this.searchBackgroundColor.toString() }); this.edtPreSearch.find("input").css({ "background-color": this.searchBackgroundColor.toString(), color: this.searchFontColor.toString() }); bookConfig.SearchButtonVisible || this.searchBar.css({ display: "none" }) }, initPageButton: function() { rightToLeft ? (this.leftButton = new NextPageButton, this.rightButton = new PreviousPageButton) : (this.leftButton = new PreviousPageButton, this.rightButton = new NextPageButton); this.leftButton.setSrc("previous_normal"); this.rightButton.setSrc("next_normal"); this.leftButton.$button.attr("class", "floatPageButton"); this.rightButton.$button.attr("class", "floatPageButton"); this.leftButton.$button.asButton().mouseEnterLight(this.color.toString()); this.rightButton.$button.asButton().mouseEnterLight(this.color.toString()); this.leftButton.addTo(this.parent); this.rightButton.addTo(this.parent) }, initMoreButton: function() { this.removeButton("more"); this.btnMore.hint = !1; this.btnMore.$button.addClass("right") }, setButtonTitle: function(b) { var c = new SolidArrowTextBubble({ parent: this.parent, text: b.caption, color: this.color, textColor: b.fontColor }); b.setTitle(c) }, initExtendedbar: function() { this.extendedBar = new PCExtendedBar(this.parent); global.moreBar = this.extendedBar }, initEvents: function() { this._super(); this.edtPreSearch.bind("keydown", function(b) { 13 == b.keyCode && this.btnPreSearch.click() } .bind(this)); var b = this.edtPreSearch.find("input") , c = getLanguage("btnSearch", "Search"); b.val(c); b.bind("focus", function(d) { this.searchBar.css({ "background-color": "white" }); this.edtPreSearch.css({ "background-color": "white" }); b.css({ "background-color": "white", color: "black" }); b.val() == c && b.val("") } .bind(this)); b.bind("blur", function(d) { this.searchBar.css({ "background-color": this.searchBackgroundColor.toString() }); this.edtPreSearch.css({ "background-color": this.searchBackgroundColor.toString() }); b.css({ "background-color": this.searchBackgroundColor.toString(), color: this.searchFontColor.toString() }); "" == b.val() && b.val(c) } .bind(this)) }, onSearchButtonClick: function(b) { frmSearch.visible || frmSearch.show(); b = getLanguage("btnSearch", "Search"); var c = this.edtPreSearch.find("input").val(); c == b && (c = ""); frmSearch.search(c) }, onResize: function(b, c) { b = void 0 == b ? this.parent.width() : parseInt(b); c = void 0 == c ? this.parent.height() : parseInt(c); var d = this.logoBar.width() + 20 , f = this.searchBar.width() + 10; d + f + this.BUTTON_WIDTH > b ? this.searchBar.css({ display: "none" }) : bookConfig.SearchButtonVisible ? this.searchBar.css({ display: "block" }) : this.searchBar.css({ display: "none" }); d + this.BUTTON_WIDTH > b ? this.logoBar.css({ display: "none" }) : this.logoBar.css({ display: "block" }); d = this.edtPageWidth + 4 * this.BUTTON_WIDTH; f = (b - d) / 2; this.leftButtonBar.css({ width: f + "px" }); this.pageBar.css({ width: d + "px" }); this.rightButtonBar.css({ width: f + "px" }); if (this.showPageButtons) { var g = (c - 160) / 2; this.leftButton.$button.css({ left: "0px", top: g + "px" }); this.rightButton.$button.css({ right: "0px", top: g + "px" }) } this.buttonBarWidth = f; this.pageBarWidth = d; this.resetButtonPosition() }, resetButtonPosition: function() { (new PCButtonQueue({ buttons: this.buttons, buttonWidth: this.BUTTON_WIDTH, buttonTop: 0, leftBar: { body: this.leftButtonBar, width: this.buttonBarWidth }, rightBar: { body: this.rightButtonBar, width: this.pageBarWidth }, pageBar: { body: this.pageBar, width: this.buttonBarWidth }, edtNumber: { body: this.edtPageNumber, width: this.edtPageWidth, top: 14, space: 5 }, extended: this.extendedBar.$bar })).sort(); var b = this.buttonsInExtendedBar(); this.extendedBar.resize(b); this.extendedBar.hide(); 0 < b.length ? (this.btnMore.addTo(this.topBar), this.btnMore.changeColor(), this.btnMore.$button.asButton(), this.btnMore.setCallback(this.afterButtonClick.bind(this)), this.searchBar.css({ right: "46px" })) : (this.btnMore.freedom(), this.searchBar.css({ right: "10px" })); this.buttons.each(function(b) { b.changeColor(); b.$parent == this.extendedBar.$bar ? b.$button.asMetroMenu(b.color.toString()) : b.$button.asMetroButton(b.color.toString()) } .bind(this)) }, show: function() { if (!this.isMoving && !this.visible && (this._super(), this.showPageButtons)) if (isIE8()) this.leftButton.$button.css({ display: "block" }), this.rightButton.$button.css({ display: "block" }); else { var b = transformCSS({ tran: { x: 0, y: 0 } }); animateOnce(this.leftButton.$button, b, 500); animateOnce(this.rightButton.$button, b, 500) } }, hide: function() { if (!this.isMoving && this.visible && (this._super(), this.showPageButtons)) if (isIE8()) this.leftButton.$button.css({ display: "none" }), this.rightButton.$button.css({ display: "none" }); else { var b = transformCSS({ tran: { x: -63, y: 0 } }); animateOnce(this.leftButton.$button, b, 500); b = transformCSS({ tran: { x: 63, y: 0 } }); animateOnce(this.rightButton.$button, b, 500) } }, afterButtonClick: function(b) { this._super(b); b.getStatus && (b.$parent == this.extendedBar.$bar ? b.$button.asMetroMenu(b.color.toString()) : b.$button.asMetroButton(b.color.toString()), b.$button.isActive && b.$button.trigger("mouseenter")) } }).extend("Toolbar"); Class("PCExtendedBar", { show: function(b) { if (!0 != this.isMoving && !0 != this.visible) { this.visible = this.isMoving = !0; this.$bar.css({ left: b.left + b.width - this.width + "px", top: b.top + b.height + "px", display: "block" }); var c = -this.height , d = transformCSS({ tran: { x: 0, y: c } }); this.$bar.css(d); (function(b, g) { c += this.height / g; d = transformCSS({ tran: { x: 0, y: c } }); this.$bar.css(d); b == g && (this.isMoving = !1) } ).runInAnimate(this, 300) } }, hide: function() { if (!0 != this.isMoving && !1 != this.visible) { this.isMoving = !0; this.visible = !1; var b = 0 , c = transformCSS({ tran: { x: 0, y: 0 } }); this.$bar.css(c); (function(d, f) { b -= this.height / f; c = transformCSS({ tran: { x: 0, y: b } }); this.$bar.css(c); d == f && (this.$bar.css({ display: "none" }), this.isMoving = !1) } ).runInAnimate(this, 300) } }, resize: function(b) { for (var c = 0; c < b.length; c++) b.get(c).setPosition(0, 46 * c); this.width = 160; this.height = 46 * b.length; this.$bar.css({ width: this.width + "px", height: this.height + "px" }) } }).extend("ExtendedBar"); var CatalogThumbnailItem = Class({ create: function(b, c, d) { this.itemContent = b; this.dockMenuContent = c; this.index = d; this.item = $(""); this.rect = $(""); this.caption = $(""); this.captionAfter = $(""); this.itemContent.append(this.item); this.item.append(this.rect); this.item.append(this.caption); this.caption.after(this.captionAfter); this.initEvent() }, initItem: function(b, c) { this.initCaption(b, c); this.dockMenu = new DockMenu(this.dockMenuContent,b,c); 1 < b && (rightToLeft ? this.addNext() : this.addPrev()); c < bookConfig.totalPageCount && (rightToLeft ? this.addPrev() : this.addNext()) }, addPrev: function() { var b = $(""); b.append(""); b.append("
");
b.click(function() {
thumbnail.gotoItemByIndex(this.index - 1);
return !1
}
.bind(this));
this.dockMenu.addObj(b, "before")
},
addNext: function() {
var b = $("");
b.append("");
b.append("
");
b.click(function() {
thumbnail.gotoItemByIndex(this.index + 1);
return !1
}
.bind(this));
this.dockMenu.addObj(b, "after")
},
initCaption: function(b, c) {
this.fromIndex = b;
this.toIndex = c;
this.fromIndex = Math.max(this.fromIndex, 1);
this.toIndex = Math.min(this.toIndex, bookConfig.totalPageCount);
this.fromIndex != this.toIndex ? this.caption.html(rightToLeft ? this.toIndex + "-" + this.fromIndex : this.fromIndex + "-" + this.toIndex) : this.caption.html(this.fromIndex);
$(this.caption).css({
position: "absolute",
height: "16px",
top: "-30px",
"white-space": "nowrap",
width: "auto",
left: "50%"
});
$(this.caption).css({
"margin-left": -$(this.caption).outerWidth() / 2
});
$(this.captionAfter).css({
position: "absolute",
top: "-5px",
left: "50%",
"margin-left": "-8px",
"background-image": "url(" + uiBaseURL + "span.png)"
})
},
initEvent: function() {
this.choosedColor = "#505a60";
this.item.bind(_event._enter, function() {
this.rect.css("background", "#ffffff")
}
.bind(this));
this.item.bind(_event._leave, function() {
this.rect.css("background", this.choosedColor)
}
.bind(this));
this.item.bind(_event._end, function() {
thumbnail.gotoItemByIndex(this.index)
}
.bind(this));
this.item.bind(_event._over, function() {
this.caption.css("display", "block");
this.captionAfter.css("display", "block")
}
.bind(this));
this.item.bind(_event._leave, function() {
this.caption.hide();
this.captionAfter.hide()
}
.bind(this))
},
show: function() {
this.rect.css("background", "#ffffff");
this.choosedColor = "#ffffff";
this.dockMenu.show()
},
hide: function() {
this.rect.css("background", "#505a60");
this.choosedColor = "#505a60";
this.dockMenu.hide()
},
clearHighLight: function() {
this.dockMenu.clearHighLight()
},
setHighLight: function(b) {
this.dockMenu.setHighLight(b)
},
onResize: function() {
this.dockMenu.resize()
}
});
var CatalogThumbnailBar = Class({
create: function(b) {
this.menu = $("");
b.append(this.menu);
this.initMenu()
},
initMenu: function() {
this.visible = !1;
this.height = 170;
this.dockMenuContent = $("");
this.thumbnailItemContent = $("");
this.dockMenuContent.css({
width: windowWidth - 50 + "px"
});
this.menu.append(this.dockMenuContent);
this.menu.append(this.thumbnailItemContent);
this.addItem()
},
addItem: function() {
this.itemArray = [];
for (var b = parseInt((bookConfig.totalPageCount + 1) / 20), b = b + (0 == (bookConfig.totalPageCount + 1) % 20 ? 0 : 1), c = 0; c < b; c++) {
var d = new CatalogThumbnailItem(this.thumbnailItemContent,this.dockMenuContent,c)
, f = bookConfig.RightToLeft ? b - 1 - c : c
, g = 20 * f
, f = 20 * (f + 1) - 1
, f = f > bookConfig.totalPageCount ? bookConfig.totalPageCount : f;
d.initItem(g, f);
0 == c && (this.highLightItem = this.currentItem = d,
d.setHighLight(1),
d.show());
this.itemArray.push(d)
}
},
gotoItemByIndex: function(b) {
this.currentItem && this.currentItem.index !== b && (this.currentItem.hide(),
this.itemArray[b].show(),
this.currentItem = this.itemArray[b])
},
onResize: function() {
var b = 1
, c = 10 * (140 * bookConfig.largePageWidth / bookConfig.largePageHeight + 10);
origin = 0;
c > windowWidth - 50 && (b = (windowWidth - 50) / c,
origin = parseInt(100 * (1 - (windowWidth - 50) / c) / 2));
this.dockMenuContent.css({
"-webkit-transform": "scale3d(" + b + "," + b + ",1)",
"-moz-transform": "scale3d(" + b + "," + b + ",1)",
"-ms-transform": "scale3d(" + b + "," + b + ",1)",
"-o-transform": "scale3d(" + b + "," + b + ",1)",
transform: "scale3d(" + b + "," + b + ",1)",
"-webkit-transform-origin": "50% 100%",
"-moz-transform-origin": "50% 100%",
"-ms-transform-origin": "50% 100%",
"-o-transform-origin": "50% 100%",
"transform-origin": "50% 100%"
});
this.dockMenuContent.css({
width: windowWidth - 50 + "px"
});
this.thumbnailItemContent.css({
"-webkit-transform": "scale3d(" + b + "," + b + ",1)",
"-moz-transform": "scale3d(" + b + "," + b + ",1)",
"-ms-transform": "scale3d(" + b + "," + b + ",1)",
"-o-transform": "scale3d(" + b + "," + b + ",1)",
transform: "scale3d(" + b + "," + b + ",1)",
"-webkit-transform-origin": "50% 100%",
"-moz-transform-origin": "50% 100%",
"-ms-transform-origin": "50% 100%",
"-o-transform-origin": "50% 100%",
"transform-origin": "50% 100%"
});
for (b = 0; b < this.itemArray.length; b++)
this.itemArray[b].onResize()
},
getOccuHeight: function() {
return 110
},
transparent: function() {
this.menu.animate({
opacity: 0,
"z-index": -1
}, 200)
},
noTransparent: function() {
this.menu.animate({
opacity: 1,
"z-index": 10
}, 200)
},
mergeAll: function() {},
fissionAll: function() {},
getShowStatu: function() {
return this.visible
},
clearHighLight: function() {
this.highLightItem && this.highLightItem.clearHighLight()
},
setHighLight: function(b) {
for (var c = 0; c < this.itemArray.length; c++)
if (b <= this.itemArray[c].toIndex && b >= this.itemArray[c].fromIndex) {
this.gotoItemByIndex(c);
this.itemArray[c].setHighLight(b);
this.highLightItem = this.currentItem;
break
}
},
fillContent: function() {
this.setHighLight(this.highLightItem.index)
},
showOrHide: function() {
!1 === this.visible ? this.show() : this.hide();
catalogBook && catalogBook.showOrHideLiteThumbnail()
},
show: function() {
this.showing = this.visible = !0;
this.menu.animate.delay(this.menu, 100, [{
bottom: -105 + toolBar.getBottomHeight() + "px"
}, 300])
},
hide: function() {
this.menu.animate.delay(this.menu, 100, [{
bottom: -this.height + "px"
}, 300]);
this.showing = this.visible = !1
},
setPosition: function() {},
getHeight: function() {
return this.getTopHeight() + this.getBottomHeight()
},
getTopHeight: function() {
return 0
},
getBottomHeight: function() {
return !0 == this.visible ? 110 : 0
}
});
var GuidToolbar = Class({
create: function(b) {
this.$bar = $("");
this.initButtons();
this.initLogo();
this.changeLanguage();
this.resetButtons();
this.initEvent();
b.append(this.$bar)
},
initButtons: function() {
this.numBtn = $("");
this.thumBtn = $("");
this.moreBtn = $("");
this.fullscreenBtn = $("");
this.searchBtn = $("");
this.shareBtn = $("");
this.toolBarIconUrl = uiBaseURL + "catalog_icon.png";
this.thumBtn.addCssSprite(this.toolBarIconUrl, "thumb", 38, 38, catalogIconInfo);
this.moreBtn.addCssSprite(this.toolBarIconUrl, "more", 38, 38, catalogIconInfo);
this.fullscreenBtn.addCssSprite(this.toolBarIconUrl, "fullScreen", 38, 38, catalogIconInfo);
this.searchBtn.addCssSprite(this.toolBarIconUrl, "search", 38, 38, catalogIconInfo);
this.shareBtn.addCssSprite(this.toolBarIconUrl, "share", 38, 38, catalogIconInfo);
this.thumBtn.enterToChange(this.toolBarIconUrl, "thumb", 38, 38, catalogIconInfo);
this.moreBtn.enterToChange(this.toolBarIconUrl, "more", 38, 38, catalogIconInfo);
this.fullscreenBtn.enterToChange(this.toolBarIconUrl, "fullScreen", 38, 38, catalogIconInfo);
this.searchBtn.enterToChange(this.toolBarIconUrl, "search", 38, 38, catalogIconInfo);
this.shareBtn.enterToChange(this.toolBarIconUrl, "share", 38, 38, catalogIconInfo);
this.$bar.append(this.shareBtn);
this.$bar.append(this.searchBtn);
this.$bar.append(this.numBtn);
this.$bar.append(this.thumBtn);
this.$bar.append(this.moreBtn);
this.$bar.append(this.fullscreenBtn)
},
changeLanguage: function() {
this.shareBtn.attr("title", getLanguage("btnSocialShare", "Share"));
this.searchBtn.attr("title", getLanguage("btnSearch", "Search"));
this.thumBtn.attr("title", getLanguage("btnThumb", "Thumbnails"));
this.moreBtn.attr("title", getLanguage("btnMore", "More"));
this.fullscreenBtn.attr("title", getLanguage("btnFullscreen", "Fullscreen"))
},
resetButtons: function() {
this.iconWidth = 38;
this.numWidth = 60;
10 <= bookConfig.totalPageCount && (this.numWidth = 80);
100 <= bookConfig.totalPageCount && (this.numWidth = 100);
1E3 <= bookConfig.totalPageCount && (this.numWidth = 125);
1E4 <= bookConfig.totalPageCount && (this.numWidth = 145);
var b = 12;
this.numBtn.css({
width: this.numWidth + "px",
left: b + "px"
});
b += this.numWidth;
bookConfig.ShareButtonVisible ? (this.shareBtn.css({
left: b + "px"
}),
b += this.iconWidth) : this.shareBtn.hide();
bookConfig.SearchButtonVisible ? (this.searchBtn.css({
left: b + "px"
}),
b += this.iconWidth) : this.searchBtn.hide();
bookConfig.ThumbnailsButtonVisible ? (this.thumBtn.css({
left: b + "px"
}),
b += this.iconWidth) : this.thumBtn.hide();
this.moreBtn.css({
left: b + "px"
});
b += this.iconWidth;
bookConfig.FullscreenButtonVisible ? (this.fullscreenBtn.css({
left: b + "px"
}),
b += this.iconWidth) : this.fullscreenBtn.hide();
this.$bar.css({
width: b + 7 + "px"
})
},
initEvent: function() {
this.addResponseDom();
this.thumBtn.bind(_event._end, function() {
thumbnail && thumbnail.showOrHide()
});
this.fullscreenBtn.bind(_event._end, readAsFullscreen);
$(document).bind(fullScreenApi.fullScreenEventName, function() {
this.changeFullscreenIcon(fullScreenApi.isFullScreen())
}
.bind(this));
this.searchBtn.bind(_event._end, function() {
frmSearch && frmSearch.showOrHide()
});
this.shareBtn.bind(_event._end, function() {
sharePanel && sharePanel.showOrHide()
});
var b = 5, c;
this.moreBtn.bind(_event._end, function() {
catalogBook.hideGuidBarAndShowToolBar();
"complex" == catalogBook.mode && (b = 5,
g(),
f())
}
.bind(this));
var d = !1
, f = function() {
if (!d) {
d = !0;
for (var f = 0; f < this.responseDomArray.length; f++)
this.responseDomArray[f].bind(_event._over, function() {
window.clearInterval(c)
}),
this.responseDomArray[f].bind(_event._leave, function() {
b = 5;
g()
})
}
}
.bind(this)
, g = function() {
window.clearInterval(c);
c = window.setInterval(function() {
b--;
0 >= b && (catalogBook.hideToolBarAndShowGuidBar(),
"simple" == catalogBook.mode ? window.clearInterval(c) : b = 5)
}, 1E3)
}
},
addResponseDom: function() {
this.responseDomArray = [];
global.toolBar && (global.toolBar && toolBar.topBar && this.responseDomArray.push(toolBar.topBar),
global.toolBar && toolBar.bottomBar && this.responseDomArray.push(toolBar.bottomBar),
global.toolBar && toolBar.extendedBar.$bar && this.responseDomArray.push(toolBar.extendedBar.$bar),
toolBar.buttons.each(function(b) {
this.responseDomArray.push(b.$button)
}
.bind(this)))
},
changeFullscreenIcon: function(b) {
b ? (this.fullscreenBtn.changeCssSprite(this.toolBarIconUrl, "exitFullScreen", 35, 35, catalogIconInfo),
this.fullscreenBtn.attr("title", getLanguage("btnExitFullscreen", "exitFullScreen")),
this.fullscreenBtn.unbind(_event._down),
this.fullscreenBtn.unbind(_event._enter),
this.fullscreenBtn.unbind(_event._leave),
this.fullscreenBtn.enterToChange(this.toolBarIconUrl, "exitFullScreen", 35, 35, catalogIconInfo)) : (this.fullscreenBtn.changeCssSprite(this.toolBarIconUrl, "fullScreen", 35, 35, catalogIconInfo),
this.fullscreenBtn.attr("title", getLanguage("btnFullscreen", "Fullscreen")),
this.fullscreenBtn.unbind(_event._down),
this.fullscreenBtn.unbind(_event._enter),
this.fullscreenBtn.unbind(_event._leave),
this.fullscreenBtn.enterToChange(this.toolBarIconUrl, "fullScreen", 35, 35, catalogIconInfo))
},
show: function() {
this.$bar.show();
this.logo && this.logo.show()
},
hide: function() {
this.$bar.hide();
this.logo && this.logo.hide()
},
getHeight: function() {
return 50
},
onResize: function() {},
initLogo: function() {
bookConfig.appLogoIcon && (this.logo = $("
");
$(this.contentBac).css({
background: bookConfig.thumbnailColor
});
isNaN(bookConfig.thumbnailAlpha) || "" == bookConfig.thumbnailAlpha || null == bookConfig.thumbnailAlpha || void 0 == bookConfig.thumbnailAlpha ? isBelowIE9() || $(this.contentBac).css({
opacity: 0.3
}) : isBelowIE9() || $(this.contentBac).css({
opacity: bookConfig.thumbnailAlpha / 100
});
$(b).append(this.contentBac);
$(b).append(this.background);
$(this.background).append(this.contentBox);
$(this.contentBox).append(this.scrollBox);
$(this.contentBac).append(this.openButton);
this.openButton.bind(_event._end, this.showOrHide.bind(this))
},
getPageIndex: function() {
return this.pageIndex
},
setPageIndex: function(b) {
this.pageIndex = b
},
getHeight: function() {
return this.height
},
onResize: function() {
this.width = windowWidth;
var b = $(this.contentBox).width()
, c = $(this.scrollBox).width();
if (b > c)
$(this.scrollBox).css({
left: (b - c) / 2 + "px"
});
else {
var d = $(this.scrollBox).offset().left;
0 < d && (d = 0);
d < b - c && (d = b - c);
$(this.scrollBox).css({
left: d + "px"
})
}
},
setPosition: function(b, c, d) {
void 0 == d && (d = ["left", "top"]);
$(this.background).css(d[0], b + "px");
$(this.background).css(d[1], c + "px");
$(this.contentBac).css(d[0], b + "px");
$(this.contentBac).css(d[1], c + "px")
},
addItem: function() {
for (var b = 0; b <= originTotalPageCount; ) {
var c = 0 == b ? new SlideThumbnailItem(this.scrollBox,1) : new SlideThumbnailItem(this.scrollBox,b);
c.getWidth();
c.setPosition(this.thumbArray.length * (c.getWidth() + 15) + 5, 2.5);
this.thumbArray.push(c);
b += 2
}
$(this.scrollBox).css({
width: this.thumbArray.length * (c.getWidth() + 15) + 10 + "px"
})
},
resetItemPosition: function() {
for (var b = 0, c = this.thumbArray.length, d, f = 0; f < c; f++) {
var g = this.thumbArray[f];
d = g.getWidth() / 2 + 20 + (c - 1) * (g.getWidth() + 15);
rightToLeft ? 0 == f ? (b = d - 5 - g.getWidth() / 2,
g.setPosition(b, 2.5),
b = b - 15 - g.getWidth()) : (g.setPosition(b, 2.5),
b = b - g.getWidth() - 15) : 0 == f ? (g.setPosition(5, 2.5),
b = g.getWidth() / 2 + 20) : (g.setPosition(b, 2.5),
b = b + g.getWidth() + 15)
}
$(this.scrollBox).css({
width: d
})
},
mergeAll: function() {
this.currentMedo = 2;
this.showing && this.createThumbItemFalg && this.currentMedo != this.oldMode && (this.repositionDouble(),
this.oldMode = 2);
this.mergeing = !0
},
fissionAll: function() {
this.currentMedo = 1;
this.showing && this.createThumbItemFalg && this.currentMedo != this.oldMode && (this.repositionSingle(),
this.oldMode = 1);
this.mergeing = !1
},
repositionDouble: function() {
for (var b = 0; b < this.thumbArray.length; b++)
this.thumbArray[b].merge();
this.resetItemPosition();
this.clearHighLight(this.getPageIndex());
this.setHighLight(this.getPageIndex())
},
repositionSingle: function() {
for (var b = 0; b < this.thumbArray.length; b++)
this.thumbArray[b].fission();
this.resetItemPosition();
this.clearHighLight(this.getPageIndex());
this.setHighLight(this.getPageIndex())
},
getShowStatu: function() {
return this.showing
},
setShowStatu: function(b) {
this.showing = b
},
showOrHide: function() {
this.showing ? this.hide() : this.show()
},
show: function() {
this.showing = !0;
this.createThumbItemFalg && this.currentMedo != this.oldMode && 1 === this.currentMedo && this.repositionSingle();
this.createThumbItemFalg && this.currentMedo != this.oldMode && 2 === this.currentMedo && this.repositionDouble();
this.createThumbItemFalg || (this.createThumbItemFalg = !0,
this.addItem(),
1 === this.currentMedo ? this.repositionSingle() : this.repositionDouble(),
this.initEvent(),
this.onResize(),
this.setHighLight(this.getPageIndex()),
this.fillNearByImages(0));
this.oldMode = this.currentMedo;
$(this.background).animate({
bottom: 0
}, 300);
$(this.contentBac).animate({
bottom: 0
}, 300);
this.openButton.empty().append("
")
},
hide: function() {
$(this.background).animate({
bottom: -135
}, 300);
$(this.contentBac).animate({
bottom: -135
}, 300);
this.openButton.empty().append("
");
this.showing = !1
},
getOccuHeight: function() {
return 120
},
initEvent: function() {
var b = this;
this.background.bind(_event._down, function(b) {
return !1
});
$(this.contentBox).bind(_event._down, function(c) {
b.mouseDown = !0;
isThumbDrag = !1;
c = isTouch ? c.originalEvent.touches : [c];
b.mouseDownX = c[0].pageX;
b.scrollBoxX = $(b.scrollBox).offset().left;
return !1
});
$(this.contentBox).bind(_event._move, function(c) {
if (b.mouseDown) {
c = isTouch ? c.originalEvent.touches : [c];
var d = b.mouseDownX - c[0].pageX;
20 < Math.abs(d) && (isThumbDrag = !0);
$(b.contentBox).width() > $(b.scrollBox).width() || (d = b.scrollBoxX - d - (windowWidth - b.width + 20) / 2,
0 < d && (d = 0),
d < $(b.contentBox).width() - $(b.scrollBox).width() && (d = $(b.contentBox).width() - $(b.scrollBox).width()),
$(b.scrollBox).css({
left: d + "px"
}),
b.moveLeft = b.lastMoveX > c[0].pageX ? !0 : !1,
b.lastMoveX = c[0].pageX,
b.lastMoveTime = (new Date).getTime())
}
});
$(this.contentBox).bind(_event._end, function(c) {
b.mouseDown = !1;
100 > (new Date).getTime() - b.lastMoveTime && -1 != b.lastMoveTime && (c = b.moveLeft ? -30 : 30,
b.tweener($(b.scrollBox).offset().left - (windowWidth - b.width + 20) / 2, c, 10))
});
$(this.contentBox).bind("mouseleave", function(c) {
b.mouseDown = !1
})
},
setHighLight: function(b) {
this.currentCellIndex = b;
this.setPageIndex(b);
if (this.createThumbItemFalg) {
var c = Math.floor(b / 2);
if (!(b > originTotalPageCount))
if (this.thumbArray[c].highLight(b),
this.clearHighLight(c),
$(this.contentBox).width() > $(this.scrollBox).width())
$(this.scrollBox).css({
left: ($(this.contentBox).width() - $(this.scrollBox).width()) / 2 + "px"
});
else {
b = $(this.scrollBox).offset().left - (windowWidth - self.width + 20) / 2;
var d = $(this.contentBox).width()
, f = rightToLeft ? (this.thumbArray.length - (c - 1)) * (this.thumbArray[c].getWidth() + 5) + 5 : (c - 1) * (this.thumbArray[c].getWidth() + 5) + 5
, c = this.thumbArray[c].getWidth();
this.tweener(b, -(f + b - (d - c) / 2) / 6, 6)
}
}
},
clearHighLight: function(b) {
if (this.createThumbItemFalg)
for (var c = 0; c < this.thumbArray.length; c++)
c != b && this.thumbArray[c].clearHighLight()
},
tweener: function(b, c, d) {
var f = function(b, c) {
for (var d = c / 2, f = (b - b / 4) / d, g = Array(c), h = 0; h < c; h++)
g[h] = h < d ? b - (d - h) * f : b + (h - d + 1) * f;
return g.reverse()
}(c, d)
, g = b
, h = 0
, k = this
, l = window.setInterval(function() {
g += f[h];
h++;
h == d && (g = b + c * d);
0 < g && (g = 0);
g < $(k.contentBox).width() - $(k.scrollBox).width() && (g = $(k.contentBox).width() - $(k.scrollBox).width());
$(k.scrollBox).css({
left: g + "px"
});
h >= d && (window.clearInterval(l),
k.fillNearByImages(g))
}, 30)
},
fillNearByImages: function(b) {
if (this.createThumbItemFalg) {
var c = Math.ceil((this.background.width() - b) / 65) + 2;
this.background.width() > this.scrollBox.width() ? (b = 0,
c = originTotalPageCount + 1) : b = 0 == b ? 0 : Math.ceil(-b / 100);
b = Math.max(Math.ceil(b / 2), 0);
c = Math.min(c, originTotalPageCount + 1);
if (0 < b)
for (var d = 0; d < b; d++)
this.thumbArray[d] && this.thumbArray[d].clearImage();
for (d = b; d < Math.ceil(c / 2); d++)
b = rightToLeft ? this.thumbArray.length - d - 1 : d,
this.thumbArray[b] && this.thumbArray[b].addImage()
}
}
});
var SlideThumbnailItem = Class({
create: function(b, c) {
this.background = $("");
this.imageBac = $("");
this.pageNum = $("");
this.itemB = new SlideThumbnailCell(this.imageBac);
this.itemA = new SlideThumbnailCell(this.imageBac);
this.height = 115;
this.width = 190 * bookConfig.largePageWidth / bookConfig.largePageHeight;
this.isMerge = this.isDoublePage = !0;
this.pageIndex = c;
this.fillImage = !1;
this.mainColor = "#000000";
$(b).append(this.background);
$(this.background).append(this.imageBac);
$(this.background).append(this.pageNum);
$(this.background).css({
position: "absolute",
width: this.width + "px",
height: this.height + "px",
top: "2px"
});
$(this.imageBac).css({
position: "absolute",
width: this.width + "px",
height: 95
});
$(this.pageNum).css({
width: this.width + "px",
height: 20,
bottom: "-8px",
"line-height": "20px",
"text-align": "center",
"vertical-align": "middle",
color: "#ffffff",
"font-size": "12px"
});
1 != c && c != totalPageCount ? (this.itemA.setPosition(0, 0, rightToLeft ? ["right", "top"] : ["left", "top"]),
this.itemB.setPosition(0, 0, rightToLeft ? ["left", "top"] : ["right", "top"]),
this.itemB.onMouseUp(this, this.onItemMouseUp),
this.itemA.pageIndex = c,
this.itemB.pageIndex = c + 1,
this.onMouseOver()) : (1 == c ? this.itemA.setPosition(0, 0) : rightToLeft ? this.itemA.setPosition(0, 0, ["right", "top"]) : this.itemA.setPosition(0, 0),
this.itemB.showCell(!1),
this.setBorder(!1),
this.itemA.pageIndex = c,
this.itemA.onMouseOver());
this.itemA.onMouseUp(this, this.onItemMouseUp);
$(this.pageNum).hide()
},
getWidth: function() {
return this.width
},
addImage: function() {
this.fillImage || (this.itemA.fillImage(this.pageIndex),
1 != this.pageIndex && this.pageIndex != totalPageCount && this.itemB.fillImage(this.pageIndex + 1),
this.fillImage = !0,
rightToLeft ? $(this.pageNum).html(this.pageIndex + 1 + "-" + this.pageIndex) : $(this.pageNum).html("" + this.pageIndex + "-" + (this.pageIndex + 1) + ""))
},
clearImage: function() {
this.itemA.clearImage(this.pageIndex);
1 != this.pageIndex && this.pageIndex != totalPageCount && this.itemB.clearImage(this.pageIndex + 1);
this.fillImage = !1
},
setPosition: function(b, c, d) {
void 0 == d && (d = ["left", "top"]);
$(this.background).css(d[0], b + "px");
$(this.background).css(d[1], c + "px")
},
onResize: function(b, c) {
this.width = b;
this.height = c;
$(this.background).css({
width: b + "px",
height: c + "px"
})
},
resetItem: function() {},
fission: function() {
1 != this.pageIndex && this.pageIndex != totalPageCount && (this.setBorder(!1),
this.onResize(this.width, this.height),
this.itemA.setImgPosition("r"),
this.itemB.setImgPosition("l"),
this.showTextField(!1),
this.isMerge = !1)
},
merge: function() {
1 != this.pageIndex && this.pageIndex != totalPageCount && (this.setBorder(!1),
this.onResize(this.width, this.height),
this.itemA.setImgPosition("r"),
this.itemB.setImgPosition("l"),
this.showTextField(!0),
this.isMerge = !0)
},
showBorder: function() {
$(this.imageBac).css({
border: "1px solid #444444"
})
},
hideBorder: function() {
$(this.imageBac)[0].style.border = ""
},
showTextField: function(b) {
var c = b ? "none" : "block";
this.pageNum.css({
display: b ? "block" : "none"
});
this.itemA.getTextField().css({
display: c
});
this.itemB.getTextField().css({
display: c
})
},
setBorder: function(b) {
b ? $(this.imageBac).css({
border: "1px solid #444444"
}) : $(this.imageBac)[0].style.border = "";
this.itemA.hideBorder();
this.itemB.hideBorder()
},
onItemMouseUp: function(b) {
isThumbDrag || (b = b.getPageIndex(),
gotoPageFun(b),
thumbnail && thumbnail.setHighLight(b))
},
highLight: function(b) {
this.isMerge ? 1 == b || b == totalPageCount ? (this.itemA.highLight("#ffffff"),
this.itemA.onMouseOverUp()) : ($(this.imageBac).css({
border: "2px solid #ff8040"
}),
this.onMouseOverUp()) : b == this.pageIndex ? (this.itemA.highLight("#ffffff"),
this.itemA.onMouseOverUp()) : (this.itemB.highLight("#ffffff"),
this.itemB.onMouseOverUp())
},
onMouseOver: function() {
var b = this;
$(this.imageBac).css({
border: ""
});
$(this.imageBac).bind(_event._enter, function(c) {
b.imageBac.css({
border: "2px solid #0080ff"
})
});
$(this.imageBac).bind(_event._leave, function(c) {
b.imageBac.css({
border: ""
})
})
},
onMouseOverUp: function() {
var b = this;
$(this.imageBac).bind(_event._enter, function(c) {
b.imageBac.css({
border: "2px solid #0080ff"
})
});
$(this.imageBac).bind(_event._leave, function(c) {
b.imageBac.css({
border: "2px solid #ff8040"
})
})
},
clearMouseOver: function() {
var b = this;
$(this.imageBac).bind(_event._enter, function(c) {
b.imageBac.css({
border: ""
})
});
$(this.imageBac).bind(_event._leave, function(c) {
b.imageBac.css({
border: ""
})
})
},
clearHighLight: function() {
this.isMerge ? 1 == this.pageIndex || this.pageIndex == totalPageCount ? (this.itemA.onMouseOver(),
this.itemB.onMouseOver()) : (this.onMouseOver(),
this.itemA.clearMouseOver(),
this.itemB.clearMouseOver()) : (this.itemA.onMouseOver(),
this.itemB.onMouseOver(),
this.clearMouseOver());
this.itemA.clearHighLight();
this.itemB.clearHighLight()
}
});
Class("PCSlideToolbar", {
create: function(b) {
this.parent = b;
this.initToolBar();
this.initGuidBar();
this.initLogo()
},
initGuidBar: function() {
this.leftBar = $("");
this.rightBar = $("");
this.leftBar.css({
left: bookConfig.leftMargin,
"background-image": "url(" + uiBaseURL + "slide_prev_page.png)",
"background-repeat": "no-repeat",
"background-position": "center",
"background-size": "18px 18px",
"background-color": bookConfig.toolbarColor,
"border-radius": "5px"
});
this.rightBar.css({
right: bookConfig.rightMargin,
"background-image": "url(" + uiBaseURL + "slide_next_page.png)",
"background-repeat": "no-repeat",
"background-position": "center",
"background-size": "18px 18px",
"background-color": bookConfig.toolbarColor,
"border-radius": "5px"
});
this.parent.append(this.leftBar);
this.parent.append(this.rightBar);
rightToLeft ? (this.leftBar.bind(_event._end, nextPageFun),
this.rightBar.bind(_event._end, previousPageFun),
this.leftBar.attr({
title: getLanguage("btnNextPage", "Next")
}),
this.rightBar.attr({
title: getLanguage("btnPrePage", "Previous")
})) : (this.leftBar.bind(_event._end, previousPageFun),
this.rightBar.bind(_event._end, nextPageFun),
this.leftBar.attr({
title: getLanguage("btnPrePage", "Previous")
}),
this.rightBar.attr({
title: getLanguage("btnNextPage", "Next")
}));
this.rightBar.bind(_event._down, function() {
this.rightBar.css({
opacity: "0.5"
})
}
.bind(this));
this.rightBar.bind(_event._end + " " + _event._leave, function() {
this.rightBar.css({
opacity: "0.7"
})
}
.bind(this));
this.leftBar.bind(_event._down, function() {
this.leftBar.css({
opacity: "0.5"
})
}
.bind(this));
this.leftBar.bind(_event._end + " " + _event._leave, function() {
this.leftBar.css({
opacity: "0.7"
})
}
.bind(this))
},
initToolBar: function() {
this.toolbarBac = $("");
this.fullscreenBtn = $("
");
this.homeBtn = $("
");
bookConfig.ShareButtonVisible && (this.shareBtn = $("
"));
this.parent.append(this.toolbarBac);
this.toolbarBac.append(this.fullscreenBtn);
this.toolbarBac.append(this.homeBtn);
this.toolbarBac.append(this.shareBtn);
this.toolbarBac.css("background-color", bookConfig.toolbarColor);
this.shareBtn && this.shareBtn.bind(_event._end, function() {
sharePanel.showOrHide();
return !1
});
this.homeBtn.bind(_event._end, function() {
homeButtonEvent();
return !1
});
this.fullscreenBtn.bind(_event._end, function() {
readAsFullscreen();
return !1
});
$(document).bind(fullScreenApi.fullScreenEventName, function() {
this.changeFullscreenIcon(fullScreenApi.isFullScreen())
}
.bind(this));
this.fullscreenBtn.attr("title", getLanguage("btnFullscreen", "Enter fullscreen"));
this.homeBtn.attr("title", getLanguage("btnGoToHome", "Home"));
this.shareBtn && this.shareBtn.attr("title", getLanguage("btnSocialShare", "Share"));
var b = this.toolbarBac.width();
this.toolbarBac.css({
"margin-left": -b / 2 + "px"
})
},
changeFullscreenIcon: function() {
fullScreenApi.isFullScreen() ? (this.fullscreenBtn.attr("src", uiBaseURL + "slide-exitFullscreen.png"),
this.fullscreenBtn.attr("title", getLanguage("btnExitFullscreen", "Exit fullscreen"))) : (this.fullscreenBtn.attr("src", uiBaseURL + "slide-fullscreen.png"),
this.fullscreenBtn.attr("title", getLanguage("btnFullscreen", "Enter fullscreen")))
},
hide: function() {},
show: function() {},
getLogoHeight: function() {
return 0
},
getHeight: function() {
return 0
},
getTopHeight: function() {
return 0
},
getBottomHeight: function() {
return 0
},
getWidth: function() {
return 0
},
setButtonPosition: function() {},
initLogo: function() {
bookConfig.appLogoIcon && "" != bookConfig.appLogoIcon && (this.logo = $("" + (b + 1) + "
") , f = $("") , g = $("