//** Tab Content script v2.0- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)

function jtabs(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";}
jtabs.getCookie=function(Name){ 
var re=new RegExp(Name+"=[^;]+", "i");
if (document.cookie.match(re))
return document.cookie.match(re)[0].split("=")[1];
return "";
}
jtabs.setCookie=function(name, value){
document.cookie = name+"="+value+";path=/";
}
jtabs.prototype={
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)? "jo_selected" : "";
}
if (this.enabletabpersistence)
jtabs.setCookie(this.tabinterfaceid, tabref.tabposition);
this.setcurrenttabindex(tabref.tabposition);

// Google Analytics integration
if (typeof this.autoruntimer!="undefined" && this.autoruntimer==false  && typeof(pageTracker) != 'undefined' && typeof(pageTracker._trackPageview) != 'undefined' ) {
pageTracker._trackPageview( tabref.getAttribute("href"));
}
},
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);
this.autoruntimer=false;
}
},
init:function(automodeperiod,change){
var persistedtab=jtabs.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 (change==1){
this.tabs[i].onmouseover=this.tabs[i].onclick
}
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=="jo_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);
}

}
}
