// support for toggle sections

window.onload = function() {
    var divs = document.getElementsByTagName('div');
    for (var i=0; i<divs.length; i++) toggle(divs[i]);
};


// The actual toggle function
var doToggle = function (el) {
  if (!el) {
    return false;
  }
  var id = el.getAttribute('id') || el.id;
  var base = id.match(/(.+):/);
  var vis  = id.match(/hide/);
  var on   = vis ? base[1]+':visible' : base[1]+':hidden';
  var off  = vis ? base[1]+':hidden'  : base[1]+':visible';
  YAHOO.util.Dom.setStyle(on,'display','block');
  YAHOO.util.Dom.setStyle(off,'display','none');	
}

// look for div elements of class switch
var plus  = '<img src="/images/plus.jpg"  /> ';
var minus = '<img src="/images/minus.jpg" /> ';

var toggle = function( el ) {
  var elClass = el.className ? el.className.toLowerCase() : null;
  if (!elClass) return false;
  var state;
  if (elClass.match(/^switch\w*/)) {
    var proceed = elClass.split(':');
    elClass = proceed[0];
    state   = proceed[1];
   }

  if (!state) {
    state = 'closed';
  }

  if (elClass == 'switch') {
    var id     = el.getAttribute('id');
    var elName = el.getAttribute('title') || id;
    var html   = el.innerHTML;
    var indent = el.getAttribute('indent');

    el.innerHTML = '';

    var hide   = document.createElement('div');
    var show   = document.createElement('div');
    var doShow = document.createElement('span');
    var doHide = document.createElement('span');

    hide.setAttribute('id',id+':hidden');
    show.setAttribute('id',id+':visible');
    doHide.setAttribute('id',id+':hide');
    doShow.setAttribute('id',id+':show');

    indent = indent ? '&nbsp;&nbsp;&nbsp;&nbsp;' : '';
    doHide.innerHTML = indent + minus + 'Hide ' + elName;
    doShow.innerHTML = indent + plus  + 'Show ' + elName;
	
    doHide.setAttribute('onclick','doToggle(this)');
    doShow.setAttribute('onclick','doToggle(this)');

    // stupid IE
    if (document.all && !window.opera) {
      doShow.onclick = function() {doToggle(this)};
    }	

    YAHOO.util.Dom.setStyle(doShow,'cursor','pointer');
    YAHOO.util.Dom.setStyle(doShow,'color','blue');
    YAHOO.util.Dom.setStyle(doHide,'cursor','pointer');
    YAHOO.util.Dom.setStyle(doHide,'color','blue');

    // initial state (default: closed)
    var hideState = state == 'closed' ? 'none' : 'block';
    var showState = state == 'closed' ? 'block' : 'none';
    YAHOO.util.Dom.setStyle(show,'display',showState);
    YAHOO.util.Dom.setStyle(hide,'display',hideState);

    show.appendChild(doShow);
    hide.appendChild(doHide);
    el.appendChild(show);
    el.appendChild(hide);
    hide.innerHTML = hide.innerHTML + '<br>' + html;
  }
}               
    


