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