function addLoadEvent(func){
  var oldonload=window.onload;
  if(typeof window.onload!='function'){
    window.onload=func;
  }
  else{
    window.onload=function(){
      oldonload();
      func();
    }
  }
}

addLoadEvent(et_init);
var et_toggleGroups=[];
function et_init(){
  var link,id,target,group;
  for(var i=0;(link=document.links[i]);i++){
    if(/toggle/.exec(link.className)){
      group=et_find_group(link.className);
      if(!group){
        group=new et_group(link.className);
        et_toggleGroups[et_toggleGroups.length]=group;
      }
      id=link.href.split('#')[1];
      target=document.getElementById(id);
      target.id='et_'+id;
      group.addElement(target);
      et_remove_anchor(id);
      if(group.first){
        group.first=false;
        link.parentNode.id=group.name+'sel';
        link.parentNode.className='et_sel';
      }
      else{
        target.style.display='none';
      }
      link.onclick=et_event;
    }
  }
  et_set_status_from_url();
}

function et_event(e){
  var current,source,elem,id;
  if(typeof e=='undefined'){
    var e=window.event;
  }
  if(typeof e.target!='undefined'){
    source=e.target;
  }
  else if(typeof e.srcElement!='undefined'){
    source=e.srcElement;
  }
  else{
    return(true);
  }
  while((typeof source.nodeName=='undefined')||(source.nodeName!="A"&&source.nodeName!="a")){
    source=source.parentNode;
  }
  if((group=et_find_group(source.className))){
    id=source.href.split('#')[1];
    group.toggle(id);
    if(typeof location.replace!='undefined'&&!(/OmniWeb/.exec(navigator.userAgent))){
      location.replace('#'+id);
    }
  }
  return(false);
}

function et_set_status_from_url(){
  var id=("test"+window.location).split('#')[1];
  var group;
  if(et_toggleGroups.length!=0){
    window.scrollTo(0,0);
  }
  for(var i=0;(group=et_toggleGroups[i]);i++){
    if(group.hasElement(id)){
      group.toggle(id);
      break;
    }
  }
  return;
}

function et_remove_anchor(id){
  var anchor;
  for(var j=0;(anchor=document.anchors[j]);j++){
    if(anchor.name==id){
      anchor.parentNode.removeChild(anchor);
      break;
    }
  }
  return;
}

function et_find_group(name){
  var i,group;
  for(i=0;(group=et_toggleGroups[i]);i++){
    if(group.name==name){
      return(group);
    }
  }
  return(false);
}

function et_find_toggle_link(id){
  var i,link,id;
  for(i=0;(link=document.links[i]);i++){
    if(/toggle/.exec(link.className)){
      if(link.href.split('#')[1]==id){
        return(link);
      }
    }
  }
  return(false);
}

function et_group(name){
  this.name=name;
  this.elements=[];
  this.first=true;
}

function et_group_add_element(element){
  this.elements[this.elements.length]=element;
}

et_group.prototype.addElement=et_group_add_element;

function et_group_has_element(id){
  var elem;
  for(var i=0;(elem=this.elements[i]);i++){
    if(elem.id=='et_'+id){
      return(true);
    }
  }
  return(false);
}

et_group.prototype.hasElement=et_group_has_element;

function et_group_select_element(id){
  var elem;
  var current=document.getElementById(this.name+'sel');
  if(current){
    current.id='';
    current.className='';
  }
  var source=et_find_toggle_link(id);
  for(var i=0;(elem=this.elements[i]);i++){
    if(elem.id!='et_'+id){
      elem.style.display='none';
    }
    else{
      elem.style.display='block';
      if(source){
        source.parentNode.id=this.name+'sel';
        source.parentNode.className='et_sel';
      }
      else{
        alert("No Source");
      }
    }
  }
}

et_group.prototype.toggle=et_group_select_element;
