if (/*@cc_on @if (@_jscript) @_jscript_version > 5.5 && @end@*/
    document.implementation &&
    document.implementation.hasFeature ('HTML', '1.0'))

/*@if (@_jscript) attachEvent ('on' + @else@*/ addEventListener (/*@end@*/ 'load', function () {
/************************************************************************/

function TabbedView (evt) {
    arguments.callee.prototype.handleEvent (evt);
    return arguments.callee;
}

TabbedView.initializeById = function (id) {
    var node = document.getElementById (id);
    if (node) {
        node./*@if (@_jscript) attachEvent ('on' + @else@*/ addEventListener (/*@end@*/ 'click', this, false);
        node = node.getElementsByTagName ('a')[0];
        if (node) {
/*@if (@_jscript)
            var evt = document.createEventObject ();
            node.fireEvent ('onclick', evt);
  @else@*/
            var evt = document.createEvent ('MouseEvents');
            evt.initEvent ('click', true, true);
            node.dispatchEvent (evt);
/*@end@*/
        }
    }
};

TabbedView.prototype = {
    uriExpression : /^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,
    
    handleEvent : function (evt) {
/*@if (@_jscript)
        var t = evt.srcElement;
        evt.returnValue = false;
  @else@*/
        var t = evt.target;
        evt.preventDefault ();
/*@end@*/
        
        if (t.nodeName == 'A' && t.parentNode.nodeName == 'LI') {
            var div = document.getElementById (this.uriExpression.exec (t.href)[9]);
            if (div) div.style.display = 'block';
            this.setClassName (t, true);
            this.deactivate (t.parentNode, 'previousSibling');
            this.deactivate (t.parentNode, 'nextSibling');
        }
    },
    
    deactivate : function (node, siblingName) {
        var div, m, n;
        for (m = node; m = m[siblingName]; ) {
            for (n = m.firstChild; n; n = n.nextSibling) {
                if (n.nodeName == 'A') {
                    this.setClassName (n, false);
                    div = document.getElementById (this.uriExpression.exec (n.href)[9]);
                    if (div) div.style.display = 'none';
                    break;
                }
            }
        }
    },
    
    setClassName : function (node, active) {
        if (node.nodeType == 1 /*Node.ELEMENT_NODE*/) {
            var className = ' ' + node.className + ' ';
            if (active) {
                if (className.indexOf (' active ') == -1) {
                    node.className += ' active';
                }
            } else {
                node.className = className.replace (/\s*active\s*/i, '');
            }
        }
    }
};

TabbedView.initializeById ('TabMenu');

/************************************************************************/
}, false);
