/*
 * JX 0.52  - 3 Dec 2008
 * Copyright(c) 2008, Santosh Rajan
 * Author: Santosh Rajan
 * Email: santrajan@gmail.com
 * License: Dual License - MIT, GPL
 */

var JX={extend:function(C,E,D){var B=function(){};B.prototype=E.prototype;C.prototype=new B();C.prototype.constructor=C;C.superclass=E.prototype;for(var A in D){C.prototype[A]=D[A]}},setScope:function(B,A){return function(){return B.apply(A,arguments)}},namespace:function(){var C,D;for(var B=0;B<arguments.length;B++){C=window;D=arguments[B].split(".");for(var A in D){C=C[D[A]]=C[D[A]]?C[D[A]]:{}}}},isObject:function(A){return(A&&A.constructor&&A.constructor==Object.prototype.constructor&&!A.nodeName)?true:false},isArray:function(A){return/array/i.test(A.constructor)?true:false},jxTypes:{accordion:"JX.Accordion",button:"JX.Button",component:"JX.Component",container:"JX.Container",columncontainer:"JX.ColumnContainer",frame:"JX.Frame",grid:"JX.Grid",panel:"JX.Panel",roundcornerbox:"JX.RoundCornerBox",tree:"JX.Tree",tabs:"JX.Tabs"}};JX.Component=function(){if(JX.isObject(arguments[0])){var A=arguments[0];A.jxtype=A.jxtype?A.jxtype:"div";A.jxtype=JX.jxTypes[A.jxtype]?"div":A.jxtype;JX.Component.superclass.init.call(this,document.createElement(A.jxtype));this.applyConfig(A)}else{if(arguments.length>0){JX.Component.superclass.init.apply(this,arguments)}else{JX.Component.superclass.init.call(this,document.createElement("div"))}}this[0]._jx=this};JX.extend(JX.Component,jQuery,{applyConfig:function(config){var a;this.css({overflow:"hidden"});for(var key in config){a=JX.isArray(config[key])?config[key]:[config[key]];for(var i=0;i<a.length;i++){if(config.scopeThis){a[i]=(typeof a[i]=="function")?JX.setScope(a[i],this):a[i]}}eval("this."+key+".apply(this, a)")}},jxtype:function(A){this._jxtype=A},fitWidth:function(A){this._fitWidth=A;return this},fitHeight:function(A){this._fitHeight=A;return this},scopeThis:function(A){this._scope=A},fieldName:function(A){this._fieldName=A},appendTo:function(A){JX.Component.superclass.appendTo.call(this,A);this.height(A.height());this.width(A.width())},setLoadIndicator:function(B,A,D){var C;this.children().each(function(){$(this).remove()});var F=(C=parseInt(this.height()/2-D/2))<0?"0px":C+"px";var E=(C=parseInt(this.width()/2-A/2))<0?"0px":C+"px";JX.Component.prototype.append.call(this,new JX.Component({jxtype:"image",attr:{src:B},css:{position:"relative",top:F,left:E}}))},removeLoadIndicator:function(){this.children().each(function(){$(this).remove()})},spacingHeight:function(){var A=0,B;A+=isNaN(B=parseInt(this.css("borderTopWidth")))?0:B;A+=isNaN(B=parseInt(this.css("borderBottomWidth")))?0:B;A+=isNaN(B=parseInt(this.css("paddingTop")))?0:B;A+=isNaN(B=parseInt(this.css("paddingBottom")))?0:B;return A},spacingWidth:function(){var A=0,B;A+=isNaN(B=parseInt(this.css("borderLeftWidth")))?0:B;A+=isNaN(B=parseInt(this.css("borderRightWidth")))?0:B;A+=isNaN(B=parseInt(this.css("paddingLeft")))?0:B;A+=isNaN(B=parseInt(this.css("paddingRight")))?0:B;return A},draggable:function(A){if($("#jxdraghelper")[0]==undefined){$("body").append('<div id="jxdraghelper"></div>')}var A=jQuery.extend({appendTo:"#jxdraghelper",helper:"clone",revert:"invalid",opacity:0.7,containment:"body"},A);JX.Component.superclass.draggable.call(this,A)}});JX.Container=function(){this._items=[];JX.Container.superclass.constructor.apply(this,arguments)};JX.extend(JX.Container,JX.Component,{applyConfig:function(config){JX.Container.superclass.applyConfig.apply(this,arguments);var c=this.citems?this.citems:[],item,obj;for(var i=0;i<c.length;i++){item=c[i];if(JX.isObject(item)){item.jxtype=item.jxtype?item.jxtype:"div";if(JX.jxTypes[item.jxtype]){eval("obj = new "+JX.jxTypes[item.jxtype]+"(item)")}else{obj=new JX.Component(item)}}else{obj=item}this.append(obj)}},append:function(A){JX.Container.superclass.append.apply(this,arguments);if(A instanceof JX.Component){this._items.push(A);A._parent=this;A._idx=this._items.length-1}return this},items:function(){this.citems=Array.prototype.slice.call(arguments)},doLayout:function(){var D=this.height(),A,C;if(this.is(":hidden")){return }for(var B=0;B<this._items.length;B++){C=this._items[B];if(C.is(":hidden")){continue}if(C._fitWidth){C.width(this.width()-C.spacingWidth())}if(C._fitHeight){A=C;D-=C.spacingHeight()}else{D-=C.outerHeight()}}if(A){A.height(D)}for(var B in this._items){C=this._items[B];if(C.doLayout){JX.setScope(C.doLayout,C)()}}return this},getItems:function(){return this._items},trigger:function(){JX.Container.superclass.trigger.apply(this,arguments);if(this._items){for(var A=0;A<this._items.length;A++){this._items[A].trigger.apply(this._items[A],arguments)}}},removeItem:function(A){var B=this._items;B[A].remove();B.splice(A,1);this.setItemIndex()},droppable:function(A){this._drop=A.drop?A.drop:null;delete A.drop;var A=jQuery.extend({accept:function(){return true},drop:JX.setScope(this.drop,this)},A);JX.Container.superclass.droppable.call(this,A)},drop:function(E,C){var G=C.draggable[0]._jx;if(this._drop){this._drop(E,C,G,this);return }var F=C.position,A=this._items,D;for(var B=0;B<A.length;B++){D=A[B].position();if(this.isLess(F,D)){break}}G._parent.removeItem(G._idx);this.insertAt(G,B);this.dragEnable(G)},dragEnable:function(A){A.draggable("enable")},isLess:function(B,A){return(B.top<A.top)},insertAt:function(C,A){var B=this._items;if(A==B.length||B.length==0){this.append(C);return }C._parent=this;B.splice(A,0,C);this.setItemIndex();this.insertItemBefore(C,A+1)},insertItemBefore:function(B,A){this._items[A].before(B)},setItemIndex:function(){var A=this._items;for(var B=0;B<A.length;B++){A[B]._idx=B}}});JX.BodyContainer=function(A){this._body=new JX.Container({});JX.BodyContainer.superclass.constructor.apply(this,arguments)};JX.extend(JX.BodyContainer,JX.Container,{append:function(A){this._body.append(A);return this},body:function(A){this._body.applyConfig(A)},getItems:function(){return this._body._items},text:function(A){this._body.text(A);return this},html:function(A){this._body.html(A);return this}});JX.Viewport=function(){JX.Viewport.superclass.constructor.call(this,document.body);this.children().each(function(){$(this).hide()});this.css({padding:"0px",margin:"0px"});this.setSize();$(window).resize(JX.setScope(this.setSize,this));if(JX.isObject(arguments[0])){this.applyConfig(arguments[0]);this.setSize()}};JX.extend(JX.Viewport,JX.Container,{setSize:function(){this.height($(window).height());this.width($(window).width());this.doLayout()}});JX.ColumnContainer=function(){if(arguments.length>0){JX.ColumnContainer.superclass.constructor.apply(this,arguments)}else{JX.ColumnContainer.superclass.constructor.call(this,{})}this._gridfix=0};JX.extend(JX.ColumnContainer,JX.Container,{applyConfig:function(A){$('<table border="0px" cellspacing="0px" cellpadding="0px"><tr></tr></table>').appendTo(this);JX.ColumnContainer.superclass.applyConfig.apply(this,arguments)},append:function(A){$("tr:first",this).append($(document.createElement("td")).append(A));if(A instanceof JX.Component){this._items.push(A);A._parent=this;A._idx=this._items.length-1}return this},doLayout:function(){var A=this.height(),B,E;var D=this.width();if(!D){return }for(var C=0;C<this._items.length;C++){E=this._items[C];if(E._fitHeight){E.height(A-E.spacingHeight())}if(E._fitWidth){B=E;D-=E.spacingWidth()+this._gridfix;if(this._gridfix){this.width(this.width()-this._gridfix)}}else{D-=E.outerWidth()}}if(B){B.width(D)}for(var C=0;C<this._items.length;C++){E=this._items[C];if(E.doLayout){JX.setScope(E.doLayout,E)()}}return this},removeItem:function(A){var B=$(":parent:first",this._items[A]);JX.ColumnContainer.superclass.removeItem.call(this,A);B.remove()},gridfix:function(A){this._gridfix=A},isLess:function(B,A){return(B.left<A.left)},insertItemBefore:function(C,A){$("td",this).remove();var B=this._items.slice();this._items=[];for(var D=0;D<B.length;D++){this.append(B[D])}},dragEnable:function(A){for(var B=0;B<this._items.length;B++){this._items[B].draggable("enable")}}});JX.Panel=function(A){JX.Panel.superclass.constructor.apply(this,arguments);this.applyCSS();if(this._title){JX.Container.prototype.append.call(this,this._title)}if(this._header){this.addHeader(this._header)}JX.Container.prototype.append.call(this,this._body)};JX.extend(JX.Panel,JX.BodyContainer,{applyCSS:function(){this.addClass("panel");this._title.addClass("panel-title");this._body.addClass("panel-body")},title:function(A){if(JX.isObject(A)){A.addClass=A.addClass?A.addClass:"panel-title";this._title=new JX.Component(A)}else{this._title=A}},setTitle:function(A){this._title.text(A)}});JX.Frame=function(B){JX.Frame.superclass.constructor.apply(this,arguments);var A=function(C,E,D){return new JX.ColumnContainer().append(C).append(E).append(D)};JX.Container.prototype.append.call(this,A(this._topLeft,this._topCenter,this._topRight));JX.Container.prototype.append.call(this,A(this._middleLeft,this._body,this._middleRight));JX.Container.prototype.append.call(this,A(this._bottomLeft,this._bottomCenter,this._bottomRight));this._items[1].fitHeight(true).fitWidth(true)};JX.extend(JX.Frame,JX.BodyContainer,{topLeft:function(A){this._topLeft=new JX.Component(A)},topCenter:function(A){this._topCenter=new JX.Component(A)},topRight:function(A){this._topRight=new JX.Component(A)},middleLeft:function(A){this._middleLeft=new JX.Component(A)},middleRight:function(A){this._middleRight=new JX.Component(A)},bottomLeft:function(A){this._bottomLeft=new JX.Component(A)},bottomCenter:function(A){this._bottomCenter=new JX.Component(A)},bottomRight:function(A){this._bottomRight=new JX.Component(A)}});JX.RoundCornerBox=function(E){var D=E.imagepath;delete E.imagepath;var A=E.radius;delete E.radius;var C=E.backgroundColor;delete E.backgroundColor;var B=jQuery.extend({topLeft:{width:A,height:A,css:{background:"url("+D+") no-repeat top left"}},topCenter:{height:A,fitWidth:true,css:{background:C}},topRight:{width:A,height:A,css:{background:"url("+D+") no-repeat top right"}},middleLeft:{width:A,fitHeight:true,css:{background:C}},middleRight:{width:A,fitHeight:true,css:{background:C}},bottomLeft:{width:A,height:A,css:{background:"url("+D+") no-repeat 0px -"+A+"px"}},bottomCenter:{height:A,fitWidth:true,css:{background:C}},bottomRight:{width:A,height:A,css:{background:"url("+D+") no-repeat -"+A+"px -"+A+"px"}}},E);JX.RoundCornerBox.superclass.constructor.call(this,B)};JX.extend(JX.RoundCornerBox,JX.Frame);JX.History=function(A){this.eventname=A.eventname?A.eventname:null;this.viewport=A.viewport;this.defaulthash=A.defaulthash;var B=(location.hash==""||location.hash=="#")?A.defaulthash:location.hash;if(jQuery.browser.msie){$("body").prepend('<iframe id="msieframe" style="display: none;"></iframe>');this.iframe=$("#msieframe")[0].contentWindow.document;this.iframe.open();this.iframe.close();this.iframe.location.hash=location.hash;this.hash=this.iframe.location.hash}if(this.eventname){this.viewport.trigger(this.eventname,[B])}this.intervalId=setInterval(JX.setScope(this.checkHash,this),200)};JX.History.prototype.setLocation=function(A){location.hash=A;this.hash=location.hash;if(jQuery.browser.msie){this.iframe.open();this.iframe.close();this.iframe.location.hash=this.hash}if(this.eventname){this.viewport.trigger(this.eventname,[A])}};JX.History.prototype.checkHash=function(){if(jQuery.browser.msie){var B=$("#msieframe")[0];var A=B.contentDocument||B.contentWindow.document;if(this.hash!=A.location.hash){this.hash=A.location.hash;this.hash=(this.hash=="#")?"":this.hash;location.hash=this.hash;var C=this.hash?this.hash:this.defaulthash;this.viewport.trigger(this.eventname,[C])}return }if(this.hash!=location.hash){this.hash=location.hash;var C=this.hash?this.hash:this.defaulthash;if(this.eventname){this.viewport.trigger(this.eventname,[C])}}};JX.Grid=function(A){JX.Grid.superclass.constructor.apply(this,arguments);if(this._loadURL){this.loadData(this._loadURL)}else{if(this._data){this.appendData(this._data)}}};JX.extend(JX.Grid,JX.Panel,{applyCSS:function(){this.addClass("grid");if(this._title){this._title.addClass("grid-title")}this._body.addClass("grid-body");this._body.css({overflow:"auto"})},addHeader:function(A){var C=jQuery.extend({},A.items[0]);C.text="";C.html="&nbsp";C.width=18;var B=this.createRow(A.items);B.append(new JX.Component(C).css({padding:"0"}));delete A.items;JX.Component.prototype.applyConfig.call(B,A);JX.Container.prototype.append.call(this,B)},header:function(B){B.addClass=B.addClass?B.addClass:"grid-header";for(var A=0;A<B.items.length;A++){B.items[A].addClass=B.items[A].addClass?B.items[A].addClass:"grid-header-cell"}this._header=B},record:function(){this._record=Array.prototype.slice.call(arguments);for(var A=0;A<this._record.length;A++){this._record[A].addClass=this._record[A].addClass?this._record[A].addClass:"grid-cell"}},data:function(){this._data=Array.prototype.slice.call(arguments)},loadURL:function(A){this._loadURL=A},loadIndicator:function(A){this._loadIndicator=A},hoverClass:function(A){this._hoverClass=A},cellClick:function(A){this._cellclick=JX.setScope(A,this)},cellDblClick:function(A){this._celldblclick=JX.setScope(A,this)},append:function(A){if(this._body._items.length%2==1){A.addClass("grid-row-alternate")}this._body.append(A);return this},createRow:function(A){var D=new JX.ColumnContainer({}).fitWidth(true),C;for(var B=0;B<this._record.length;B++){C=new JX.Component(this._record[B]);C.applyConfig(A[B]);D.append(C)}return D},appendData:function(C){var A,G,I,H,F,E;for(var D=0;D<C.length;D++){A=C[D];G=[];for(var B=0;B<this._record.length;B++){G.push({text:A[this._record[B].fieldName]})}I=this.createRow(G);I.gridfix(18);if(this._hoverClass){F=this._hoverClass;I.hover(JX.setScope(function(){if(this.hasClass("grid-row-alternate")){this.removeClass("grid-row-alternate");E="grid-row-alternate"}else{E=""}this.addClass(F)},I),JX.setScope(function(){this.removeClass(F);if(E){this.addClass(E)}},I))}for(var B=0;B<I._items.length;B++){H=I._items[B];H._row=D;H._col=B;H._grid=this;if(this._cellclick){H.click(JX.setScope(function(J){this._grid._cellclick(this._row,this._col,this._grid._data,this._fieldName);J.preventDefault()},H))}if(this._celldblclick){H.dblclick(JX.setScope(function(J){this._grid._celldblclick(this._row,this._col,this._grid._data,this._fieldName);J.preventDefault()},H))}}this.append(I)}},loadData:function(A){if(this._loadIndicator){this._body.setLoadIndicator(this._loadIndicator.imagePath,this._loadIndicator.width,this._loadIndicator.height)}$.getJSON(A,JX.setScope(function(B){this._body.removeLoadIndicator();this._data=B;this.appendData(B);this.doLayout()},this))}});JX.Tree=function(A){JX.Tree.superclass.constructor.apply(this,arguments)};JX.extend(JX.Tree,JX.Container,{applyConfig:function(B){if(B.loadURL){this._loadURL=B.loadURL;if(B.loadIndicator){this._loadIndicator=B.loadIndicator}return }var G,C,A,F,I=[],D;G={nodeTogglePlusCSS:"tree-toggle-plus",nodeToggleMinusCSS:"tree-toggle-minus",nodeTextCSS:"tree-node-text",leafTextCSS:"tree-leaf-text",nodeIconCSS:"tree-node-icon",leafIconCSS:"tree-leaf-icon",nodeHoverCSS:"tree-node-hover"},this.css=G;if(B.defaults){D=B.defaults;this.handler=D.handler?D.handler:null}this.handler=B.handler?B.handler:this.handler;this.params=B.params?B.params:null;this.isLeaf=(B.items&&B.items.length>0)?false:true;this.expand=(B.expand)?B.expand:false;if(this.isLeaf){C=B.textClass?B.textClass:G.leafTextCSS;A=B.iconClass?B.iconClass:G.leafIconCSS;F=""}else{C=B.textClass?B.textClass:G.nodeTextCSS;A=B.iconClass?B.iconClass:G.nodeIconCSS;F=(this.expand)?G.nodeToggleMinusCSS:G.nodeTogglePlusCSS;I.push({width:16,height:16,addClass:F})}I.push({width:16,height:16,addClass:A});I.push({fitWidth:true,height:16,addClass:C,text:B.text});this.node=new JX.ColumnContainer({fitWidth:true,css:{paddingBottom:"2px"},items:I});this.node.hover(JX.setScope(function(){this.addClass(G.nodeHoverCSS)},this.node),JX.setScope(function(){this.removeClass(G.nodeHoverCSS)},this.node));this.node.click(JX.setScope(this.onClick,this));JX.Tree.superclass.append.call(this,this.node);if(!this.isLeaf){this._body=new JX.Container({}).css({paddingLeft:"16px"});JX.Tree.superclass.append.call(this,this._body);for(var E=0;E<B.items.length;E++){var H=B.items[E];H.defaults=D;this.append(new JX.Tree(H))}}},doLayout:function(){if(this._loadURL){this.loadData(this._loadURL);this._loadURL=null;return }JX.Tree.superclass.doLayout.apply(this,arguments);if(!this.expand&&this._body){this._body.hide()}},onClick:function(){if(this.isLeaf){if(this.handler){this.handler(this.params)}return }var A=this.node._items[0];if(!this.expand){this.expand=true;A.removeClass(this.css.nodeTogglePlusCSS);A.addClass(this.css.nodeToggleMinusCSS);this._body.slideDown("slow")}else{this.expand=false;A.removeClass(this.css.nodeToggleMinusCSS);A.addClass(this.css.nodeTogglePlusCSS);this._body.slideUp("slow")}},append:function(A){this._body.append(A);return this},loadData:function(A){if(this._loadIndicator){this.setLoadIndicator(this._loadIndicator.imagePath,this._loadIndicator.width,this._loadIndicator.height)}$.getJSON(A,JX.setScope(function(B){this.removeLoadIndicator();delete B.jxtype;this.applyConfig(B);this.doLayout()},this))}});JX.Button=function(B){this.disabled=B.disabled?true:false;this.handler=B.handler?B.handler:null;this.params=B.params?B.params:null;var A=[{addClass:"button-left"}];if(B.iconPath){A.push({addClass:"button-icon",fitHeight:true,html:'<img src="'+B.iconPath+'"/>'})}A.push({text:B.text,fitHeight:true,addClass:"button-text"});A.push({addClass:"button-right"});var C={addClass:"button",mousedown:function(E){E.preventDefault();E.stopPropagation();if(this.disabled){return }var D=0;this._items[D++].addClass("button-left-click");if(this._items.length==4){this._items[D++].addClass("button-icon-click")}this._items[D++].addClass("button-text-click");this._items[D++].addClass("button-right-click");if(this.handler){this.handler(this.params)}setTimeout(JX.setScope(function(){var F=0;this._items[F++].removeClass("button-left-click");if(this._items.length==4){this._items[F++].removeClass("button-icon-click")}this._items[F++].removeClass("button-text-click");this._items[F++].removeClass("button-right-click")},this),250)},scopeThis:true,items:A};if(this.disabled){C.css={opacity:"0.5"}}JX.Button.superclass.constructor.call(this,C)};JX.extend(JX.Button,JX.ColumnContainer,{enable:function(){this.disabled=false;this.css({opacity:"1"})},disable:function(){this.disabled=true;this.css({opacity:"0.5"})}});JX.Accordion=function(A){JX.Accordion.superclass.constructor.apply(this,arguments);this.addClass("accordion");this.selected=this._items[0];for(var B=0;B<this._items.length;B++){var C=this._items[B];if(B==A.setSelected){this.selected=this._items[A.setSelected]}C._title._items[C._title._items.length-2].fitWidth(true);C._title.params=[this,C];C._title.handler=function(F){var D=F[0],E=F[1];D.selected._body.slideUp("slow",function(){D.selected=E;D.doLayout()})}}};JX.extend(JX.Accordion,JX.Container,{setSelected:function(A){this._setSelected=A},append:function(A){A._title.removeClass("panel-title");A._body.removeClass("panel-body").addClass("accordion-item-body");JX.Accordion.superclass.append.call(this,A)},doLayout:function(){for(var A=0;A<this._items.length;A++){var B=this._items[A];if(B==this.selected){B.fitHeight(true);B._body.fitHeight(true);B._title.disable()}else{B.height(B._title.outerHeight()).fitHeight(false);B._body.fitHeight(false);B._title.enable()}}JX.Accordion.superclass.doLayout.apply(this,arguments);this.selected._body.slideDown("slow")}});JX.Tabs=function(A){for(var B=0;B<A.items.length;B++){A.items[B].addClass="tabs-item-body"}JX.Tabs.superclass.constructor.apply(this,arguments);if(this._selected==undefined){this._selected=0}this._prevSelected=0};JX.extend(JX.Tabs,JX.Container,{applyConfig:function(A){this._tabstrip=new JX.ColumnContainer({addClass:"tab-strip",fitWidth:true});JX.Tabs.superclass.append.call(this,this._tabstrip);for(var B=0;B<A.items.length;B++){this.appendTab(A.items[B])}JX.Component.prototype.applyConfig.call(this,A)},appendTab:function(A){var B=new JX.Tab(A.title);B._tabs=this;delete A.title;this._tabstrip.append(B);JX.Tabs.superclass.append.call(this,new JX.Container(A))},setSelected:function(A){this._selected=A},doLayout:function(){for(var A=1;A<this._items.length;A++){this._items[A].hide()}this._tabstrip._items[this._prevSelected].deselect("active");this._tabstrip._items[this._selected].select("active");this._items[this._selected+1].show();this._prevSelected=this._selected;JX.Tabs.superclass.doLayout.apply(this,arguments)},removeTab:function(A){this.removeItem(A+1);this._tabstrip.removeItem(A);if(this._selected&&this._selected>=A){this._selected-=1}this._prevSelected=this._prevSelected?this._prevSelected-1:0;this.doLayout()}});JX.Tab=function(C){var B=[{addClass:"tab-left"}];if(C.iconPath){B.push({addClass:"tab-icon",fitHeight:true,html:'<img src="'+C.iconPath+'"/>'});this._icon=true;delete C.iconPath}B.push({text:C.text,fitWidth:true,addClass:"tab-text",css:{overflow:"hidden"}});delete C.text;if(C.closable){var A=new JX.Component({width:12,height:12,addClass:"close-icon",click:function(){this._tab._tabs.removeTab(this._tab._idx)},mousedown:function(E){E.preventDefault();E.stopPropagation()},hover:[function(){this.addClass("close-icon-hover")},function(){this.removeClass("close-icon-hover")}],scopeThis:true});A._tab=this;B.push({jxtype:"container",addClass:"tab-close",fitHeight:true,items:[A]});this._close=true;delete C.closable}B.push({addClass:"tab-right"});var D=jQuery.extend(C,{addClass:"tab",mousedown:function(E){E.preventDefault();E.stopPropagation();if(this._idx==this._tabs._selected){return }this._tabs._selected=this._idx;this.deselect("hover");this._tabs.doLayout();if(this.handler){this.handler(this.params)}},hover:[function(E){if(this._idx==this._tabs._selected){return }this.select("hover")},function(E){if(this._idx==this._tabs._selected){return }this.deselect("hover")}],scopeThis:true,items:B});JX.Tab.superclass.constructor.call(this,D)};JX.extend(JX.Tab,JX.ColumnContainer,{select:function(B){B=B?"-"+B:"";var A=0;this._items[A++].addClass("tab-left"+B);if(this._icon){this._items[A++].addClass("tab-icon"+B)}this._items[A++].addClass("tab-text"+B);if(this._close){this._items[A++].addClass("tab-close"+B)}this._items[A++].addClass("tab-right"+B)},deselect:function(B){B=B?"-"+B:"";var A=0;this._items[A++].removeClass("tab-left"+B);if(this._icon){this._items[A++].removeClass("tab-icon"+B)}this._items[A++].removeClass("tab-text"+B);if(this._close){this._items[A++].removeClass("tab-close"+B)}this._items[A++].removeClass("tab-right"+B)}})