8
hesk/inc/tabs/index.htm
Normal file
8
hesk/inc/tabs/index.htm
Normal file
@@ -0,0 +1,8 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
||||
<HTML><HEAD>
|
||||
<TITLE>403 Forbidden</TITLE>
|
||||
</HEAD><BODY>
|
||||
<H1>Forbidden</H1>
|
||||
You don't have permission to access this folder.<P>
|
||||
<hr />
|
||||
</BODY></HTML>
|
||||
40
hesk/inc/tabs/tabber-minimized.js
Normal file
40
hesk/inc/tabs/tabber-minimized.js
Normal file
@@ -0,0 +1,40 @@
|
||||
/* 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;}}}
|
||||
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="javascript:void(null);";DOM_a.title=t.headingText;DOM_a.name=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);}}
|
||||
109
hesk/inc/tabs/tabber.css
Normal file
109
hesk/inc/tabs/tabber.css
Normal file
@@ -0,0 +1,109 @@
|
||||
/* $Id: example.css,v 1.5 2006/03/27 02:44:36 pat Exp $ */
|
||||
|
||||
/*--------------------------------------------------
|
||||
REQUIRED to hide the non-active tab content.
|
||||
But do not hide them in the print stylesheet!
|
||||
--------------------------------------------------*/
|
||||
.tabberlive .tabbertabhide {
|
||||
display:none;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------
|
||||
.tabber = before the tabber interface is set up
|
||||
.tabberlive = after the tabber interface is set up
|
||||
--------------------------------------------------*/
|
||||
.tabber {
|
||||
}
|
||||
.tabberlive {
|
||||
margin-top:1em;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------
|
||||
ul.tabbernav = the tab navigation list
|
||||
li.tabberactive = the active tab
|
||||
--------------------------------------------------*/
|
||||
ul.tabbernav
|
||||
{
|
||||
margin:0;
|
||||
padding: 3px 0;
|
||||
border-bottom: 1px solid #778;
|
||||
font: bold 12px Verdana, sans-serif;
|
||||
}
|
||||
|
||||
ul.tabbernav li
|
||||
{
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
ul.tabbernav li a
|
||||
{
|
||||
padding: 3px 0.5em;
|
||||
margin-left: 3px;
|
||||
border: 1px solid #778;
|
||||
border-bottom: none;
|
||||
background: #DDE;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
ul.tabbernav li a:link { color: #448; }
|
||||
ul.tabbernav li a:visited { color: #667; }
|
||||
|
||||
ul.tabbernav li a:hover
|
||||
{
|
||||
color: #000;
|
||||
background: #AAE;
|
||||
border-color: #227;
|
||||
}
|
||||
|
||||
ul.tabbernav li.tabberactive a
|
||||
{
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
|
||||
ul.tabbernav li.tabberactive a:hover
|
||||
{
|
||||
color: #000;
|
||||
background: white;
|
||||
border-bottom: 1px solid white;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------
|
||||
.tabbertab = the tab content
|
||||
Add style only after the tabber interface is set up (.tabberlive)
|
||||
--------------------------------------------------*/
|
||||
.tabberlive .tabbertab {
|
||||
padding:5px;
|
||||
border:1px solid #aaa;
|
||||
border-top:0;
|
||||
|
||||
/* If you don't want the tab size changing whenever a tab is changed
|
||||
you can set a fixed height */
|
||||
|
||||
/* height:200px; */
|
||||
|
||||
/* If you set a fix height set overflow to auto and you will get a
|
||||
scrollbar when necessary */
|
||||
|
||||
/* overflow:auto; */
|
||||
}
|
||||
|
||||
/* If desired, hide the heading since a heading is provided by the tab */
|
||||
.tabberlive .tabbertab h2 {
|
||||
display:none;
|
||||
}
|
||||
.tabberlive .tabbertab h3 {
|
||||
display:none;
|
||||
}
|
||||
|
||||
/* Example of using an ID to set different styles for the tabs on the page */
|
||||
.tabberlive#tab1 {
|
||||
}
|
||||
.tabberlive#tab2 {
|
||||
}
|
||||
.tabberlive#tab2 .tabbertab {
|
||||
height:200px;
|
||||
overflow:auto;
|
||||
}
|
||||
Reference in New Issue
Block a user