/** * SWFAddress 2.0: 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 _1 = false;    var _2 = -1;    var _3 = navigator.userAgent;    var _4 = false;    var _5 = false;    var _6 = false;    var _7 = false;    var _8 = false;    if (/MSIE/.test(_3)) {        _4 = true;        _2 = parseFloat(_3.substring(_3.indexOf("MSIE") + 4));        _1 = _2 >= 6;    } else {        if (/AppleWebKit/.test(_3)) {            _6 = true;            _2 = parseFloat(_3.substring(_3.indexOf("Safari") + 7));            _1 = _2 >= 312;        } else {            if (/Opera/.test(_3)) {                _7 = true;                _2 = parseFloat(navigator.appVersion);                _1 = _2 >= 9.02;            } else {                if (/Camino/.test(_3)) {                    _5 = true;                    _2 = parseFloat(_3.substring(_3.indexOf("Camino") + 7));                    _1 = _2 >= 1;                } else {                    if (/Firefox/.test(_3)) {                        _8 = true;                        _2 = parseFloat(_3.substring(_3.indexOf("Firefox") + 8));                        _1 = _2 >= 1;                    } else {                        if (/Netscape/.test(_3)) {                            _8 = true;                            _2 = parseFloat(_3.substring(_3.indexOf("Netscape") + 9));                            _1 = _2 >= 8;                        } else {                            if (/Mozilla/.test(_3) && /rv:/.test(_3)) {                                _8 = true;                                _2 = parseFloat(_3.substring(_3.indexOf("rv:") + 3));                                _1 = _2 >= 1.8;                            }                        }                    }                }            }        }    }    this.isSupported = function() {        return _1;    };    this.getVersion = function() {        return _2;    };    this.isIE = function() {        return _4;    };    this.isSafari = function() {        return _6;    };    this.isOpera = function() {        return _7;    };    this.isCamino = function() {        return _5;    };    this.isMozilla = function() {        return _8;    };};com.asual.util.Events = newfunction() {    var _9 = [];    var _a = com.asual.util.Browser;    var _b = "DOMContentLoaded";    if (_a.isIE() || _a.isSafari()) { (function() {            try {                if (_a.isIE() || !/loaded|complete/.test(document.readyState)) {                    document.documentElement.doScroll("left");                }            } catch(e) {                return setTimeout(arguments.callee, 0);            }            for (var i = 0, e; e = _9[i]; i++) {                if (e.t == _b) {                    e.l.call(null);                }            }        })();    }    this.addListener = function(_e, _f, _10) {        _9.push({            o: _e,            t: _f,            l: _10        });        if (_f == _b && (_a.isIE() || _a.isSafari())) {            return;        }        if (_e.addEventListener) {            _e.addEventListener(_f, _10, false);        } else {            if (_e.attachEvent) {                _e.attachEvent("on" + _f, _10);            }        }    };    this.removeListener = function(obj, _12, _13) {        for (var i = 0, e; e = _9[i]; i++) {            if (e.o == obj && e.t == _12 && e.l == _13) {                _9.splice(i, 1);                break;            }        }        if (_12 == _b && (_a.isIE() || _a.isSafari())) {            return;        }        if (obj.removeEventListener) {            obj.removeEventListener(_12, _13, false);        } else {            if (obj.detachEvent) {                obj.detachEvent("on" + _12, _13);            }        }    };    var _16 = function() {        for (var i = 0, evt; evt = _9[i]; i++) {            if (evt.t != _b) {                com.asual.util.Events.removeListener(evt.o, evt.t, evt.l);            }        }    };    this.addListener(window, "unload", _16);};SWFAddressEvent = function(_19) {    this.toString = function() {        return "[object SWFAddressEvent]";    };    this.type = _19;    this.target = [SWFAddress][0];    this.value = SWFAddress.getValue();    this.path = SWFAddress.getPath();    this.parameters = {};    var _1a = SWFAddress.getParameterNames();    for (var i = 0, n; n = _1a[i]; i++) {        this.parameters[n] = SWFAddress.getParameter(n);    }};SWFAddressEvent.INIT = "init";SWFAddressEvent.CHANGE = "change";SWFAddress = newfunction() {    var _1d = com.asual.util.Browser;    var _1e = _1d.isSupported();    var _d = top.document;    var _h = top.history;    var _l = top.location;    var _22,_23,_24,_js = "swfaddress.js";    var _26 = _d.title;    var _27 = _h.length;    var _28 = false;    var _29 = {};    var _2a = [];    var _2b = [];    var _2c = [];    _2c["history"] = true;    _2c["html"] = false;    _2c["strict"] = true;    _2c["tracker"] = "urchinTracker";    if ((!_1e && _l.href.indexOf("#") != -1) || (_1d.isSafari() && _1d.getVersion() < 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 _2d = function() {        var _2e = _l.href.indexOf("#");        if (_2e != -1) {            return _l.href.substring(_2e).replace(/^#/g, "");        }        return "";    };    var _2f = _2d();    var _30 = function(_31, _32) {        if (_2c["strict"]) {            if (_32) {                if (_31.substr(0, 1) != "/") {                    _31 = "/" + _31;                }                _31 = _31.replace(/^([^\?.]*[^\/])(\?|$)/, "$1/$2").replace(/\/\//, "/");            } else {                if (_31 == "") {                    _31 = "/";                }            }        }        return _31;    };    var _33 = function() {        if (_1d.isIE() && _d.title != _26) {            SWFAddress.setTitle(_26);        }    };    var _34 = function() {        if (!_28) {            if (_1d.isIE()) {                if (_2f != _2d()) {                    if (_1d.getVersion() < 7) {                        _l.reload();                    } else {                        SWFAddress.setValue(_2d());                    }                }            } else {                if (_1d.isSafari()) {                    if (_27 != _h.length) {                        _27 = _h.length;                        if (typeof _2a[_27 - 1] != "undefined") {                            _2f = _2a[_27 - 1];                        }                        _35();                    }                } else {                    if (_2f != _2d()) {                        _2f = _2d();                        _35();                    }                }            }            _33();        }    };    var _36 = function(_37) {        if (SWFAddress.hasEventListener(_37)) {            SWFAddress.dispatchEvent(new SWFAddressEvent(_37));        }        _37 = _37.substr(0, 1).toUpperCase() + _37.substring(1);        if (typeof SWFAddress["on" + _37] == "function") {            SWFAddress["on" + _37]();        }    };    var _38 = function() {        _36("init");    };    var _39 = function() {        _36("change");    };    var _3a = function() {        for (var i = 0, id; id = _2b[i]; i++) {            var obj = document.getElementById(id);            if (obj) {                if (obj.parentNode && typeof obj.parentNode.so != "undefined") {                    obj.parentNode.so.call("setSWFAddressValue", SWFAddress.getValue());                } else {                    obj = (obj && typeof obj.setSWFAddressValue != "undefined") ? obj: ((obj.getElementsByTagName("object")[0] && typeof obj.getElementsByTagName("object")[0].setSWFAddressValue != "undefined") ? obj.getElementsByTagName("object")[0] : ((obj.getElementsByTagName("embed")[0] && typeof obj.getElementsByTagName("embed")[0].setSWFAddressValue != "undefined") ? obj.getElementsByTagName("embed")[0] : null));                    if (obj) {                        obj.setSWFAddressValue(SWFAddress.getValue());                    }                }            }        }    };    var _35 = function() {        _3a();        _39();    };    var _3e = function() {        if (typeof _2c["tracker"] != "undefined" && eval("typeof " + _2c["tracker"] + " != \"undefined\"")) {            var fn = eval(_2c["tracker"]);            if (typeof fn == "function") {                fn((_l.pathname + SWFAddress.getValue()).replace(/\/\//, "/").replace(/^\/$/, ""));            }        }    };    var _40 = function() {        var doc = _22.contentWindow.document;        doc.open();        doc.write("<script>var swfaddress = \"" + _2d() + "\";</script>");        doc.close();    };    var _42 = function() {        if (_2c["html"]) {            var src = _22.contentWindow.location.href;            _2f = (src.indexOf("?") > -1) ? src.substring(src.indexOf("?") + 1) : "";        } else {            _2f = (typeof _22.contentWindow.swfaddress != "undefined") ? _22.contentWindow.swfaddress: "";        }        if (_2f != _2d()) {            _35();            _l.hash = _2f;        }    };    var _44 = function() {        var _45 = "id=\"swfaddress\" style=\"position:absolute;top:-9999px;\"";        if (_1d.isIE()) {            document.body.appendChild(document.createElement("div")).innerHTML = "<iframe " + _45 + " src=\"" + (_2c["html"] ? _24.replace(/\.js(\?.*)?$/, ".html") + "?" + _2d() : "javascript:false;") + "\"></iframe>";            _22 = document.getElementById("swfaddress");            setTimeout(function() {                if (!_2c["html"] && typeof _22.contentWindow.swfaddress == "undefined") {                    _40();                }                com.asual.util.Events.addListener(_22, "load", _42);            },            10);        } else {            if (_1d.isSafari()) {                if (_1d.getVersion() < 412) {                    document.body.innerHTML += "<form " + _45 + " method=\"get\"></form>";                    _23 = document.getElementById("swfaddress");                }                if (typeof _l.swfaddress == "undefined") {                    _l.swfaddress = {};                }                if (typeof _l.swfaddress[_l.pathname] != "undefined") {                    _2a = _l.swfaddress[_l.pathname].split(",");                }            } else {                if (_1d.isOpera() && _2b.length == 0) {                    document.body.innerHTML += "<embed " + _45 + " src=\"" + _24.replace(/\.js(\?.*)?$/, ".swf") + "\" type=\"application/x-shockwave-flash\" />";                }            }        }        setTimeout(_38, 1);        setTimeout(_39, 2);        setTimeout(_3e, 10);        setInterval(_34, 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(_46) {        _h.go(_46);    };    this.href = function(url, _48) {        _48 = typeof _48 != "undefined" ? _48: "_self";        switch (_48) {        case "_self":            self.location.href = url;            break;        case "_top":            _l.href = url;            break;        case "_blank":            window.open(url);            break;        default:            top.frames[_48].location.href = url;            break;        }    };    this.popup = function(url, _4a, _4b, _4c) {        var _4d = window.open(url, _4a, eval(_4b));        eval(_4c);    };    this.addEventListener = function(_4e, _4f) {        if (typeof _29[_4e] == "undefined") {            _29[_4e] = [];        }        _29[_4e].push(_4f);    };    this.removeEventListener = function(_50, _51) {        if (typeof _29[_50] != "undefined") {            for (var i = 0, l; l = _29[_50][i]; i++) {                if (l == _51) {                    break;                }            }            _29[_50].splice(i, 1);        }    };    this.dispatchEvent = function(_54) {        if (typeof _29[_54.type] != "undefined" && _29[_54.type].length) {            _54.target = this;            for (var i = 0, l; l = _29[_54.type][i]; i++) {                l(_54);            }            return true;        }        return false;    };    this.hasEventListener = function(_57) {        return (typeof _29[_57] != "undefined" && _29[_57].length > 0);    };    this.getStrict = function() {        return _2c["strict"];    };    this.setStrict = function(_58) {        _2c["strict"] = enabled;    };    this.getHistory = function() {        return _2c["history"];    };    this.setHistory = function(_59) {        _2c["history"] = _59;    };    this.getTracker = function() {        return _2c["tracker"];    };    this.setTracker = function(_5a) {        _2c["tracker"] = _5a;    };    this.getIds = function() {        return _2b;    };    this.getId = function(_5b) {        return _2b[0];    };    this.setId = function(id) {        _2b[0] = id;    };    this.addId = function(id) {        this.removeId(id);        _2b.push(id);    };    this.removeId = function(id) {        for (var i = 0, _60; _60 = _2b[i]; i++) {            if (id == _60) {                _2b.splice(i, 1);                break;            }        }    };    this.getTitle = function() {        return _d.title;    };    this.setTitle = function(_61) {        if (!_1e) {            return null;        }        if (typeof _61 == "undefined") {            return;        }        if (_61 == "null") {            _61 = "";        }        _26 = _d.title = _61;        if (_22 && _22.contentWindow) {            _22.contentWindow.document.title = _61;        }    };    this.getStatus = function() {        return top.status;    };    this.setStatus = function(_62) {        if (!_1e) {            return null;        }        if (typeof _62 == "undefined") {            return;        }        if (!_1d.isSafari()) {            if (_62 == "null") {                _62 = "";            }            _62 = _30(_62, true);            if (_62 == "/") {                _62 = "";            }            if (! (/http(s)?:\/\//.test(_62))) {                var _63 = _l.href.indexOf("#");                _62 = (_63 == -1 ? _l.href: _l.href.substr(0, _63)) + "#" + _62;            }            top.status = _62;        }    };    this.resetStatus = function() {        top.status = "";    };    this.getValue = function() {        if (!_1e) {            return null;        }        return _30(_2f, false);    };    this.setValue = function(_64) {        if (!_1e) {            return null;        }        if (typeof _64 == "undefined") {            return;        }        if (_64 == "null") {            _64 = "";        }        _64 = _30(_64, true);        if (_64 == "/") {            _64 = "";        }        if (_2f == _64) {            return;        }        _2f = _64;        _28 = true;        _35();        _2a[_h.length] = _2f;        if (_1d.isSafari()) {            if (_2c["history"]) {                _l.swfaddress[_l.pathname] = _2a.toString();                _27 = _h.length + 1;                if (_1d.getVersion() < 412) {                    if (_l.search == "") {                        _23.action = "#" + _2f;                        _23.submit();                    }                } else {                    var evt = document.createEvent("MouseEvents");                    evt.initEvent("click", true, true);                    var _66 = document.createElement("a");                    _66.href = "#" + _2f;                    _66.dispatchEvent(evt);                }            } else {                _l.replace("#" + _2f);            }        } else {            if (_2f != _2d()) {                if (_2c["history"]) {                    _l.hash = "#" + _2f;                } else {                    _l.replace("#" + _2f);                }            }        }        if (_1d.isIE() && _2c["history"]) {            if (_2c["html"]) {                _22.contentWindow.location.assign(_22.contentWindow.location.pathname + "?" + _2d());            } else {                _40();            }        }        setTimeout(_3e, 10);        _28 = false;    };    this.getPath = function() {        var _67 = this.getValue();        if (_67.indexOf("?") != -1) {            return _67.split("?")[0];        } else {            return _67;        }    };    this.getQueryString = function() {        var _68 = this.getValue();        var _69 = _68.indexOf("?");        if (_69 != -1 && _69 < _68.length) {            return _68.substr(_69 + 1);        }        return "";    };    this.getParameter = function(_6a) {        var _6b = this.getValue();        var _6c = _6b.indexOf("?");        if (_6c != -1) {            _6b = _6b.substr(_6c + 1);            var _6d = _6b.split("&");            var p,            i = _6d.length;            while (i--) {                p = _6d[i].split("=");                if (p[0] == _6a) {                    return p[1];                }            }        }        return "";    };    this.getParameterNames = function() {        var _70 = this.getValue();        var _71 = _70.indexOf("?");        var _72 = [];        if (_71 != -1) {            _70 = _70.substr(_71 + 1);            if (_70 != "" && _70.indexOf("=") != -1) {                var _73 = _70.split("&");                var i = 0;                while (i < _73.length) {                    _72.push(_73[i].split("=")[0]);                    i++;                }            }        }        return _72;    };    if (!_1e) {        return;    }    for (var i = 1; i < _27; i++) {        _2a.push("");    }    _2a.push(_l.hash.replace(/^#/g, ""));    if (_1d.isIE() && _l.hash != _2d()) {        _l.hash = "#" + _2d();    }    var _76 = document.getElementsByTagName("script");    for (var i = 0, s; s = _76[i]; i++) {	    _24 = "";        if (s.src.indexOf(_js) > -1) {            _24 = String(s.src);            break;        }    }    if ((qi = _24.indexOf("?")) > -1) {        var _78,        _79 = _24.substr(qi + 1).split("&");        for (var j = 0, p; p = _79[j]; j++) {            _78 = p.split("=");            if (/^(history|html|strict)$/.test(_78[0])) {                _2c[_78[0]] = (isNaN(_78[1]) ? eval(_78[1]) : (parseFloat(_78[1]) > 0));            }            if (/^tracker$/.test(_78[0])) {                _2c[_78[0]] = _78[1];            }        }    }    if (/file:\/\//.test(_l.href)) {        _2c["html"] = false;    }    _33();    com.asual.util.Events.addListener(document, "DOMContentLoaded", _44);};if (typeof swfobject != "undefined") {    SWFObject = swfobject;}if (typeof FlashObject != "undefined") {    SWFObject = FlashObject;}if (typeof SWFObject != "undefined") {    if (SWFObject.prototype && SWFObject.prototype.write) {        com.asual.SWFObjectWrite = SWFObject.prototype.write;        SWFObject.prototype.write = function() {            if (this.getAttribute("version").major < 8) {                this.addVariable("$swfaddress", SWFAddress.getValue()); ((typeof arguments[0] == "string") ? document.getElementById(arguments[0]) : arguments[0]).so = this;            }            if (success = com.asual.SWFObjectWrite.apply(this, arguments)) {                SWFAddress.addId(this.getAttribute("id"));            }            return success;        };    } else {        com.asual.SWFObjectRegisterObject = SWFObject.registerObject;        SWFObject.registerObject = function() {            com.asual.SWFObjectRegisterObject.apply(this, arguments);            SWFAddress.addId(arguments[0]);        };        com.asual.SWFObjectCreateSWF = SWFObject.createSWF;        SWFObject.createSWF = function() {            com.asual.SWFObjectCreateSWF.apply(this, arguments);            SWFAddress.addId(arguments[0].id);        };        com.asual.SWFObjectEmbedSWF = SWFObject.embedSWF;        SWFObject.embedSWF = function() {            com.asual.SWFObjectEmbedSWF.apply(this, arguments);            SWFAddress.addId(arguments[8].id);        };    }}if (typeof UFO != "undefined") {    com.asual.UFOCreate = UFO.create;    UFO.create = function() {        com.asual.UFOCreate.apply(this, arguments);        SWFAddress.addId(arguments[0].id);    };}if (typeof AC_FL_RunContent != "undefined") {    com.asual.AC_FL_RunContent = AC_FL_RunContent;    AC_FL_RunContent = function() {        com.asual.AC_FL_RunContent.apply(this, arguments);        for (var i = 0, a; a = arguments[i]; i++) {            if (a == "id") {                SWFAddress.addId(arguments[i + 1]);                break;            }        }    };}