﻿{ if (typeof window.JAK != "object") { window.JAK = { NAME: "JAK"} } JAK.idGenerator = function () { this.idCnt = this.idCnt < 1e7 ? this.idCnt : 0; var a = "m" + (new Date).getTime().toString(16) + "m" + this.idCnt.toString(16); this.idCnt++; return a }; if (!Function.prototype.bind) { Function.prototype.bind = function (a) { var b = this; var c = Array.prototype.slice.call(arguments, 1); return function () { return b.apply(a, c.concat(Array.prototype.slice.call(arguments))) } } } if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (a, b) { var c = this.length; var d = b || 0; if (d < 0) { d += c } for (; d < c; d++) { if (d in this && this[d] === a) { return d } } return -1 } } if (!Array.indexOf) { Array.indexOf = function (a, b, c) { return Array.prototype.indexOf.call(a, b, c) } } if (!Array.prototype.lastIndexOf) { Array.prototype.lastIndexOf = function (a, b) { var c = this.length; var d = b || c - 1; if (d < 0) { d += c } for (; d > -1; d--) { if (d in this && this[d] === a) { return d } } return -1 } } if (!Array.lastIndexOf) { Array.lastIndexOf = function (a, b, c) { return Array.prototype.lastIndexOf.call(a, b, c) } } if (!Array.prototype.forEach) { Array.prototype.forEach = function (a, b) { var c = this.length; for (var d = 0; d < c; d++) { if (d in this) { a.call(b, this[d], d, this) } } } } if (!Array.forEach) { Array.forEach = function (a, b, c) { Array.prototype.forEach.call(a, b, c) } } if (!Array.prototype.every) { Array.prototype.every = function (a, b) { var c = this.length; for (var d = 0; d < c; d++) { if (d in this && !a.call(b, this[d], d, this)) { return false } } return true } } if (!Array.every) { Array.every = function (a, b, c) { return Array.prototype.every.call(a, b, c) } } if (!Array.prototype.some) { Array.prototype.some = function (a, b) { var c = this.length; for (var d = 0; d < c; d++) { if (d in this && a.call(b, this[d], d, this)) { return true } } return false } } if (!Array.some) { Array.some = function (a, b, c) { return Array.prototype.some.call(a, b, c) } } if (!Array.prototype.map) { Array.prototype.map = function (a, b) { var c = this.length; var d = new Array(c); for (var e = 0; e < c; e++) { if (e in this) { d[e] = a.call(b, this[e], e, this) } } return d } } if (!Array.map) { Array.map = function (a, b, c) { return Array.prototype.map.call(a, b, c) } } if (!Array.prototype.filter) { Array.prototype.filter = function (a, b) { var c = this.length; var d = []; for (var e = 0; e < c; e++) { if (e in this) { var f = this[e]; if (a.call(b, f, e, this)) { d.push(f) } } } return d } } if (!Array.filter) { Array.filter = function (a, b, c) { return Array.prototype.filter.call(a, b, c) } } String.prototype.lpad = function (a, b) { var c = a || "0"; var d = b || 2; var e = ""; while (e.length < d - this.length) { e += c } e = e.substring(0, d - this.length); return e + this }; String.prototype.rpad = function (a, b) { var c = a || "0"; var d = b || 2; var e = ""; while (e.length < d - this.length) { e += c } e = e.substring(0, d - this.length); return this + e }; String.prototype.trim = function () { return this.match(/^\s*([\s\S]*?)\s*$/)[1] }; if (!String.trim) { String.trim = function (a) { return String.prototype.trim.call(a) } } Date.prototype._dayNames = ["Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle"]; Date.prototype._dayNamesShort = ["Po", "Út", "St", "Čt", "Pá", "So", "Ne"]; Date.prototype._monthNames = ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"]; Date.prototype._monthNamesShort = ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Črc", "Srp", "Zář", "Říj", "Lis", "Pro"]; Date.prototype.format = function (a) { var b = { 1: "st", 2: "nd", 3: "rd", 21: "st", 22: "nd", 23: "rd", 31: "st" }; var c = ""; var d = false; for (var e = 0; e < a.length; e++) { var f = a.charAt(e); if (d) { d = false; c += f; continue } switch (f) { case "\\": if (d) { d = false; c += f } else { d = true } break; case "d": c += this.getDate().toString().lpad(); break; case "j": c += this.getDate(); break; case "w": c += this.getDay(); break; case "N": c += this.getDay() || 7; break; case "S": var g = this.getDate(); c += b[g] || "th"; break; case "D": c += this._dayNamesShort[(this.getDay() || 7) - 1]; break; case "l": c += this._dayNames[(this.getDay() || 7) - 1]; break; case "z": var h = this.getTime(); var g = new Date(h); g.setDate(1); g.setMonth(0); var i = h - g.getTime(); c += i / (1e3 * 60 * 60 * 24); break; case "W": var g = new Date(this.getFullYear(), this.getMonth(), this.getDate()); var j = g.getDay() || 7; g.setDate(g.getDate() + (4 - j)); var k = g.getFullYear(); var j = Math.floor((g.getTime() - new Date(k, 0, 1, -6)) / (1e3 * 60 * 60 * 24)); c += (1 + Math.floor(j / 7)).toString().lpad(); break; case "m": c += (this.getMonth() + 1).toString().lpad(); break; case "n": c += this.getMonth() + 1; break; case "M": c += this._monthNamesShort[this.getMonth()]; break; case "F": c += this._monthNames[this.getMonth()]; break; case "t": var h = this.getTime(); var l = this.getMonth(); var g = new Date(h); var j = 0; do { j = g.getDate(); h += 1e3 * 60 * 60 * 24; g = new Date(h) } while (l == g.getMonth()); c += j; break; case "L": var g = new Date(this.getTime()); g.setDate(1); g.setMonth(1); g.setDate(29); c += g.getMonth() == 1 ? "1" : "0"; break; case "Y": c += this.getFullYear().toString().lpad(); break; case "y": c += this.getFullYear().toString().lpad().substring(2); break; case "a": c += this.getHours() < 12 ? "am" : "pm"; break; case "A": c += this.getHours() < 12 ? "AM" : "PM"; break; case "G": c += this.getHours(); break; case "H": c += this.getHours().toString().lpad(); break; case "g": c += this.getHours() % 12; break; case "h": c += (this.getHours() % 12).toString().lpad(); break; case "i": c += this.getMinutes().toString().lpad(); break; case "s": c += this.getSeconds().toString().lpad(); break; case "Z": c += -60 * this.getTimezoneOffset(); break; case "O": case "P": var m = this.getTimezoneOffset() / -60; var n = Math.abs(m).toString().lpad(); if (f == "P") { n += ":" } n += "00"; c += (m >= 0 ? "+" : "-") + n; break; case "U": c += this.getTime() / 1e3; break; case "u": c += "0"; break; case "c": c += arguments.callee.call(this, "Y-m-d") + "T" + arguments.callee.call(this, "H:i:sP"); break; case "r": c += arguments.callee.call(this, "D, j M Y H:i:s O"); break; default: c += f; break } } return c }; if (!window.console) { window.console = { log: function () { } } } JAK.ClassMaker = {}; JAK.ClassMaker.VERSION = "5.0"; JAK.ClassMaker.NAME = "JAK.ClassMaker"; JAK.ClassMaker._objLib = null; JAK.ClassMaker.makeClass = function (a) { var b = this._makeDefaultParams(a); var c = function () { var a = false; if ("$constructor" in arguments.callee.prototype) { a = arguments.callee.prototype.$constructor } if (a) { a.apply(this, arguments) } }; return this._addConstructorProperties(c, b) }; JAK.ClassMaker.makeSingleton = function (a) { var b = this._makeDefaultParams(a); var c = function () { throw new Error("Cannot instantiate singleton class") }; c._instance = null; c.getInstance = this._getInstance; return this._addConstructorProperties(c, b) }; JAK.ClassMaker.makeInterface = function (a) { var b = this._makeDefaultParams(a); var c = function () { throw new Error("Cannot instantiate interface") }; return this._addConstructorProperties(c, b) }; JAK.ClassMaker.makeStatic = function (a) { var b = this._makeDefaultParams(a); var c = {}; c.VERSION = b.VERSION; c.NAME = b.NAME; return c }; JAK.ClassMaker._makeDefaultParams = function (a) { if ("EXTEND" in a) { if (!a.EXTEND) { throw new Error("Cannot extend non-exist class") } if (!("NAME" in a.EXTEND)) { throw new Error("Cannot extend non-JAK class") } } a.NAME = a.NAME || false; a.VERSION = a.VERSION || "1.0"; a.EXTEND = a.EXTEND || false; a.IMPLEMENT = a.IMPLEMENT || []; a.DEPEND = a.DEPEND || []; if (!(a.IMPLEMENT instanceof Array)) { a.IMPLEMENT = [a.IMPLEMENT] } this._preMakeTests(a); return a }; JAK.ClassMaker._preMakeTests = function (a) { if (!a.NAME) { throw new Error("No NAME passed to JAK.ClassMaker.makeClass()") } if (!this._objLib && JAK.ObjLib) { this._objLib = new JAK.ObjLib } var b = false; if (b = this._testDepend(a.DEPEND)) { throw new Error("Dependency error in class " + a.NAME + " (" + b + ")") } }; JAK.ClassMaker._addConstructorProperties = function (a, b) { for (var c in b) { a[c] = b[c] } this._setInheritance(a); a.prototype.constructor = a; a.prototype.$super = this._$super; return a }; JAK.ClassMaker._getInstance = function () { if (!this._instance) { var a = function () { }; a.prototype = this.prototype; this._instance = new a; if ("$constructor" in this.prototype) { this._instance.$constructor() } } return this._instance }; JAK.ClassMaker._setInheritance = function (a) { if (a.EXTEND) { this._makeInheritance(a, a.EXTEND) } for (var b = 0; b < a.IMPLEMENT.length; b++) { this._makeInheritance(a, a.IMPLEMENT[b], true) } }; JAK.ClassMaker._makeInheritance = function (a, b, c) { for (var d in b.prototype) { var e = b.prototype[d]; if (typeof e != "function") { continue } if (!e.owner) { e.owner = b } } if (!c) { var f = function () { }; f.prototype = b.prototype; a.prototype = new f; if (this._objLib) { for (var g in b.prototype) { if (typeof b.prototype[g] == "object") { a.prototype[g] = this._objLib.copy(b.prototype[g]) } } } return } for (var d in b.prototype) { if (typeof b.prototype[d] == "object") { if (this._objLib) { a.prototype[d] = this._objLib.copy(b.prototype[d]) } } else { if (c && (d == "$constructor" || d == "$destructor")) { continue } a.prototype[d] = b.prototype[d] } } }; JAK.ClassMaker._testDepend = function (a) { for (var b = 0; b < a.length; b++) { var c = a[b]; if (!c.sClass) { return "Unsatisfied dependency" } if (!c.ver) { return "Version not specified in dependency" } var d = c.sClass.VERSION.split(".")[0]; var e = c.ver.split(".")[0]; if (d != e) { return "Version conflict in " + c.sClass.NAME } } return false }; JAK.ClassMaker._$super = function () { var a = arguments.callee.caller; if (!a) { throw new Error("Function.prototype.caller not supported") } var b = a.owner || this.constructor; var c = false; for (var d in b.prototype) { if (b.prototype[d] == a) { c = d } } if (!c) { throw new Error("Cannot find supplied method in constructor") } var e = b.EXTEND; if (!e) { throw new Error("No super-class available") } if (!e.prototype[c]) { throw new Error("Super-class doesn't have method '" + c + "'") } var f = e.prototype[c]; return f.apply(this, arguments) }; JAK.Events = JAK.ClassMaker.makeStatic({ NAME: "JAK.Events", VERSION: "3.0" }); JAK.Events._eventFolder = {}; JAK.Events._domReadyTimer = null; JAK.Events._domReadyCallback = []; JAK.Events._domReadyAlreadyRun = false; JAK.Events._windowLoadListenerId = false; JAK.Events.onDomReady = function (a, b) { JAK.Events._domReadyCallback[JAK.Events._domReadyCallback.length] = { obj: a, func: b }; JAK.Events._onDomReady() }; JAK.Events._onDomReady = function () { if (/Safari/i.test(navigator.userAgent) || /WebKit|Khtml/i.test(navigator.userAgent)) { JAK.Events._domReadyTimer = setInterval(function () { if (/loaded|complete/.test(document.readyState)) { clearInterval(JAK.Events._domReadyTimer); JAK.Events._domReady() } }, 10) } else { if (document.all && !window.opera) { if (window.parent == window) { try { document.documentElement.doScroll("left") } catch (a) { setTimeout(arguments.callee, 1); return } JAK.Events._domReady() } else { JAK.Events._windowLoadListenerId = JAK.Events.addListener(window, "load", window, function () { JAK.Events._domReady() }) } } else { if (document.addEventListener) { document.addEventListener("DOMContentLoaded", JAK.Events._domReady, false) } else { JAK.Events._windowLoadListenerId = JAK.Events.addListener(window, "load", window, function () { JAK.Events._domReady() }) } } } }; JAK.Events._domReady = function () { if (!JAK.Events._domReadyAlreadyRun) { JAK.Events._domReadyAlreadyRun = true; if (document.addEventListener) { document.removeEventListener("DOMContentLoaded", JAK.Events._domReady, true) } if (JAK.Events._windowLoadListenerId) { JAK.Events.removeListener(JAK.Events._windowLoadListenerId); JAK.Events._windowLoadListenerId = false } for (var a = 0; a < JAK.Events._domReadyCallback.length; a++) { var b = JAK.Events._domReadyCallback[a]; if (typeof b.func == "string") { b.obj[b.func]() } else { b.func.apply(b.obj, []) } } JAK.Events._domReadyCallback = [] } }; JAK.Events.addListener = function (a, b, c, d, e) { var e = e || false; var f = null; var g = JAK.idGenerator(); if (arguments.length > 3) { if (typeof d == "string" && typeof c[d] != "function") { throw new Error("Events.addListener: arguments[3] must be method of arguments[2]") } f = this._getMethod(c, d, a, g) } else { f = this._getMethod(window, c, a, g) } this._addListener(a, b, f, e); this._eventFolder[g] = { elm: a, type: b, action: f, capture: e, obj: c, func: d }; return g }; JAK.Events._addListener = function (a, b, c, d) { if (document.addEventListener) { a.addEventListener(b, c, d) } else { if (document.attachEvent) { a.attachEvent("on" + b, c) } else { throw new Error("This browser can not handle events") } } }; JAK.Events._getMethod = function (a, b, c, d) { var e = typeof b == "string" ? a[b] : b; return function (b) { return e.call(a, b, c, d) } }; JAK.Events.removeListener = function (a) { if (!(a in this._eventFolder)) { throw new Error("Cannot remove non-existent event ID '" + a + "'") } var b = this._eventFolder[a]; this._removeListener(b.elm, b.type, b.action, b.capture); delete this._eventFolder[a] }; JAK.Events._removeListener = function (a, b, c, d) { if (document.removeEventListener) { a.removeEventListener(b, c, d) } else { if (document.detachEvent) { a.detachEvent("on" + b, c) } } }; JAK.Events.removeAllListeners = function () { for (var a in this._eventFolder) { this.removeListener(a) } }; JAK.Events.stopEvent = function (a) { var a = a || window.event; if (a.stopPropagation) { a.stopPropagation() } else { a.cancelBubble = true } }; JAK.Events.cancelDef = function (a) { var a = a || window.event; if (a.preventDefault) { a.preventDefault() } else { a.returnValue = false } }; JAK.Events.getTarget = function (a) { var a = a || window.event; return a.target || a.srcElement }; JAK.Events.getInfo = function () { var a = []; var b = []; var c = []; for (var d in JAK.Events._eventFolder) { var e = JAK.Events._eventFolder[d]; var f = e.elm; var g = b.indexOf(f); if (g == -1) { g = b.push(f) - 1; c[g] = [] } c[g].push(e) } for (var h = 0; h < b.length; h++) { var i = []; for (var j = 0; j < c[h].length; j++) { var e = c[h][j]; var k = e.obj || window; var l = e.func || e.obj; i.push({ sType: e.type, bRemoved: false, sFunction: (k != window && k.constructor ? "[" + k.constructor.NAME + "]" : "") + (typeof l == "string" ? "." + l + " = " + k[l].toString() : " " + l.toString()) }) } a.push({ sSource: "JAK", nNode: b[h], aListeners: i }) } return a }; JAK.Browser = JAK.ClassMaker.makeStatic({ NAME: "JAK.Browser", VERSION: "3.0" }); JAK.Browser.platform = ""; JAK.Browser.client = ""; JAK.Browser.version = 0; JAK.Browser.agent = ""; JAK.Browser.mouse = {}; JAK.Browser._getPlatform = function () { if (this._agent.indexOf("X11") != -1 || this._agent.indexOf("Linux") != -1) { return "nix" } else { if (this._agent.indexOf("Mac") != -1) { return "mac" } else { if (this._agent.indexOf("Win") != -1) { return "win" } else { return "oth" } } } }; JAK.Browser._getClient = function () { if (window.opera) { return "opera" } else { if (window.chrome) { return "chrome" } else { if (document.attachEvent && typeof navigator.systemLanguage != "undefined") { return "ie" } else { if (document.getAnonymousElementByAttribute) { return "gecko" } else { if (this._agent.indexOf("KHTML") != -1) { if (this._vendor == "KDE") { return "konqueror" } else { return "safari" } } else { return "oth" } } } } } }; JAK.Browser._getMouse = function () { var a; var b; var c; if (JAK.Browser.client == "ie" && parseFloat(JAK.Browser.version) < 9 || JAK.Browser.client == "konqueror") { a = 1; c = 4; b = 2 } else { if (JAK.Browser.client == "opera" && JAK.Browser.version > 7 && JAK.Browser.version < 9) { a = 1; c = 4; b = 2 } else { if (JAK.Browser.client == "safari") { if (parseInt(JAK.Browser.version) > 2) { a = 0; c = 0; b = 2 } else { a = 1; c = 1; b = 2 } } else { a = 0; c = 1; b = 2 } } } return { left: a, right: b, middle: c} }; JAK.Browser._getVersion = function () { var a = 0; var b = "_get_" + this.client + "_ver"; if (typeof this[b] == "function") { return this[b]() } else { return 0 } }; JAK.Browser._get_ie_ver = function () { if (typeof Function.prototype.call != "undefined") { if (document.addEventListener) { return "9" } else { if (window.XDomainRequest) { return "8" } else { if (window.XMLHttpRequest) { return "7" } else { if (typeof document.doctype == "object") { return "6" } else { return "5.5" } } } } } else { return "5.0" } }; JAK.Browser._get_opera_ver = function () { if (window.opera.version) { return window.opera.version() } else { if (document.createComment) { return "7" } else { return "6" } } }; JAK.Browser._get_gecko_ver = function () { if (document.getBoxObjectFor === undefined && navigator.geolocation) { return "3.6" } else { if (navigator.geolocation) { return "3.5" } else { if (document.getElementsByClassName) { return "3" } else { if (window.external) { return "2" } else { return "1.5" } } } } }; JAK.Browser._get_konqueror_ver = function () { var a = this._agent.indexOf("KHTML") + 6; var b = this._agent.substring(a); var c = b.indexOf(" "); var d = b.substring(0, c - 2); return d }; JAK.Browser._get_safari_ver = function () { var a = this._agent.match(/version\/([0-9]+)/i); return a ? a[1] : "1" }; JAK.Browser._get_chrome_ver = function () { var a = this._agent.match(/Chrome\/([0-9]+)/i); return a ? a[1] : null }; JAK.Browser.isOld = function () { if (this.client == "ie" && parseFloat(this.version) <= 5.5) { return true } if (this.client == "opera" && parseFloat(this.version) < 9.5) { return true } if (this.client == "gecko" && parseFloat(this.version) < 2) { return true } if (this.client == "konqueror" && parseFloat(this.version) < 3.5) { return true } if (!document.documentElement) { return true } if (!document.documentElement.addEventListener && !document.documentElement.attachEvent) { return true } var a = function () { }; if (!a.call || !a.apply) { return true } return false }; JAK.Browser.getBrowser = function () { this._agent = this.agent = navigator.userAgent; this._platform = navigator.platform; this._vendor = navigator.vendor; this.platform = this._getPlatform(); this.client = this._getClient(); this.version = this._getVersion(); this.mouse = this._getMouse() }; JAK.Browser.getBrowser(); JAK.DOM = JAK.ClassMaker.makeStatic({ NAME: "JAK.DOM", VERSION: "5.0" }); JAK.cel = function (a, b, c, d) { var e = d || document; var f = e.createElement(a); if (b) { f.className = b } if (c) { f.id = c } return f }; JAK.mel = function (a, b, c, d) { var e = d || document; var f = e.createElement(a); if (b) { for (var g in b) { f[g] = b[g] } } if (c) { JAK.DOM.setStyle(f, c) } return f }; JAK.ctext = function (a, b) { var c = b || document; return c.createTextNode(a) }; JAK.gel = function (a) { if (typeof a == "string") { return document.getElementById(a) } else { return a } }; JAK.query = function (a) { var b = function (a, b) { var c = []; for (var d = 0; d < a.length; d++) { var e = a[d]; var f = true; for (var g = 0; g < b.length; g++) { var h = b[g]; var i = h.charAt(0); var j = h.substr(1).toLowerCase(); if (i == "#" && j != e.id.toLowerCase()) { f = false } if (i == "." && !JAK.DOM.hasClass(e, j)) { f = false } } if (f) { c.push(e) } } return c }; var c = []; var d = a.split(","); while (d.length) { var e = d.shift().trim(); var f = e.split(/ +/); var g = [document]; for (var h = 0; h < f.length; h++) { var i = []; var j = f[h]; var k = j.match(/^[a-z]*/i)[0] || "*"; var l = j.match(/[\.#][^\.#]+/g) || []; while (g.length) { var m = g.shift(); var n = m.getElementsByTagName(k); i = i.concat(b(n, l)) } g = i } for (var h = 0; h < g.length; h++) { var o = g[h]; if (c.indexOf(o) == -1) { c.push(o) } } } return c }; JAK.DOM.append = function () { for (var a = 0; a < arguments.length; a++) { var b = arguments[a]; var c = b[0]; for (var d = 1; d < b.length; d++) { c.appendChild(b[d]) } } }; JAK.DOM.hasClass = function (a, b) { var c = a.className.split(" "); for (var d = 0; d < c.length; d++) { if (c[d].toLowerCase() == b.toLowerCase()) { return true } } return false }; JAK.DOM.addClass = function (a, b) { if (JAK.DOM.hasClass(a, b)) { return } a.className += " " + b }; JAK.DOM.removeClass = function (a, b) { var c = a.className.split(" "); var d = []; for (var e = 0; e < c.length; e++) { if (c[e].toLowerCase() != b.toLowerCase()) { d.push(c[e]) } } a.className = d.join(" ") }; JAK.DOM.clear = function (a) { while (a.firstChild) { a.removeChild(a.firstChild) } }; JAK.DOM.getDocSize = function () { var a = 0; var b = 0; if (document.compatMode != "BackCompat") { if (document.documentElement.clientWidth && JAK.Browser.client != "opera") { a = document.documentElement.clientWidth; b = document.documentElement.clientHeight } else { if (JAK.Browser.client == "opera") { if (parseFloat(JAK.Browser.version) < 9.5) { a = document.body.clientWidth; b = document.body.clientHeight } else { a = document.documentElement.clientWidth; b = document.documentElement.clientHeight } } } if (JAK.Browser.client == "safari" || JAK.Browser.client == "konqueror") { b = window.innerHeight } } else { a = document.body.clientWidth; b = document.body.clientHeight } return { width: a, height: b} }; JAK.DOM.getBoxPosition = function (a, b) { var c = 0; var d = 0; var e = b || a.ownerDocument.body; if (a.getBoundingClientRect && !b) { var f = document.documentElement; var g = a.getBoundingClientRect(); var h = JAK.DOM.getBoxScroll(a); return { left: g.left + h.x - f.clientLeft, top: g.top + h.y - f.clientTop} } while (a && a != e) { c += a.offsetTop; d += a.offsetLeft; if (JAK.Browser.client == "gecko" && JAK.Browser.version < 3 || JAK.Browser.client == "safari") { if (JAK.DOM.getStyle(a, "position") == "fixed") { var h = JAK.DOM.getScrollPos(); c += h.y; d += h.x; break } } a = a.offsetParent } return { top: c, left: d} }; JAK.DOM.getPortBoxPosition = function (a, b, c) { var d = JAK.DOM.getBoxPosition(a, b, c); var e = JAK.DOM.getBoxScroll(a, b, c); d.left -= e.x; d.top -= e.y; return { left: d.left, top: d.top} }; JAK.DOM.getBoxScroll = function (a, b, c) { var d = 0; var e = 0; var f = a.parentNode; var g = b || a.ownerDocument.documentElement; var h = false; while (1) { if (JAK.Browser.client == "opera" && JAK.DOM.getStyle(f, "display") != "block") { f = f.parentNode; continue } if (JAK.Browser.client == "opera" && JAK.Browser.version < 9.5 && f == document.body) { f = f.parentNode; continue } if (c && JAK.DOM.getStyle(f, "position") == "fixed") { h = true } if (!h) { d += f.scrollLeft; e += f.scrollTop } if (f == g) { break } f = f.parentNode; if (!f) { break } } return { x: d, y: e} }; JAK.DOM.getScrollPos = function () { if (document.documentElement.scrollTop || document.documentElement.scrollLeft) { var a = document.documentElement.scrollLeft; var b = document.documentElement.scrollTop } else { if (document.body.scrollTop || document.body.scrollLeft) { var a = document.body.scrollLeft; var b = document.body.scrollTop } else { var a = 0; var b = 0 } } return { x: a, y: b} }; JAK.DOM.getStyle = function (a, b) { if (document.defaultView && document.defaultView.getComputedStyle) { var c = a.ownerDocument.defaultView.getComputedStyle(a, ""); if (!c) { return false } return c[b] } else { return a.currentStyle[b] } }; JAK.DOM.setStyle = function (a, b) { for (var c in b) { a.style[c] = b[c] } }; JAK.DOM.writeStyle = function (a) { var b = JAK.mel("style", { type: "text/css" }); if (b.styleSheet) { b.styleSheet.cssText = a } else { b.appendChild(JAK.ctext(a)) } var c = document.getElementsByTagName("head"); if (c.length) { c = c[0] } else { c = JAK.cel("head"); document.documentElement.appendChild(c, document.body) } c.appendChild(b); return b }; JAK.DOM.elementsHider = function (a, b, c) { function f(b) { var c = false; var d = b; while (d.parentNode && d != document) { if (d == a) { c = true } d = d.parentNode } return c } var d = b; if (!d) { d = ["select", "object", "embed", "iframe"] } var e = arguments.callee.hidden; if (e) { e.forEach(function (a) { a.style.visibility = "visible" }); arguments.callee.hidden = [] } if (c == "hide") { if (typeof a == "string") { a = JAK.gel(a) } var e = []; var g = this.getBoxPosition(a); g.width = a.offsetWidth + g.left; g.height = a.offsetHeight + g.top; for (var h = 0; h < d.length; ++h) { var i = document.getElementsByTagName(d[h]); for (var j = 0; j < i.length; ++j) { var k = this.getBoxPosition(i[j]); if (f(i[j])) { continue } k.width = i[j].offsetWidth + k.left; k.height = i[j].offsetHeight + k.top; if (!(g.left > k.width || g.width < k.left || g.top > k.height || g.height < k.top)) { i[j].style.visibility = "hidden"; e.push(i[j]) } } } arguments.callee.hidden = e } }; JAK.DOM.getElementsByClass = function (a, b, c) { if (document.getElementsByClassName && !c) { var d = b || document; return JAK.DOM.arrayFromCollection(d.getElementsByClassName(a)) } if (document.querySelectorAll && !c) { var d = b || document; return JAK.DOM.arrayFromCollection(d.querySelectorAll("." + a)) } var e = []; var b = b || document; var c = c || "*"; var f = b.getElementsByTagName(c); var g = f.length; var h = new RegExp("(^|\\s)" + a + "(\\s|$)"); for (var i = 0, j = 0; i < g; i++) { if (h.test(f[i].className)) { e[j] = f[i]; j++ } } return e }; JAK.DOM.arrayFromCollection = function (a) { var b = []; try { b = Array.prototype.slice.call(a) } catch (c) { for (var d = 0; d < a.length; d++) { b.push(a[d]) } } finally { return b } }; JAK.DOM.separateCode = function (a) { var b = []; var c = {}; var d = a.replace(/<script.*?>([\s\S]*?)<\/script>/g, function (a, c) { b.push(c); return "" }); return [d, b.join("\n")] }; JAK.DOM.shiftBox = function (a) { var b = 0; var c = 0; var d = JAK.DOM.getBoxPosition(a); var e = JAK.DOM.getScrollPos(); d.left -= e.x; d.top -= e.y; var f = JAK.DOM.getDocSize(); var g = a.offsetWidth; var h = a.offsetHeight; var i = d.top + h - f.height; if (i > 0) { d.top -= i; c -= i } var i = d.left + g - f.width; if (i > 0) { d.left -= i; b -= i } var i = d.top; if (i < 0) { d.top -= i; c -= i } var i = d.left; if (i < 0) { d.left -= i; b -= i } return [b, c] }; JAK.DOM.scrollbarWidth = function () { var a = JAK.mel("div", false, { width: "50px", height: "50px", overflow: "hidden", position: "absolute", left: "-200px" }); var b = JAK.mel("div", false, { height: "100px" }); a.appendChild(b); document.body.insertBefore(a, document.body.firstChild); var c = a.clientWidth + parseInt(JAK.DOM.getStyle(a, "paddingLeft")) + parseInt(JAK.DOM.getStyle(a, "paddingRight")); JAK.DOM.setStyle(a, { overflowY: "scroll" }); var d = a.clientWidth + parseInt(JAK.DOM.getStyle(a, "paddingLeft")) + parseInt(JAK.DOM.getStyle(a, "paddingRight")); document.body.removeChild(a); return c - d }; JAK.Sticky = JAK.ClassMaker.makeClass({ NAME: "Sticky", VERSION: "1.0", CLASS: "class" }); JAK.Sticky.prototype.$constructor = function (a, b, c) { this.block = JAK.gel(a); this.start = JAK.gel(b); this.stop = JAK.gel(c); this.a = false; if (!this.block || !this.start || !this.stop) { return } JAK.Events.addListener(window, "scroll", this, "_onScroll"); setInterval(this._onScroll.bind(this), 25) }; JAK.Sticky.prototype._onScroll = function (a, b) { var c = JAK.DOM.getScrollPos().y; var d = JAK.DOM.getBoxPosition(this.start).top; var e = JAK.DOM.getBoxPosition(this.stop).top; var f = this.block.offsetHeight; if (c <= d) { this.block.style.position = "absolute"; this.block.style.top = "0px" } if (c > d && c + f < e && !this._isIE6() && !this._isOpera() && !this._isI()) { this.block.style.position = "fixed"; this.block.style.top = "5px" } if (c > d && c + f < e && (this._isIE6() || this._isOpera() || this._isI())) { this.block.style.position = "absolute"; this.block.style.top = c - d + "px" } if (c + f >= e) { this.block.style.position = "absolute"; this.block.style.top = e - f - d - 5 + "px" } }; JAK.Sticky.prototype._isIE6 = function () { if (JAK.Browser.client == "ie" && JAK.Browser.version == 6) { return true } else { return false } }; JAK.Sticky.prototype._isI = function () { if (JAK.Browser.agent.indexOf("iPad") != -1 || JAK.Browser.agent.indexOf("iPhone") != -1) { return true } else { return false } }; JAK.Sticky.prototype._isOpera = function () { if (JAK.Browser.client == "opera") { return true } else { return false } }; JAK.SlideShow = JAK.ClassMaker.makeClass({ NAME: "SlideShow", VERSION: "1.0", CLASS: "class" }); JAK.SlideShow.prototype.$constructor = function (a, b, c, d) { this.fps = 30; this.container = JAK.gel(a); this.hide = JAK.gel(b); this.show = JAK.gel(c); this.animLength = d; if (!this.container || !this.show) { return } if (this.hide) { this.hide.style.display = "none" } this.show.style.display = "block"; this.startHeight = this.container.offsetHeight; this.progress = 0; this.animInterval = setInterval(this._animate.bind(this), this.fps) }; JAK.SlideShow.prototype._animate = function () { this.progress++; var a = this.animLength / this.fps; if (this.progress <= a) { var b = (this.show.offsetHeight - this.startHeight) / a; this.container.style.height = this.container.offsetHeight + b + "px" } else { clearInterval(this.animInterval); this.container.style.height = "auto" } }; JAK.SlideOnClick = JAK.ClassMaker.makeClass({ NAME: "SlideOnClick", VERSION: "1.0", CLASS: "class" }); JAK.SlideOnClick.prototype.$constructor = function (a, b, c, d) { this.containerId = b; this.showId = c; this.hideId = d; JAK.Events.addListener(JAK.gel(a), "click", this, "_onShow") }; JAK.SlideOnClick.prototype._onShow = function (a, b) { new JAK.SlideShow(this.containerId, this.hideId, this.showId, 500 * JAK.gel(this.showId).offsetHeight / 2e3); JAK.Events.stopEvent(a); JAK.Events.cancelDef(a) }; JAK.AdsUtils = JAK.ClassMaker.makeClass({ NAME: "AdsUtils", VERSION: "1.0", CLASS: "static" }); JAK.AdsUtils.isEnoughSpace = function (a, b) { var c = JAK.gel(b); if (!c) { return false } if (c.offsetHeight >= a) { return true } return false } }
