/**
 * SWFAddress 2.2: Deep linking for Flash and Ajax <http://www.asual.com/swfaddress/>
 *
 * SWFAddress is (c) 2006-2008 Rostislav Hristov and contributors
 * This software 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 _version = -1,
        _agent = navigator.userAgent,
        _ie = false, 
        _camino = false, 
        _safari = false, 
        _opera = false, 
        _firefox = false, 
        _netscape = false, 
        _mozilla = false;

    var _getVersion = function(s, i) {
        return parseFloat(_agent.substr(_agent.indexOf(s) + i));
    }

    if (_ie = /MSIE/.test(_agent))
        _version = _getVersion('MSIE', 4);

    if (_safari = /AppleWebKit/.test(_agent))
        _version = _getVersion('Safari', 7);

    if (_opera = /Opera/.test(_agent))
        _version = parseFloat(navigator.appVersion);

    if (_camino = /Camino/.test(_agent))
        _version = _getVersion('Camino', 7);

    if (_firefox = /Firefox/.test(_agent))
        _version = _getVersion('Firefox', 8);

    if (_netscape = /Netscape/.test(_agent))
        _version = _getVersion('Netscape', 9);

    if (_mozilla = /Mozilla/.test(_agent) && /rv:/.test(_agent))
        _version = _getVersion('rv:', 3);

    this.toString = function() {
        return '[class Browser]';
    }

    this.getVersion = function() {
        return _version;
    }

    this.isIE = function() {
        return _ie;
    }

    this.isSafari = function() {
        return _safari;
    }

    this.isOpera = function() {
        return _opera;
    }

    this.isCamino = function() {
        return _camino;
    }

    this.isFirefox = function() {
        return _firefox;
    }

    this.isNetscape = function() {
        return _netscape;
    }

    this.isMozilla = function() {
        return _mozilla;
    }
}

com.asual.util.Events = new function() {

    var DOM_LOADED = 'DOMContentLoaded', 
        STOP = 'onstop',
        _w = window,
        _d = document,
        _cache = [],
        _package = com.asual.util,
        _browser = _package.Browser;

    this.toString = function() {
        return '[class Events]';
    }

    this.addListener = function(obj, type, listener) {
        _cache.push({o: obj, t: type, l: listener});
        if (!(type == DOM_LOADED && (_browser.isIE() || _browser.isSafari()))) {
            if (obj.addEventListener)
                obj.addEventListener(type, listener, false);
            else if (obj.attachEvent)
                obj.attachEvent('on' + type, listener);
        }
    }

    this.removeListener = function(obj, type, listener) {
        for (var i = 0, e; e = _cache[i]; i++) {
            if (e.o == obj && e.t == type && e.l == listener) {
                _cache.splice(i, 1);
                break;
            }
        }
        if (!(type == DOM_LOADED && (_browser.isIE() || _browser.isSafari()))) {
            if (obj.removeEventListener)
                obj.removeEventListener(type, listener, false);
            else if (obj.detachEvent)
                obj.detachEvent('on' + type, listener);
        }
    }

    var _unload = function() {
        for (var i = 0, evt; evt = _cache[i]; i++) {
            if (evt.t != DOM_LOADED)
                _package.Events.removeListener(evt.o, evt.t, evt.l);
        }
    }

    var _unloadFix = function() {
        if (_d.readyState == 'interactive') {
            function stop() {
                _d.detachEvent(STOP, stop);
                _unload();
            };
            _d.attachEvent(STOP, stop);
            _w.setTimeout(function() {
                _d.detachEvent(STOP, stop);
            }, 0);
        }
    }

    if (_browser.isIE() || _browser.isSafari()) {
        (function (){
            try {
                if ((_browser.isIE() && _d.body) || !/loaded|complete/.test(_d.readyState))
                    _d.documentElement.doScroll('left');
            } catch(e) {
                return setTimeout(arguments.callee, 0);
            }
            for (var i = 0, e; e = _cache[i]; i++)
                if (e.t == DOM_LOADED) e.l.call(null);
        })();
    }

    if (_browser.isIE())
        _w.attachEvent('onbeforeunload', _unloadFix);

    this.addListener(_w, 'unload', _unload);
}

com.asual.util.Functions = new function() {

    this.toString = function() {
        return '[class Functions]';
    }

    this.extend = function(superclass, subclass) {

        function inheritance() {};
        inheritance.prototype = superclass.prototype;

        subclass.prototype = new inheritance();
        subclass.prototype.constructor = subclass;

        subclass.superConstructor = superclass;
        subclass.superClass = superclass.prototype;

        return subclass;
    }

    this.bind = function(method, object, param) {
        for (var i = 2, p, arr = []; p = arguments[i]; i++)
            arr.push(p);
        return function() {
            return method.apply(object, arr);
        }
    }
}

com.asual.util.WEBAddressEvent = function(type) {

    var _webaddress = com.asual.util.WEBAddress;

    this.toString = function() {
        return '[object WEBAddressEvent]';
    }

    this.type = type;

    this.target = [_webaddress][0];

    this.value = _webaddress.getValue();

    this.path = _webaddress.getPath();

    this.pathNames = _webaddress.getPathNames();

    this.parameters = {};

    var _parametersNames = _webaddress.getParameterNames();
    for (var i = 0, l = _parametersNames.length; i < l; i++)
        this.parameters[_parametersNames[i]] = _webaddress.getParameter(_parametersNames[i]);

    this.parametersNames = _parametersNames;
}

com.asual.util.WEBAddressEvent.INIT = 'init';

com.asual.util.WEBAddressEvent.CHANGE = 'change';

com.asual.util.WEBAddress = new function() {

    var ID = '',
        FUNCTION = 'function', 
        UNDEFINED = 'undefined',
        _package = com.asual.util, 
        _browser = _package.Browser, 
        _events = _package.Events, 
        _functions = _package.Functions,
        _version = _browser.getVersion(),
        _supported = false,
        _t = top, 
        _d = _t.document, 
        _h = _t.history, 
        _l = _t.location, 
        _st = setTimeout, 
        _dc = decodeURIComponent, 
        _ec = encodeURIComponent,
        _iframe,
        _form,
        _url,
        _title = _d.title, 
        _length = _h.length, 
        _silent = false,
        _loaded = false,
        _stack = [], 
        _listeners = {}, 
        _opts = {history: true, html: false, strict: true, tracker: '_trackDefault'};            

    if (_browser.isIE()) 
        _supported = _version >= 6;

    if (_browser.isSafari())
        _supported = _version >= 312;

    if (_browser.isOpera())
        _supported = _version >= 9.02;

    if (_browser.isCamino()) 
        _supported = _version >= 1;

    if (_browser.isFirefox())
        _supported = _version >= 1;

    if (_browser.isNetscape())
        _supported = _version >= 8;

    if (_browser.isMozilla())
        _supported = _version >= 1.8;

    if ((!_supported && _l.href.indexOf('#') != -1) || 
        (_browser.isSafari() && _version < 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 _getHash = function() {
        var index = _l.href.indexOf('#');
        return index != -1 ? _l.href.substr(index + 1) : '';
    }

    var _value = _getHash();

    var _strictCheck = function(value, force) {
        if (_opts.strict)
            value = force ? (value.substr(0, 1) != '/' ? '/' + value : value) : (value == '' ? '/' : value);
        return value;
    }

    var _ieLocal = function(value) {
        return (_browser.isIE() && _l.protocol == 'file:') ? _value.replace(/\?/, '%3F') : value;    
    }

    var _searchScript = function(el) {
        for (var i = 0, l = el.childNodes.length, s; i < l; i++) {
            if (el.childNodes[i].src)
                _url = String(el.childNodes[i].src);
            if (s = _searchScript(el.childNodes[i]))
                return s;
        }
    }

    var _titleCheck = function() {
        if (_browser.isIE() && _d.title != _title)
            this.setTitle(_title);
    }

    var _listen = function() {
        if (!_silent) {
            var hash = _getHash();
            if (_browser.isIE()) {
                if (_value != hash) {
                    if (_version < 7)
                        _l.reload();
                    else
                        this.setValue(hash);
                }
            } else if (_browser.isSafari() && _version < 523) {
                if (_length != _h.length) {
                    _length = _h.length;
                    if (typeof _stack[_length - 1] != UNDEFINED)
                        _value = _stack[_length - 1];
                    _update.call(this);
                }
            } else if (_value != hash) {
                _value = hash;
                _update.call(this);
            }
            _titleCheck.call(this);
        }
    }

    var _jsDispatch = function(type) {
        this.dispatchEvent(new _package.WEBAddressEvent(type));
        type = type.substr(0, 1).toUpperCase() + type.substr(1);
        if(typeof this['on' + type] == FUNCTION)
            this['on' + type]();
    }

    var _jsInit = function() {
        _jsDispatch.call(this, 'init');
    }

    var _jsChange = function() {
        _jsDispatch.call(this, 'change');
    }

    var _update = function() {
        _jsChange.call(this);
        _st(_functions.bind(_track, this), 10);
    }

    var _trackDefault = function(value) {
        if (typeof urchinTracker == FUNCTION) 
            urchinTracker(value);
        if (typeof pageTracker != UNDEFINED && typeof pageTracker._trackPageview == FUNCTION)
            pageTracker._trackPageview(value);
    }

    eval('var _trackDefault = ' + _trackDefault + ';');

    var _track = function() {
        if (typeof _opts.tracker != UNDEFINED && eval('typeof ' + _opts.tracker + ' != "' + UNDEFINED + '"')) {
            var fn = eval(_opts.tracker);
            if (typeof fn == FUNCTION)
                fn((_l.pathname + (/\/$/.test(_l.pathname) ? '' : '/') + this.getValue()).replace(/\/\//, '/').replace(/^\/$/, ''));
        }
    }

    var _htmlWrite = function() {
        var doc = _iframe.contentWindow.document;
        doc.open();
        doc.write('<script>var ' + ID + ' = "' + _ec(_getHash()) + '";</script>');
        doc.close();
    }

    var _htmlLoad = function() {
        var win = _iframe.contentWindow;
        var src = win.location.href;
        win.document.title = _d.title;
        _value = (_opts.html) ? (src.indexOf('?') > -1 ? _dc(src.substr(src.indexOf('?') + 1)) : '') : 
            (typeof win[ID] != UNDEFINED ? _dc(win[ID]) : '');
        if (_value != _getHash()) {
            _update.call(_package.WEBAddress);
            _l.hash = _ieLocal(_value);
        }
    }

    var _load = function() {
        if (!_loaded) {
            _loaded = true;
            var attr = 'id="' + ID + '" style="position:absolute;top:-9999px;"';
            if (_browser.isIE() && _version < 8) {
                _d.body.appendChild(_d.createElement('div')).innerHTML = '<iframe ' + attr + ' src="' + 
                    (_opts.html ? _url.replace(/\.js(\?.*)?$/, '.html') + '?' + _ec(_getHash()) : 'javascript:false;') + 
                    '" width="0" height="0"></iframe>';
                _iframe = _d.getElementById(ID);
                _st(function() {
                    _events.addListener(_iframe, 'load', _htmlLoad);            
                    if (!_opts.html && typeof _iframe.contentWindow[ID] == UNDEFINED) 
                        _htmlWrite();
                }, 10);
            } else if (_browser.isSafari()) {
                if (_version < 412) {
                    _d.body.innerHTML += '<form ' + attr + ' method="get"></form>';
                    _form = _d.getElementById(ID);
                }
                if (typeof _l[ID] == UNDEFINED) _l[ID] = {};
                if (typeof _l[ID][_l.pathname] != UNDEFINED) _stack = _l[ID][_l.pathname].split(',');
            }
            _st(_functions.bind(_jsInit, this), 1);
            _st(_functions.bind(_jsChange, this), 2);
            _st(_functions.bind(_track, this), 10);

            if (_browser.isIE() && _version >= 8) {
                _d.body.onhashchange = _functions.bind(_listen, this);
                setInterval(_functions.bind(_titleCheck, this), 50);
            } else {
                setInterval(_functions.bind(_listen, this), 50);
            }
        }
    }

    this.onInit = null;

    this.onChange = null;

    this.toString = function() {
        return '[class WEBAddress]';
    }

    this.back = function() {
        _h.back();
    }

    this.forward = function() {
        _h.forward();
    }

    this.up = function() {
        var path = SWFAddress.getPath();
        SWFAddress.setValue(path.substr(0, path.lastIndexOf('/', path.length - 2) + (path.substr(path.length - 1) == '/' ? 1 : 0)));
    }

    this.go = function(delta) {
        _h.go(delta);
    }

    this.addEventListener = function(type, listener) {
        if (typeof _listeners[type] == UNDEFINED)
            _listeners[type] = [];
        _listeners[type].push(listener);
    }

    this.removeEventListener = function(type, listener) {
        if (typeof _listeners[type] != UNDEFINED) {
            for (var i = 0, l; l = _listeners[type][i]; i++)
                if (l == listener) break;
            _listeners[type].splice(i, 1);
        }
    }

    this.dispatchEvent = function(event) {
        if (this.hasEventListener(event.type)) {
            event.target = this;
            for (var i = 0, l; l = _listeners[event.type][i]; i++)
                l(event);
            return true;           
        }
        return false;
    }

    this.hasEventListener = function(type) {
        return (typeof _listeners[type] != UNDEFINED && _listeners[type].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 _opts.strict;
    }

    this.setStrict = function(strict) {
        _opts.strict = strict;
    }

    this.getHistory = function() {
        return _opts.history;
    }

    this.setHistory = function(history) {
        _opts.history = history;
    }

    this.getTracker = function() {
        return _opts.tracker;
    }

    this.setTracker = function(tracker) {
        _opts.tracker = tracker;
    }

    this.getTitle = function() {
        return _d.title;
    }

    this.setTitle = function(title) {
        if (!_supported) return null;
        if (typeof title == UNDEFINED) return;
        if (title == 'null') title = '';
        _title = _d.title = title;
        _st(function() {
            if (_iframe && _iframe.contentWindow && _iframe.contentWindow.document && _iframe.contentWindow.title)
                _iframe.contentWindow.document.title = _title;
         }, 1000);
    }

    this.getStatus = function() {
        return _t.status;
    }

    this.setStatus = function(status) {
        if (typeof status == UNDEFINED) return;
        if (!_browser.isSafari()) {
            status = _strictCheck((status != 'null') ? status : '', true);
            if (status == '/') status = '';
            if (!(/http(s)?:\/\//.test(status))) {
                var index = _l.href.indexOf('#');
                status = (index == -1 ? _l.href : _l.href.substr(0, index)) + '#' + status;
            }
            _t.status = status;
        }
    }

    this.resetStatus = function() {
        _t.status = '';
    }

    this.getValue = function() {
        if (!_supported) return null;
        return _strictCheck(_value, false);
    }

    this.setValue = function(value) {
        if (!_supported) return null;
        if (typeof value == UNDEFINED) return;
        if (value == 'null') value = ''
        value = _strictCheck(value, true);
        if (value == '/') value = '';
        if (_value == value) return;
        _value = value;
        _silent = true;
        _update.call(_package.WEBAddress);
        _stack[_h.length] = _value;
        if (_browser.isSafari()) {
            if (_opts.history) {
                _l[ID][_l.pathname] = _stack.toString();
                _length = _h.length + 1;
                if (_version < 412) {
                    if (_l.search == '') {
                        _form.action = '#' + _value;
                        _form.submit();
                    }
                } else if (_version < 523 || _value == ''){
                    var evt = _d.createEvent('MouseEvents');
                    evt.initEvent('click', true, true);
                    var anchor = _d.createElement('a');
                    anchor.href = '#' + _value;
                    anchor.dispatchEvent(evt);                
                } else {
                    _l.hash = '#' + _value;
                }
            } else {
                _l.replace('#' + _value);
            }
        } else if (_value != _getHash()) {
            if (_opts.history)
                _l.hash = '#' + _ieLocal(_value);
            else
                _l.replace('#' + _value);
        }
        if ((_browser.isIE() && _version < 8) && _opts.history) {
            if (_opts.html) {
                var loc = _iframe.contentWindow.location;
                loc.assign(loc.pathname + '?' + _getHash());
            } else {
                _htmlWrite();
            }
        }
        if (_browser.isSafari())
            _st(function(){ _silent = false; }, 1);
        else
            _silent = false;
    }

    this.getPath = function() {
        var value = this.getValue();
        return (value.indexOf('?') != -1) ? value.split('?')[0] : value;
    }

    this.getPathNames = function() {
        var path = this.getPath();
        var names = path.split('/');
        if (path.substr(0, 1) == '/')
            names.splice(0, 1);
        if (path.substr(path.length - 1, 1) == '/')
            names.splice(names.length - 1, 1);
        return names;
    }

    this.getQueryString = function() {
        var value = this.getValue();
        var index = value.indexOf('?');
        return (index != -1 && index < value.length) ? value.substr(index + 1) : '';
    }

    this.getParameter = function(param) {
        var value = this.getValue();
        var index = value.indexOf('?');
        if (index != -1) {
            value = value.substr(index + 1);
            var params = value.split('&');
            var p, i = params.length;
            while(i--) {
                p = params[i].split('=');
                if (p[0] == param)
                    return p[1];
            }
        }
        return '';
    }

    this.getParameterNames = function() {
        var value = this.getValue();
        var index = value.indexOf('?');
        var names = [];
        if (index != -1) {
            value = value.substr(index + 1);
            if (value != '' && value.indexOf('=') != -1) {
                var params = value.split('&');
                var i = 0;
                while(i < params.length) {
                    names.push(params[i].split('=')[0]);
                    i++;
                }
            }
        }
        return names;
    }

    if (_supported) {

        for (var i = 1; i < _length; i++)
            _stack.push('');

        _stack.push(_getHash());

        if (_browser.isIE() && _l.hash != _getHash())
            _l.hash = '#' + _ieLocal(_getHash());

        _searchScript(document);
        var _qi = _url.indexOf('?');
        if (_url && _qi > -1) {
            var param, params = _url.substr(_qi + 1).split('&');
            for (var i = 0, p; p = params[i]; i++) {
                param = p.split('=');
                if (/^(history|html|strict)$/.test(param[0]))
                    _opts[param[0]] = (isNaN(param[1]) ? eval(param[1]) : (parseFloat(param[1]) > 0));
                if (/^tracker$/.test(param[0]))
                    _opts[param[0]] = param[1];
            }
        }
        if (/file:\/\//.test(_l.href)) _opts.html = false;

        var _ei = _url.indexOf('.js'), l;
        if (_url && _ei > -1) {
            while(_ei--) {
                l = _url.substr(_ei, 1);
                if (/(\/|\\)/.test(l)) break;    
                ID = l + ID;
            }
        }

        _titleCheck.call(this);

        if (window != _t)
            _events.addListener(_t, 'load', _functions.bind(_load, this));
        else
            _events.addListener(document, 'DOMContentLoaded', _functions.bind(_load, this));

    } else {
        _track();
    }
}

SWFAddressEvent = function(type) {

    SWFAddressEvent.superConstructor.apply(this, arguments);

    this.target = [SWFAddress][0];

    this.toString = function() {
        return '[object SWFAddressEvent]';
    }
}
com.asual.util.Functions.extend(com.asual.util.WEBAddressEvent, SWFAddressEvent);

SWFAddressEvent.INIT = 'init';

SWFAddressEvent.CHANGE = 'change';

SWFAddress = new function() {

    var UNDEFINED = 'undefined', 
        _t = top, 
        _l = _t.location, 
        _ref = this, 
        _ids = [], 
        _listeners = {}, 
        _package = com.asual.util, 
        _functions = _package.Functions, 
        _webaddress = _package.WEBAddress;

    for (var p in _webaddress)
        this[p] = _webaddress[p];

    var _jsDispatch = function(type) {
        this.dispatchEvent(new SWFAddressEvent(type));
        type = type.substr(0, 1).toUpperCase() + type.substr(1);
        if(typeof this['on' + type] == 'function')
            this['on' + type]();
    }

    var _init = function() {
        _jsDispatch.call(this, 'init');
    }

    var _change = function() {
        _swfChange();
        _jsDispatch.call(this, 'change');        
    }

    var _swfChange = function() {
        for (var i = 0, id, value = SWFAddress.getValue(), setter = 'setSWFAddressValue'; id = _ids[i]; i++) {
            var obj = document.getElementById(id);
            if (obj) {
                if (obj.parentNode && typeof obj.parentNode.so != UNDEFINED) {
                    obj.parentNode.so.call(setter, value);
                } else {
                    if (!(obj && typeof obj[setter] != UNDEFINED)) {
                        var objects = obj.getElementsByTagName('object');
                        var embeds = obj.getElementsByTagName('embed');
                        obj = ((objects[0] && typeof objects[0][setter] != UNDEFINED) ? 
                            objects[0] : ((embeds[0] && typeof embeds[0][setter] != UNDEFINED) ? 
                                embeds[0] : null));
                    }
                    if (obj)
                        obj[setter](value);
                } 
            } else if (obj = document[id]) {
                if (typeof obj[setter] != UNDEFINED)
                    obj[setter](value);
            }
        }
    }

    this.toString = function() {
        return '[class SWFAddress]';
    }

    this.addEventListener = function(type, listener) {
        if (typeof _listeners[type] == UNDEFINED)
            _listeners[type] = [];
        _listeners[type].push(listener);
    }

    this.removeEventListener = function(type, listener) {
        if (typeof _listeners[type] != UNDEFINED) {
            for (var i = 0, l; l = _listeners[type][i]; i++)
                if (l == listener) break;
            _listeners[type].splice(i, 1);
        }
    }

    this.dispatchEvent = function(event) {
        if (typeof _listeners[event.type] != UNDEFINED && _listeners[event.type].length) {
            event.target = this;
            for (var i = 0, l; l = _listeners[event.type][i]; i++)
                l(event);
            return true;           
        }
        return false;
    }

    this.hasEventListener = function(type) {
        return (typeof _listeners[type] != UNDEFINED && _listeners[type].length > 0);
    }

    this.href = function(url, target) {
        target = typeof target != UNDEFINED ? target : '_self';     
        if (target == '_self')
            self.location.href = url; 
        else if (target == '_top')
            _l.href = url; 
        else if (target == '_blank')
            window.open(url); 
        else
            _t.frames[target].location.href = url; 
    }

    this.popup = function(url, name, options, handler) {
        var popup = window.open(url, name, eval(options));
        eval(handler);
    }

    this.getIds = function() {
        return _ids;
    }

    this.getId = function(index) {
        return _ids[0];
    }

    this.setId = function(id) {
        _ids[0] = id;
    }

    this.addId = function(id) {
        this.removeId(id);
        _ids.push(id);
    }

    this.removeId = function(id) {
        for (var i = 0; i < _ids.length; i++) {
            if (id == _ids[i]) {
                _ids.splice(i, 1);
                break;
            }
        }
    }

    _webaddress.addEventListener('init', _functions.bind(_init, this));
    _webaddress.addEventListener('change', _functions.bind(_change, this));

    (function() {

        var _args;

        if (typeof FlashObject != UNDEFINED) SWFObject = FlashObject;
        if (typeof SWFObject != UNDEFINED && SWFObject.prototype && SWFObject.prototype.write) {
            var _s1 = SWFObject.prototype.write;
            SWFObject.prototype.write = function() {
                _args = arguments;
                if (this.getAttribute('version').major < 8) {
                    this.addVariable('$swfaddress', SWFAddress.getValue());
                    ((typeof _args[0] == 'string') ? 
                        document.getElementById(_args[0]) : _args[0]).so = this;
                }
                var success;
                if (success = _s1.apply(this, _args))
                    _ref.addId(this.getAttribute('id'));
                return success;
            }
        } 

        if (typeof swfobject != UNDEFINED) {
            var _s2r = swfobject.registerObject;
            swfobject.registerObject = function() {
                _args = arguments;
                _s2r.apply(this, _args);
                _ref.addId(_args[0]);
            }
            var _s2c = swfobject.createSWF;
            swfobject.createSWF = function() {
                _args = arguments;
                _s2c.apply(this, _args);
                _ref.addId(_args[0].id);
            }
            var _s2e = swfobject.embedSWF;
            swfobject.embedSWF = function() {
                _args = arguments;
                _s2e.apply(this, _args);
                _ref.addId(_args[8].id);
            }
        }

        if (typeof UFO != UNDEFINED) {
            var _u = UFO.create;
            UFO.create = function() {
                _args = arguments;
                _u.apply(this, _args);
                _ref.addId(_args[0].id);
            }
        }

        if (typeof AC_FL_RunContent != UNDEFINED) {
            var _a = AC_FL_RunContent;
            AC_FL_RunContent = function() {
                _args = arguments;        
                _a.apply(this, _args);
                for (var i = 0, l = _args.length; i < l; i++)
                    if (_args[i]== 'id') _ref.addId(_args[i+1]);
            }
        }

    })();
}


