function toggle(object) {
  if (document.getElementById) {
    if (document.getElementById(object).style.visibility == 'visible')
      document.getElementById(object).style.visibility = 'hidden';
    else
      document.getElementById(object).style.visibility = 'visible';
  }

  else if (document.layers && document.layers[object] != null) {
    if (document.layers[object].visibility == 'visible' ||
        document.layers[object].visibility == 'show' )
      document.layers[object].visibility = 'hidden';
    else
      document.layers[object].visibility = 'visible';
  }

  else if (document.all) {
    if (document.all[object].style.visibility == 'visible')
      document.all[object].style.visibility = 'hidden';
    else
      document.all[object].style.visibility = 'visible';
  }

  return false;
}


function switchOn(object_pre, depth, maxdepth, imgSrcOn, imgSrcOff) {
    //alert(object_pre);
    //var strDebug;
    var i;
    var browstyp;
    var object;
    var dd;
    var imgOn = new Image().src = imgSrcOn;
    var imgOff = new Image().src = imgSrcOff;

    //strDebug = "switchOn("+object_pre+", "+depth+","+maxdepth+")\n";
    //Turn on the layer selected, diff cases for diff browsers
    object = object_pre+depth;
    dd = "dd"+depth; //the dd tag
    if (document.getElementById) {
        browstyp=1;
        if (document.getElementById(object).style.visibility == 'hidden') {
            document.getElementById(object).style.visibility = 'visible';
            document.getElementById(dd).className = 'active';
            //strDebug += "browse type 1: set element"+dd+" and element"+object+"\n";
        }
    }
    else if (document.layers && document.layers[object] != null) {
        browstyp=2;
        if (document.layers[object].visibility == 'hidden') {
            document.layers[object].visibility = 'visible';
            document.layers[dd].className = 'active';
            //strDebug += "browse type 2: set element"+dd+" and element"+object+"\n";
        }
    }
    else if (document.all) {
        browstyp=3;
        if (document.all[object].style.visibility == 'hidden') {
            document.all[object].style.visibility = 'visible';
            document.all[dd].className = 'active';
            //strDebug += "browse type 3: set element"+dd+" and element"+object+"\n";
        }
    }
    var ta;
    //now disable the other layers
    for(i=1; i <= maxdepth; i++) {
        //don't disable the selected layer
        if(i != depth) {
            dd = "dd"+i;
            var thisObj = object_pre+i;
            if(document.getElementById(dd) != null) {
                switch(browstyp) {
                    case 1:
                        document.getElementById(thisObj).style.visibility = "hidden";
                        document.getElementById(dd).className = '';
                        break;
                    case 2:
                        document.layers[thisObj].visibility = "hidden";
                        document.layers[dd].className = '';
                        break;
                    case 3:
                        document.all[thisObj].style.visibility = "hidden";
                        document.all[dd].className = '';
                        break;
                }//end switch
            }
        }//end if
        
        if(i != depth){
            dd="dd"+i;
            ta="tabarrow"+i;
            if(document.getElementById(dd) != null) {
                document.getElementById(ta).src=imgOff;
    }
        }else{
            dd="dd"+i;
            ta="tabarrow"+i;
            if(document.getElementById(dd) != null) {
                document.getElementById(ta).src=imgOn;
            }
        }
    }
    
    
    //return false;
    // alert(strDebug);
    return true;
}

//Set the class for an elementId
function setClass(elementId, state) {
    document.getElementById(elementId).className = state;
}


// Function to switch an element by its id 
function switchNav(newSrc, elementId) {
    var imgOn = new Image().src = newSrc;

    document.getElementById(elementId).src=imgOn;
}

function setVisibility (object_pre, depth, maxdepth){
   var object;
   var dd;
   object = object_pre+depth;
    dd = "dd"+depth; //the dd tag
    for(i=1; i <= maxdepth; i++) {
        //don't disable the selected layer
        var thisObj = object_pre+i;
        if(i != depth) {
            dd = "dd"+i;
            if(document.getElementById(dd) != null) {
                //set the active layer
                document.getElementById(thisObj).style.visibility = 'hidden';
            }
        }else{
            document.getElementById(thisObj).style.visibility = 'visible';
            document.getElementById(dd).className = 'active';
        }
    }
}

function activeAndVisible(object_pre, depth, maxdepth) {
    //alert(object_pre);
    //var strDebug;
    var i;
    var browstyp;
    var object;
    var dd;

    //strDebug = "switchOn("+object_pre+", "+depth+","+maxdepth+")\n";
    //Turn on the layer selected, diff cases for diff browsers
    object = object_pre+depth;
    dd = "hrdd"+depth; //the dd tag
    if (document.getElementById) {
        browstyp=1;
    }
    else if (document.layers && document.layers[object] != null) {
        browstyp=2;
    }
    else if (document.all) {
        browstyp=3;
    }
    var ta;
    //now disable the other layers
    for(i=1; i <= maxdepth; i++) {
        dd = "hrdd"+i;//not the usual dd1 etc
        //don't disable the selected layer
        if(i != depth) {
            var thisObj = object_pre+i;
            if(document.getElementById(dd) != null) {
                switch(browstyp) {
                    case 1:
                        document.getElementById(thisObj).style.visibility = "hidden";
                        document.getElementById(dd).className = 'inactive';
                        break;
                    case 2:
                        document.layers[thisObj].visibility = "hidden";
                        document.layers[dd].className = 'inactive';
                        break;
                    case 3:
                        document.all[thisObj].style.visibility = "hidden";
                        document.all[dd].className = 'inactive';
                        break;
                }//end switch
            }
        }else {
            var thisObj = object_pre+i;
            if(document.getElementById(dd) != null) {
                switch(browstyp) {
                    case 1:
                        document.getElementById(thisObj).style.visibility = "visible";
                        document.getElementById(dd).className = 'active';
                        break;
                    case 2:
                        document.layers[thisObj].visibility = "visible";
                        document.layers[dd].className = 'active';
                        break;
                    case 3:
                        document.all[thisObj].style.visibility = "visible";
                        document.all[dd].className = 'active';
                        break;
                }//end switch
            }
        }

    }




    //return false;
    // alert(strDebug);
    return true;
}
