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

}, urlparamselect:function(tabinterfaceid){ var result=window.location.search.match(new RegExp(tabinterfaceid+"=(\\d+)", "i"))

return (result==null)? null : parseInt(RegExp.$1)

}, 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 selectedtab=-1

var selectedtabfromurl=this.urlparamselect(this.tabinterfaceid)

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 (selectedtabfromurl==i || this.enabletabpersistence && selectedtab==-1 && parseInt(persistedtab)==i || !this.enabletabpersistence && selectedtab==-1 && this.getselectedClassTarget(this.tabs[i]).className=="selected"){ selectedtab=i

}

}

}

if (selectedtab!=-1)

this.expandtab(this.tabs[selectedtab])

else

this.expandtab(this.tabs[this.hottabspositions[0]])

if (parseInt(this.automodeperiod)>500 && this.hottabspositions.length>1){ this.autoruntimer=setInterval(function(){tabinstance.autorun()}, this.automodeperiod)

}

}

}

