/** * 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));            return _39            /*            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])                }            }        }    }};