/* Copyright (c) 2006 Patrick Fitzgerald */

function tabberObj(argsObj)
{var arg;
this.div=null;
this.classMain="tabber";
this.classMainLive="tabberlive";
this.classTab="tabbertab";
this.classTabDefault="tabbertabdefault";
this.classNav="tabbernav";
this.classTabHide="tabbertabhide";
this.classNavActive="tabberactive";
this.titleElements=['h2','h3','h4','h5','h6'];
this.titleElementsStripHTML=true;
this.removeTitle=true;
this.addLinkId=false;
this.linkIdFormat='<tabberid>nav<tabnumberone>';
for(arg in argsObj){this[arg]=argsObj[arg];
}
this.REclassMain=new RegExp('\\b'+this.classMain+'\\b','gi');
this.REclassMainLive=new RegExp('\\b'+this.classMainLive+'\\b','gi');
this.REclassTab=new RegExp('\\b'+this.classTab+'\\b','gi');
this.REclassTabDefault=new RegExp('\\b'+this.classTabDefault+'\\b','gi');
this.REclassTabHide=new RegExp('\\b'+this.classTabHide+'\\b','gi');
this.tabs=new Array();
if(this.div){this.init(this.div);
this.div=null;
}}
tabberObj.prototype.init=function(e)
{var
childNodes,i,i2,t,defaultTab=0,DOM_ul,DOM_li,DOM_a,aId,headingElement;
if(!document.getElementsByTagName){return false;
}
if(e.id){this.id=e.id;
}
this.tabs.length=0;
childNodes=e.childNodes;
for(i=0;
i<childNodes.length;
i++){if(childNodes[i].className&&childNodes[i].className.match(this.REclassTab)){t=new Object();
t.div=childNodes[i];
this.tabs[this.tabs.length]=t;
if(childNodes[i].className.match(this.REclassTabDefault)){defaultTab=this.tabs.length-1;
}}}
DOM_ul=document.createElement("ul");
DOM_ul.className=this.classNav;
for(i=0;
i<this.tabs.length;
i++){t=this.tabs[i];
t.headingText=t.div.title;
if(this.removeTitle){t.div.title='';
}
if(!t.headingText){for(i2=0;
i2<this.titleElements.length;
i2++){headingElement=t.div.getElementsByTagName(this.titleElements[i2])[0];
if(headingElement){t.headingText=headingElement.innerHTML;
if(this.titleElementsStripHTML){t.headingText.replace(/<br>/gi," ");
t.headingText=t.headingText.replace(/<[^>]+>/g,"");
}
break;
}}}
t.headingText=t.headingText.replace("&amp;","&");
if(!t.headingText){t.headingText=i+1;
}
DOM_li=document.createElement("li");
t.li=DOM_li;
DOM_a=document.createElement("a");
DOM_a.appendChild(document.createTextNode(t.headingText));
DOM_a.href="#baztop";
DOM_a.title=t.headingText;
//window.status=t.headingText;
DOM_a.onclick=this.navClick;
DOM_a.tabber=this;
DOM_a.tabberIndex=i;
if(this.addLinkId&&this.linkIdFormat){aId=this.linkIdFormat;
aId=aId.replace(/<tabberid>/gi,this.id);
aId=aId.replace(/<tabnumberzero>/gi,i);
aId=aId.replace(/<tabnumberone>/gi,i+1);
aId=aId.replace(/<tabtitle>/gi,t.headingText.replace(/[^a-zA-Z0-9\-]/gi,''));
DOM_a.id=aId;
}
DOM_li.appendChild(DOM_a);
DOM_ul.appendChild(DOM_li);
}
e.insertBefore(DOM_ul,e.firstChild);
e.className=e.className.replace(this.REclassMain,this.classMainLive);
this.tabShow(defaultTab);
if(typeof this.onLoad=='function'){this.onLoad({tabber:this});
}
return this;
};
tabberObj.prototype.navClick=function(event)
{var
rVal,a,self,tabberIndex,onClickArgs;
a=this;
if(!a.tabber){return false;
}
self=a.tabber;
tabberIndex=a.tabberIndex;
a.blur();
if(typeof self.onClick=='function'){onClickArgs={'tabber':self,'index':tabberIndex,'event':event};
if(!event){onClickArgs.event=window.event;
}
rVal=self.onClick(onClickArgs);
if(rVal===false){return false;
}}
self.tabShow(tabberIndex);
return false;
};
tabberObj.prototype.tabHideAll=function()
{var i;
for(i=0;
i<this.tabs.length;
i++){this.tabHide(i);
}};
tabberObj.prototype.tabHide=function(tabberIndex)
{var div;
if(!this.tabs[tabberIndex]){return false;
}
div=this.tabs[tabberIndex].div;
if(!div.className.match(this.REclassTabHide)){div.className+=' '+this.classTabHide;
}
this.navClearActive(tabberIndex);
return this;
};
tabberObj.prototype.tabShow=function(tabberIndex)
{var div;
if(!this.tabs[tabberIndex]){return false;
}
this.tabHideAll();
div=this.tabs[tabberIndex].div;
div.className=div.className.replace(this.REclassTabHide,'');
this.navSetActive(tabberIndex);
if(typeof this.onTabDisplay=='function'){this.onTabDisplay({'tabber':this,'index':tabberIndex});
}
return this;
};
tabberObj.prototype.navSetActive=function(tabberIndex)
{this.tabs[tabberIndex].li.className=this.classNavActive;
return this;
};
tabberObj.prototype.navClearActive=function(tabberIndex)
{this.tabs[tabberIndex].li.className='';
return this;
};
function tabberAutomatic(tabberArgs)
{var
tempObj,divs,i;
if(!tabberArgs){tabberArgs={};
}
tempObj=new tabberObj(tabberArgs);
divs=document.getElementsByTagName("div");
for(i=0;
i<divs.length;
i++){if(divs[i].className&&divs[i].className.match(tempObj.REclassMain)){tabberArgs.div=divs[i];
divs[i].tabber=new tabberObj(tabberArgs);
}}
return this;
}
function tabberAutomaticOnLoad(tabberArgs)
{var oldOnLoad;
if(!tabberArgs){tabberArgs={};
}
oldOnLoad=window.onload;
if(typeof window.onload!='function'){window.onload=function(){tabberAutomatic(tabberArgs);
};
}else{window.onload=function(){oldOnLoad();
tabberAutomatic(tabberArgs);
};
}}
if(typeof tabberOptions=='undefined'){tabberAutomaticOnLoad();
}else{if(!tabberOptions['manualStartup']){tabberAutomaticOnLoad(tabberOptions);
}}
