/**
 * @name        Global Initialisation
 * @overview    An automated documentation publishing system for JavaScript.
 * @version        0.1
 * @revision    2007-06-01 00:00:00
 * @author        Michael Ord <a href="mailto:michael.ord@think.eu">michael.ord@think.eu</a>
 */
// import the enhance.css file, as JavaScript is enabled in the browser
YAHOO.util.Event.onAvailable ('iRoot', function ( ) {
    ThinkCo.Enhance ( 'enhance' );
} );
var windowWidth        = null;
function windowResize ( ev, obj ) {
    var tmp_width    = YAHOO.util.Dom.getClientWidth ();
    var rounded        = Math.round ( tmp_width / 100 ) * 100;
    if ( rounded < 800 ) {
        rounded        = 800;
    }
    if ( rounded != windowWidth ) {
        YAHOO.util.Dom.addClass       ( 'iRoot', 'width' + rounded );
        YAHOO.util.Dom.removeClass ( 'iRoot', 'width' + windowWidth );
        windowWidth    = rounded;
    }
}
YAHOO.util.Event.addListener ( window, "resize", windowResize );
/**
 * @function    PageLoad_Init
 * @description    Toggles the class of elements either on or off
 */
function PageLoad_Init () {
    PageLoad_Init_Corners ( )
    ThinkCo.component.Collapse ( );
    windowResize ();
    var addSpans = function ( arr )
    {
        if (arr)
        {
            for ( var i = 0; i < arr.length; i++ )
            {
                var link    = arr [ i ]
                if ( YAHOO.util.Dom.hasClass ( link, 'jsToggle' ) ) {
                    continue;
                }
                span        = YAHOO.util.Dom.create ( 'span', { className : 'arrow' }, '\u00a0' );
                link.appendChild(span, link.firstChild );
            }
        }
    }
    addSpans ( YAHOO.util.Dom.getElementsBySelector ('h4 a') );
    addSpans ( YAHOO.util.Dom.getElementsBySelector ('h3 a') );
    addSpans ( YAHOO.util.Dom.getElementsBySelector ('h2 a') );
    var tabs    = YAHOO.util.Dom.getElementsBySelector ('ul.nav li a.tab');
    var activeTab  = (tabs.length > 0 ? 1 : 0);
    var _tab = function (ev,obj){
        activeTab   =   activeTab == 1 ? 2 : 1;  
        var tabs    = YAHOO.util.Dom.getElementsByClassName ('tab', 'a', this.parentNode.parentNode );
        for ( var i = 0; i < tabs.length; i++ ) {
            var link    = tabs [ i ];
            var href    = link.href.toString().split ( '#' )
            if ( href.length ) {
                var el    = YAHOO.util.Dom.get(href[1])
                if ( el ) {
                    if ( link==this ) {
                        YAHOO.util.Dom.removeClass(el,'jsHide');
                        YAHOO.util.Dom.addClass(link,'here');
                    } else {
                        YAHOO.util.Dom.addClass(el,'jsHide');
                        YAHOO.util.Dom.removeClass(link,'here');
                    }
                }
            }
        }
        if (ev) {
            YAHOO.util.Event.stopEvent (ev);
        };
    }
    for ( var i = 0; i < tabs.length; i++ ) {
        var link    = tabs [ i ];
        var href    = link.href.toString().split ( '#' )
        if ( href.length ) {
            var el    = YAHOO.util.Dom.get(href[1])
            if ( el ) {
                if ( !YAHOO.util.Dom.hasClass(link,'here')) {
                    YAHOO.util.Dom.addClass(el,'jsHide');
                }
                YAHOO.util.Event.addListener (link, "click", _tab );
            }
        }
    }
    /**
     *
     */
    var tmp_links    = document.getElementsByTagName ( 'a' );
    var link, linkTo, host, span;
    for ( var i = 0; i < tmp_links.length; i++ ) {
        link    = tmp_links [ i ];
        linkTo    = String ( document.location.hostname ).toLowerCase ( ).split ( '.' );
        if ( linkTo.length > 1 ) {
            linkTo [ 0 ]    = '';
            linkTo            = linkTo.join ( '.' );
        }
        host    = String ( link.hostname ).toLowerCase ( );
        if ( host == '' ) {
            continue;
        }
        if ( host.indexOf ( linkTo ) < 0 ) {
            span    = YAHOO.util.Dom.create ( 'span', { className : 'iconExternal' }, '\u00a0' );
            link.parentNode.insertBefore(span, link.nextSibling);
            continue;
        }
    }
    /**
     *
     */
    var iNavGlobal    = YAHOO.util.Dom.get ( 'iNavGlobal' );
    var _sizeText = function ( ev, obj ) {
        var size        = this.id.split ( '-' );
            size        = Number ( size [ 1 ] );
        for ( var i = 1; i <= 3; i++ ) {
            if ( i != size ) {
                YAHOO.util.Dom.removeClass ('iRoot', 'size-' + i);
            }
        }
        var cookie        = new ThinkCo.util.Cookie ( 'sizes' );
        cookie.set ( size, 10, '/' );
        YAHOO.util.Dom.addClass ('iRoot', 'size-' + size );
        if (ev) {
            YAHOO.util.Event.stopEvent (ev);
        };
    }
    if ( iNavGlobal ) {
        var li =  YAHOO.util.Dom.create ('li', { id : 'iTextSize'}, [
            YAHOO.util.Dom.create ('a', { id:'iTextSize-1', href:'#iTextSize-1', listener: [ 'click', _sizeText ] }, 'A' ),
            YAHOO.util.Dom.create ('a', { id:'iTextSize-2', href:'#iTextSize-2', listener: [ 'click', _sizeText ] }, 'A' ),
            YAHOO.util.Dom.create ('a', { id:'iTextSize-3', href:'#iTextSize-3', listener: [ 'click', _sizeText ] }, 'A' )
        ] );
        var cookie        = new ThinkCo.util.Cookie ( 'sizes' );
        var value        = cookie.get ( );
        if ( value ) {
            YAHOO.util.Dom.addClass ('iRoot', 'size-' + value );
        }
        else
        {
            YAHOO.util.Dom.addClass ('iRoot', 'size-1');
        }
        iNavGlobal.appendChild ( li )
    }
    /**
     *
     *
     */
    var iSections        = YAHOO.util.Dom.get ( 'iSections' )
    if ( iSections ) {
        var _over = function ( ev, obj ) {
            YAHOO.util.Dom.addClass ( this, 'here');
            var hash    = this.href.split ( '#' );
                hash     = hash [ 1 ];
            var links    = YAHOO.util.Dom.getElementsBySelector ('div#iSectionNav li a')
            for ( var i = 0; i < links.length; i++ ) {
                var link    = links [ i ];
                var loc        = link.href.split ( '#' );
                    loc        = loc [ 1 ]
                if ( loc != hash ) {
                    YAHOO.util.Dom.removeClass ( link, 'here');
                }
                var section    = YAHOO.util.Dom.get ( loc )
                if ( section ) {
                    YAHOO.util.Dom.addClass ( section, 'jsHide');
                }
            }
            var section    = YAHOO.util.Dom.get ( hash )
            if ( section ) {
                YAHOO.util.Dom.removeClass ( section, 'jsHide');
            }
        }
        var links    = YAHOO.util.Dom.getElementsBySelector ('div#iSectionNav li a')
        for ( var i = 0; i < links.length; i++ ) {
            var link    = links [ i ];
            var loc        = link.href.split ( '#' );
                loc        = loc [ 1 ]
            if ( i == 0 ) {
                YAHOO.util.Dom.addClass ( link, 'here');
            } else {
                var section    = YAHOO.util.Dom.get ( loc )
                if ( section ) {
                    YAHOO.util.Dom.addClass ( section, 'jsHide');
                }
            }
            YAHOO.util.Event.addListener (link, "mouseover", _over );
        }
    }
    /**
     *
     */
    var iBrowserSelected = new Array;
        for (intLoop = 0; intLoop  < 3; intLoop ++)
    {
        var iBrowser        = YAHOO.util.Dom.get ( "iBrowser" + (intLoop == 0 ? "" : intLoop) )
        iBrowserSelected[intLoop]    = null
        if ( iBrowser ) {
            var _click = function ( ev, obj ) {
                var hash    = this.href.split ( '#' );
                    hash     = hash [ 1 ];
                if ( iBrowserSelected[activeTab] ) {
                    var el        = YAHOO.util.Dom.get ( iBrowserSelected[activeTab] );
                    if ( el ) {
                        YAHOO.util.Dom.addClass ( el, 'jsHide');
                        YAHOO.util.Dom.removeClass ( iBrowserSelected[activeTab] + '-Link', 'here');
                    }
                }
                var el        = YAHOO.util.Dom.get ( hash );
                if ( el ) {
                    YAHOO.util.Dom.removeClass ( el, 'jsHide');
                    YAHOO.util.Dom.addClass ( hash + '-Link', 'here');
                    iBrowserSelected[activeTab]    = hash
                }
                if (ev) {
                    YAHOO.util.Event.stopEvent (ev);
                };
                if  (
                    this.href.match(/#iNUM-.*/)
                    )
                {
                    var warddiv = document.getElementById('iWard');
                    var targetX = warddiv.offsetTop + warddiv.parentNode.offsetTop;
                    window.scrollTo(0,300);
                }
            }
            var iAlphabet    = YAHOO.util.Dom.getElementsBySelector ('ul#iAlphabet' + (intLoop == 0 ? "" : intLoop) + ' li a');
            var iWard        = YAHOO.util.Dom.getElementsBySelector ('ul#iWard' + (intLoop == 0 ? "" : intLoop) + ' li a');
            var lists        = YAHOO.util.Dom.getElementsBySelector ('div#iBrowser' + (intLoop == 0 ? "" : intLoop) + ' div.list');
            for ( var i = 0; i < lists.length; i++ ) {
                var list    = lists [ i ]
                YAHOO.util.Dom.addClass ( list, 'jsHide');
            }
            for ( var i = 0; i < iAlphabet.length; i++ ) {
                var link    = iAlphabet [ i ]
                var hash    = link.href.split ( '#' );
                    hash     = hash [ 1 ];
                link.id        = hash + '-Link';
                YAHOO.util.Event.addListener (link, "click", _click );
            }
            for ( var i = 0; i < iWard.length; i++ ) {
                var link    = iWard [ i ]
                var hash    = link.href.split ( '#' );
                    hash     = hash [ 1 ];
                link.id        = hash + '-Link';
                YAHOO.util.Event.addListener (link, "click", _click );
            }
            if (document.getElementById('iABC'+(intLoop == 0 ? "" : intLoop)+'-A-List'))
            {
                YAHOO.util.Dom.removeClass ( document.getElementById('iABC'+(intLoop == 0 ? "" : intLoop)+'-A-List'), 'jsHide');
                YAHOO.util.Dom.addClass ( document.getElementById('iABC'+(intLoop == 0 ? "" : intLoop)+'-A-List-Link'), 'here');
                if  (iBrowserSelected[intLoop] == null)
                {
                    iBrowserSelected[intLoop] = 'iABC'+(intLoop == 0 ? "" : intLoop)+'-A-List';
                }
            }
        }
    }
};
/**
 * @function    PageLoad_Init_Corners
 * @description    Add rounded corners to all elements that require them
 */
function PageLoad_Init_Corners ( ) {
    if ( ThinkCo.component.Corners ) {
        var $C        = ThinkCo.component.Corners;
        $C.externalWrap (YAHOO.util.Dom.getElementsBySelector ('div#iContent div.highlight'), 'div', '', 8, 'jsHighlighted');
        $C.externalWrap (YAHOO.util.Dom.getElementsBySelector ('div.jsCollapsor h3'), 'div', '', 8, 'jsHighlighted');
        $C.externalWrap (YAHOO.util.Dom.getElementsBySelector ('div#iContent div.notice'), 'div', '', 8, 'jsNotice');
        $C.externalWrap (YAHOO.util.Dom.getElementsBySelector ('div#iContent div.profiles h3'), 'div', '', 8, 'jsHighlighted');
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iSecondary div.container'), '', '', 4, 'span')
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iNavL2 a'), '', '', 2, 'span')
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iContentHolder'), '', '', 4, 'span')
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iHeading'), 'div', '', 4, 'span');
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iWhatsNew'), 'div', '', 3, 'span');
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iSectionHospital'), 'div', '', 3, 'span');
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iSectionServices'), 'div', '', 3, 'span');
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iSectionAccident'), 'div', '', 3, 'span');
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iSectionTransform'), 'div', '', 3, 'span');
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iHeadArea'), 'div', '', 2, 'span');
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iServicesTreatments'), 'div', '', 4, 'span');
        $C.internal (YAHOO.util.Dom.getElementsBySelector ('div#iNavL2'), 'div', '', 2, 'span');
    };
};
// add the event call
addLoadEvent ( PageLoad_Init );