/** * SWFAddress 2.1: Deep linking for Flash and Ajax - http://www.asual.com/swfaddress/ * * SWFAddress is (c) 2006-2007 Rostislav Hristov and is released under the MIT License: * http://www.opensource.org/licenses/mit-license.php * */
if (typeof com == "undefined") { var com = {} } if (typeof com.asual == "undefined") { com.asual = {} } if (typeof com.asual.util == "undefined") { com.asual.util = {} } com.asual.util.Browser = new function() { var J = -1; var I = navigator.userAgent; var H = false, F = false, E = false, D = false, C = false, B = false, A = false; var G = function(L, K) { return parseFloat(I.substr(I.indexOf(L) + K)) }; if (H = /MSIE/.test(I)) { J = G("MSIE", 4) } if (E = /AppleWebKit/.test(I)) { J = G("Safari", 7) } if (D = /Opera/.test(I)) { J = parseFloat(navigator.appVersion) } if (F = /Camino/.test(I)) { J = G("Camino", 7) } if (C = /Firefox/.test(I)) { J = G("Firefox", 8) } if (B = /Netscape/.test(I)) { J = G("Netscape", 9) } if (A = /Mozilla/.test(I) && /rv:/.test(I)) { J = G("rv:", 3) } this.getVersion = function() { return J }; this.isIE = function() { return H }; this.isSafari = function() { return E }; this.isOpera = function() { return D }; this.isCamino = function() { return F }; this.isFirefox = function() { return C }; this.isNetscape = function() { return B }; this.isMozilla = function() { return A } }; com.asual.util.Events = new function() { var B = []; var A = com.asual.util.Browser; var D = "DOMContentLoaded"; if (A.isIE() || A.isSafari()) { (function() { try { if (A.isIE() || !/loaded|complete/.test(document.readyState)) { document.documentElement.doScroll("left") } } catch (F) { return setTimeout(arguments.callee, 0) } for (var E = 0, F; F = B[E]; E++) { if (F.t == D) { F.l.call(null) } } })() } this.addListener = function(G, F, E) { B.push({ o: G, t: F, l: E }); if (!(F == D && (A.isIE() || A.isSafari()))) { if (G.addEventListener) { G.addEventListener(F, E, false) } else { if (G.attachEvent) { G.attachEvent("on" + F, E) } } } }; this.removeListener = function(I, G, E) { for (var F = 0, H; H = B[F]; F++) { if (H.o == I && H.t == G && H.l == E) { B.splice(F, 1); break } } if (!(G == D && (A.isIE() || A.isSafari()))) { if (I.removeEventListener) { I.removeEventListener(G, E, false) } else { if (I.detachEvent) { I.detachEvent("on" + G, E) } } } }; var C = function() { for (var F = 0, E; E = B[F]; F++) { if (E.t != D) { com.asual.util.Events.removeListener(E.o, E.t, E.l) } } }; this.addListener(window, "unload", C) }; SWFAddressEvent = function(C) { this.toString = function() { return "[object SWFAddressEvent]" }; this.type = C; this.target = [SWFAddress][0]; this.value = SWFAddress.getValue(); this.path = SWFAddress.getPath(); this.pathNames = SWFAddress.getPathNames(); this.parameters = {}; var B = SWFAddress.getParameterNames(); for (var D = 0, A = B.length; D < A; D++) { this.parameters[B[D]] = SWFAddress.getParameter(B[D]) } this.parametersNames = B }; SWFAddressEvent.INIT = "init"; SWFAddressEvent.CHANGE = "change"; SWFAddress = new function() { var _21 = com.asual.util.Browser; var _22 = com.asual.util.Events; var _23 = _21.getVersion(); var _24 = false; if (_21.isIE()) { _24 = _23 >= 6 } if (_21.isSafari()) { _24 = _23 >= 312 } if (_21.isOpera()) { _24 = _23 >= 9.02 } if (_21.isCamino()) { _24 = _23 >= 1 } if (_21.isFirefox()) { _24 = _23 >= 1 } if (_21.isNetscape()) { _24 = _23 >= 8 } if (_21.isMozilla()) { _24 = _23 >= 1.8 } var _t = top; var _d = _t.document; var _h = _t.history; var _l = _t.location; var _st = setTimeout; var _2a = "function"; var _2b = "undefined"; var _2c = "swfaddress"; var _2d, _2e, _2f; var _30 = _d.title; var _31 = _h.length; var _32 = false; var _33 = {}; var _34 = []; var _35 = []; var _36 = {}; _36.history = true; _36.html = false; _36.strict = true; _36.tracker = "_trackDefault"; if ((!_24 && _l.href.indexOf("#") != -1) || (_21.isSafari() && _23 < 412 && _l.href.indexOf("#") != -1 && _l.search != "")) { _d.open(); _d.write('<html><head><meta http-equiv="refresh" content="0;url=' + _l.href.substr(0, _l.href.indexOf("#")) + '" /></head></html>'); _d.close() } var _37 = function() { var _38 = _l.href.indexOf("#"); if (_38 != -1) { var _39 = unescape(_l.href.substr(_38 + 1)); if (/^[a-z0-9 ,=_&\-\.\?\+\/]*$/i.test(_39)) { return _39 } else { _l.replace(_l.href.substr(0, _38)) } } return "" }; var _3a = _37(); var _3b = function(_3c, _3d) { if (_36.strict) { _3c = _3d ? (_3c.substr(0, 1) != "/" ? "/" + _3c : _3c) : (_3c == "" ? "/" : _3c) } return _3c }; var _3e = function(_3f) { return (_21.isIE() && _l.protocol == "file:") ? _3a.replace(/\?/, "%3F") : _3f }; var _40 = function(el) { if (el.src && /swfaddress\.js(\?.*)?$/.test(el.src)) { return el } for (var i = 0, l = el.childNodes.length, s; i < l; i++) { if (s = _40(el.childNodes[i])) { return s } } }; var _45 = function() { if (_21.isIE() && _d.title != _30) { SWFAddress.setTitle(_30) } }; var _46 = function() { if (!_32) { var _47 = _37(); if (_21.isIE()) { if (_3a != _47) { if (_23 < 7) { _l.reload() } else { SWFAddress.setValue(_47) } } } else { if (_21.isSafari() && _23 < 523) { if (_31 != _h.length) { _31 = _h.length; if (typeof _34[_31 - 1] != _2b) { _3a = _34[_31 - 1] } _48() } } else { if (_3a != _47) { _3a = _47; _48() } } } _45() } }; var _49 = function(_4a) { if (SWFAddress.hasEventListener(_4a)) { SWFAddress.dispatchEvent(new SWFAddressEvent(_4a)) } _4a = _4a.substr(0, 1).toUpperCase() + _4a.substr(1); if (typeof SWFAddress["on" + _4a] == _2a) { SWFAddress["on" + _4a]() } }; var _4b = function() { _49("init") }; var _4c = function() { _49("change") }; var _4d = function() { for (var i = 0, id, _50 = SWFAddress.getValue(), _51 = "setSWFAddressValue"; id = _35[i]; i++) { var obj = document.getElementById(id); if (obj) { if (obj.parentNode && typeof obj.parentNode.so != _2b) { obj.parentNode.so.call(_51, _50) } else { if (!(obj && typeof obj[_51] != _2b)) { var _53 = obj.getElementsByTagName("object"); var _54 = obj.getElementsByTagName("embed"); obj = ((_53[0] && typeof _53[0][_51] != _2b) ? _53 : ((_54[0] && typeof _54[0][_51] != _2b) ? _54[0] : null)) } if (obj) { obj[_51](_50) } } } else { if (obj = document[id]) { if (typeof obj[_51] != _2b) { obj[_51](_50) } } } } }; var _48 = function() { _4d(); _4c(); _st(_55, 10) }; var _56 = function(_57) { if (typeof urchinTracker == _2a) { urchinTracker(_57) } if (typeof pageTracker != _2b && typeof pageTracker._trackPageview == _2a) { pageTracker._trackPageview(_57) } }; eval("var _trackDefault = " + _56 + ";"); var _55 = function() { if (typeof _36.tracker != _2b && eval("typeof " + _36.tracker + ' != "' + _2b + '"')) { var fn = eval(_36.tracker); if (typeof fn == _2a) { fn((_l.pathname + (/\/$/.test(_l.pathname) ? "" : "/") + SWFAddress.getValue()).replace(/\/\//, "/").replace(/^\/$/, "")) } } }; var _59 = function() { var doc = _2d.contentWindow.document; doc.open(); doc.write("<script>var " + _2c + ' = "' + _37() + '";<\/script>'); doc.close() }; var _5b = function() { var win = _2d.contentWindow; if (_36.html) { var src = win.location.href; _3a = (src.indexOf("?") > -1) ? src.substr(src.indexOf("?") + 1) : "" } else { _3a = (typeof win[_2c] != _2b) ? win[_2c] : "" } win.document.title = _d.title; if (_3a != _37()) { _48(); _l.hash = _3e(_3a) } }; var _5e = function() { var _5f = 'id="' + _2c + '" style="position:absolute;top:-9999px;"'; if (_21.isIE()) { document.body.appendChild(document.createElement("div")).innerHTML = "<iframe " + _5f + ' src="' + (_36.html ? _2f.replace(/\.js(\?.*)?$/, ".html") + "?" + _37() : "javascript:false;") + '" width="0" height="0"></iframe>'; _2d = document.getElementById(_2c); _st(function() { _22.addListener(_2d, "load", _5b); if (!_36.html && typeof _2d.contentWindow[_2c] == _2b) { _59() } }, 10) } else { if (_21.isSafari()) { if (_23 < 412) { document.body.innerHTML += "<form " + _5f + ' method="get"></form>'; _2e = document.getElementById(_2c) } if (typeof _l[_2c] == _2b) { _l[_2c] = {} } if (typeof _l[_2c][_l.pathname] != _2b) { _34 = _l[_2c][_l.pathname].split(",") } } else { if (_21.isOpera() && _35.length == 0 && typeof navigator.plugins["Shockwave Flash"] == "object") { document.body.innerHTML += "<embed " + _5f + ' src="' + _2f.replace(/\.js(\?.*)?$/, ".swf") + '" type="application/x-shockwave-flash" />' } } } _st(_4b, 1); _st(_4c, 2); _st(_55, 10); setInterval(_46, 50) }; this.onInit = null; this.onChange = null; this.toString = function() { return "[class SWFAddress]" }; this.back = function() { _h.back() }; this.forward = function() { _h.forward() }; this.go = function(_60) { _h.go(_60) }; this.href = function(url, _62) { _62 = (typeof _62 != _2b) ? _62 : "_self"; if (_62 == "_self") { self.location.href = url } if (_62 == "_top") { _l.href = url } if (_62 == "_blank") { window.open(url) } else { _t.frames[_62].location.href = url } }; this.popup = function(url, _64, _65, _66) { var _67 = window.open(url, _64, eval(_65)); eval(_66) }; this.addEventListener = function(_68, _69) { if (typeof _33[_68] == _2b) { _33[_68] = [] } _33[_68].push(_69) }; this.removeEventListener = function(_6a, _6b) { if (typeof _33[_6a] != _2b) { for (var i = 0, l; l = _33[_6a][i]; i++) { if (l == _6b) { break } } _33[_6a].splice(i, 1) } }; this.dispatchEvent = function(_6e) { if (typeof _33[_6e.type] != _2b && _33[_6e.type].length) { _6e.target = this; for (var i = 0, l; l = _33[_6e.type][i]; i++) { l(_6e) } return true } return false }; this.hasEventListener = function(_71) { return (typeof _33[_71] != _2b && _33[_71].length > 0) }; this.getBaseURL = function() { var url = _l.href; if (url.indexOf("#") != -1) { url = url.substr(0, url.indexOf("#")) } if (url.substr(url.length - 1) == "/") { url = url.substr(0, url.length - 1) } return url }; this.getStrict = function() { return _36.strict }; this.setStrict = function(_73) { _36.strict = _73 }; this.getHistory = function() { return _36.history }; this.setHistory = function(_74) { _36.history = _74 }; this.getTracker = function() { return _36.tracker }; this.setTracker = function(_75) { _36.tracker = _75 }; this.getIds = function() { return _35 }; this.getId = function(_76) { return _35[0] }; this.setId = function(id) { _35[0] = id }; this.addId = function(id) { this.removeId(id); _35.push(id) }; this.removeId = function(id) { for (var i = 0; i < _35.length; i++) { if (id == _35[i]) { _35.splice(i, 1); break } } }; this.getTitle = function() { return _d.title }; this.setTitle = function(_7b) { if (!_24) { return null } if (typeof _7b == _2b) { return } if (_7b == "null") { _7b = "" } _30 = _d.title = _7b; _st(function() { if (_2d && _2d.contentWindow && _2d.contentWindow.document && _2d.contentWindow.title) { _2d.contentWindow.document.title = _30 } }, 1000) }; this.getStatus = function() { return _t.status }; this.setStatus = function(_7c) { if (!_24) { return null } if (typeof _7c == _2b) { return } if (!_21.isSafari()) { _7c = _3b((_7c != "null") ? _7c : "", true); if (_7c == "/") { _7c = "" } if (!(/http(s)?:\/\//.test(_7c))) { var _7d = _l.href.indexOf("#"); _7c = (_7d == -1 ? _l.href : _l.href.substr(0, _7d)) + "#" + _7c } _t.status = _7c } }; this.resetStatus = function() { _t.status = "" }; this.getValue = function() { if (!_24) { return null } return _3b(_3a, false) }; this.setValue = function(_7e) { if (!_24) { return null } if (typeof _7e == _2b) { return } if (_7e == "null") { _7e = "" } _7e = _3b(_7e, true); if (_7e == "/") { _7e = "" } if (_3a == _7e) { return } _3a = _7e; _32 = true; _48(); _34[_h.length] = _3a; if (_21.isSafari()) { if (_36.history) { _l[_2c][_l.pathname] = _34.toString(); _31 = _h.length + 1; if (_23 < 412) { if (_l.search == "") { _2e.action = "#" + _3a; _2e.submit() } } else { if (_23 < 523) { var evt = document.createEvent("MouseEvents"); evt.initEvent("click", true, true); var _80 = document.createElement("a"); _80.href = "#" + _3a; _80.dispatchEvent(evt) } else { _l.hash = "#" + _3a } } } else { _l.replace("#" + _3a) } } else { if (_3a != _37()) { if (_36.history) { _l.hash = "#" + _3e(_3a) } else { _l.replace("#" + _3a) } } } if (_21.isIE() && _36.history) { if (_36.html) { var loc = _2d.contentWindow.location; loc.assign(loc.pathname + "?" + _37()) } else { _59() } } if (_21.isSafari()) { _st(function() { _32 = false }, 1) } else { _32 = false } }; this.getPath = function() { var _82 = this.getValue(); return (_82.indexOf("?") != -1) ? _82.split("?")[0] : _82 }; this.getPathNames = function() { var _83 = SWFAddress.getPath(); var _84 = _83.split("/"); if (_83.substr(0, 1) == "/") { _84.splice(0, 1) } if (_83.substr(_83.length - 1, 1) == "/") { _84.splice(_84.length - 1, 1) } return _84 }; this.getQueryString = function() { var _85 = this.getValue(); var _86 = _85.indexOf("?"); return (_86 != -1 && _86 < _85.length) ? _85.substr(_86 + 1) : "" }; this.getParameter = function(_87) { var _88 = this.getValue(); var _89 = _88.indexOf("?"); if (_89 != -1) { _88 = _88.substr(_89 + 1); var _8a = _88.split("&"); var p, i = _8a.length; while (i--) { p = _8a[i].split("="); if (p[0] == _87) { return p[1] } } } return "" }; this.getParameterNames = function() { var _8d = this.getValue(); var _8e = _8d.indexOf("?"); var _8f = []; if (_8e != -1) { _8d = _8d.substr(_8e + 1); if (_8d != "" && _8d.indexOf("=") != -1) { var _90 = _8d.split("&"); var i = 0; while (i < _90.length) { _8f.push(_90[i].split("=")[0]); i++ } } } return _8f }; if (_24) { for (var i = 1; i < _31; i++) { _34.push("") } _34.push(_37()); if (_21.isIE() && _l.hash != _37()) { _l.hash = "#" + _3e(_37()) } try { _2f = String(_40(document).src); var qi = _2f.indexOf("?"); if (_2f && qi > -1) { var _94, _95 = _2f.substr(qi + 1).split("&"); for (var i = 0, p; p = _95[i]; i++) { _94 = p.split("="); if (/^(history|html|strict)$/.test(_94[0])) { _36[_94[0]] = (isNaN(_94[1]) ? eval(_94[1]) : (parseFloat(_94[1]) > 0)) } if (/^tracker$/.test(_94[0])) { _36[_94[0]] = _94[1] } } } } catch (e) { } if (/file:\/\//.test(_l.href)) { _36.html = false } _45(); _22.addListener(document, "DOMContentLoaded", _5e) } else { _55() } }; new function() { var C, B; var A = "undefined"; if (typeof swfobject != A) { SWFObject = swfobject } if (typeof FlashObject != A) { SWFObject = FlashObject } if (typeof SWFObject != A) { if (SWFObject.prototype && SWFObject.prototype.write) { C = SWFObject.prototype.write; SWFObject.prototype.write = function() { B = arguments; if (this.getAttribute("version").major < 8) { this.addVariable("$swfaddress", SWFAddress.getValue()); ((typeof B[0] == "string") ? document.getElementById(B[0]) : B[0]).so = this } var D; if (D = C.apply(this, B)) { SWFAddress.addId(this.getAttribute("id")) } return D } } else { C = SWFObject.registerObject; SWFObject.registerObject = function() { B = arguments; C.apply(this, B); SWFAddress.addId(B[0]) }; C = SWFObject.createSWF; SWFObject.createSWF = function() { B = arguments; C.apply(this, B); SWFAddress.addId(B[0].id) }; C = SWFObject.embedSWF; SWFObject.embedSWF = function() { B = arguments; C.apply(this, B); SWFAddress.addId(B[8].id) } } } if (typeof UFO != A) { C = UFO.create; UFO.create = function() { B = arguments; C.apply(this, B); SWFAddress.addId(B[0].id) } } if (typeof AC_FL_RunContent != A) { C = AC_FL_RunContent; AC_FL_RunContent = function() { B = arguments; C.apply(this, B); for (var E = 0, D = B.length; E < D; E++) { if (B[E] == "id") { SWFAddress.addId(B[E + 1]) } } } } };