/* easytoggle.js, by Simon Willison */

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) {
                 first = false;
             } else {
                 target.style.display = 'none';
             }
             link.onclick = et_toggle;
         }
     }
}

function et_toggle(e) {
     /* Event handling code 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++) {
         if (elem.id != id) {
             elem.style.display = 'none';
         } else {
             elem.style.display = 'block';
         }
     }
     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;
     }
}
