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);
}}}