/* easytoggle2.js
   - Simon Willison, 5th November 2003
   - See http://simon.incutio.com/archive/2003/11/06/easytoggle
*/

addEvent(window, 'load', et_init);

var et_toggleElements = [];

/* Initialisation */
function et_init() {
    var i, link, id, target, first;
    first = true;
    for (i = 0; (link = document.links[i]); i++) {
        if (/\btoggle\b/.exec(link.className)) {
            id = link.href.split('#')[1];
            target = document.getElementById(id);
            et_toggleElements[et_toggleElements.length] = target;
            if (first) {
                document.getElementById(id + 'Anchor').className = 'untoggle';
                first = false;
            } else {
                target.style.display = 'none';
            }
            link.onclick = et_toggle;
        }
    }
}

function et_toggle(e) {
    /* Adapted from http://www.quirksmode.org/js/events_properties.html */
    if (typeof e == 'undefined') {
        var e = window.event;
    }
    var source;
    if (typeof e.target != 'undefined') {
        source = e.target;
    } else if (typeof e.srcElement != 'undefined') {
        source = e.srcElement;
    } else {
        return true;
    }
    /* For most browsers, targ would now be a link element; Safari however
       returns a text node so we need to check the node type to make sure */
    if (source.nodeType == 3) {
        source = source.parentNode;
    }
    var id = source.href.split('#')[1];
    var elem;
    for (var i = 0; (elem = et_toggleElements[i]); i++) {
	  var oldstart =	document.getElementById(elem.id + '_start').className.split('_')[0];
	  var oldend =	document.getElementById(elem.id + '_end').className.split('_')[0];	
        if (elem.id != id) {
            elem.style.display = 'none';
            document.getElementById(elem.id + 'Anchor').className = 'toggle';
	     document.getElementById(elem.id + '_start').className = oldstart+'_nonact';
	     document.getElementById(elem.id + '_end').className = oldend+'_nonact';
        } else {
            elem.style.display = 'block';
            document.getElementById(elem.id + 'Anchor').className = 'untoggle';
	     document.getElementById(elem.id + '_start').className = oldstart+'_act';
	     document.getElementById(elem.id + '_end').className = oldend+'_act';
        }
    }

    return false;
}

/* Thanks to Scott Andrew */
function addEvent(obj, evType, fn){
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, true);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } else {
        return false;
    }
}


