ThinkCo.namespace ('ThinkCo.component');
ThinkCo.component.Collapse = function () {
    var _toggle    = function (ev, obj) {
        var targ    = YAHOO.util.Dom.get (this.hash.substr (1));
        if (targ){
            if ( YAHOO.util.Dom.hasClass (targ, 'jsToggleClosed') ) {
                YAHOO.util.Dom.replaceClass ( targ, 'jsToggleClosed', 'jsToggleOpen' );
            } else if ( YAHOO.util.Dom.hasClass (targ, 'jsToggleOpen') ) {
                YAHOO.util.Dom.replaceClass ( targ, 'jsToggleOpen', 'jsToggleClosed' );
            }
        };
        if (ev) {
            YAHOO.util.Event.stopEvent (ev);
        };
    };
    //
    var tmp_location    = window.location.hash.substr (1);
    if (tmp_location) {
        var tmp_el        = YAHOO.util.Dom.get (tmp_location);
        if (tmp_el) {
            if (YAHOO.util.Dom.hasClass (tmp_el, 'jsCollapsor')) {
                YAHOO.util.Dom.addClass (tmp_el, 'jsOpen');
            };
        };
    };
    var els        = YAHOO.util.Dom.getElementsByClassName ('jsCollapsor');
    for (var i = 0; i < els.length; i++) {
        var el        = YAHOO.util.Dom.get (els [ i ]);
        var id        = YAHOO.util.Dom.generateId (el);
        var counter    = 0;
        var tgs    = YAHOO.util.Dom.getElementsByClassName ('jsToggle', 'span', el);
        for (var j = 0; j < tgs.length; j++) {    
            var tg            = YAHOO.util.Dom.get (tgs [ j ]);
            var p            = YAHOO.util.Dom.getAncestorsByClass (tg, 'jsCollapsor', null, null, true);
            if ( p ) {
                if ( p != el ) {
                    continue;
                };
            };
            var a            = YAHOO.util.Dom.create ('a', { title:title, href:'#' + id, className : tg.className, listener: [ 'click', _toggle ] });
                a.innerHTML    = tg.innerHTML;
            tg.parentNode.replaceChild (a, tg);
            counter++;
        };

        if ( counter ) {
            var title    = 'Open';
            var cls    = 'jsToggleClosed';
            if (YAHOO.util.Dom.hasClass (el, 'jsOpen') || i == 0 && !(YAHOO.util.Dom.hasClass (el, 'jsClosed'))) {
                cls        = 'jsToggleOpen';
                title    = 'Close'
            };
            YAHOO.util.Dom.addClass (el, cls);
        };
    };
};