home *** CD-ROM | disk | FTP | other *** search
- /***********************************************
- * 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='<img src="../images/sectionOpen.gif"/> ' //HTML for contract symbol. For image, use: <img src="whatever.gif">
- var expandsymbol='<img src="../images/sectionClose.gif"/> ' //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