jablonka.czprosek.czf

websvn

Subversion Repositories:
[/] [templates/] [BlueGrey/] [collapse.js] - Rev 3 Go to most recent revision

Compare with Previous - Blame - Download


/***********************************************
* 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

Powered by WebSVN 2.2.1