//v.2.0 build 81107 /* Copyright DHTMLX LTD. http://www.dhtmlx.com You allowed to use this component or parts of it under GPL terms To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com */ function dhtmlXTabBar(parentObject,mode,height) {this._isIE7s=((_isIE)&&window.XMLHttpRequest&&(document.compatMode != "BackCompat"));mode=mode||"top";this._mode=mode+"/";this._linePos=2;this._eczF=true;this._bFix=4;if (_isIE)this.preventIECashing(true);if (typeof(parentObject)!="object") this.entBox=document.getElementById(parentObject);else this.entBox=parentObject;this.width = this.entBox.getAttribute("width") || this.entBox.style.width || (window.getComputedStyle?window.getComputedStyle(this.entBox,null)["width"]:(this.entBox.currentStyle?this.entBox.currentStyle["width"]:0));this.height = this.entBox.getAttribute("height") || this.entBox.style.height || (window.getComputedStyle?window.getComputedStyle(this.entBox,null)["height"]:(this.entBox.currentStyle?this.entBox.currentStyle["height"]:0));if (((this.width||"").indexOf("%")!=-1)||((this.width||"").indexOf("%")!=-1)) this.enableAutoReSize(true,true);if ((!this.width)||(this.width=="auto")||(this.width.indexOf("%")!=-1)||(parseInt(this.width)==0)) this.width=this.entBox.offsetWidth+"px";if ((!this.height)||(this.height.indexOf("%")!=-1)||(this.height=="auto")) this.height=this.entBox.offsetHeight+"px";this.activeTab = null;this.tabsId = new Object();this._align="left";this._offset=5;this._margin=1;this._height=parseInt(height||20);this._bMode=(mode=="right"||mode=="bottom");this._tabSize='150';this._content=new Array();this._tbst="win_text";this._styles={winDflt:["p_left.gif","p_middle.gif","p_right.gif","a_left.gif","a_middle.gif","a_right.gif","a_middle.gif",3,3,6,"#F4F3EE","#F0F8FF",false], winScarf:["with_bg/p_left.gif","with_bg/p_middle.gif","with_bg/p_right_skos.gif","with_bg/a_left.gif","with_bg/a_middle.gif","with_bg/a_right_skos.gif","with_bg/p_middle_over.gif",3,18,6,false,false,false], winBiScarf:["with_bg/p_left_skos.gif","with_bg/p_middle.gif","with_bg/p_right_skos.gif","with_bg/a_left_skos.gif","with_bg/a_middle.gif","with_bg/a_right_skos.gif","with_bg/p_middle_over.gif",18,18,6,false,false,false], winRound:["circuses/p_left.gif","circuses/p_middle.gif","circuses/p_right.gif","circuses/a_left.gif","circuses/a_middle.gif","circuses/a_right.gif","circuses/p_middle_over.gif",10,10,6,false,false,false], silver:["silver/p_left.gif","silver/p_middle.gif","silver/p_right.gif","silver/a_left.gif","silver/a_middle.gif","silver/a_right.gif","silver/p_middle.gif",7,8,6,"#F4F3EE","#F0F8FF","white"], modern:["modern/p_left.gif","modern/p_middle.gif","modern/p_right.gif","modern/a_left.gif","modern/a_middle.gif","modern/a_right.gif","modern/p_middle_over.gif",5,5,6,false,false,"white"], glassy_blue:["dhxgrid_glassy_blue/p_left.png","dhxgrid_glassy_blue/p_middle.png","dhxgrid_glassy_blue/p_right.png","dhxgrid_glassy_blue/a_left.png","dhxgrid_glassy_blue/a_middle.png","dhxgrid_glassy_blue/a_right.png","dhxgrid_glassy_blue/p_middle.png",2,3,8,false,false,"white",null,3,3,-4], dhx_blue:["blue/r_p.png","blue/c_p.png","blue/l_p.png","blue/r_a.png","blue/c_a.png","blue/l_a.png","blue/c_p.png",2,2,4,false,false,"transparent",0,2,0,0,";border:1px solid #C2D5DC;border-top:1px solid #C2D5DC;background-color:#D2E3EA","#D2E3EA","top/blue/close.gif","top/blue/scrl_r.gif","top/blue/scrl_l.gif"], dhx_black:["dark/r_p.png","dark/c_p.png","dark/l_p.png","dark/r_a.png","dark/c_a.png","dark/l_a.png","dark/c_p.png",2,2,4,false,false,"transparent",0,2,0,0,";border:1px solid #333333;border-top:1px solid #626262;background-color:#000000","#333333","top/dark/close.gif","top/dark/scrl_r.gif","top/dark/scrl_l.gif"] };this._createSelf(mode=="right"||mode=="left");this.setStyle("winDflt");this._TabCloseButton = false;this._TabCloseButtonSrc = 'close.png';this._TabScrRight="scrl_r.gif";this._TabScrLeft="scrl_l.gif";this._enableAutoRowAdd = false;return this};dhtmlXTabBar.prototype.setOffset = function(offset){this._offset=offset};dhtmlXTabBar.prototype.setAlign = function(align){if (align=="top")align="left";if (align=="bottom")align="right";this._align=align};dhtmlXTabBar.prototype.setMargin = function(margin){this._margin=margin};dhtmlXTabBar.prototype._createSelf = function(vMode) {this._tabAll=document.createElement("DIV");this._tabZone=document.createElement("DIV");this._conZone=document.createElement("DIV");this.entBox.appendChild(this._tabAll);if (this._bMode){this._tabAll.appendChild(this._conZone);this._tabAll.appendChild(this._tabZone)}else {this._tabAll.appendChild(this._tabZone);this._tabAll.appendChild(this._conZone)};this._vMode=vMode;if (vMode){this._tabAll.className='dhx_tabbar_zoneV';this._setSizes=this._setSizesV;this._redrawRow=this._redrawRowV}else this._tabAll.className='dhx_tabbar_zone';if (this._bMode)this._tabAll.className+='B';this._tabZone.className='dhx_tablist_zone';this._conZone.className='dhx_tabcontent_zone';this._tabZone.onselectstart = function(){return false};this._tabAll.onclick = this._onClickHandler;this._tabAll.onmouseover = this._onMouseOverHandler;if (_isFF)this._tabZone.onmouseout = this._onMouseOutHandler;else this._tabZone.onmouseleave = this._onMouseOutHandler;this._tabAll.tabbar=this;this._lineA=document.createElement("div");this._lineA.className="dhx_tablist_line";this._lineA.style[vMode?"left":"top"]=(this._bMode?0:(this._height+this._linePos))+"px";if (this._lineAHeight)this._lineA.style[vMode?"width":"height"]=this._lineAHeight;this._lineA.style[vMode?"height":"width"]=parseInt(this[vMode?"height":"width"])+((_isIE && document.compatMode!="BackCompat")?2:0)+"px";if(vMode)this._conZone.style.height=parseInt(this.height)+"px";else this._conZone.style.width=parseInt(this.width)-(_isFF?2:0)+"px";this.rows=new Array();this.rowscount=1;this._createRow();this._setSizes()};dhtmlXTabBar.prototype._createRow = function(){var z=document.createElement("DIV");z.className='dhx_tabbar_row';this._tabZone.appendChild(z);z._rowScroller=document.createElement('DIV');z._rowScroller.style.display="none";z.appendChild(z._rowScroller);this.rows[this.rows.length]=z;if (this._vMode){z.style.width=this._height+3+"px";z.style.height=parseInt(this.height)+"px";if (!this._bMode)this.setRowSizesA();else this.setRowSizesB()}else {z.style.height=parseInt(this._height)+3+"px";z.style.width=parseInt(this.width)+((_isIE && document.compatMode!="BackCompat")?2:0)+"px"};z.appendChild(this._lineA)};dhtmlXTabBar.prototype._removeRow=function(row){row.parentNode.removeChild(row);var z=new Array();for (var i=0;i0?a:0)+"px";a=parseInt(this.height)-z-this._bFix;this._conZone.style.height=(a>0?a:0)+"px"};dhtmlXTabBar.prototype._setSizesV = function(){this._tabAll.height=this.height;this._tabAll.width=this.width;var z=this._height*this.rows.length;if (!this._bMode){this._tabZone.style.width=z+3+"px";this._conZone.style.width=parseInt(this.width)-(z+(_isFF?5:3))+"px";this._conZone.style.left= z+3+"px"}else{this._tabZone.style.width=z+3+"px";this._conZone.style.width=parseInt(this.width)-(z+3)+"px";this._tabZone.style.left=parseInt(this.width)-(z+3)+"px"};this._conZone.style.height=parseInt(this.height)-(_isFF?2:0)+"px";this._tabZone.style.height=parseInt(this.height)+"px"};dhtmlXTabBar.prototype._redrawRowV=function(row){var talign=this._align=="left"?"top":"bottom";var count=parseInt(this._offset);for (var i=0;i=0;i--){this.rows[i].style.left=i*this._height+"px";this.rows[i].style.zIndex=15-i}};dhtmlXTabBar.prototype.setRowSizesC=function(){for (var i=this.rows.length-1;i>=0;i--){this.rows[i].style.zIndex=15-i}};dhtmlXTabBar.prototype._initScroller = function(row){var z=row._rowScroller;if (this._vMode)z.innerHTML="";else z.innerHTML="";if (this._align=="left"){z.childNodes[1].onclick=this._scrollRight;z.childNodes[0].onclick=this._scrollLeft}else {z.childNodes[1].onclick=this._scrollLeft;z.childNodes[0].onclick=this._scrollRight};z.className='dhx_tablist_scroll';z._init=1};dhtmlXTabBar.prototype._scrollLeft=function(){var that=this.parentNode.parentNode.parentNode.parentNode.tabbar;var row=this.parentNode.parentNode;if (!row.scrollIndex)row.scrollIndex=0;row.scrollIndex--;if (row.scrollIndex<0){row.scrollIndex=0;return};var shift=row.childNodes[row.scrollIndex]._offsetSize+that._margin*1;that._offset+=shift;that._redrawRow(row);return shift};dhtmlXTabBar.prototype._scrollTo=function(tab){var that=this;var row=tab.parentNode;if (!row._rowScroller._init)this._initScroller(row);if (this._vMode)var z=parseInt(tab.style[that._align=="left"?"top":"bottom"])+tab._offsetSize-parseInt(that.height);else var z=parseInt(tab.style[that._align])+tab._offsetSize-parseInt(that.width);while (z>0)if (that._align=="left")z-=row._rowScroller.childNodes[1].onclick();else z-=row._rowScroller.childNodes[0].onclick();if (this._vMode)var z=parseInt(tab.style[that._align=="left"?"top":"bottom"])-tab._offsetSize;else var z=parseInt(tab.style[that._align])-tab._offsetSize;while (z<0)if (that._align=="left")z+=row._rowScroller.childNodes[0].onclick();else z+=row._rowScroller.childNodes[1].onclick()};dhtmlXTabBar.prototype._scrollRight=function(){var that=this.parentNode.parentNode.parentNode.parentNode.tabbar;var row=this.parentNode.parentNode;if (row.tabCount-row.scrollIndex<2)return;if (!row.scrollIndex)row.scrollIndex=0;var shift=row.childNodes[row.scrollIndex]._offsetSize+that._margin*1;that._offset-=shift;that._redrawRow(row);row.scrollIndex++;return shift};dhtmlXTabBar.prototype._hideRowScroller = function(row){row._rowScroller.style.display='none'};dhtmlXTabBar.prototype.enableScroll = function(mode){this._edscr=(!convertStringToBoolean(mode));if(this._edscr)for (var i=0;i1)) this._removeRow(row);delete this.tabsId[tab.idd];this._redrawRow(row) this._setSizes()};dhtmlXTabBar.prototype._goToAny=function(tab,mode){if ((this._lastActive)==tab) if (convertStringToBoolean(mode)) {if (null===this.goToPrevTab()) if (null===this.goToNextTab()) this._lastActive=null}else this._lastActive=null};dhtmlXTabBar.prototype.addTab = function(id, text, size, position, row){row=row||0;if (this.rows.length<=row)for (var i=this.rows.length;i<=row;i++)this._createRow();var z=this.rows[row].tabCount||0;if ((!position)&&(position!==0)) position=z;var nss=this._getTabStyle(id);var tab=this._createTab(text, size, this._TabCloseButton, nss);tab.idd=id;this.tabsId[id] = tab;var close = tab.childNodes[2].getElementsByTagName('img')[0];if (this._TabCloseButton && close){var self = this;close.onclick = function() {if ((!self.dhx_tab_close)||(self.dhx_tab_close(id))) self.removeTab(id, true)}};this.rows[row].insertBefore(tab,this.rows[row].childNodes[position]);var prevCount = this.rows[row].tabCount;this.rows[row].tabCount=z+1;if (size=="*")this.adjustTabSize(tab);if ( this._enableAutoRowAdd && this._checkSizes(this.rows[row])) {this.rows[row].tabCount = prevCount;delete this.tabsId[id];this.rows[row].removeChild(tab);row++;position = this.rows[row] ? this.rows[row].tabCount : 0;this.addTab(id, text, size, position, row);return};this._redrawRow(this.rows[row]);this._setSizes()};dhtmlXTabBar.prototype.enableAutoRow=function(mode){this._enableAutoRowAdd=convertStringToBoolean(mode)};dhtmlXTabBar.prototype.normalize=function(limit,full){limit=limit||this._tabZone.offsetWidth;var tabs=[];for (var j=0;j';thml+='';thml+=''+text+'';if (IsCloseButton){thml+=''};thml+=''}else {thml='';thml+='';thml+='';if (IsCloseButton){thml+=''};thml+=''+text+'';thml+=''};if (!nss[10])tab.style.backgroundColor='transparent';else tab.style.backgroundColor=nss[10];break};tab.innerHTML=thml;tab.style.padding="0px";tab._lChild=tab.childNodes[tab.childNodes.length-1];if (this._vMode){tab.style.height=parseInt(size||this._tabSize)+"px";tab.style.width=this._height+(nss[14]||1)+"px"}else {tab.style.width=parseInt(size||this._tabSize)+"px";tab.style.height=this._height+(nss[14]||1)+"px"};tab._offsetSize=parseInt(size||this._tabSize);return tab};dhtmlXTabBar.prototype.adjustTabSize=function(tab,size){var nss=this._getTabStyle(tab.idd);size=size||tab.scrollWidth+(this._TabCloseButton?50:20);tab.style[this._vMode?"height":"width"]=size+"px";tab.childNodes[2].style[this._vMode?"height":"width"]=size-nss[8]-nss[7]+"px";tab._offsetSize=size};dhtmlXTabBar.prototype.clearAll = function(){var z=this._conZone.style.backgroundColor;this._content=new Array();this.tabsId=new Array();this.rows=new Array();this._lastActive=null;this._lastHower=null;this.entBox.innerHTML="";this._glframe=null;this._createSelf(this._vMode);this.setStyle(this._cstyle);if (z)this._conZone.style.backgroundColor=z;this.enableContentZone(this._eczF)};dhtmlXTabBar.prototype.setImagePath = function(path){this._imgPath=path};dhtmlXTabBar.prototype.loadXMLString=function(xmlString,afterCall){this.XMLLoader=new dtmlXMLLoaderObject(this._parseXML,this,true,this.no_cashe);this.XMLLoader.waitCall=afterCall||0;this.XMLLoader.loadXMLString(xmlString)};dhtmlXTabBar.prototype.loadXML=function(file,afterCall){this.XMLLoader=new dtmlXMLLoaderObject(this._parseXML,this,true,this.no_cashe);this.XMLLoader.waitCall=afterCall||0;this.XMLLoader.loadXML(file)};dhtmlXTabBar.prototype._getXMLContent=function(node){var text="";for (var i=0;i";this._glframe=z.childNodes[0];this._conZone.appendChild(this._glframe)};return;break;case "iframes": case "iframes-on-demand": var z=document.createElement("DIV");z.className="dhx_tabcontent_sub_zone";z.style.display='none';z.innerHTML="";this.setContent(id,z);break;case "ajax": case "ajax-html": var z=document.createElement("DIV");z.className="dhx_tabcontent_sub_zone";this.setContent(id,z);break};this._content[id]._loaded=false};dhtmlXTabBar.prototype.tabWindow=function(tab_id){if (this._hrfmode.indexOf("iframe")==0) return (this._content[tab_id]?this._content[tab_id].childNodes[0].contentWindow:null)};dhtmlXTabBar.prototype._ajaxOnLoad=function(obj,a,b,c,loader){if (obj[0]._hrfmode=="ajax"){var z=loader.getXMLTopNode("content");var val=obj[0]._getXMLContent(z)}else var val=loader.xmlDoc.responseText;obj[0]._resolveContent(obj[1],val);obj[0].adjustSize();if (obj[0].dhx_tab_loaded)obj[0].dhx_tab_loaded(obj[1])};dhtmlXTabBar.prototype._resolveContent=function(id,val){var z=val.match(/