/WebSVN_/templates/Standard/collapse.js
0,0 → 1,169
/***********************************************
* 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="yes" // Collapse previously open content when opening present? (yes/no)
 
var contractsymbol='<div class="minusbox">-</div>' // HTML for contract symbol. For image, use: <img src="${prefix}whatever.gif">
var expandsymbol='<div class="plusbox">+</div>' // HTML for expand symbol.
var expandonload=false
 
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
for (i=0; i<rootobj.length; 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()
collapseprevious = (ec=="expand")? "no" : "yes"
}
 
 
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("|")
collapseprevious=selectedComponents[0]
for (i=1; 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=collapseprevious+"|"
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 (expandonload)
sweeptoggle('expand')
}
 
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