/***********************************************
* Switch Content script- © 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
***********************************************/

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='[-]' //HTML for contract symbol. For image, use: <img src="whatever.gif">
var expandsymbol='[+]' //HTML for expand symbol.


if (document.getElementById)
{
	document.write('<style type="text/css">')
	document.write('.switchcontent{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==classname)
		temparray[inc++]=rootobj[i]
	}
	return temparray
}

function sweeptoggle(ec)
{
	var thestate=(ec=="expand")? "block" : "none"
	var inc=0

	while (ccollect[inc])
	{
		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, "switchcontent")
	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
