HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/HKemperman1/osthoes.nl/wwwroot/Resources/Shared/scripts/jquery.history.js
typeof JSON != "object" && (JSON = {}), function () { "use strict"; function f(e) { return e < 10 ? "0" + e : e } function quote(e) { return escapable.lastIndex = 0, escapable.test(e) ? '"' + e.replace(escapable, function (e) { var t = meta[e]; return typeof t == "string" ? t : "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4) }) + '"' : '"' + e + '"' } function str(e, t) { var n, r, i, s, o = gap, u, a = t[e]; a && typeof a == "object" && typeof a.toJSON == "function" && (a = a.toJSON(e)), typeof rep == "function" && (a = rep.call(t, e, a)); switch (typeof a) { case "string": return quote(a); case "number": return isFinite(a) ? String(a) : "null"; case "boolean": case "null": return String(a); case "object": if (!a) return "null"; gap += indent, u = []; if (Object.prototype.toString.apply(a) === "[object Array]") { s = a.length; for (n = 0; n < s; n += 1) u[n] = str(n, a) || "null"; return i = u.length === 0 ? "[]" : gap ? "[\n" + gap + u.join(",\n" + gap) + "\n" + o + "]" : "[" + u.join(",") + "]", gap = o, i } if (rep && typeof rep == "object") { s = rep.length; for (n = 0; n < s; n += 1) typeof rep[n] == "string" && (r = rep[n], i = str(r, a), i && u.push(quote(r) + (gap ? ": " : ":") + i)) } else for (r in a) Object.prototype.hasOwnProperty.call(a, r) && (i = str(r, a), i && u.push(quote(r) + (gap ? ": " : ":") + i)); return i = u.length === 0 ? "{}" : gap ? "{\n" + gap + u.join(",\n" + gap) + "\n" + o + "}" : "{" + u.join(",") + "}", gap = o, i } } typeof Date.prototype.toJSON != "function" && (Date.prototype.toJSON = function (e) { return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z" : null }, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function (e) { return this.valueOf() }); var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = { "\b": "\\b", "	": "\\t", "\n": "\\n", "\f": "\\f", "\r": "\\r", '"': '\\"', "\\": "\\\\" }, rep; typeof JSON.stringify != "function" && (JSON.stringify = function (e, t, n) { var r; gap = "", indent = ""; if (typeof n == "number") for (r = 0; r < n; r += 1) indent += " "; else typeof n == "string" && (indent = n); rep = t; if (!t || typeof t == "function" || typeof t == "object" && typeof t.length == "number") return str("", { "": e }); throw new Error("JSON.stringify") }), typeof JSON.parse != "function" && (JSON.parse = function (text, reviver) { function walk(e, t) { var n, r, i = e[t]; if (i && typeof i == "object") for (n in i) Object.prototype.hasOwnProperty.call(i, n) && (r = walk(i, n), r !== undefined ? i[n] = r : delete i[n]); return reviver.call(e, t, i) } var j; text = String(text), cx.lastIndex = 0, cx.test(text) && (text = text.replace(cx, function (e) { return "\\u" + ("0000" + e.charCodeAt(0).toString(16)).slice(-4) })); if (/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return j = eval("(" + text + ")"), typeof reviver == "function" ? walk({ "": j }, "") : j; throw new SyntaxError("JSON.parse") }) }(), function (e, t) { "use strict"; var n = e.History = e.History || {}, r = e.jQuery; if (typeof n.Adapter != "undefined") throw new Error("History.js Adapter has already been loaded..."); n.Adapter = { bind: function (e, t, n) { r(e).bind(t, n) }, trigger: function (e, t, n) { r(e).trigger(t, n) }, extractEventData: function (e, n, r) { var i = n && n.originalEvent && n.originalEvent[e] || r && r[e] || t; return i }, onDomLoad: function (e) { r(e) } }, typeof n.init != "undefined" && n.init() }(window), function (e, t) { "use strict"; var n = e.document, r = e.setTimeout || r, i = e.clearTimeout || i, s = e.setInterval || s, o = e.History = e.History || {}; if (typeof o.initHtml4 != "undefined") throw new Error("History.js HTML4 Support has already been loaded..."); o.initHtml4 = function () { if (typeof o.initHtml4.initialized != "undefined") return !1; o.initHtml4.initialized = !0, o.enabled = !0, o.savedHashes = [], o.isLastHash = function (e) { var t = o.getHashByIndex(), n; return n = e === t, n }, o.isHashEqual = function (e, t) { return e = encodeURIComponent(e).replace(/%25/g, "%"), t = encodeURIComponent(t).replace(/%25/g, "%"), e === t }, o.saveHash = function (e) { return o.isLastHash(e) ? !1 : (o.savedHashes.push(e), !0) }, o.getHashByIndex = function (e) { var t = null; return typeof e == "undefined" ? t = o.savedHashes[o.savedHashes.length - 1] : e < 0 ? t = o.savedHashes[o.savedHashes.length + e] : t = o.savedHashes[e], t }, o.discardedHashes = {}, o.discardedStates = {}, o.discardState = function (e, t, n) { var r = o.getHashByState(e), i; return i = { discardedState: e, backState: n, forwardState: t }, o.discardedStates[r] = i, !0 }, o.discardHash = function (e, t, n) { var r = { discardedHash: e, backState: n, forwardState: t }; return o.discardedHashes[e] = r, !0 }, o.discardedState = function (e) { var t = o.getHashByState(e), n; return n = o.discardedStates[t] || !1, n }, o.discardedHash = function (e) { var t = o.discardedHashes[e] || !1; return t }, o.recycleState = function (e) { var t = o.getHashByState(e); return o.discardedState(e) && delete o.discardedStates[t], !0 }, o.emulated.hashChange && (o.hashChangeInit = function () { o.checkerFunction = null; var t = "", r, i, u, a, f = Boolean(o.getHash()); return o.isInternetExplorer() ? (r = "historyjs-iframe", i = n.createElement("iframe"), i.setAttribute("id", r), i.setAttribute("src", "#"), i.style.display = "none", n.body.appendChild(i), i.contentWindow.document.open(), i.contentWindow.document.close(), u = "", a = !1, o.checkerFunction = function () { if (a) return !1; a = !0; var n = o.getHash(), r = o.getHash(i.contentWindow.document); return n !== t ? (t = n, r !== n && (u = r = n, i.contentWindow.document.open(), i.contentWindow.document.close(), i.contentWindow.document.location.hash = o.escapeHash(n)), o.Adapter.trigger(e, "hashchange")) : r !== u && (u = r, f && r === "" ? o.back() : o.setHash(r, !1)), a = !1, !0 }) : o.checkerFunction = function () { var n = o.getHash() || ""; return n !== t && (t = n, o.Adapter.trigger(e, "hashchange")), !0 }, o.intervalList.push(s(o.checkerFunction, o.options.hashChangeInterval)), !0 }, o.Adapter.onDomLoad(o.hashChangeInit)), o.emulated.pushState && (o.onHashChange = function (t) { var n = t && t.newURL || o.getLocationHref(), r = o.getHashByUrl(n), i = null, s = null, u = null, a; return o.isLastHash(r) ? (o.busy(!1), !1) : (o.doubleCheckComplete(), o.saveHash(r), r && o.isTraditionalAnchor(r) ? (o.Adapter.trigger(e, "anchorchange"), o.busy(!1), !1) : (i = o.extractState(o.getFullUrl(r || o.getLocationHref()), !0), o.isLastSavedState(i) ? (o.busy(!1), !1) : (s = o.getHashByState(i), a = o.discardedState(i), a ? (o.getHashByIndex(-2) === o.getHashByState(a.forwardState) ? o.back(!1) : o.forward(!1), !1) : (o.pushState(i.data, i.title, encodeURI(i.url), !1), !0)))) }, o.Adapter.bind(e, "hashchange", o.onHashChange), o.pushState = function (t, n, r, i) { r = encodeURI(r).replace(/%25/g, "%"); if (o.getHashByUrl(r)) throw new Error("History.js does not support states with fragment-identifiers (hashes/anchors)."); if (i !== !1 && o.busy()) return o.pushQueue({ scope: o, callback: o.pushState, args: arguments, queue: i }), !1; o.busy(!0); var s = o.createStateObject(t, n, r), u = o.getHashByState(s), a = o.getState(!1), f = o.getHashByState(a), l = o.getHash(), c = o.expectedStateId == s.id; return o.storeState(s), o.expectedStateId = s.id, o.recycleState(s), o.setTitle(s), u === f ? (o.busy(!1), !1) : (o.saveState(s), c || o.Adapter.trigger(e, "statechange"), !o.isHashEqual(u, l) && !o.isHashEqual(u, o.getShortUrl(o.getLocationHref())) && o.setHash(u, !1), o.busy(!1), !0) }, o.replaceState = function (t, n, r, i) { r = encodeURI(r).replace(/%25/g, "%"); if (o.getHashByUrl(r)) throw new Error("History.js does not support states with fragment-identifiers (hashes/anchors)."); if (i !== !1 && o.busy()) return o.pushQueue({ scope: o, callback: o.replaceState, args: arguments, queue: i }), !1; o.busy(!0); var s = o.createStateObject(t, n, r), u = o.getHashByState(s), a = o.getState(!1), f = o.getHashByState(a), l = o.getStateByIndex(-2); return o.discardState(a, s, l), u === f ? (o.storeState(s), o.expectedStateId = s.id, o.recycleState(s), o.setTitle(s), o.saveState(s), o.Adapter.trigger(e, "statechange"), o.busy(!1)) : o.pushState(s.data, s.title, s.url, !1), !0 }), o.emulated.pushState && o.getHash() && !o.emulated.hashChange && o.Adapter.onDomLoad(function () { o.Adapter.trigger(e, "hashchange") }) }, typeof o.init != "undefined" && o.init() }(window), function (e, t) { "use strict"; var n = e.console || t, r = e.document, i = e.navigator, s = !1, o = e.setTimeout, u = e.clearTimeout, a = e.setInterval, f = e.clearInterval, l = e.JSON, c = e.alert, h = e.History = e.History || {}, p = e.history; try { s = e.sessionStorage, s.setItem("TEST", "1"), s.removeItem("TEST") } catch (d) { s = !1 } l.stringify = l.stringify || l.encode, l.parse = l.parse || l.decode; if (typeof h.init != "undefined") throw new Error("History.js Core has already been loaded..."); h.init = function (e) { return typeof h.Adapter == "undefined" ? !1 : (typeof h.initCore != "undefined" && h.initCore(), typeof h.initHtml4 != "undefined" && h.initHtml4(), !0) }, h.initCore = function (d) { if (typeof h.initCore.initialized != "undefined") return !1; h.initCore.initialized = !0, h.options = h.options || {}, h.options.hashChangeInterval = h.options.hashChangeInterval || 100, h.options.safariPollInterval = h.options.safariPollInterval || 500, h.options.doubleCheckInterval = h.options.doubleCheckInterval || 500, h.options.disableSuid = h.options.disableSuid || !1, h.options.storeInterval = h.options.storeInterval || 1e3, h.options.busyDelay = h.options.busyDelay || 250, h.options.debug = h.options.debug || !1, h.options.initialTitle = h.options.initialTitle || r.title, h.options.html4Mode = h.options.html4Mode || !1, h.options.delayInit = h.options.delayInit || !1, h.intervalList = [], h.clearAllIntervals = function () { var e, t = h.intervalList; if (typeof t != "undefined" && t !== null) { for (e = 0; e < t.length; e++) f(t[e]); h.intervalList = null } }, h.debug = function () { (h.options.debug || !1) && h.log.apply(h, arguments) }, h.log = function () { var e = typeof n != "undefined" && typeof n.log != "undefined" && typeof n.log.apply != "undefined", t = r.getElementById("log"), i, s, o, u, a; e ? (u = Array.prototype.slice.call(arguments), i = u.shift(), typeof n.debug != "undefined" ? n.debug.apply(n, [i, u]) : n.log.apply(n, [i, u])) : i = "\n" + arguments[0] + "\n"; for (s = 1, o = arguments.length; s < o; ++s) { a = arguments[s]; if (typeof a == "object" && typeof l != "undefined") try { a = l.stringify(a) } catch (f) { } i += "\n" + a + "\n" } return t ? (t.value += i + "\n-----\n", t.scrollTop = t.scrollHeight - t.clientHeight) : e || c(i), !0 }, h.getInternetExplorerMajorVersion = function () { var e = h.getInternetExplorerMajorVersion.cached = typeof h.getInternetExplorerMajorVersion.cached != "undefined" ? h.getInternetExplorerMajorVersion.cached : function () { var e = 3, t = r.createElement("div"), n = t.getElementsByTagName("i"); while ((t.innerHTML = "<!--[if gt IE " + ++e + "]><i></i><![endif]-->") && n[0]); return e > 4 ? e : !1 }(); return e }, h.isInternetExplorer = function () { var e = h.isInternetExplorer.cached = typeof h.isInternetExplorer.cached != "undefined" ? h.isInternetExplorer.cached : Boolean(h.getInternetExplorerMajorVersion()); return e }, h.options.html4Mode ? h.emulated = { pushState: !0, hashChange: !0 } : h.emulated = { pushState: !Boolean(e.history && e.history.pushState && e.history.replaceState && !/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(i.userAgent) && !/AppleWebKit\/5([0-2]|3[0-2])/i.test(i.userAgent)), hashChange: Boolean(!("onhashchange" in e || "onhashchange" in r) || h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8) }, h.enabled = !h.emulated.pushState, h.bugs = { setHash: Boolean(!h.emulated.pushState && i.vendor === "Apple Computer, Inc." && /AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent)), safariPoll: Boolean(!h.emulated.pushState && i.vendor === "Apple Computer, Inc." && /AppleWebKit\/5([0-2]|3[0-3])/.test(i.userAgent)), ieDoubleCheck: Boolean(h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 8), hashEscape: Boolean(h.isInternetExplorer() && h.getInternetExplorerMajorVersion() < 7) }, h.isEmptyObject = function (e) { for (var t in e) if (e.hasOwnProperty(t)) return !1; return !0 }, h.cloneObject = function (e) { var t, n; return e ? (t = l.stringify(e), n = l.parse(t)) : n = {}, n }, h.getRootUrl = function () { var e = r.location.protocol + "//" + (r.location.hostname || r.location.host); if (r.location.port || !1) e += ":" + r.location.port; return e += "/", e }, h.getBaseHref = function () { var e = r.getElementsByTagName("base"), t = null, n = ""; return e.length === 1 && (t = e[0], n = t.href.replace(/[^\/]+$/, "")), n = n.replace(/\/+$/, ""), n && (n += "/"), n }, h.getBaseUrl = function () { var e = h.getBaseHref() || h.getBasePageUrl() || h.getRootUrl(); return e }, h.getPageUrl = function () { var e = h.getState(!1, !1), t = (e || {}).url || h.getLocationHref(), n; return n = t.replace(/\/+$/, "").replace(/[^\/]+$/, function (e, t, n) { return /\./.test(e) ? e : e + "/" }), n }, h.getBasePageUrl = function () { var e = h.getLocationHref().replace(/[#\?].*/, "").replace(/[^\/]+$/, function (e, t, n) { return /[^\/]$/.test(e) ? "" : e }).replace(/\/+$/, "") + "/"; return e }, h.getFullUrl = function (e, t) { var n = e, r = e.substring(0, 1); return t = typeof t == "undefined" ? !0 : t, /[a-z]+\:\/\//.test(e) || (r === "/" ? n = h.getRootUrl() + e.replace(/^\/+/, "") : r === "#" ? n = h.getPageUrl().replace(/#.*/, "") + e : r === "?" ? n = h.getPageUrl().replace(/[\?#].*/, "") + e : t ? n = h.getBaseUrl() + e.replace(/^(\.\/)+/, "") : n = h.getBasePageUrl() + e.replace(/^(\.\/)+/, "")), n.replace(/\#$/, "") }, h.getShortUrl = function (e) { var t = e, n = h.getBaseUrl(), r = h.getRootUrl(); return h.emulated.pushState && (t = t.replace(n, "")), t = t.replace(r, "/"), h.isTraditionalAnchor(t) && (t = "./" + t), t = t.replace(/^(\.\/)+/g, "./").replace(/\#$/, ""), t }, h.getLocationHref = function (e) { return e = e || r, e.URL === e.location.href ? e.location.href : e.location.href === decodeURIComponent(e.URL) ? e.URL : e.location.hash && decodeURIComponent(e.location.href.replace(/^[^#]+/, "")) === e.location.hash ? e.location.href : e.URL.indexOf("#") == -1 && e.location.href.indexOf("#") != -1 ? e.location.href : e.URL || e.location.href }, h.store = {}, h.idToState = h.idToState || {}, h.stateToId = h.stateToId || {}, h.urlToId = h.urlToId || {}, h.storedStates = h.storedStates || [], h.savedStates = h.savedStates || [], h.normalizeStore = function () { h.store.idToState = h.store.idToState || {}, h.store.urlToId = h.store.urlToId || {}, h.store.stateToId = h.store.stateToId || {} }, h.getState = function (e, t) { typeof e == "undefined" && (e = !0), typeof t == "undefined" && (t = !0); var n = h.getLastSavedState(); return !n && t && (n = h.createStateObject()), e && (n = h.cloneObject(n), n.url = n.cleanUrl || n.url), n }, h.getIdByState = function (e) { var t = h.extractId(e.url), n; if (!t) { n = h.getStateString(e); if (typeof h.stateToId[n] != "undefined") t = h.stateToId[n]; else if (typeof h.store.stateToId[n] != "undefined") t = h.store.stateToId[n]; else { for (; ;) { t = (new Date).getTime() + String(Math.random()).replace(/\D/g, ""); if (typeof h.idToState[t] == "undefined" && typeof h.store.idToState[t] == "undefined") break } h.stateToId[n] = t, h.idToState[t] = e } } return t }, h.normalizeState = function (e) { var t, n; if (!e || typeof e != "object") e = {}; if (typeof e.normalized != "undefined") return e; if (!e.data || typeof e.data != "object") e.data = {}; return t = {}, t.normalized = !0, t.title = e.title || "", t.url = h.getFullUrl(e.url ? e.url : h.getLocationHref()), t.hash = h.getShortUrl(t.url), t.data = h.cloneObject(e.data), t.id = h.getIdByState(t), t.cleanUrl = t.url.replace(/\??\&_suid.*/, ""), t.url = t.cleanUrl, n = !h.isEmptyObject(t.data), (t.title || n) && h.options.disableSuid !== !0 && (t.hash = h.getShortUrl(t.url).replace(/\??\&_suid.*/, ""), /\?/.test(t.hash) || (t.hash += "?"), t.hash += "&_suid=" + t.id), t.hashedUrl = h.getFullUrl(t.hash), (h.emulated.pushState || h.bugs.safariPoll) && h.hasUrlDuplicate(t) && (t.url = t.hashedUrl), t }, h.createStateObject = function (e, t, n) { var r = { data: e, title: t, url: n }; return r = h.normalizeState(r), r }, h.getStateById = function (e) { e = String(e); var n = h.idToState[e] || h.store.idToState[e] || t; return n }, h.getStateString = function (e) { var t, n, r; return t = h.normalizeState(e), n = { data: t.data, title: e.title, url: e.url }, r = l.stringify(n), r }, h.getStateId = function (e) { var t, n; return t = h.normalizeState(e), n = t.id, n }, h.getHashByState = function (e) { var t, n; return t = h.normalizeState(e), n = t.hash, n }, h.extractId = function (e) { var t, n, r, i; return e.indexOf("#") != -1 ? i = e.split("#")[0] : i = e, n = /(.*)\&_suid=([0-9]+)$/.exec(i), r = n ? n[1] || e : e, t = n ? String(n[2] || "") : "", t || !1 }, h.isTraditionalAnchor = function (e) { var t = !/[\/\?\.]/.test(e); return t }, h.extractState = function (e, t) { var n = null, r, i; return t = t || !1, r = h.extractId(e), r && (n = h.getStateById(r)), n || (i = h.getFullUrl(e), r = h.getIdByUrl(i) || !1, r && (n = h.getStateById(r)), !n && t && !h.isTraditionalAnchor(e) && (n = h.createStateObject(null, null, i))), n }, h.getIdByUrl = function (e) { var n = h.urlToId[e] || h.store.urlToId[e] || t; return n }, h.getLastSavedState = function () { return h.savedStates[h.savedStates.length - 1] || t }, h.getLastStoredState = function () { return h.storedStates[h.storedStates.length - 1] || t }, h.hasUrlDuplicate = function (e) { var t = !1, n; return n = h.extractState(e.url), t = n && n.id !== e.id, t }, h.storeState = function (e) { return h.urlToId[e.url] = e.id, h.storedStates.push(h.cloneObject(e)), e }, h.isLastSavedState = function (e) { var t = !1, n, r, i; return h.savedStates.length && (n = e.id, r = h.getLastSavedState(), i = r.id, t = n === i), t }, h.saveState = function (e) { return h.isLastSavedState(e) ? !1 : (h.savedStates.push(h.cloneObject(e)), !0) }, h.getStateByIndex = function (e) { var t = null; return typeof e == "undefined" ? t = h.savedStates[h.savedStates.length - 1] : e < 0 ? t = h.savedStates[h.savedStates.length + e] : t = h.savedStates[e], t }, h.getCurrentIndex = function () { var e = null; return h.savedStates.length < 1 ? e = 0 : e = h.savedStates.length - 1, e }, h.getHash = function (e) { var t = h.getLocationHref(e), n; return n = h.getHashByUrl(t), n }, h.unescapeHash = function (e) { var t = h.normalizeHash(e); return t = decodeURIComponent(t), t }, h.normalizeHash = function (e) { var t = e.replace(/[^#]*#/, "").replace(/#.*/, ""); return t }, h.setHash = function (e, t) { var n, i; return t !== !1 && h.busy() ? (h.pushQueue({ scope: h, callback: h.setHash, args: arguments, queue: t }), !1) : (h.busy(!0), n = h.extractState(e, !0), n && !h.emulated.pushState ? h.pushState(n.data, n.title, n.url, !1) : h.getHash() !== e && (h.bugs.setHash ? (i = h.getPageUrl(), h.pushState(null, null, i + "#" + e, !1)) : r.location.hash = e), h) }, h.escapeHash = function (t) { var n = h.normalizeHash(t); return n = e.encodeURIComponent(n), h.bugs.hashEscape || (n = n.replace(/\%21/g, "!").replace(/\%26/g, "&").replace(/\%3D/g, "=").replace(/\%3F/g, "?")), n }, h.getHashByUrl = function (e) { var t = String(e).replace(/([^#]*)#?([^#]*)#?(.*)/, "$2"); return t = h.unescapeHash(t), t }, h.setTitle = function (e) { var t = e.title, n; t || (n = h.getStateByIndex(0), n && n.url === e.url && (t = n.title || h.options.initialTitle)); try { r.getElementsByTagName("title")[0].innerHTML = t.replace("<", "&lt;").replace(">", "&gt;").replace(" & ", " &amp; ") } catch (i) { } return r.title = t, h }, h.queues = [], h.busy = function (e) { typeof e != "undefined" ? h.busy.flag = e : typeof h.busy.flag == "undefined" && (h.busy.flag = !1); if (!h.busy.flag) { u(h.busy.timeout); var t = function () { var e, n, r; if (h.busy.flag) return; for (e = h.queues.length - 1; e >= 0; --e) { n = h.queues[e]; if (n.length === 0) continue; r = n.shift(), h.fireQueueItem(r), h.busy.timeout = o(t, h.options.busyDelay) } }; h.busy.timeout = o(t, h.options.busyDelay) } return h.busy.flag }, h.busy.flag = !1, h.fireQueueItem = function (e) { return e.callback.apply(e.scope || h, e.args || []) }, h.pushQueue = function (e) { return h.queues[e.queue || 0] = h.queues[e.queue || 0] || [], h.queues[e.queue || 0].push(e), h }, h.queue = function (e, t) { return typeof e == "function" && (e = { callback: e }), typeof t != "undefined" && (e.queue = t), h.busy() ? h.pushQueue(e) : h.fireQueueItem(e), h }, h.clearQueue = function () { return h.busy.flag = !1, h.queues = [], h }, h.stateChanged = !1, h.doubleChecker = !1, h.doubleCheckComplete = function () { return h.stateChanged = !0, h.doubleCheckClear(), h }, h.doubleCheckClear = function () { return h.doubleChecker && (u(h.doubleChecker), h.doubleChecker = !1), h }, h.doubleCheck = function (e) { return h.stateChanged = !1, h.doubleCheckClear(), h.bugs.ieDoubleCheck && (h.doubleChecker = o(function () { return h.doubleCheckClear(), h.stateChanged || e(), !0 }, h.options.doubleCheckInterval)), h }, h.safariStatePoll = function () { var t = h.extractState(h.getLocationHref()), n; if (!h.isLastSavedState(t)) return n = t, n || (n = h.createStateObject()), h.Adapter.trigger(e, "popstate"), h; return }, h.back = function (e) { return e !== !1 && h.busy() ? (h.pushQueue({ scope: h, callback: h.back, args: arguments, queue: e }), !1) : (h.busy(!0), h.doubleCheck(function () { h.back(!1) }), p.go(-1), !0) }, h.forward = function (e) { return e !== !1 && h.busy() ? (h.pushQueue({ scope: h, callback: h.forward, args: arguments, queue: e }), !1) : (h.busy(!0), h.doubleCheck(function () { h.forward(!1) }), p.go(1), !0) }, h.go = function (e, t) { var n; if (e > 0) for (n = 1; n <= e; ++n) h.forward(t); else { if (!(e < 0)) throw new Error("History.go: History.go requires a positive or negative integer passed."); for (n = -1; n >= e; --n) h.back(t) } return h }; if (h.emulated.pushState) { var v = function () { }; h.pushState = h.pushState || v, h.replaceState = h.replaceState || v } else h.onPopState = function (t, n) { var r = !1, i = !1, s, o; return h.doubleCheckComplete(), s = h.getHash(), s ? (o = h.extractState(s || h.getLocationHref(), !0), o ? h.replaceState(o.data, o.title, o.url, !1) : (h.Adapter.trigger(e, "anchorchange"), h.busy(!1)), h.expectedStateId = !1, !1) : (r = h.Adapter.extractEventData("state", t, n) || !1, r ? i = h.getStateById(r) : h.expectedStateId ? i = h.getStateById(h.expectedStateId) : i = h.extractState(h.getLocationHref()), i || (i = h.createStateObject(null, null, h.getLocationHref())), h.expectedStateId = !1, h.isLastSavedState(i) ? (h.busy(!1), !1) : (h.storeState(i), h.saveState(i), h.setTitle(i), h.Adapter.trigger(e, "statechange"), h.busy(!1), !0)) }, h.Adapter.bind(e, "popstate", h.onPopState), h.pushState = function (t, n, r, i) { if (h.getHashByUrl(r) && h.emulated.pushState) throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors)."); if (i !== !1 && h.busy()) return h.pushQueue({ scope: h, callback: h.pushState, args: arguments, queue: i }), !1; h.busy(!0); var s = h.createStateObject(t, n, r); return h.isLastSavedState(s) ? h.busy(!1) : (h.storeState(s), h.expectedStateId = s.id, p.pushState(s.id, s.title, s.url), h.Adapter.trigger(e, "popstate")), !0 }, h.replaceState = function (t, n, r, i) { if (h.getHashByUrl(r) && h.emulated.pushState) throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors)."); if (i !== !1 && h.busy()) return h.pushQueue({ scope: h, callback: h.replaceState, args: arguments, queue: i }), !1; h.busy(!0); var s = h.createStateObject(t, n, r); return h.isLastSavedState(s) ? h.busy(!1) : (h.storeState(s), h.expectedStateId = s.id, p.replaceState(s.id, s.title, s.url), h.Adapter.trigger(e, "popstate")), !0 }; if (s) { try { h.store = l.parse(s.getItem("History.store")) || {} } catch (m) { h.store = {} } h.normalizeStore() } else h.store = {}, h.normalizeStore(); h.Adapter.bind(e, "unload", h.clearAllIntervals), h.saveState(h.storeState(h.extractState(h.getLocationHref(), !0))), s && (h.onUnload = function () { var e, t, n; try { e = l.parse(s.getItem("History.store")) || {} } catch (r) { e = {} } e.idToState = e.idToState || {}, e.urlToId = e.urlToId || {}, e.stateToId = e.stateToId || {}; for (t in h.idToState) { if (!h.idToState.hasOwnProperty(t)) continue; e.idToState[t] = h.idToState[t] } for (t in h.urlToId) { if (!h.urlToId.hasOwnProperty(t)) continue; e.urlToId[t] = h.urlToId[t] } for (t in h.stateToId) { if (!h.stateToId.hasOwnProperty(t)) continue; e.stateToId[t] = h.stateToId[t] } h.store = e, h.normalizeStore(), n = l.stringify(e); try { s.setItem("History.store", n) } catch (i) { if (i.code !== DOMException.QUOTA_EXCEEDED_ERR) throw i; s.length && (s.removeItem("History.store"), s.setItem("History.store", n)) } }, h.intervalList.push(a(h.onUnload, h.options.storeInterval)), h.Adapter.bind(e, "beforeunload", h.onUnload), h.Adapter.bind(e, "unload", h.onUnload)); if (!h.emulated.pushState) { h.bugs.safariPoll && h.intervalList.push(a(h.safariStatePoll, h.options.safariPollInterval)); if (i.vendor === "Apple Computer, Inc." || (i.appCodeName || "") === "Mozilla") h.Adapter.bind(e, "hashchange", function () { h.Adapter.trigger(e, "popstate") }), h.getHash() && h.Adapter.onDomLoad(function () { h.Adapter.trigger(e, "hashchange") }) } }, (!h.options || !h.options.delayInit) && h.init() }(window)