/***********************************************
* Switch Content script- &copy; Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use. Last updated April 2nd, 2005.
* Visit http://www.dynamicdrive.com/ for full source code

This script was modified from the original on February 23/2006. The previous script downloaded from the website
did not support more than one 'Show All/Hide All' set of links (for example, if you had 2 distinct groupings
of expandable content on the page and wanted a pair of 'Show All/Hide All' for each grouping).
The modifications I made are as follows:
    1. sweeptoggle() takes an optional classname paramater. If included in the method call, it will only expand elements whose class
        attribute match the given value
    2. the ccollect array now adds any element whose class attribute matches the regex 'switchcontent[0-9]*'. So oyu can create
    distinct groupings such as switchcontent1, switchcontent2, etc. (see line 134)
    3. the getElementbyClass() method now uses the match() method on the className rather thean the '==' operator. This
    supports all previous method calls, and the new regexp listed above in change #2.
***********************************************/

var enablepersist="on" //Enable saving state of content structure using session cookies? (on/off)
var collapseprevious="no" //Collapse previously open content when opening present? (yes/no)

var contractsymbol='<img src="images/icon_minus.gif" width="13" height="13" alt=" - " class="onoff" /> ' //HTML for contract symbol. For image, use: <img src="whatever.gif">
var expandsymbol='<img src="images/icon_plus.gif" width="13" height="13" alt=" + " class="onoff" /> ' //HTML for expand symbol.


if (document.getElementById){
    document.write('<style type="text/css">')
    document.write('.switchcontent{display:none;}')
    for(var i=1;i<10;i++){
            document.write('.switchcontent'+i+'{display:none;}')
    }
    document.write('</style>')
}

function getElementbyClass(rootobj, classname){
var temparray=new Array()
var inc=0
var rootlength=rootobj.length
for (i=0; i<rootlength; i++){
if (rootobj[i].className.match(classname))
temparray[inc++]=rootobj[i]
}
return temparray
}

function sweeptoggle(ec, classname){
    var thestate=(ec=="expand")? "block" : "none"
    var inc=0
    while (ccollect[inc]){
        if((classname == undefined) || (ccollect[inc].className == classname)){
            ccollect[inc].style.display=thestate
        }
        inc++
    }
    revivestatus()
}


function contractcontent(omit){
var inc=0
while (ccollect[inc]){
if (ccollect[inc].id!=omit)
ccollect[inc].style.display="none"
inc++
}
}

function expandcontent(curobj, cid){
var spantags=curobj.getElementsByTagName("SPAN")
var showstateobj=getElementbyClass(spantags, "showstate")
if (ccollect.length>0){
if (collapseprevious=="yes")
contractcontent(cid)
document.getElementById(cid).style.display=(document.getElementById(cid).style.display!="block")? "block" : "none"
if (showstateobj.length>0){ //if "showstate" span exists in header
if (collapseprevious=="no")
showstateobj[0].innerHTML=(document.getElementById(cid).style.display=="block")? contractsymbol : expandsymbol
else
revivestatus()
}
}
}

function revivecontent(){
contractcontent("omitnothing")
selectedItem=getselectedItem()
selectedComponents=selectedItem.split("|")
for (i=0; i<selectedComponents.length-1; i++)
document.getElementById(selectedComponents[i]).style.display="block"
}

function revivestatus(){
var inc=0
while (statecollect[inc]){
if (ccollect[inc].style.display=="block")
statecollect[inc].innerHTML=contractsymbol
else
statecollect[inc].innerHTML=expandsymbol
inc++
}
}

function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function getselectedItem(){
if (get_cookie(window.location.pathname) != ""){
selectedItem=get_cookie(window.location.pathname)
return selectedItem
}
else
return ""
}

function saveswitchstate(){
    var inc=0, selectedItem=""
    while (ccollect[inc]){
        if (ccollect[inc].style.display=="block")
            selectedItem+=ccollect[inc].id+"|"
            inc++
    }

    document.cookie=window.location.pathname+"="+selectedItem
}

function do_onload(){
    uniqueidn=window.location.pathname+"firsttimeload"
    var alltags=document.all? document.all : document.getElementsByTagName("*")
    ccollect=getElementbyClass(alltags, new RegExp("switchcontent[0-9]*"))
    statecollect=getElementbyClass(alltags, "showstate")

    if (enablepersist=="on" && ccollect.length>0){
        document.cookie=(get_cookie(uniqueidn)=="")? uniqueidn+"=1" : uniqueidn+"=0"
        firsttimeload=(get_cookie(uniqueidn)==1)? 1 : 0 //check if this is 1st page load

        if (!firsttimeload)
        revivecontent()
    }

        if (ccollect.length>0 && statecollect.length>0) revivestatus()
}

        if (window.addEventListener)
            window.addEventListener("load", do_onload, false)
        else if (window.attachEvent)
            window.attachEvent("onload", do_onload)
        else if (document.getElementById)
        window.onload=do_onload

        if (enablepersist=="on" && document.getElementById)
        window.onunload=saveswitchstate
