rem: /*** tabs.js* by Garrett Smith* http: 
add: function positionTabEl(tab){ var tabs=tab.el.parentNode; if(tab.tagName=="IMG"||tab.id.indexOf("Bottomtab")==0)return; if(!tabs.tabOffset)tabs.tabOffset=0; var tabWidth=Math.round(tab.el.offsetWidth*1.1)+15; var sty=tab.el.style; sty.left=tabs.tabOffset+px; sty.width=tabWidth+px; sty.textAlign="center"; sty.display="block"; sty.position="absolute"; tabs.tabOffset+=parseInt(tab.el.offsetWidth)+4; } 
context: /*** tabs.js* by Garrett Smith* http://dhtmlkitchen.com/*/if(!window.TabParams)window.TabParams={useClone:false,alwaysShowClone:false,eventType:"click",tabTagName:"*"};var tabDisplayNone=Browser.id.OP5?"":"none";var contentInheritVis=Browser.id.OP5?"visible":"inherit";TabSystem=function TabSystem(el,tabsDiv){if(arguments.length==0) return;this.souper=TabSystem.souper;this.souper(el);if(typeof tabsDiv.onselectstart!="undefined")tabsDiv.onselectstart=function(){return false;};this.el.onChange=this.el.onchange=function(){};this.el.onBeforeChange=function(){};this.defaultActiveTab=null;this.activeTab=null;this.relatedTab=null;this.nextTab=null;this.tabsDiv=tabsDiv;this.tabParams=this.getTabParams();this.tabArray=get_elements_with_class_from_classList(this.tabsDiv,this.tabParams.tabTagName,["tab","tabActive"]);this.tabsClone=null;this.tabs=new Array(0);if(!TabSystem.list[this.id])TabSystem.list[this.id]=this;};TabSystem.list=new Object;TabSystem.extend(EventQueue);TabSystem.prototype.parentSystem=function(){var root=TabSystem.list["body"];if(root=this) return null;var parent=findAncestorWithClass(this.el,"content");if(parent!=null)return TabSystem.list[parent.id];return root;};TabSystem.prototype.getTabParams=function(){if(!this.tabParams){this.tabParams=new Object;var parentSystem=this.parentSystem();parentTp=(parentSystem==null)?TabParams:parentSystem.getTabParams();for(var param in parentTp)this.tabParams[param]=parentTp[param];}return this.tabParams;};TabSystem.prototype.setEventType=function(eventType){var params=this.getTabParams();if(params.eventType==eventType) return;for(var i=0,len=this.tabArray.length;i<len;i++){var tab=Tab.list[this.tabArray[i].id];tab.removeEventListener("on"+params.eventType,tab.depressTab);tab.addEventListener("on"+eventType,tab.depressTab);}params.eventType=eventType;};function removeTabs(ts){ts.tabsDiv.style.display="none";if(ts.tabsClone)ts.tabsClone.style.display="none";var cs=getElementsWithClass(ts.el,"div","content");for(var i=0;i<cs.length;i++){cs[i].style.visibility='visible';cs[i].style.display='block';}}function undoRemoveTabs(ts){ts.tabsDiv.style.display="block";if(ts.tabsClone)ts.tabsClone.style.display="block";isTabLayout=true;for(var i=0;i<ts.tabs.length;i++)if(ts.tabs[i]!=ts.activeTab){ts.tabs[i].content.style.display="none";ts.tabs[i].content.style.visibility="hidden";}}TabSystem.prototype.setAlwaysShowClone=function(flag){this.getTabParams().alwaysShowClone=flag;this.showTabsCloneIfNecessary();};TabSystem.prototype.addClone=function(){if(!this.tabsDiv.cloneNode) return;this.getTabParams().useClone=true;this.tabsClone=this.tabsDiv.cloneNode(true);if(!this.tabsClone) return;this.tabsClone.className="tabs tabsClone";this.el.appendChild(this.tabsClone);for(var i=0;i<this.tabArray.length;i++){var cont=Tab.list[this.tabArray[i].id];var bt=getDescendantById(this.tabsClone,cont.id);bt.id="Bottom"+bt.id;cont.bottomTab=new BottomTab(bt,cont);}this.addEventListener("onchange",updateTabsClonePosition);if(Browser.id.MAC_IE5)window.setInterval("updateTabsClonePosition()",300);contentPane.addEventListener("onresize",updateTabsClonePosition);this.showTabsCloneIfNecessary();};tabInit=function tabInit(){if(!Browser.isSupported())return;var tabsDivs=getElementsWithClass(document.body,"div","tabs");if(tabsDivs.length==0){var tabsDiv0=document.getElementById("tabs");if(tabsDiv0)tabsDivs=[tabsDiv0];else return;}var tabToDepress;for(var i=0;i<tabsDivs.length;i++){var cnt=findAncestorWithClass(tabsDivs[i],"content")||document.body;if(!cnt.id)cnt.id="body";var ts=new TabSystem(cnt,tabsDivs[i]);var len=ts.tabArray.length;for(var j=0;j<len;new ControllerTab(ts.tabArray[j++],ts));}var activeTabs=getCookie("activeTabs"+escape(getFilename()));if(activeTabs!=null){var activeTabArray=activeTabs.split(",");for(var i=0,len=activeTabArray.length;i<len;i++){var tab=Tab.list[activeTabArray[i]];if(tab)tab.depressTab();}}if(Browser.id.MAC_IE5){fixDocHeight=function(){document.documentElement.style.height=document.body.style.height=document.body.clientHeight+"px";};contentPane.addEventListener("onresize",fixDocHeight);setTimeout("fixDocHeight()",500);}handleHashNavigation();deletePageCookie("activeTabs"+escape(getFilename()));for(id in TabSystem.list){var ts=TabSystem.list[id];if(ts.tabParams.useClone)ts.addClone();if(ts.activeTab==null&&ts.defaultActiveTab!=null)ts.defaultActiveTab.depressTab();}if(Browser.id.MOZ)repaintFix(document.body);};window.id="window";contentPane=new EventQueue(window);function handleHashNavigation(){var id=window.location.hash;if(id){var el=document.getElementById(id.substring(1));if(el)var contentEl=findAncestorWithClass(el,"content");if(contentEl)switchTabs("tab"+contentEl.id.substring("content".length),null,false);}}Tab=function Tab(el,ts){if(arguments.length==0) return;this.souper=Tab.souper;this.souper(el);this.content=null;this.tabSystem=ts;this.properties=new Object;this.el.onActivate=function(){};this.addEventListener("onmouseover",this.hoverTab);this.addEventListener("onmouseout",this.hoverOff);this.addEventListener("on"+this.tabSystem.getTabParams().eventType,this.depressTab);if(Browser.id.IE5_0)positionTabEl(this);if(!Tab.list[this.id])Tab.list[this.id]=this;};Tab.extend(EventQueue);Tab.list=new Object;Tab.prototype.setProperty=function(name,value){this.properties[name]=value;};Tab.prototype.getContent=function(){if(this.content==null){var id=this.id.substring(3);this.content=document.getElementById("content"+id);if(!this.content){alert("tab.id="+this.id+"\n"+"content"+id+" does not exist!");}}return this.content;};Tab.prototype.getTabSystem=function(){return this.tabSystem;};hoverTab=function hoverTab(){var tab=Tab.list[this.id];var activeTab=tab.tabSystem.activeTab;if(activeTab&&activeTab.id==tab.id)	return;tab.setClassName("tabHover tab");if(tab.hoversrc)tab.el.src=tab.hoversrc;};hoverOff=function hoverOff(){var tab=Tab.list[this.id];var activeTab=tab.tabSystem.activeTab;if(activeTab&&activeTab.id==tab.id)	return;tab.setClassName("tab");if(tab.normalsrc)tab.el.src=tab.normalsrc;};Tab.prototype.toString=function(){return this.id;};function resetTab(tab){tab.setClassName("tab");if(tab.normalsrc)tab.el.src=tab.normalsrc;tab.getContent().style.display=tabDisplayNone;tab.getContent().style.visibility="hidden";}ControllerTab=function ControllerTab(el,ts){if(arguments.length==0) return;this.souper(el,ts);if(el.tagName.toLowerCase()=="img"){this.normalsrc=el.src;this.hoversrc=el.getAttribute("hoversrc");this.activesrc=el.getAttribute("activesrc");}if(hasToken(el.className,"tabActive")){this.depressTab();this.tabSystem.defaultActiveTab=this;}else{this.getContent().style.display=tabDisplayNone;this.getContent().style.visibility="hidden";if(Browser.id.OP5)setTimeout('Tab.list.'+this.id+'.content.style.position="absolute";',50);}if(Browser.id.OP5)setTimeout('Tab.list.'+this.id+'.content.style.visibility="hidden";',50);this.tabSystem.tabs[this.tabSystem.tabs.length]=this;};ControllerTab.extend(Tab);ControllerTab.prototype.setClassName=function(klass){this.el.className=klass;if(this.bottomTab)this.bottomTab.el.className=klass;};ControllerTab.prototype.hoverTab=hoverTab;ControllerTab.prototype.hoverOff=hoverOff;ControllerTab.prototype.depressTab=function depressTab(e){var tab=Tab.list[this.id];var tabSystem=tab.tabSystem;tabSystem.nextTab=tab;if(tabSystem.activeTab==tab) return;tabSystem.relatedTab=tabSystem.activeTab;if(false==tabSystem.el.onBeforeChange()) return;tab.el.onActivate();tab.setClassName("tab tabActive");if(tab.activesrc)tab.el.src=tab.activesrc;if(tabSystem.activeTab)resetTab(tabSystem.activeTab);tabSystem.activeTab=tab;tabSystem.el.onchange();if(tabSystem.relatedTab)tabSystem.relatedTab.getContent().style.display="none";tab.getContent().style.display="block";tab.getContent().style.visibility=contentInheritVis;tabSystem.nextTab=null;if(tabSystem.tabsClone)tabSystem.showTabsCloneIfNecessary();if(Browser.id.MOZ)updateTabsClonePosition(1);};BottomTab=function BottomTab(el,controllerTab){if(arguments.length==0) return;this.souper(el,controllerTab.tabSystem);this.controllerTab=controllerTab;};BottomTab.extend(Tab);BottomTab.prototype.hoverTab=function(){this.controllerTab.hoverTab();};BottomTab.prototype.hoverOff=function(){this.controllerTab.hoverOff();};BottomTab.prototype.depressTab=function depressClonedTab(e){var tabSystem=this.tabSystem;if(tabSystem.activeTab==this.controllerTab) return;this.controllerTab.depressTab(e);this.controllerTab.setClassName("tab tabActive");window.scrollTo(0,(tabSystem.tabsClone.offsetTop+this.el.offsetHeight)-getViewportHeight());};function switchTabs(id,e,bReturn){if(!Browser.isSupported())return true;try{var tab=Tab.list[id];tab.depressTab(e);}catch(ex){}if(!bReturn)window.scrollTo(0,0);return bReturn;}updateTabsClonePosition=function updateTabsClonePosition(delay){for(var id in TabSystem.list)if(TabSystem.list[id].tabParams.useClone)setTimeout("TabSystem.list."+id+".setTabsClonePosition();",delay||500);};TabSystem.prototype.setTabsClonePosition=function(){if(!this.activeTab) return;var adjustment=0;var contentEl=this.activeTab.content;if(Browser.id.IE5_0||Browser.id.MAC_IE5)adjustment=0;elseadjustment=2;this.tabsClone.style.top=(contentEl.offsetHeight+contentEl.offsetTop+adjustment)+px;};TabSystem.prototype.showTabsCloneIfNecessary=function(){if(!this.activeTab) return;var contentEl=this.activeTab.content;var contentBottom=contentEl.offsetTop+contentEl.offsetHeight;var visibility=(contentBottom>getViewportHeight()||this.getTabParams().alwaysShowClone)?"inherit":"hidden";this.tabsClone.style.visibility=visibility;this.setTabsClonePosition();if(Browser.id.MOZ){window.scrollBy(0,1);window.scrollBy(0,-1);}};function saveTabSystemState(){var activeTabList=getElementsWithClass(document.body,TabParams.tabTagName,"tabActive");for(var i=0;i<activeTabList.length;i++){if(!activeTabList[i].id) continue;activeTabList[i]=activeTabList[i].id;setPageCookie("activeTabs"+escape(getFilename()),activeTabList);}};contentPane.addEventListener("onunload",saveTabSystemState);function positionTabEl(tab){var tabs=tab.el.parentNode;if(tab.tagName=="IMG"||tab.id.indexOf("Bottomtab")==0)return;if(!tabs.tabOffset)tabs.tabOffset=0;var tabWidth=Math.round(tab.el.offsetWidth*1.1)+15;var sty=tab.el.style;sty.left=tabs.tabOffset+px;sty.width=tabWidth+px;sty.textAlign="center";sty.display="block";sty.position="absolute";tabs.tabOffset+=parseInt(tab.el.offsetWidth)+4;}if(Browser.id.OP5)window.document.write("<style>.content{position:absolute;}</style>");
meta: 1064	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/1064/4880f3147da22d14ddf434b5fe14f30342a93ec6/tabs.js/buggy/lib/tabs/tabs.js