function ddtabcontent(tabinterfaceid){ this.tabinterfaceid=tabinterfaceid
this.tabs=document.getElementById(tabinterfaceid).getElementsByTagName("a")
this.enabletabpersistence=true
this.hottabspositions=[]
this.currentTabIndex=0
this.subcontentids=[]
this.revcontentids=[]
this.selectedClassTarget="link"
}
ddtabcontent.getCookie=function(Name){ var re=new RegExp(Name+"=[^;]+", "i"); if (document.cookie.match(re))
return document.cookie.match(re)[0].split("=")[1]
return ""
}
ddtabcontent.setCookie=function(name, value){ document.cookie = name+"="+value+";path=/"
}
ddtabcontent.prototype={ expandit:function(tabid_or_position){ this.cancelautorun()
var tabref=""
try{ if (typeof tabid_or_position=="string" && document.getElementById(tabid_or_position).getAttribute("rel"))
tabref=document.getElementById(tabid_or_position)
else if (parseInt(tabid_or_position)!=NaN && this.tabs[tabid_or_position].getAttribute("rel"))
tabref=this.tabs[tabid_or_position]
}
catch(err){alert("Invalid Tab ID or position entered!")}
if (tabref!="")
this.expandtab(tabref)
}, cycleit:function(dir, autorun){ if (dir=="next"){ var currentTabIndex=(this.currentTabIndex<this.hottabspositions.length-1)? this.currentTabIndex+1 : 0
}
else if (dir=="prev"){ var currentTabIndex=(this.currentTabIndex>0)? this.currentTabIndex-1 : this.hottabspositions.length-1
}
if (typeof autorun=="undefined")
this.cancelautorun()
this.expandtab(this.tabs[this.hottabspositions[currentTabIndex]])
}, setpersist:function(bool){ this.enabletabpersistence=bool
}, setselectedClassTarget:function(objstr){ this.selectedClassTarget=objstr || "link"
}, getselectedClassTarget:function(tabref){ return (this.selectedClassTarget==("linkparent".toLowerCase()))? tabref.parentNode : tabref
}, expandtab:function(tabref){ var subcontentid=tabref.getAttribute("rel")
var associatedrevids=(tabref.getAttribute("rev"))? ","+tabref.getAttribute("rev").replace(/\s+/, "")+"," : ""
this.expandsubcontent(subcontentid)
this.expandrevcontent(associatedrevids)
for (var i=0; i<this.tabs.length; i++){ this.getselectedClassTarget(this.tabs[i]).className=(this.tabs[i].getAttribute("rel")==subcontentid)? "selected" : ""
}
if (this.enabletabpersistence)
ddtabcontent.setCookie(this.tabinterfaceid, tabref.tabposition)
this.setcurrenttabindex(tabref.tabposition)
}, expandsubcontent:function(subcontentid){ for (var i=0; i<this.subcontentids.length; i++){ var subcontent=document.getElementById(this.subcontentids[i])
subcontent.style.display=(subcontent.id==subcontentid)? "block" : "none"
}
}, expandrevcontent:function(associatedrevids){ var allrevids=this.revcontentids
for (var i=0; i<allrevids.length; i++){ document.getElementById(allrevids[i]).style.display=(associatedrevids.indexOf(","+allrevids[i]+",")!=-1)? "block" : "none"
}
}, setcurrenttabindex:function(tabposition){ for (var i=0; i<this.hottabspositions.length; i++){ if (tabposition==this.hottabspositions[i]){ this.currentTabIndex=i
break
}
}
}, autorun:function(){ this.cycleit('next', true)
}, cancelautorun:function(){ if (typeof this.autoruntimer!="undefined")
clearInterval(this.autoruntimer)
}, init:function(automodeperiod){ var persistedtab=ddtabcontent.getCookie(this.tabinterfaceid)
var persisterror=true
this.automodeperiod=automodeperiod || 0
for (var i=0; i<this.tabs.length; i++){ this.tabs[i].tabposition=i
if (this.tabs[i].getAttribute("rel")){ var tabinstance=this
this.hottabspositions[this.hottabspositions.length]=i
this.subcontentids[this.subcontentids.length]=this.tabs[i].getAttribute("rel")
this.tabs[i].onclick=function(){ tabinstance.expandtab(this)
tabinstance.cancelautorun()
return false
}
if (this.tabs[i].getAttribute("rev")){ this.revcontentids=this.revcontentids.concat(this.tabs[i].getAttribute("rev").split(/\s*,\s*/))
}
if (this.enabletabpersistence && parseInt(persistedtab)==i || !this.enabletabpersistence && this.getselectedClassTarget(this.tabs[i]).className=="selected"){ this.expandtab(this.tabs[i])
persisterror=false
}
}
}
if (persisterror)
this.expandtab(this.tabs[this.hottabspositions[0]])
if (parseInt(this.automodeperiod)>500 && this.hottabspositions.length>1){ this.autoruntimer=setInterval(function(){tabinstance.autorun()}, this.automodeperiod)
}
}
}
