/******************************************************************************
 * MooTools 1.2.1
 * Copyright (c) 2006-2007 [Valerio Proietti](http://mad4milk.net/).
 * MooTools is distributed under an MIT-style license.
 ******************************************************************************
 * reset.css - Copyright (c) 2006, Yahoo! Inc. All rights reserved.
 * Code licensed under the BSD License: http://developer.yahoo.net/yui/license.txt
 ******************************************************************************
 * Jx UI Library, 2.0-rc-1
 * Copyright (c) 2006-2008, DM Solutions Group Inc. All rights reserved.
 *****************************************************************************/
window.addEvent("load",function(){if(!("console" in window)||!("firebug" in window.console)){var B=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"];window.console={};for(var A=0;A<B.length;++A){window.console[B[A]]=function(){}}}});(function(){var A=navigator.userAgent.toLowerCase();var B=A.indexOf("msie")>-1,D=A.indexOf("msie 7")>-1;if(B&&!D){try{document.execCommand("BackgroundImageCache",false,true)}catch(C){}}})();Class.Mutators.Family=function(A,B){A.$family={name:B};return A};if(typeof Jx=="undefined"){var Jx={};var aScripts=document.getElementsByTagName("SCRIPT");for(var i=0;i<aScripts.length;i++){var s=aScripts[i].src;var matches=/(.*[jx|js|lib])\/jxlib(.*)/.exec(s);if(matches&&matches[0]){Jx.aPixel=document.createElement("img",{alt:"",title:""});Jx.aPixel.src=matches[1]+"/a_pixel.png";Jx.baseURL=Jx.aPixel.src.substring(0,Jx.aPixel.src.indexOf("a_pixel.png"))}}var src=aScripts[0].src;if(src.contains("app:")){Jx.isAir=true}else{Jx.isAir=false}}Jx.applyPNGFilter=function(C){var A=Jx.aPixel.src;if(C.src!=A){var B=C.src;C.src=A;C.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+B+"',sizingMethod='scale')"}};Jx.imgQueue=[];Jx.imgLoaded={};Jx.imagesLoading=0;Jx.addToImgQueue=function(A){if(Jx.imgLoaded[A.src]){A.element.src=A.src}else{Jx.imgQueue.push(A);Jx.imgLoaded[A.src]=true}Jx.checkImgQueue()};Jx.checkImgQueue=function(){while(Jx.imagesLoading<2&&Jx.imgQueue.length>0){Jx.loadNextImg()}};Jx.loadNextImg=function(){var A=Jx.imgQueue.shift();if(A){++Jx.imagesLoading;A.element.onload=function(){--Jx.imagesLoading;Jx.checkImgQueue()};A.element.onerror=function(){--Jx.imagesLoading;Jx.checkImgQueue()};A.element.src=A.src}};Jx.createIframeShim=function(){return new Element("iframe",{"class":"jxIframeShim",scrolling:"no",frameborder:0})};Element.implement({getBoxSizing:function(){var B="content-box";if(Browser.Engine.trident||Browser.Engine.presto){var A=document.compatMode;if(A=="BackCompat"||A=="QuirksMode"){B="border-box"}else{B="content-box"}}else{if(arguments.length===0){node=document.documentElement}var C=this.getStyle("-moz-box-sizing");if(!C){C=this.getStyle("box-sizing")}B=(C?C:"content-box")}return B},getContentBoxSize:function(){var A=this.offsetWidth;var C=this.offsetHeight;var D=this.getPaddingSize();var B=this.getBorderSize();A=A-D.left-D.right-B.left-B.right;C=C-D.bottom-D.top-B.bottom-B.top;return{width:A,height:C}},getBorderBoxSize:function(){var A=this.offsetWidth;var B=this.offsetHeight;return{width:A,height:B}},getMarginBoxSize:function(){var C=this.getMarginSize();var A=this.offsetWidth+C.left+C.right;var B=this.offsetHeight+C.top+C.bottom;return{width:A,height:B}},setContentBoxSize:function(C){if(this.getBoxSizing()=="border-box"){var E=this.getPaddingSize();var B=this.getBorderSize();if(typeof C.width!="undefined"){var D=(C.width+E.left+E.right+B.left+B.right);if(D<0){D=0}this.style.width=D+"px"}if(typeof C.height!="undefined"){var A=(C.height+E.top+E.bottom+B.top+B.bottom);if(A<0){A=0}this.style.height=A+"px"}}else{if(typeof C.width!="undefined"){this.style.width=C.width+"px"}if(typeof C.height!="undefined"){this.style.height=C.height+"px"}}},setBorderBoxSize:function(C){if(this.getBoxSizing()=="content-box"){var F=this.getPaddingSize();var B=this.getBorderSize();var E=this.getMarginSize();if(typeof C.width!="undefined"){var D=(C.width-F.left-F.right-B.left-B.right-E.left-E.right);if(D<0){D=0}this.style.width=D+"px"}if(typeof C.height!="undefined"){var A=(C.height-F.top-F.bottom-B.top-B.bottom-E.top-E.bottom);if(A<0){A=0}this.style.height=A+"px"}}else{if(typeof C.width!="undefined"&&C.width>=0){this.style.width=C.width+"px"}if(typeof C.height!="undefined"&&C.height>=0){this.style.height=C.height+"px"}}},getPaddingSize:function(){var B=this.getNumber(this.getStyle("padding-left"));var C=this.getNumber(this.getStyle("padding-top"));var D=this.getNumber(this.getStyle("padding-right"));var A=this.getNumber(this.getStyle("padding-bottom"));return{left:B,top:C,right:D,bottom:A}},getBorderSize:function(){var B=this.getNumber(this.getStyle("border-left-width"));var C=this.getNumber(this.getStyle("border-top-width"));var D=this.getNumber(this.getStyle("border-right-width"));var A=this.getNumber(this.getStyle("border-bottom-width"));return{left:B,top:C,right:D,bottom:A}},getMarginSize:function(){var B=this.getNumber(this.getStyle("margin-left"));var C=this.getNumber(this.getStyle("margin-top"));var D=this.getNumber(this.getStyle("margin-right"));var A=this.getNumber(this.getStyle("margin-bottom"));return{left:B,top:C,right:D,bottom:A}},getNumber:function(B){var A=B===null||isNaN(parseInt(B,10))?0:parseInt(B,10);return A},getPageDimensions:function(){return{width:window.getWidth(),height:window.getHeight()}},descendantOf:function(B){var A=$(this.parentNode);while(A!=B&&A&&A.parentNode&&A.parentNode!=A){A=$(A.parentNode)}return A==B},findElement:function(B){var C=this;var A=C.tagName;while(C.tagName!=B&&C&&C.parentNode&&C.parentNode!=C){C=$(C.parentNode)}return C.tagName==B?C:false}});Jx.ContentLoader=new Class({contentIsLoaded:false,loadContent:function(A){A=$(A);if(this.options.content){var C;if(this.options.content.domObj){C=$(this.options.content.domObj)}else{C=$(this.options.content)}if(C){if(this.options.content.addTo){this.options.content.addTo(A)}else{A.appendChild(C)}this.contentIsLoaded=true}else{A.innerHTML=this.options.content;this.contentIsLoaded=true}}else{if(this.options.contentURL){this.contentIsLoaded=false;this.req=new Request({url:this.options.contentURL,method:"get",update:A,onSuccess:(function(D){A.innerHTML=D;this.contentIsLoaded=true;if(Jx.isAir){$clear(this.reqTimeout)}this.fireEvent("contentLoaded",this)}).bind(this),onFailure:(function(){this.contentIsLoaded=true;this.fireEvent("contentLoadFailed",this)}).bind(this),headers:{"If-Modified-Since":"Sat, 1 Jan 2000 00:00:00 GMT"}});this.req.send();if(Jx.isAir){var B=$defined(this.options.timeout)?this.options.timeout:10000;this.reqTimeout=this.checkRequest.delay(B,this)}}else{this.contentIsLoaded=true}}if(this.options.contentId){A.id=this.options.contentId}if(this.contentIsLoaded){this.fireEvent("contentLoaded",this)}},processContent:function(A){$A(A.childNodes).each(function(B){if(B.tagName=="INPUT"||B.tagName=="SELECT"||B.tagName=="TEXTAREA"){if(B.type=="button"){B.addEvent("click",function(){this.fireEvent("click",this,B)})}else{B.addEvent("change",function(){this.fireEvent("change",B)})}}else{if(B.childNodes){this.processContent(B)}}},this)}});if(Jx.isAir){Jx.ContentLoader.implement({checkRequest:function(){if(this.req.xhr.readyState===1){$clear(this.reqTimeout);this.req.cancel();this.contentIsLoaded=true;this.fireEvent("contentLoadFailed",this)}}})}Jx.AutoPosition=new Class({position:function(G,C,P){G=$(G);C=$(C);var B=$splat(P.horizontal||["center center"]);var H=$splat(P.vertical||["center center"]);var F=$merge({top:0,right:0,bottom:0,left:0},P.offsets||{});var M=C.getCoordinates();var J;var L;if(!$(G.parentNode)||G.parentNode==document.body){J=Element.getPageDimensions();L=$(document.body).getScroll()}else{J=$(G.parentNode).getContentBoxSize();L=$(G.parentNode).getScroll()}if(C==document.body){M.left+=L.x;M.top+=L.y}else{if(G.parentNode==C){M.left=0;M.top=0}}var O=G.getMarginBoxSize();var E;var N;var K;var A;var D;if(!B.some(function(Q){var R=Q.split(" ");if(R.length!=2){return false}if(!isNaN(parseInt(R[0],10))){D=parseInt(R[0],10);if(D>=0){E=D}else{E=M.left+M.width+D}}else{switch(R[0]){case"right":E=M.left+M.width;break;case"center":E=M.left+Math.round(M.width/2);break;case"left":default:E=M.left;break}}if(!isNaN(parseInt(R[1],10))){D=parseInt(R[1],10);if(D<0){N=E+D;E=N-O.width}else{E+=D;N=E+O.width}N=M.left+M.width+parseInt(R[1],10);E=N-O.width}else{switch(R[1]){case"left":E-=F.left;N=E+O.width;break;case"right":E+=F.right;N=E;E=E-O.width;break;case"center":default:E=E-Math.round(O.width/2);N=E+O.width;break}}return(E>=L.x&&N<=L.x+J.width)})){if(N>J.width){E=L.x+J.width-O.width}if(E<0){E=0}}G.setStyle("left",E);if(!H.some(function(Q){var R=Q.split(" ");if(R.length!=2){return false}if(!isNaN(parseInt(R[0],10))){K=parseInt(R[0],10)}else{switch(R[0]){case"bottom":K=M.top+M.height;break;case"center":K=M.top+Math.round(M.height/2);break;case"top":default:K=M.top;break}}if(!isNaN(parseInt(R[1],10))){var S=parseInt(R[1],10);if(S>=0){K+=S;A=K+O.height}else{A=K+S;K=A-O.height}}else{switch(R[1]){case"top":K-=F.top;A=K+O.height;break;case"bottom":K+=F.bottom;A=K;K=K-O.height;break;case"center":default:K=K-Math.round(O.height/2);A=K+O.height;break}}return(K>=L.y&&A<=L.y+J.height)})){if(A>J.height){K=L.y+J.height-O.height}if(K<0){K=0}}G.setStyle("top",K);var I=G.retrieve("jxLayout");if(I){I.options.left=E;I.options.top=K}}});Jx.Chrome=new Class({chrome:null,makeChrome:function(A){var C=new Element("div",{"class":"jxChrome",events:{contextmenu:function(D){D.stop()}}});A.adopt(C);this.chromeOffsets=C.getPaddingSize();C.setStyle("padding",0);var B=C.getStyle("backgroundImage");if(!(B.contains("http://")||B.contains("https://")||B.contains("file://")||B.contains("app:/"))){B=null}else{B=B.slice(4,-1);if(B.charAt(0)=='"'){B=B.slice(1,-1)}C.setStyle("backgroundImage","none");["TR","TL","BL","BR"].each(function(D){C.adopt(new Element("div",{"class":"jxChrome"+D}).adopt(new Element("img",{"class":"png24",src:B,alt:"",title:""})))},this)}if(!window.opera){C.adopt(Jx.createIframeShim())}C.dispose();this.chrome=C},showChrome:function(A){A=$(A);if(!this.chrome){this.makeChrome(A)}this.resizeChrome(A);if(A&&this.chrome.parentNode!==A){A.adopt(this.chrome)}},hideChrome:function(){if(this.chrome){this.chrome.dispose()}},resizeChrome:function(A){if(this.chrome&&Browser.Engine.trident4){this.chrome.setContentBoxSize($(A).getBorderBoxSize())}}});Jx.Addable=new Class({addable:null,addTo:function(A,B){$(this.addable||this.domObj).inject(A,B);this.fireEvent("addTo",this);return this},toElement:function(){return this.addable||this.domObj}});Jx.Button=new Class({Family:"Jx.Button",Implements:[Options,Events,Jx.Addable],domObj:null,options:{id:"",type:"Button",image:"",tooltip:"",label:"",toggle:false,toggleClass:"Toggle",halign:"center",valign:"middle",active:false,enabled:true,container:"div"},initialize:function(C){this.setOptions(C);var G=new Element(this.options.container,{"class":"jx"+this.options.type+"Container"});if(this.options.toggle&&this.options.toggleClass){G.addClass("jx"+this.options.type+this.options.toggleClass)}var F;var A;var B=new Element("a",{"class":"jx"+this.options.type,href:"javascript:void(0)",title:this.options.tooltip,alt:this.options.tooltip,events:{click:this.clicked.bindWithEvent(this),drag:(function(H){H.stop()}).bindWithEvent(this),mousedown:(function(H){this.domA.addClass("jx"+this.options.type+"Pressed");F=true;A=true;this.focus()}).bindWithEvent(this),mouseup:(function(H){this.domA.removeClass("jx"+this.options.type+"Pressed");A=false}).bindWithEvent(this),mouseleave:(function(H){this.domA.removeClass("jx"+this.options.type+"Pressed")}).bindWithEvent(this),mouseenter:(function(H){if(F&&A){this.domA.addClass("jx"+this.options.type+"Pressed")}}).bindWithEvent(this),keydown:(function(H){if(H.key=="enter"){this.domA.addClass("jx"+this.options.type+"Pressed")}}).bindWithEvent(this),keyup:(function(H){if(H.key=="enter"){this.domA.removeClass("jx"+this.options.type+"Pressed")}}).bindWithEvent(this),blur:function(){F=false}}});G.adopt(B);new Drag(B,{onStart:function(){this.stop()}});var E=new Element("span",{"class":"jx"+this.options.type+"Content"});B.adopt(E);if(this.options.image||!this.options.label){var D=new Element("img",{"class":"jx"+this.options.type+"Icon",src:Jx.aPixel.src,alt:"",title:""});if(this.options.image&&this.options.image.indexOf("a_pixel.png")==-1){D.setStyle("backgroundImage","url("+this.options.image+")")}E.appendChild(D);if(this.options.imageClass){D.addClass(this.options.imageClass)}this.domImg=D}l=new Element("span",{html:this.options.label});if(this.options.label){l.addClass("jx"+this.options.type+"Label")}E.appendChild(l);if(this.options.id){G.id=this.options.id}if(this.options.halign=="left"){G.addClass("jx"+this.options.type+"ContentLeft")}if(this.options.valign=="top"){G.addClass("jx"+this.options.type+"ContentTop")}this.domA=B;this.domLabel=l;this.domObj=G;this.setEnabled(this.options.enabled);if(this.options.active){this.options.active=false;this.setActive(true)}},clicked:function(A){if(this.options.enabled){if(this.options.toggle){this.setActive(!this.options.active)}else{this.fireEvent("click",{obj:this,event:A})}}},isEnabled:function(){return this.options.enabled},setEnabled:function(A){this.options.enabled=A;if(this.options.enabled){this.domObj.removeClass("jxDisabled")}else{this.domObj.addClass("jxDisabled")}},isActive:function(){return this.options.active},setActive:function(A){if(this.options.active==A){return }this.options.active=A;if(this.options.active){this.domA.addClass("jx"+this.options.type+"Active");this.fireEvent("down",this)}else{this.domA.removeClass("jx"+this.options.type+"Active");this.fireEvent("up",this)}},setImage:function(B){this.options.image=B;if(B){if(!this.domImg){var A=new Element("img",{"class":"jx"+this.options.type+"Icon",src:Jx.aPixel.src,alt:"",title:""});if(this.options.imageClass){A.addClass(this.options.imageClass)}this.domA.firstChild.grab(A,"top");this.domImg=A}this.domImg.setStyle("backgroundImage","url("+this.options.image+")")}else{if(this.domImg){this.domImg.dispose();this.domImg=null}}},setLabel:function(A){this.domLabel.set("html",A);if(!A&&this.domLabel.hasClass("jxButtonLabel")){this.domLabel.removeClass("jxButtonLabel")}else{if(A&&!this.domLabel.hasClass("jxButtonLabel")){this.domLabel.addClass("jxButtonLabel")}}},getLabel:function(){return this.domLabel?this.domLabel.innerHTML:""},setTooltip:function(A){if(this.domA){this.domA.set({title:A,alt:A})}},focus:function(){this.domA.focus()},blur:function(){this.domA.blur()}});Jx.Button.Flyout=new Class({Family:"Jx.Button.Flyout",Extends:Jx.Button,Implements:[Jx.ContentLoader,Jx.AutoPosition,Jx.Chrome],content:null,initialize:function(A){if(!Jx.Button.Flyout.Stack){Jx.Button.Flyout.Stack=[]}this.parent(A);this.domA.addClass("jx"+this.options.type+"Flyout");this.contentContainer=new Element("div",{"class":"jxFlyout"});this.content=new Element("div",{"class":"jxFlyoutContent"});if(this.options.contentClass){this.content.addClass(this.options.contentClass)}this.contentContainer.adopt(this.content);this.content.store("jxFlyout",this);this.loadContent(this.content);this.keypressWatcher=this.keypressHandler.bindWithEvent(this);this.hideWatcher=this.clickHandler.bindWithEvent(this)},clicked:function(C){if(!this.options.enabled){return }if(!this.owner){this.owner=document.body;var B=$(this.domObj.parentNode);while(B!=document.body&&this.owner==document.body){var A=B.retrieve("jxFlyout");if(A){this.owner=A;break}else{B=$(B.parentNode)}}}if(Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1]==this){this.hide();return }else{if(this.owner!=document.body){if(this.owner.currentFlyout==this){this.hide();return }else{if(this.owner.currentFlyout){this.owner.currentFlyout.hide()}}this.owner.currentFlyout=this}else{while(Jx.Button.Flyout.Stack.length){Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1].hide()}}}Jx.Button.Flyout.Stack.push(this);this.options.active=true;this.domA.addClass("jx"+this.options.type+"Active");this.contentContainer.setStyle("visibility","hidden");$(document.body).adopt(this.contentContainer);this.content.getChildren().each(function(D){if(D.resize){D.resize()}});this.showChrome(this.contentContainer);this.position(this.contentContainer,this.domObj,{horizontal:["left left","right right"],vertical:["bottom top","top bottom"],offsets:this.chromeOffsets});this.contentContainer.setContentBoxSize($(this.content).getMarginBoxSize());this.contentContainer.setStyle("visibility","");document.addEvent("keydown",this.keypressWatcher);document.addEvent("click",this.hideWatcher);this.fireEvent("open",this)},hide:function(){if(this.owner!=document.body){this.owner.currentFlyout=null}Jx.Button.Flyout.Stack.pop();this.setActive(false);this.contentContainer.dispose();document.removeEvent("keydown",this.keypressWatcher);document.removeEvent("click",this.hideWatcher);this.fireEvent("close",this)},clickHandler:function(B){B=new Event(B);var C=$(B.target);var A=Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1];if(!C.descendantOf(A.content)&&!C.descendantOf(A.domObj)){A.hide()}},keypressHandler:function(A){A=new Event(A);if(A.key=="esc"){Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1].hide()}}});Jx.Button.Multi=new Class({Family:"Jx.Button.Multi",Extends:Jx.Button,activeButton:null,buttons:null,initialize:function(C){this.parent(C);this.buttons=[];this.domA.addClass("jxButtonMulti");this.menu=new Jx.Menu();this.menu.button=this;this.buttonSet=new Jx.ButtonSet();this.clickHandler=this.clicked.bind(this);var A=new Element("a",{"class":"jxButtonDisclose",href:"javascript:void(0)"});var B=this;var D;A.addEvents({click:(function(E){if(this.items.length===0){return }if(!B.options.enabled){return }this.contentContainer.setStyle("visibility","hidden");this.contentContainer.setStyle("display","block");$(document.body).adopt(this.contentContainer);this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());this.showChrome(this.contentContainer);this.position(this.contentContainer,this.button.domObj,{horizontal:["right right"],vertical:["bottom top","top bottom"],offsets:this.chromeOffsets});this.contentContainer.setStyle("visibility","");document.addEvent("mousedown",this.hideWatcher);document.addEvent("keyup",this.keypressWatcher);this.fireEvent("show",this)}).bindWithEvent(this.menu),mouseenter:(function(){$(this.domObj.firstChild).addClass("jxButtonHover");if(D){A.addClass("jx"+this.options.type+"Pressed")}}).bind(this),mouseleave:(function(){$(this.domObj.firstChild).removeClass("jxButtonHover");A.removeClass("jx"+this.options.type+"Pressed")}).bind(this),mousedown:(function(E){A.addClass("jx"+this.options.type+"Pressed");D=true;this.focus()}).bindWithEvent(this),mouseup:(function(E){A.removeClass("jx"+this.options.type+"Pressed")}).bindWithEvent(this),keydown:(function(E){if(E.key=="enter"){A.addClass("jx"+this.options.type+"Pressed")}}).bindWithEvent(this),keyup:(function(E){if(E.key=="enter"){A.removeClass("jx"+this.options.type+"Pressed")}}).bindWithEvent(this),blur:function(){D=false}});new Drag(A,{onStart:function(){this.stop()}});this.menu.addEvents({show:(function(){this.domA.addClass("jxButtonActive")}).bind(this),hide:(function(){if(this.options.active){this.domA.addClass("jxButtonActive")}}).bind(this)});A.adopt(new Element("img",{src:Jx.aPixel.src,alt:"",title:""}));this.domObj.adopt(A);this.discloser=A;if(this.options.items){this.add(this.options.items)}},add:function(){$A(arguments).flatten().each(function(B){if(!B instanceof Jx.Button){return }this.buttons.push(B);var D=this.setButton.bind(this,B);var C=$merge(B.options,{toggle:true,onClick:D});if(!C.label){C.label="&nbsp;"}if(!C.image||C.image.indexOf("a_pixel")!=-1){delete C.image}var A=new Jx.Menu.Item(C);this.buttonSet.add(A);this.menu.add(A);B.multiButton=A;B.domA.addClass("jxButtonMulti");if(!this.activeButton){this.domA.dispose();this.setActiveButton(B)}},this)},remove:function(A){if(!A||!A.multiButton){return }if(this.menu.remove(A.multiButton)){A.multiButton=null;if(this.activeButton==A){if(!this.buttons.some(function(B){if(B!=A){this.setActiveButton(B);return true}else{return false}},this)){this.setActiveButton(null)}}this.buttons.erase(A)}},setActiveButton:function(A){if(this.activeButton){this.activeButton.domA.dispose();this.activeButton.domA.removeEvent(this.clickHandler)}if(A&&A.domA){this.domObj.grab(A.domA,"top");this.domA=A.domA;this.domA.addEvent("click",this.clickHandler);if(this.options.toggle){this.options.active=false;this.setActive(true)}}this.activeButton=A},setButton:function(A){this.setActiveButton(A);A.clicked()}});Jx.ColorPalette=new Class({Family:"Jx.ColorPalette",Implements:[Options,Events,Jx.Addable],domObj:null,options:{parent:null,color:"#000000",alpha:1,hexColors:["00","33","66","99","CC","FF"],alphaLabel:"alpha (%)"},initialize:function(C){this.setOptions(C);this.domObj=new Element("div",{id:this.options.id,"class":"jxColorPalette"});var H=new Element("div",{"class":"jxColorBar"});var Q=new Element("div",{"class":"jxColorPreview"});this.selectedSwatch=new Element("div",{"class":"jxColorSelected"});this.previewSwatch=new Element("div",{"class":"jxColorHover"});Q.adopt(this.selectedSwatch);Q.adopt(this.previewSwatch);H.adopt(Q);this.colorInputLabel=new Element("label",{"class":"jxColorLabel",html:"#"});H.adopt(this.colorInputLabel);var K=this.changed.bind(this);this.colorInput=new Element("input",{"class":"jxHexInput",type:"text",maxLength:6,events:{keyup:K,blur:K,change:K}});H.adopt(this.colorInput);this.alphaLabel=new Element("label",{"class":"jxAlphaLabel",html:this.options.alphaLabel});H.adopt(this.alphaLabel);this.alphaInput=new Element("input",{"class":"jxAlphaInput",type:"text",maxLength:3,events:{keyup:this.alphaChanged.bind(this)}});H.adopt(this.alphaInput);this.domObj.adopt(H);var I=this.swatchClick.bindWithEvent(this);var G=this.swatchOver.bindWithEvent(this);var P=new Element("table",{"class":"jxColorGrid"});var A=new Element("tbody");P.adopt(A);for(var N=0;N<12;N++){var B=new Element("tr");for(var L=-3;L<18;L++){var F=false;var J,O,R;if(L<0){if(L==-3||L==-1){J=O=R=0;F=true}else{if(N<6){J=O=R=N}else{if(N==6){J=5;O=0;R=0}else{if(N==7){J=0;O=5;R=0}else{if(N==8){J=0;O=0;R=5}else{if(N==9){J=5;O=5;R=0}else{if(N==10){J=0;O=5;R=5}else{if(N==11){J=5;O=0;R=5}}}}}}}}}else{J=parseInt(N/6)*3+parseInt(L/6);O=L%6;R=N%6}var D="#"+this.options.hexColors[J]+this.options.hexColors[O]+this.options.hexColors[R];var E=new Element("td");if(!F){E.setStyle("backgroundColor",D);var S=new Element("a",{"class":"colorSwatch "+(((J>2&&O>2)||(J>2&&R>2)||(O>2&&R>2))?"borderBlack":"borderWhite"),href:"javascript:void(0)",title:D,alt:D,events:{mouseover:G,click:I}});S.store("swatchColor",D);E.adopt(S)}else{var M=new Element("span",{"class":"emptyCell"});E.adopt(M)}B.adopt(E)}A.adopt(B)}this.domObj.adopt(P);this.updateSelected();if(this.options.parent){this.addTo(this.options.parent)}},swatchOver:function(B){var A=B.target;this.previewSwatch.setStyle("backgroundColor",A.retrieve("swatchColor"))},swatchClick:function(B){var A=B.target;this.options.color=A.retrieve("swatchColor");this.updateSelected();this.fireEvent("click",this)},changed:function(){var A=this.colorInput.value;if(A.substring(0,1)=="#"){A=A.substring(1)}if(A.toLowerCase().match(/^[0-9a-f]{6}$/)){this.options.color="#"+A.toUpperCase();this.updateSelected()}},alphaChanged:function(){var A=this.alphaInput.value;if(A.match(/^[0-9]{1,3}$/)){this.options.alpha=parseFloat(A/100);this.updateSelected()}},setColor:function(A){this.colorInput.value=A;this.changed()},setAlpha:function(A){this.alphaInput.value=A;this.alphaChanged()},updateSelected:function(){var A={backgroundColor:this.options.color};this.colorInput.value=this.options.color.substring(1);this.alphaInput.value=parseInt(this.options.alpha*100);if(this.options.alpha<1){A.opacity=this.options.alpha;A.filter="Alpha(opacity="+(this.options.alpha*100)+")"}else{A.opacity="";A.filter=""}this.selectedSwatch.setStyles(A);this.previewSwatch.setStyles(A);this.fireEvent("change",this)}});Jx.Button.Color=new Class({Family:"Jx.Button.Color",Extends:Jx.Button.Flyout,swatch:null,options:{color:"#000000",alpha:100},initialize:function(A){if(!Jx.Button.Color.ColorPalette){Jx.Button.Color.ColorPalette=new Jx.ColorPalette(this.options)}var B=new Element("span",{"class":"jxButtonSwatch"});this.selectedSwatch=new Element("span");B.appendChild(this.selectedSwatch);this.colorChangeFn=this.changed.bind(this);this.hideFn=this.hide.bind(this);A.image=Jx.aPixel.src;this.parent(A);B.replaces(this.domImg);this.updateSwatch()},clicked:function(){if(Jx.Button.Color.ColorPalette.currentButton){Jx.Button.Color.ColorPalette.currentButton.hide()}Jx.Button.Color.ColorPalette.currentButton=this;Jx.Button.Color.ColorPalette.addEvent("change",this.colorChangeFn);Jx.Button.Color.ColorPalette.addEvent("click",this.hideFn);this.content.appendChild(Jx.Button.Color.ColorPalette.domObj);Jx.Button.Color.ColorPalette.domObj.setStyle("display","block");Jx.Button.Flyout.prototype.clicked.apply(this,arguments);Jx.Button.Color.ColorPalette.options.color=this.options.color;Jx.Button.Color.ColorPalette.options.alpha=this.options.alpha/100;Jx.Button.Color.ColorPalette.updateSelected()},hide:function(){this.setActive(false);Jx.Button.Color.ColorPalette.removeEvent("change",this.colorChangeFn);Jx.Button.Color.ColorPalette.removeEvent("click",this.hideFn);Jx.Button.Flyout.prototype.hide.apply(this,arguments);Jx.Button.Color.ColorPalette.currentButton=null},setColor:function(A){this.options.color=A;this.updateSwatch()},setAlpha:function(A){this.options.alpha=A;this.updateSwatch()},changed:function(A){var B=false;if(this.options.color!=A.options.color){this.options.color=A.options.color;B=true}if(this.options.alpha!=A.options.alpha*100){this.options.alpha=A.options.alpha*100;B=true}if(B){this.updateSwatch();this.fireEvent("change",this)}},updateSwatch:function(){var A={backgroundColor:this.options.color};if(this.options.alpha<100){A.filter="Alpha(opacity="+(this.options.alpha)+")";A.opacity=this.options.alpha/100}else{A.opacity="";A.filter=""}this.selectedSwatch.setStyles(A)}});Jx.ButtonSet=new Class({Family:"Jx.ButtonSet",Implements:[Options,Events],buttons:null,initialize:function(A){this.setOptions(A);this.buttons=[];this.buttonChangedHandler=this.buttonChanged.bind(this)},add:function(){$A(arguments).each(function(A){if(A.domObj.hasClass("jx"+A.options.type+"Toggle")){A.domObj.removeClass("jx"+A.options.type+"Toggle");A.domObj.addClass("jx"+A.options.type+"Set")}A.addEvent("down",this.buttonChangedHandler);var B=this;A.setActive=function(C){if(this.options.active&&B.activeButton==this){return }else{Jx.Button.prototype.setActive.apply(this,[C])}};if(!this.activeButton||A.options.active){A.options.active=false;A.setActive(true)}this.buttons.push(A)},this);return this},remove:function(A){this.buttons.erase(A);if(this.activeButton==A){if(this.buttons.length){this.buttons[0].setActive(true)}A.removeEvent("down",this.buttonChangedHandler);A.setActive=Jx.Button.prototype.setActive}},setActiveButton:function(B){var A=this.activeButton;this.activeButton=B;if(A&&A!=B){A.setActive(false)}},buttonChanged:function(A){this.setActiveButton(A);this.fireEvent("change",this)}});Jx.Grid=new Class({Family:"Jx.Grid",Implements:[Options,Events,Jx.Addable],domObj:null,model:null,options:{alternateRowColors:false,rowHeaders:false,columnHeaders:false,rowSelection:false,columnSelection:false,cellPrelight:false,rowPrelight:false,columnPrelight:false,rowHeaderPrelight:false,columnHeaderPrelight:false,cellSelection:false},initialize:function(A){this.setOptions(A);this.domObj=new Element("div");new Jx.Layout(this.domObj,{onSizeChange:this.resize.bind(this)});if(this.options.parent){this.addTo(this.options.parent)}this.rowColObj=new Element("div",{"class":"jxGridContainer"});this.colObj=new Element("div",{"class":"jxGridContainer"});this.colTable=new Element("table",{"class":"jxGridTable"});this.colTableHead=new Element("thead");this.colTable.appendChild(this.colTableHead);this.colTableBody=new Element("tbody");this.colTable.appendChild(this.colTableBody);this.colObj.appendChild(this.colTable);this.rowObj=new Element("div",{"class":"jxGridContainer"});this.rowTable=new Element("table",{"class":"jxGridTable"});this.rowTableHead=new Element("thead");this.rowTable.appendChild(this.rowTableHead);this.rowObj.appendChild(this.rowTable);this.gridObj=new Element("div",{"class":"jxGridContainer",styles:{overflow:"scroll"}});this.gridTable=new Element("table",{"class":"jxGridTable"});this.gridTableBody=new Element("tbody");this.gridTable.appendChild(this.gridTableBody);this.gridObj.appendChild(this.gridTable);this.domObj.appendChild(this.rowColObj);this.domObj.appendChild(this.rowObj);this.domObj.appendChild(this.colObj);this.domObj.appendChild(this.gridObj);this.gridObj.addEvent("scroll",this.onScroll.bind(this));this.gridObj.addEvent("click",this.onClickGrid.bindWithEvent(this));this.rowObj.addEvent("click",this.onClickRowHeader.bindWithEvent(this));this.colObj.addEvent("click",this.onClickColumnHeader.bindWithEvent(this));this.gridObj.addEvent("mousemove",this.onMouseMoveGrid.bindWithEvent(this));this.rowObj.addEvent("mousemove",this.onMouseMoveRowHeader.bindWithEvent(this));this.colObj.addEvent("mousemove",this.onMouseMoveColumnHeader.bindWithEvent(this))},onScroll:function(){this.colObj.scrollLeft=this.gridObj.scrollLeft;this.rowObj.scrollTop=this.gridObj.scrollTop},resize:function(){if(!this.model){return }var C=this.options.columnHeaders?this.model.getColumnHeaderHeight():1;var A=this.options.rowHeaders?this.model.getRowHeaderWidth():1;var B=Element.getContentBoxSize(this.domObj);this.rowColObj.setStyles({width:A-1,height:C-1});this.rowObj.setStyles({top:C,left:0,width:A-1,height:B.height-C-1});this.colObj.setStyles({top:0,left:A,width:B.width-A-1,height:C-1});this.gridObj.setStyles({top:C,left:A,width:B.width-A-1,height:B.height-C-1})},setModel:function(A){this.model=A;if(this.model){if(this.domObj.resize){this.domObj.resize()}this.createGrid();this.resize()}else{this.destroyGrid()}},destroyGrid:function(){var A=this.colTableHead.cloneNode(false);this.colTable.replaceChild(A,this.colTableHead);this.colTableHead=A;A=this.colTableBody.cloneNode(false);this.colTable.replaceChild(A,this.colTableBody);this.colTableBody=A;A=this.rowTableHead.cloneNode(false);this.rowTable.replaceChild(A,this.rowTableHead);this.rowTableHead=A;A=this.gridTableBody.cloneNode(false);this.gridTable.replaceChild(A,this.gridTableBody);this.gridTableBody=A},createGrid:function(){this.destroyGrid();if(this.model){var L=this.model;var E=L.getColumnCount();var Q=L.getRowCount();if(this.options.columnHeaders){var N=L.getColumnHeaderHeight();var P=new Element("tr");this.colTableHead.appendChild(P);var M=new Element("tr");this.colTableBody.appendChild(M);var C=new Element("th",{styles:{width:0,height:0}});P.appendChild(C);C=C.cloneNode(true);C.setStyle("height",N);M.appendChild(C);for(var K=0;K<E;K++){var J=L.getColumnWidth(K);C=new Element("th",{"class":"jxGridColHeadHide",styles:{width:J}});var B=new Element("p",{styles:{height:0,width:J}});C.appendChild(B);P.appendChild(C);C=new Element("th",{"class":"jxGridColHead",html:L.getColumnHeaderHTML(K)});M.appendChild(C)}var C=new Element("th",{styles:{width:1000,height:0}});P.appendChild(C);C=C.cloneNode(true);C.setStyle("height",N-1);C.className="jxGridColHead";M.appendChild(C)}if(this.options.rowHeaders){var H=L.getRowHeaderWidth();var O=new Element("tr");var G=new Element("td",{styles:{width:0,height:0}});O.appendChild(G);var C=new Element("th",{styles:{width:H,height:0}});O.appendChild(C);this.rowTableHead.appendChild(O);for(var K=0;K<Q;K++){var A=L.getRowHeight(K);var O=new Element("tr");var G=new Element("td",{"class":"jxGridRowHeadHide",styles:{width:0,height:A}});var B=new Element("p",{styles:{width:0,height:A}});G.appendChild(B);O.appendChild(G);var C=new Element("th",{"class":"jxGridRowHead",html:L.getRowHeaderHTML(K)});O.appendChild(C);this.rowTableHead.appendChild(O)}var O=new Element("tr");var G=new Element("td",{styles:{width:0,height:1000}});O.appendChild(G);var C=new Element("th",{"class":"jxGridRowHead",styles:{width:H,height:1000}});O.appendChild(C);this.rowTableHead.appendChild(O)}var N=L.getColumnHeaderHeight();var M=new Element("tr");this.gridTableBody.appendChild(M);var G=new Element("td",{styles:{width:0,height:0}});M.appendChild(G);for(var K=0;K<E;K++){var J=L.getColumnWidth(K);G=new Element("td",{"class":"jxGridColHeadHide",styles:{width:J}});var B=new Element("p",{styles:{width:J,height:0}});G.appendChild(B);M.appendChild(G)}for(var I=0;I<Q;I++){var A=L.getRowHeight(I);var D=A;var O=new Element("tr");this.gridTableBody.appendChild(O);var G=new Element("td",{"class":"jxGridRowHeadHide",styles:{width:0,height:A}});var B=new Element("p",{styles:{height:A}});G.appendChild(B);O.appendChild(G);for(var K=0;K<E;K++){var J=L.getColumnWidth(K);G=new Element("td",{"class":"jxGridCell"});G.innerHTML=L.getValueAt(I,K);O.appendChild(G);var F=G.getSize();if(F.height>D){D=F.height}}if(document.all){D-=1}if(this.options.rowHeaders){this.setRowHeaderHeight(I,D)}if(this.options.alternateRowColors){O.className=(I%2)?"jxGridRowOdd":"jxGridRowEven"}else{O.className="jxGridRowAll"}}}},setRowHeaderHeight:function(B,A){this.rowTableHead.childNodes[B+1].childNodes[0].childNodes[0].style.height=(A)+"px"},gridChanged:function(B,D,A,C){if(this.model==B){this.gridObj.childNodes[D].childNodes[A].innerHTML=C}},prelightRowHeader:function(B){var A=(B>=0&&B<this.rowTableHead.rows.length-1)?this.rowTableHead.rows[B+1].cells[1]:null;if(this.prelitRowHeader!=A){if(this.prelitRowHeader){this.prelitRowHeader.removeClass("jxGridRowHeaderPrelight")}this.prelitRowHeader=A;if(this.prelitRowHeader){this.prelitRowHeader.addClass("jxGridRowHeaderPrelight")}}},prelightColumnHeader:function(B){if(this.colTableBody.rows.length==0){return }var A=(B>=0&&B<this.colTableBody.rows[0].cells.length-1)?this.colTableBody.rows[0].cells[B+1]:null;if(this.prelitColumnHeader!=A){if(this.prelitColumnHeader){this.prelitColumnHeader.removeClass("jxGridColumnHeaderPrelight")}this.prelitColumnHeader=A;if(this.prelitColumnHeader){this.prelitColumnHeader.addClass("jxGridColumnHeaderPrelight")}}},prelightRow:function(B){var A=(B>=0&&B<this.gridTableBody.rows.length-1)?this.gridTableBody.rows[B+1]:null;if(this.prelitRow!=B){if(this.prelitRow){this.prelitRow.removeClass("jxGridRowPrelight")}this.prelitRow=A;if(this.prelitRow){this.prelightRowHeader(B);this.prelitRow.addClass("jxGridRowPrelight")}}},prelightColumn:function(A){if(A>=0&&A<this.gridTable.rows[0].cells.length){if($chk(this.prelitColumn)){for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[this.prelitColumn+1].removeClass("jxGridColumnPrelight")}}this.prelitColumn=A;for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[A+1].addClass("jxGridColumnPrelight")}}this.prelightColumnHeader(A)},prelightCell:function(B,A){var C=(B>=0&&A>=0&&B<this.gridTableBody.rows.length-1&&A<this.gridTableBody.rows[B+1].cells.length-1)?this.gridTableBody.rows[B+1].cells[A+1]:null;if(this.prelitCell!=C){if(this.prelitCell){this.prelitCell.removeClass("jxGridCellPrelight")}this.prelitCell=C;if(this.prelitCell){this.prelitCell.addClass("jxGridCellPrelight")}}},selectCell:function(B,A){var C=(B>=0&&A>=0&&B<this.gridTableBody.rows.length-1&&A<this.gridTableBody.rows[B+1].cells.length-1)?this.gridTableBody.rows[B+1].cells[A+1]:null;if(!C){return }if(this.selectedCell){this.selectedCell.removeClass("jxGridCellSelected")}this.selectedCell=C;this.selectedCell.addClass("jxGridCellSelected")},selectRowHeader:function(C,B){var A=(C>=0&&C<this.rowTableHead.rows.length-1)?this.rowTableHead.rows[C+1].cells[1]:null;if(!A){return }if(B){A.addClass("jxGridRowHeaderSelected")}else{A.removeClass("jxGridRowHeaderSelected")}},selectRow:function(C,A){var B=(C>=0&&C<this.gridTableBody.rows.length-1)?this.gridTableBody.rows[C+1]:null;if(B){if(A){B.addClass("jxGridRowSelected")}else{B.removeClass("jxGridRowSelected")}this.selectRowHeader(C,A)}},selectColumnHeader:function(B,C){if(this.colTableBody.rows.length==0){return }var A=(B>=0&&B<this.colTableBody.rows[0].cells.length-1)?this.colTableBody.rows[0].cells[B+1]:null;if(A==null){return }if(C){A.addClass("jxGridColumnHeaderSelected")}else{A.removeClass("jxGridColumnHeaderSelected")}},selectColumn:function(A,C){if(A>=0&&A<this.gridTable.rows[0].cells.length){if(C){for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[A+1].addClass("jxGridColumnSelected")}}else{for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[A+1].removeClass("jxGridColumnSelected")}}this.selectColumnHeader(A,C)}},onMouseMoveGrid:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.cellPrelight){this.prelightCell(A.row,A.column)}if(this.options.rowPrelight){this.prelightRow(A.row)}if(this.options.rowHeaderPrelight){this.prelightRowHeader(A.row)}if(this.options.columnPrelight){this.prelightColumn(A.column)}if(this.options.columnHeaderPrelight){this.prelightColumnHeader(A.column)}},onMouseMoveRowHeader:function(B){if(this.options.rowPrelight){var A=this.getRowColumnFromEvent(B);this.prelightRow(A.row)}},onMouseMoveColumnHeader:function(B){if(this.options.columnPrelight){var A=this.getRowColumnFromEvent(B);this.prelightColumn(A.column)}},onClickGrid:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.cellSelection&&this.model.cellSelected){this.model.cellSelected(this,A.row,A.column)}if(this.options.rowSelection&&this.model.rowSelected){this.model.rowSelected(this,A.row)}if(this.options.columnSelection&&this.model.columnSelected){this.model.columnSelected(this,A.column)}},onClickRowHeader:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.rowSelection&&this.model.rowSelected){this.model.rowSelected(this,A.row)}},onClickColumnHeader:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.columnSelection&&this.model.columnSelected){this.model.columnSelected(this,A.column)}},getRowColumnFromEvent:function(D){var F=D.target;if(F.tagName!="TD"&&F.tagName!="TH"){return{row:-1,column:-1}}var C=F.parentNode;var A=F.cellIndex-1;var E=C.rowIndex-1;if(A==-1){for(var B=0;B<C.childNodes.length;B++){if(C.childNodes[B]==F){A=B-1;break}}}return{row:E,column:A}}});Jx.Grid.Model=new Class({Family:"Jx.Grid.Model",Implements:[Events,Options],options:{colHeaderHeight:28,rowHeaderWidth:28,colWidth:50,rowHeight:20,rowHeaders:null,columnHeaders:null},data:null,initialize:function(B,A){this.data=B||[];this.setOptions(A)},getColumnCount:function(){return(this.data&&this.data[0])?this.data[0].length:0},getColumnHeaderHTML:function(A){return this.options.columnHeaders?this.options.columnHeaders[A]:A+1},getColumnHeaderHeight:function(){return this.options.colHeaderHeight},getColumnWidth:function(A){return this.options.colWidth},getRowHeaderHTML:function(A){return this.options.rowHeaders?this.options.rowHeaders[A]:A+1},getRowHeaderWidth:function(){return this.options.rowHeaderWidth},getRowHeight:function(A){return this.options.rowHeight},getRowCount:function(){return this.data.length},getValueAt:function(B,A){return(this.data&&$chk(this.data[B]))?this.data[B][A]:""},isCellEditable:function(){return false},setValueAt:function(C,A,B){},rowSelected:function(A,B){if(this.selectedRow!=null){A.selectRow(this.selectedRow,false)}this.selectedRow=B;A.selectRow(B,true);this.fireEvent("select-row",B)},columnSelected:function(B,A){if(this.selectedCol!=null){B.selectColumn(this.selectedCol,false)}this.selectedCol=A;B.selectColumn(A,true);this.fireEvent("select-column",A)},cellSelected:function(B,C,A){B.selectCell(C,A);this.fireEvent("select-cell",[C,A])}});Jx.Layout=new Class({Family:"Jx.Layout",Implements:[Options,Events],options:{propagate:true,position:"absolute",left:0,right:0,top:0,bottom:0,width:null,height:null,minWidth:0,minHeight:0,maxWidth:-1,maxHeight:-1},initialize:function(B,A){this.setOptions(A);this.domObj=$(B);this.domObj.resize=this.resize.bind(this);this.domObj.setStyle("position",this.options.position);this.domObj.store("jxLayout",this);if(document.body==this.domObj.parentNode){window.addEvent("resize",this.windowResize.bindWithEvent(this));window.addEvent("load",this.windowResize.bind(this))}},windowResize:function(){this.resize();if(this.resizeTimer){$clear(this.resizeTimer);this.resizeTimer=null}this.resizeTimer=this.resize.delay(50,this)},resize:function(K){this.resizeTimer=null;var B=false;if(K){for(var F in K){if(F=="forceResize"){continue}if(this.options[F]!=K[F]){B=true;this.options[F]=K[F]}}if(K.forceResize){B=true}}if(!$(this.domObj.parentNode)){return }var C;if(this.domObj.parentNode.tagName=="BODY"){C=Element.getPageDimensions()}else{C=$(this.domObj.parentNode).getContentBoxSize()}if(this.lastParentSize&&!B){B=(this.lastParentSize.width!=C.width||this.lastParentSize.height!=C.height)}else{B=true}this.lastParentSize=C;if(!B){return }var D,J,I,G;if(this.options.left!=null){D=this.options.left;if(this.options.right==null){if(this.options.width==null){I=C.width-D;if(I<this.options.minWidth){I=this.options.minWidth}if(this.options.maxWidth>=0&&I>this.options.maxWidth){I=this.options.maxWidth}}else{I=this.options.width}}else{if(this.options.width==null){I=C.width-D-this.options.right;if(I<this.options.minWidth){I=this.options.minWidth}if(this.options.maxWidth>=0&&I>this.options.maxWidth){I=this.options.maxWidth}}else{I=this.options.width}}}else{if(this.options.right==null){if(this.options.width==null){D=0;I=C.width;if(this.options.maxWidth>=0&&I>this.options.maxWidth){D=D+parseInt(I-this.options.maxWidth)/2;I=this.options.maxWidth}}else{I=this.options.width;D=parseInt((C.width-I)/2);if(D<0){D=0}}}else{if(this.options.width!=null){I=this.options.width;D=C.width-I-this.options.right;if(D<0){D=0}}else{D=0;I=C.width-this.options.right;if(I<this.options.minWidth){I=this.options.minWidth}if(this.options.maxWidth>=0&&I>this.options.maxWidth){D=I-this.options.maxWidth-this.options.right;I=this.options.maxWidth}}}}if(this.options.top!=null){J=this.options.top;if(this.options.bottom==null){if(this.options.height==null){G=C.height-J;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){G=this.options.maxHeight}}else{G=this.options.height;if(this.options.maxHeight>=0&&G>this.options.maxHeight){J=G-this.options.maxHeight;G=this.options.maxHeight}}}else{if(this.options.height==null){G=C.height-J-this.options.bottom;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){G=this.options.maxHeight}}else{G=this.options.height}}}else{if(this.options.bottom==null){if(this.options.height==null){J=0;G=C.height;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){J=parseInt((C.height-this.options.maxHeight)/2);G=this.options.maxHeight}}else{G=this.options.height;J=parseInt((C.height-G)/2);if(J<0){J=0}}}else{if(this.options.height!=null){G=this.options.height;J=C.height-G-this.options.bottom;if(J<0){J=0}}else{J=0;G=C.height-this.options.bottom;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){J=C.height-this.options.maxHeight-this.options.bottom;G=this.options.maxHeight}}}}var E={width:I};if(this.options.position=="absolute"){var H=$(this.domObj.parentNode).getPaddingSize();this.domObj.setStyles({position:this.options.position,left:D+H.left,top:J+H.top});E.height=G}else{if(this.options.height){E.height=this.options.height}}this.domObj.setBorderBoxSize(E);if(this.options.propagate){var A={forceResize:K?K.forceResize:false};$A(this.domObj.childNodes).each(function(L){if(L.resize&&L.getStyle("display")!="none"){L.resize.delay(0,L,A)}})}this.fireEvent("sizeChange",this)}});Jx.Menu=new Class({Family:"Jx.Menu",Implements:[Options,Events,Jx.AutoPosition,Jx.Chrome,Jx.Addable],domObj:null,button:null,subDomObj:null,items:null,initialize:function(A){this.setOptions(A);if(!Jx.Menu.Menus){Jx.Menu.Menus=[]}this.items=[];this.contentContainer=new Element("div",{"class":"jxMenuContainer"});this.subDomObj=new Element("ul",{"class":"jxMenu"});this.contentContainer.adopt(this.subDomObj);if(A){this.button=new Jx.Button($merge(A,{onClick:this.show.bind(this)}));this.button.domA.addClass("jxButtonMenu");this.button.domA.addEvent("mouseover",this.onMouseOver.bindWithEvent(this));this.domObj=this.button.domObj}this.hideWatcher=this.hide.bindWithEvent(this);this.keypressWatcher=this.keypressHandler.bindWithEvent(this);if(this.options.parent){this.addTo(this.options.parent)}},add:function(){$A(arguments).flatten().each(function(A){this.items.push(A);A.setOwner(this);this.subDomObj.adopt(A.domObj)},this);return this},deactivate:function(){this.hide()},onMouseOver:function(A){if(Jx.Menu.Menus[0]&&Jx.Menu.Menus[0]!=this){this.show({event:A})}},eventInMenu:function(D){var C=$(D.target);if(!C){return false}if(C.descendantOf(this.domObj)||C.descendantOf(this.subDomObj)){return true}else{var B=C.findElement("ul");if(B){var E=B.retrieve("jxSubMenu");if(E){var A=E.owner;while(A){if(A==this){return true}A=A.owner}}}return false}},hide:function(A){if(A){if(this.visibleItem&&this.visibleItem.eventInMenu){if(this.visibleItem.eventInMenu(A)){return }}else{if(this.eventInMenu(A)){return }}}if(Jx.Menu.Menus[0]&&Jx.Menu.Menus[0]==this){Jx.Menu.Menus[0]=null}if(this.button&&this.button.domA){this.button.domA.removeClass("jx"+this.button.options.type+"Active")}this.items.each(function(B){B.hide(A)});document.removeEvent("mousedown",this.hideWatcher);document.removeEvent("keydown",this.keypressWatcher);this.contentContainer.setStyle("display","none");this.fireEvent("hide",this)},show:function(B){var A=B.event;if(Jx.Menu.Menus[0]){if(Jx.Menu.Menus[0]!=this){Jx.Menu.Menus[0].button.blur();Jx.Menu.Menus[0].hide(A)}else{this.hide();return }}if(this.items.length===0){return }Jx.Menu.Menus[0]=this;this.button.focus();this.contentContainer.setStyle("visibility","hidden");this.contentContainer.setStyle("display","block");$(document.body).adopt(this.contentContainer);this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());this.showChrome(this.contentContainer);this.position(this.contentContainer,this.button.domObj,{horizontal:["left left"],vertical:["bottom top","top bottom"],offsets:this.chromeOffsets});this.contentContainer.setStyle("visibility","");if(this.button&&this.button.domA){this.button.domA.addClass("jx"+this.button.options.type+"Active")}if(A){}document.addEvent("mousedown",this.hideWatcher);document.addEvent("keydown",this.keypressWatcher);this.fireEvent("show",this)},setVisibleItem:function(A){if(this.visibleItem!=A){if(this.visibleItem&&this.visibleItem.hide){this.visibleItem.hide()}this.visibleItem=A;this.visibleItem.show()}},keypressHandler:function(A){A=new Event(A);if(A.key=="esc"){this.hide()}}});Jx.Menu.Item=new Class({Family:"Jx.Menu.Item",Extends:Jx.Button,owner:null,options:{enabled:true,image:null,label:"&nbsp;",toggleClass:"Toggle"},initialize:function(A){this.parent($merge({image:Jx.aPixel.src},A,{container:"li",type:"MenuItem",toggleClass:(A.image?null:this.options.toggleClass)}));this.domObj.addEvent("mouseover",this.onMouseOver.bindWithEvent(this))},setOwner:function(A){this.owner=A},hide:function(){this.blur()},show:$empty,clicked:function(A){if(this.options.enabled){if(this.options.toggle){this.setActive(!this.options.active)}this.fireEvent("click",this);if(this.owner&&this.owner.deactivate){this.owner.deactivate(A.event)}}},onMouseOver:function(A){if(this.owner&&this.owner.setVisibleItem){this.owner.setVisibleItem(this)}this.show(A)}});Jx.Menu.Separator=new Class({Family:"Jx.Menu.Separator",domObj:null,owner:null,initialize:function(){this.domObj=new Element("li",{"class":"jxMenuItem"});var A=new Element("span",{"class":"jxMenuSeparator",html:"&nbsp;"});this.domObj.appendChild(A)},setOwner:function(A){this.owner=A},hide:$empty,show:$empty});Jx.Menu.SubMenu=new Class({Family:"Jx.Menu.SubMenu",Extends:Jx.Menu.Item,Implements:[Jx.AutoPosition,Jx.Chrome],subDomObj:null,owner:null,visibleItem:null,items:null,initialize:function(A){this.open=false;this.items=[];this.parent(A);this.domA.addClass("jxButtonSubMenu");this.contentContainer=new Element("div",{"class":"jxMenuContainer"});this.subDomObj=new Element("ul",{"class":"jxSubMenu"});this.contentContainer.adopt(this.subDomObj)},setOwner:function(A){this.owner=A},show:function(){if(this.open||this.items.length==0){return }this.contentContainer.setStyle("visibility","hidden");this.contentContainer.setStyle("display","block");$(document.body).adopt(this.contentContainer);this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());this.showChrome(this.contentContainer);this.position(this.contentContainer,this.domObj,{horizontal:["right left","left right"],vertical:["top top"],offsets:this.chromeOffsets});this.open=true;this.contentContainer.setStyle("visibility","");this.setActive(true)},eventInMenu:function(A){if(this.visibleItem&&this.visibleItem.eventInMenu&&this.visibleItem.eventInMenu(A)){return true}return $(A.target).descendantOf(this.domObj)||$(A.target).descendantOf(this.subDomObj)||this.items.some(function(B){return B instanceof Jx.Menu.SubMenu&&B.eventInMenu(A)})},hide:function(){if(!this.open){return }this.open=false;this.items.each(function(A){A.hide()});this.contentContainer.setStyle("display","none");this.visibleItem=null},add:function(){var A=this;$A(arguments).each(function(B){A.items.push(B);B.setOwner(A);A.subDomObj.adopt(B.domObj)});return this},insertBefore:function(C,D){var B=false;for(var A=0;A<this.items.length;A++){if(this.items[A]==D){this.items.splice(A,0,C);this.subDomObj.insertBefore(C.domObj,D.domObj);B=true;break}}if(!B){this.add(C)}},remove:function(B){for(var A=0;A<this.items.length;A++){if(this.items[A]==B){this.items.splice(A,1);this.subDomObj.removeChild(B.domObj);break}}},deactivate:function(A){if(this.owner){this.owner.deactivate(A)}},isActive:function(){if(this.owner){return this.owner.isActive()}else{return false}},setActive:function(A){if(this.owner&&this.owner.setActive){this.owner.setActive(A)}},setVisibleItem:function(A){if(this.visibleItem!=A){if(this.visibleItem&&this.visibleItem.hide){this.visibleItem.hide()}this.visibleItem=A;this.visibleItem.show()}}});Jx.Menu.Context=new Class({Family:"Jx.Menu.Context",Extends:Jx.Menu,initialize:function(A){this.parent();if($(A)){$(A).addEvent("contextmenu",this.show.bindWithEvent(this))}},show:function(A){if(this.items.length==0){return }this.contentContainer.setStyle("visibility","hidden");this.contentContainer.setStyle("display","block");$(document.body).adopt(this.contentContainer);this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());this.position(this.contentContainer,document.body,{horizontal:[A.page.x+" left"],vertical:[A.page.y+" top",A.page.y+" bottom"],offsets:this.chromeOffsets});this.contentContainer.setStyle("visibility","");this.showChrome(this.contentContainer);document.addEvent("mousedown",this.hideWatcher);document.addEvent("keyup",this.keypressWatcher);A.stop()}});Jx.Panel=new Class({Family:"Jx.Panel",Implements:[Options,Events,Jx.ContentLoader,Jx.Addable],toolbarContainers:{top:null,right:null,bottom:null,left:null},options:{label:"&nbsp;",position:"absolute",height:null,collapse:true,collapseTooltip:"Collapse/Expand Panel",collapseLabel:"Collapse",expandLabel:"Expand",maximizeTooltip:"Maximize Panel",maximizeLabel:"Maximize",detach:false,close:false,closeTooltip:"Close Panel",closeLabel:"Close",closed:false,hideTitle:false,type:"Panel",toolbars:[]},initialize:function(I){this.setOptions(I);this.toolbars=I?I.toolbars||[]:[];if($defined(this.options.height)&&!$defined(I.position)){this.options.position="relative"}this.title=new Element("div",{"class":"jx"+this.options.type+"Title"});var A=new Element("img",{"class":"jx"+this.options.type+"Icon",src:Jx.aPixel.src,alt:"",title:""});if(this.options.image){A.setStyle("backgroundImage","url("+this.options.image+")")}this.title.adopt(A);this.labelObj=new Element("span",{"class":"jx"+this.options.type+"Label",html:this.options.label});this.title.adopt(this.labelObj);var F=new Element("div",{"class":"jx"+this.options.type+"Controls"});var B=new Element("div");F.adopt(B);this.toolbar=new Jx.Toolbar({parent:B});this.title.adopt(F);var C=this;if(this.options.menu){this.menu=new Jx.Menu({image:Jx.aPixel.src});this.menu.domObj.addClass("jx"+this.options.type+"Menu");this.menu.domObj.addClass("jxButtonContentLeft");this.toolbar.add(this.menu)}if(this.options.collapse){var E=new Jx.Button({image:Jx.aPixel.src,tooltip:this.options.collapseTooltip,onClick:function(){C.toggleCollapse()}});E.domObj.addClass("jx"+this.options.type+"Collapse");this.toolbar.add(E);if(this.menu){var H=new Jx.Menu.Item({label:this.options.collapseLabel,onClick:function(){C.toggleCollapse()}});this.addEvents({collapse:function(){H.setLabel(this.options.expandLabel)},expand:function(){H.setLabel(this.options.collapseLabel)}});this.menu.add(H)}}if(this.options.maximize){var E=new Jx.Button({image:Jx.aPixel.src,tooltip:this.options.maximizeTooltip,onClick:function(){C.maximize()}});E.domObj.addClass("jx"+this.options.type+"Maximize");this.toolbar.add(E);if(this.menu){var H=new Jx.Menu.Item({label:this.options.maximizeLabel,onClick:function(){C.maximize()}});this.menu.add(H)}}if(this.options.close){var E=new Jx.Button({image:Jx.aPixel.src,tooltip:this.options.closeTooltip,onClick:function(){C.close()}});E.domObj.addClass("jx"+this.options.type+"Close");this.toolbar.add(E);if(this.menu){var H=new Jx.Menu.Item({label:this.options.closeLabel,onClick:function(){C.close()}});this.menu.add(H)}}this.title.addEvent("dblclick",function(){C.toggleCollapse()});this.domObj=new Element("div",{"class":"jx"+this.options.type});if(this.options.id){this.domObj.id=this.options.id}var D=new Jx.Layout(this.domObj,$merge(this.options,{propagate:false}));var G=this.layoutContent.bind(this);D.addEvent("sizeChange",G);if(!this.options.hideTitle){this.domObj.adopt(this.title)}this.contentContainer=new Element("div",{"class":"jx"+this.options.type+"ContentContainer"});this.domObj.adopt(this.contentContainer);if($type(this.options.toolbars)=="array"){this.options.toolbars.each(function(K){var J=K.options.position;var L=this.toolbarContainers[J];if(!L){var L=new Element("div");new Jx.Layout(L);this.contentContainer.adopt(L);this.toolbarContainers[J]=L}K.addTo(L)},this)}this.content=new Element("div",{"class":"jx"+this.options.type+"Content"});this.contentContainer.adopt(this.content);new Jx.Layout(this.contentContainer);new Jx.Layout(this.content);this.loadContent(this.content);this.toggleCollapse(this.options.closed);this.addEvent("addTo",function(){this.domObj.resize()});if(this.options.parent){this.addTo(this.options.parent)}},layoutContent:function(){var F=0;var G=0;var A=0;var C=0;var I=0;var H;var D;var E;if(!this.options.hideTitle&&this.title.parentNode==this.domObj){F=this.title.getMarginBoxSize().height}var B=this.domObj.getContentBoxSize();if(B.height>F){this.contentContainer.setStyle("display","block");this.options.closed=false;this.contentContainer.resize({top:F,height:null,bottom:0});["left","right"].each(function(J){if(this.toolbarContainers[J]){this.toolbarContainers[J].style.width="auto"}},this);["top","bottom"].each(function(J){if(this.toolbarContainers[J]){this.toolbarContainers[J].style.height=""}},this);if($type(this.options.toolbars)=="array"){this.options.toolbars.each(function(J){E=J.options.position;H=this.toolbarContainers[E];if(Browser.Engine.trident4){var L=$(H.parentNode);H.style.visibility="hidden";$(document.body).adopt(H)}var K=H.getBorderBoxSize();if(Browser.Engine.trident4){L.adopt(H);H.style.visibility=""}switch(E){case"top":G=K.height;break;case"bottom":A=K.height;break;case"left":C=K.width;break;case"right":I=K.width;break}},this)}H=this.toolbarContainers.top;if(H){H.resize({top:0,left:C,right:I,bottom:null,height:G,width:null})}H=this.toolbarContainers.bottom;if(H){H.resize({top:null,left:C,right:I,bottom:0,height:A,width:null})}H=this.toolbarContainers.left;if(H){H.resize({top:G,left:0,right:null,bottom:A,height:null,width:C})}H=this.toolbarContainers.right;if(H){H.resize({top:G,left:null,right:0,bottom:A,height:null,width:I})}this.content.resize({top:G,bottom:A,left:C,right:I})}else{this.contentContainer.setStyle("display","none");this.options.closed=true}this.fireEvent("sizeChange",this)},setLabel:function(A){this.labelObj.innerHTML=A},getLabel:function(){return this.labelObj.innerHTML},finalize:function(){this.domObj=null;this.deregisterIds()},maximize:function(){if(this.manager){this.manager.maximizePanel(this)}},setContent:function(A){this.content.innerHTML=A;this.bContentReady=true},setContentURL:function(B){this.bContentReady=false;this.setBusy(true);if(arguments[1]){this.onContentReady=arguments[1]}if(B.indexOf("?")==-1){B=B+"?"}var A=new Request({url:B,method:"get",onComplete:this.panelContentLoaded.bind(this),requestHeaders:["If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT"]}).send()},panelContentLoaded:function(A){this.content.innerHTML=A.responseText;this.bContentReady=true;this.setBusy(false);if(this.onContentReady){window.setTimeout(this.onContentReady.bind(this),1)}},setBusy:function(A){this.busyCount+=A?1:-1;this.loadingObj.img.style.visibility=(this.busyCount>0)?"visible":"hidden"},toggleCollapse:function(C){if($defined(C)){this.options.closed=C}else{this.options.closed=!this.options.closed}if(this.options.closed){if(!this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.addClass("jx"+this.options.type+"Min");this.contentContainer.setStyle("display","none");var B=this.domObj.getMarginSize();var A=B.top+B.bottom;if(this.title.parentNode==this.domObj){A+=this.title.getMarginBoxSize().height}this.domObj.resize({height:A});this.fireEvent("collapse",this)}}else{if(this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.removeClass("jx"+this.options.type+"Min");this.contentContainer.setStyle("display","block");this.domObj.resize({height:this.options.height});this.fireEvent("expand",this)}}},close:function(){this.domObj.dispose();this.fireEvent("close",this)}});Jx.Dialog=new Class({Family:"Jx.Dialog",Extends:Jx.Panel,Implements:[Jx.AutoPosition,Jx.Chrome],blanket:null,options:{modal:true,position:"absolute",width:250,height:250,horizontal:"center center",vertical:"center center",label:"New Dialog",id:"",parent:null,resize:false,resizeTooltip:"",move:true,close:true,collapse:true},initialize:function(A){this.isOpening=false;this.firstShow=true;this.parent($merge({parent:document.body},A,{type:"Dialog",position:"absolute"}));this.options.parent=$(this.options.parent);if(this.options.modal){this.blanket=new Element("div",{"class":"jxDialogModal",styles:{display:"none",zIndex:-1}});this.blanket.resize=(function(){var B=$(document.body).getScrollSize();this.setStyles({width:B.x,height:B.y})}).bind(this.blanket);this.options.parent.adopt(this.blanket);window.addEvent("resize",this.blanket.resize)}this.domObj.setStyle("display","none");this.options.parent.adopt(this.domObj);if(this.options.move){this.title.addClass("jxDialogMoveable");new Drag(this.domObj,{handle:this.title,onBeforeStart:(function(){Jx.Dialog.orderDialogs(this)}).bind(this),onStart:(function(){this.contentContainer.setStyle("visibility","hidden");this.chrome.addClass("jxChromeDrag")}).bind(this),onComplete:(function(){this.chrome.removeClass("jxChromeDrag");this.contentContainer.setStyle("visibility","");var C=Math.max(this.chromeOffsets.left,parseInt(this.domObj.style.left,10));var B=Math.max(this.chromeOffsets.top,parseInt(this.domObj.style.top,10));this.options.horizontal=C+" left";this.options.vertical=B+" top";this.position(this.domObj,this.options.parent,this.options);this.options.left=parseInt(this.domObj.style.left,10);this.options.top=parseInt(this.domObj.style.top,10);if(!this.options.closed){this.domObj.resize(this.options)}}).bind(this)})}if(this.options.resize){this.resizeHandle=new Element("div",{"class":"jxDialogResize",title:this.options.resizeTooltip,styles:{display:this.options.closed?"none":"block"}});this.domObj.appendChild(this.resizeHandle);this.resizeHandleSize=this.resizeHandle.getSize();this.resizeHandle.setStyles({bottom:this.resizeHandleSize.height,right:this.resizeHandleSize.width});this.domObj.makeResizable({handle:this.resizeHandle,onStart:(function(){this.contentContainer.setStyle("visibility","hidden");this.chrome.addClass("jxChromeDrag")}).bind(this),onDrag:(function(){this.resizeChrome(this.domObj)}).bind(this),onComplete:(function(){this.chrome.removeClass("jxChromeDrag");var B=this.domObj.getMarginBoxSize();this.options.width=B.width;this.options.height=B.height;this.layoutContent();this.domObj.resize(this.options);this.contentContainer.setStyle("visibility","");this.fireEvent("resize");this.resizeChrome(this.domObj)}).bind(this)})}this.domObj.addEvent("mousedown",(function(){Jx.Dialog.orderDialogs(this)}).bind(this))},resize:function(B,A,C){this.options.width=B;this.options.height=A;if(this.domObj.getStyle("display")!="none"){this.layoutContent();this.domObj.resize(this.options);this.fireEvent("resize");this.resizeChrome(this.domObj);if(C){this.position(this.domObj,this.options.parent,this.options)}}else{this.firstShow=false}},sizeChanged:function(){if(!this.options.closed){this.layoutContent()}},toggleCollapse:function(C){if($defined(C)){this.options.closed=C}else{this.options.closed=!this.options.closed}if(this.options.closed){if(!this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.addClass("jx"+this.options.type+"Min")}this.contentContainer.setStyle("display","none");if(this.resizeHandle){this.resizeHandle.setStyle("display","none")}}else{if(this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.removeClass("jx"+this.options.type+"Min")}this.contentContainer.setStyle("display","block");if(this.resizeHandle){this.resizeHandle.setStyle("display","block")}}if(this.options.closed){var B=this.domObj.getMarginSize();var A=this.title.getMarginBoxSize();this.domObj.resize({height:B.top+A.height+B.bottom});this.fireEvent("collapse")}else{this.domObj.resize(this.options);this.fireEvent("expand")}this.showChrome(this.domObj)},show:function(){this.domObj.setStyles({display:"block",visibility:"hidden"});if(this.blanket){this.blanket.resize()}Jx.Dialog.orderDialogs(this);if(this.blanket){this.blanket.setStyles({visibility:"visible",display:"block"})}if(this.options.closed){var B=this.domObj.getMarginSize();var A=this.title.getMarginBoxSize();this.domObj.resize({height:B.top+A.height+B.bottom})}else{this.domObj.resize(this.options)}if(this.firstShow){this.contentContainer.resize({forceResize:true});this.layoutContent();this.firstShow=false;if(this.chrome){this.chrome.dispose();this.chrome=null}}this.showChrome(this.domObj);this.position(this.domObj,this.options.parent,this.options);this.domObj.setStyle("visibility","")},hide:function(){Jx.Dialog.Stack.erase(this);Jx.Dialog.ZIndex--;this.domObj.setStyle("display","none");if(this.blanket){this.blanket.setStyle("visibility","hidden");Jx.Dialog.ZIndex--}},openURL:function(A){if(A){this.options.contentURL=A;this.loadContent(this.content)}else{this.open()}},open:function(){if(!this.isOpening){this.isOpening=true}if(this.contentIsLoaded){this.show();this.fireEvent("open",this);this.isOpening=false}else{this.addEvent("contentLoaded",this.open.bind(this))}},close:function(){this.isOpening=false;this.hide();this.fireEvent("close")}});Jx.Dialog.Stack=[];Jx.Dialog.BaseZIndex=null;Jx.Dialog.orderDialogs=function(A){Jx.Dialog.Stack.erase(A).push(A);if(Jx.Dialog.BaseZIndex===null){Jx.Dialog.BaseZIndex=Math.max(Jx.Dialog.Stack[0].domObj.getStyle("zIndex").toInt(),1)}Jx.Dialog.Stack.each(function(D,B){var C=Jx.Dialog.BaseZIndex+B;if(D.blanket){D.blanket.setStyle("zIndex",C)}D.domObj.setStyle("zIndex",C)})};Jx.PanelSet=new Class({Family:"Jx.PanelSet",Implements:[Options,Events,Jx.Addable],options:{parent:null,panels:[],barTooltip:"drag this bar to resize"},panels:null,height:null,firstLayout:true,initialize:function(A){if(A&&A.panels){this.panels=A.panels;A.panels=null}this.setOptions(A);this.domObj=new Element("div");new Jx.Layout(this.domObj);var C=new Element("div",{styles:{position:"absolute"}});new Jx.Layout(C,{minHeight:0,maxHeight:0,height:0});var B=[C];this.panels.each(function(D){B.push(D.domObj);D.options.hideTitle=true;D.contentContainer.resize({top:0});D.toggleCollapse=this.maximizePanel.bind(this,D);D.domObj.store("Jx.Panel",D);D.manager=this},this);this.splitter=new Jx.Splitter(this.domObj,{splitInto:this.panels.length+1,layout:"vertical",elements:B,prepareBar:(function(F){var G=new Element("div",{"class":"jxPanelBar",title:this.options.barTooltip});var D=this.panels[F];D.title.setStyle("visibility","hidden");$(document.body).adopt(D.title);var E=D.title.getBorderBoxSize();G.adopt(D.title);D.title.setStyle("visibility","");G.setStyle("height",E.height);G.store("size",E);return G}).bind(this)});this.addEvent("addTo",function(){$(this.domObj.parentNode).setStyle("overflow","hidden");this.domObj.resize()});if(this.options.parent){this.addTo(this.options.parent)}},maximizePanel:function(C){var F=this.domObj.getContentBoxSize().height;var B=F;var K=C.domObj.retrieve("jxLayout").options.maxHeight;var I;for(var H=1;H<this.splitter.elements.length;H++){var D=this.splitter.elements[H];B-=D.retrieve("leftBar").getBorderBoxSize().height;if(D!==C.domObj){var G=D.retrieve("Jx.Panel");var E=D.retrieve("jxLayout").options;B-=E.minHeight}else{I=H}}if(K==-1||K>=B){K=B;B=0}else{B=B-K}var L=0;for(var H=1;H<this.splitter.elements.length;H++){var D=this.splitter.elements[H];L+=D.retrieve("leftBar").getBorderBoxSize().height;if(D!==C.domObj){var G=D.retrieve("Jx.Panel");var E=D.retrieve("jxLayout").options;var J=$chk(E.height)?E.height:D.getBorderBoxSize().height;if(B>0){if(B>=J){B-=J;D.resize({top:L,height:J});L+=J}else{if(B>E.minHeight){D.resize({top:L,height:B});L+=B;B=0}else{D.resize({top:L,height:E.minHeight});L+=E.minHeight}}}else{D.resize({top:L,height:E.minHeight});L+=E.minHeight}D.retrieve("rightBar").style.top=L+"px"}else{break}}var A=F;for(var H=this.splitter.elements.length-1;H>0;H--){D=this.splitter.elements[H];if(D!==C.domObj){var E=D.retrieve("jxLayout").options;var J=$chk(E.height)?E.height:D.getBorderBoxSize().height;if(B>0){if(B>=J){A-=J;B-=J;D.resize({top:A,height:J})}else{if(B>E.minHeight){A-=B;D.resize({top:A,height:B});B=0}else{A-=E.minHeight;D.resize({top:A,height:E.minHeight})}}}else{A-=E.minHeight;D.resize({top:A,height:E.minHeight,bottom:null})}A-=D.retrieve("leftBar").getBorderBoxSize().height;D.retrieve("leftBar").style.top=A+"px"}else{break}}C.domObj.resize({top:L,height:K,bottom:null})}});Jx.Button.Combo=new Class({Family:"Jx.Button.Combo",Extends:Jx.Button.Multi,domObj:null,ul:null,currentSelection:null,options:{editable:false,label:""},initialize:function(A){this.parent();this.setOptions(A);this.domA.removeClass("jxButtonMulti");if(this.options.editable){var B=new Element("span",{"class":"jxButton"});B.adopt(this.domA.firstChild);this.domA=B.replaces(this.domA);this.domA.addClass("jxButtonComboDefault");this.domA.addClass("jxButtonEditCombo");this.domInput=new Element("input",{type:"text",events:{change:this.valueChanged.bindWithEvent(this),keydown:this.onKeyPress.bindWithEvent(this),focus:(function(){if(this.domA.hasClass("jxButtonComboDefault")){this.domInput.value="";this.domA.removeClass("jxButtonComboDefault")}}).bind(this)},value:this.options.label});this.domLabel.empty();this.domLabel.addClass("jxComboInput");this.domLabel.adopt(this.domInput)}else{this.discloser.dispose();this.domA.addClass("jxButtonCombo");this.addEvent("click",(function(C){this.discloser.fireEvent("click",C)}).bindWithEvent(this))}this.buttonSet=new Jx.ButtonSet({onChange:(function(F){var E=F.activeButton;this.domA.removeClass("jxButtonComboDefault");if(this.options.editable){this.domInput.value=E.options.label}else{var C=E.options.label;if(C=="&nbsp;"){C=""}this.setLabel(C)}var D=E.options.image;if(D.indexOf("a_pixel")!=-1){D=""}this.setImage(D);if(this.options.imageClass&&this.domImg){this.domImg.removeClass(this.options.imageClass)}if(E.options.imageClass&&this.domImg){this.options.imageClass=E.options.imageClass;this.domImg.addClass(E.options.imageClass)}this.fireEvent("change",this)}).bind(this)});if(this.options.items){this.add(this.options.items)}this.setEnabled(this.options.enabled)},setEnabled:function(A){this.options.enabled=A;if(this.options.enabled){this.domObj.removeClass("jxDisabled");if(this.domInput){this.domInput.disabled=false}}else{this.domObj.addClass("jxDisabled");if(this.domInput){this.domInput.disabled=true}}},valueChanged:function(){},onKeyPress:function(A){if(A.key=="enter"){this.valueChanged()}},add:function(){$A(arguments).flatten().each(function(B){var A=new Jx.Menu.Item($merge(B,{toggle:true}));this.menu.add(A);this.buttonSet.add(A)},this)},remove:function(A){},setValue:function(A){if(this.options.editable){this.domInput.value=A}else{this.setLabel(A)}},getValue:function(){value="";if(this.options.editable){value=this.domInput.value}else{value=this.getLabel()}return value}});Jx.Splitter=new Class({Family:"Jx.Splitter",Implements:[Options],domObj:null,elements:null,bars:null,firstUpdate:true,options:{useChildren:false,splitInto:2,elements:null,containerOptions:[],barOptions:[],layout:"horizontal",snaps:[],barTooltip:"drag this bar to resize",onStart:null,onFinish:null},initialize:function(A,L){this.setOptions(L);this.domObj=$(A);this.domObj.addClass("jxSplitContainer");var K=this.domObj.retrieve("jxLayout");if(K){K.addEvent("sizeChange",this.sizeChanged.bind(this))}this.elements=[];this.bars=[];var J=2;if(this.options.useChildren){this.elements=this.domObj.getChildren();J=this.elements.length}else{J=this.options.elements?this.options.elements.length:this.options.splitInto;for(var G=0;G<J;G++){var D;if(this.options.elements&&this.options.elements[G]){if(L.elements[G].domObj){D=L.elements[G].domObj}else{D=$(this.options.elements[G])}if(!D){D=this.prepareElement();D.id=this.options.elements[G]}}else{D=this.prepareElement()}this.elements[G]=D;this.domObj.adopt(this.elements[G])}}this.elements.each(function(M){M.addClass("jxSplitArea")});for(var G=0;G<J;G++){var I=this.elements[G].retrieve("jxLayout");if(!I){new Jx.Layout(this.elements[G],this.options.containerOptions[G])}else{I.resize({position:"absolute"})}}for(var G=1;G<J;G++){var H;if(this.options.prepareBar){H=this.options.prepareBar(G-1)}else{H=this.prepareBar()}H.store("splitterObj",this);H.store("leftSide",this.elements[G-1]);H.store("rightSide",this.elements[G]);this.elements[G-1].store("rightBar",H);this.elements[G].store("leftBar",H);this.domObj.adopt(H);this.bars[G-1]=H}this.establishConstraints();for(var G=0;G<this.options.barOptions.length;G++){if(!this.bars[G]){continue}var B=this.options.barOptions[G];if(B&&B.snap&&(B.snap=="before"||B.snap=="after")){var F;if(B.snap=="before"){F=this.bars[G].retrieve("leftSide")}else{if(B.snap=="after"){F=this.bars[G].retrieve("rightSide")}}var E;var C;if(B.snapElement){E=B.snapElement;C=B.snapEvents||["click","dblclick"]}else{E=this.bars[G];C=B.snapEvents||["dblclick"]}if(!E.parentNode){this.bars[G].adopt(E)}new Jx.Splitter.Snap(E,F,this,C)}}for(var G=0;G<this.options.snaps.length;G++){if(this.options.snaps[G]){new Jx.Splitter.Snap(this.options.snaps[G],this.elements[G],this)}}this.sizeChanged()},prepareElement:function(){var A=new Element("div",{styles:{position:"absolute"}});return A},prepareBar:function(){var A=new Element("div",{"class":"jxSplitBar"+this.options.layout.capitalize(),title:this.options.barTitle});return A},establishConstraints:function(){var A={x:null,y:null};var B;if(this.options.layout=="horizontal"){A.x="left";B=this.dragHorizontal}else{A.y="top";B=this.dragVertical}this.bars.each(function(D){var C;new Drag(D,{modifiers:A,onSnap:function(E){E.addClass("jxSplitBarDrag")},onComplete:(function(E){C.destroy();E.removeClass("jxSplitBarDrag");if(E.retrieve("splitterObj")!=this){return }B.apply(this,[E])}).bind(this),onBeforeStart:function(E){C=new Element("div",{"class":"jxSplitterMask"}).inject(E,"after")},onStart:(function(){if(this.options.onStart){this.options.onStart()}}).bind(this),onFinish:(function(){if(this.options.onFinish){this.options.onFinish()}}).bind(this)})},this)},dragHorizontal:function(F){var A=parseInt(F.style.left);var H=F.retrieve("leftSide");var C=F.retrieve("rightSide");var D=H.retrieve("jxLayout");var G=C.retrieve("jxLayout");var E=this.domObj.getPaddingSize().left;var I,O,K;var N=F.retrieve("size");if(!N){N=F.getBorderBoxSize();F.store("size",N)}I=A+N.width-E;var B=this.domObj.getContentBoxSize();if(G.options.width!=null){O=G.options.width+G.options.left-I;K=B.width-I-O}else{O=B.width-G.options.right-I;K=G.options.right}if(O<0){O=0}if(O<G.options.minWidth){O=G.options.minWidth}if(G.options.maxWidth>=0&&O>G.options.maxWidth){O=G.options.maxWidth}I=B.width-K-O;A=I-N.width;var J,M;J=D.options.left;M=A-J;if(M<0){M=0}if(M<D.options.minWidth){M=D.options.minWidth}if(D.options.maxWidth>=0&&M>D.options.maxWidth){M=D.options.maxWidth}if(J+M!=A){A=J+M;var L=A+N.width-I;I+=L;O-=L}F.style.left=E+A+"px";if(D.options.width==null){var B=this.domObj.getContentBoxSize();H.resize({right:B.width-J-M})}else{H.resize({width:M})}if(G.options.width==null){C.resize({left:I})}else{C.resize({left:I,width:O})}},dragVertical:function(F){var J=parseInt(F.style.top);var D=F.retrieve("leftSide");var A=F.retrieve("rightSide");var E=D.retrieve("jxLayout");var H=A.retrieve("jxLayout");var N=this.domObj.getPaddingSize().top;var O=F.retrieve("size");if(!O){O=F.getBorderBoxSize();F.store("size",O)}var B=this.domObj.getContentBoxSize();var C,M,K;C=J+O.height-N;if(H.options.height!=null){M=H.options.height+H.options.top-C;K=B.height-C-M}else{M=B.height-H.options.bottom-C;K=H.options.bottom}if(M<0){M=0}if(M<H.options.minHeight){M=H.options.minHeight}if(H.options.maxHeight>=0&&M>H.options.maxHeight){M=H.options.maxHeight}C=B.height-K-M;J=C-O.height;var I,G;I=E.options.top;G=J-I;if(G<0){G=0}if(G<E.options.minHeight){G=E.options.minHeight}if(E.options.maxHeight>=0&&G>E.options.maxHeight){G=E.options.maxHeight}if(I+G!=J){J=I+G;var L=J+O.height-C;C+=L;M-=L}F.style.top=N+J+"px";if(E.options.height==null){D.resize({bottom:B.height-I-G})}else{D.resize({height:G})}if(H.options.height==null){A.resize({top:C})}else{A.resize({top:C,height:M})}},sizeChanged:function(){if(this.options.layout=="horizontal"){this.horizontalResize()}else{this.verticalResize()}},horizontalResize:function(){var O=this.domObj.getContentBoxSize().width;var D=O;for(var E=0;E<this.bars.length;E++){var L=this.bars[E];var Q=L.retrieve("size");if(!Q||Q.width==0){Q=L.getBorderBoxSize();L.store("size",Q)}O-=Q.width}var I=0;var H;for(var E=0;E<this.elements.length;E++){var K=this.elements[E];H=K.retrieve("jxLayout").options;if(H.width!=null){O-=parseInt(H.width)}else{var N=0;if(H.right!=0||H.left!=0){N=K.getBorderBoxSize().width}O-=N;I++}}if(I==0){O+=H.width;H.width=null;I=1}var G=parseInt(O/I);var P=O%I;var B=this.domObj.getPaddingSize().left;var C=0;for(var E=0;E<this.elements.length;E++){var K=this.elements[E];var J=K.retrieve("jxLayout");var H=J.options;if(H.width!=null){J.resize({left:C});C+=H.width}else{var M=G;if(I==1){M+=P}I--;var N=0;if(H.right!=0||H.left!=0){N=K.getBorderBoxSize().width+M}else{N=M}if(N<0){if(I>0){G=G+N/I}N=0}if(N<H.minWidth){if(I>0){G=G+(N-H.minWidth)/I}N=H.minWidth}if(H.maxWidth>=0&&N>H.maxWidth){if(I>0){G=G+(N-H.maxWidth)/I}N=K.options.maxWidth}var A=D-C-N;J.resize({left:C,right:A});C+=N}var F=K.retrieve("rightBar");if(F){F.setStyle("left",B+C);C+=F.retrieve("size").width}}},verticalResize:function(){var N=this.domObj.getContentBoxSize().height;var B=N;for(var D=0;D<this.bars.length;D++){var L=this.bars[D];var Q=L.retrieve("size");if(!Q||Q.height==0){Q=L.getBorderBoxSize();L.store("size",Q)}N-=Q.height}var I=0;var H;for(var D=0;D<this.elements.length;D++){var K=this.elements[D];H=K.retrieve("jxLayout").options;if(H.height!=null){N-=parseInt(H.height)}else{var G=0;if(H.bottom!=0||H.top!=0){G=K.getBorderBoxSize().height}N-=G;I++}}if(I==0){N+=H.height;H.height=null;I=1}var F=parseInt(N/I);var O=N%I;var P=this.domObj.getPaddingSize().top;var C=0;for(var D=0;D<this.elements.length;D++){var K=this.elements[D];var J=K.retrieve("jxLayout");var H=J.options;if(H.height!=null){J.resize({top:C});C+=H.height}else{var M=F;if(I==1){M+=O}I--;var G=0;if(H.bottom!=0||H.top!=0){G=K.getBorderBoxSize().height+M}else{G=M}if(G<0){if(I>0){F=F+G/I}G=0}if(G<H.minHeight){if(I>0){F=F+(G-H.minHeight)/I}G=H.minHeight}if(H.maxHeight>=0&&G>H.maxHeight){if(I>0){F=F+(G-H.maxHeight)/I}G=H.maxHeight}var A=B-C-G;J.resize({top:C,bottom:A});C+=G}var E=K.retrieve("rightBar");if(E){E.style.top=P+C+"px";C+=E.retrieve("size").height}}}});Jx.Splitter.Snap=new Class({Family:"Jx.Splitter.Snap",snap:null,element:null,splitter:null,layout:"vertical",initialize:function(A,F,G,E){this.snap=A;this.element=F;var D=F.retrieve("jxLayout");D.addEvent("sizeChange",this.sizeChange.bind(this));this.splitter=G;this.layout=G.options.layout;var B=D.options;var C=this.element.getContentBoxSize();if(this.layout=="vertical"){this.originalSize=C.height;this.minimumSize=B.minHeight?B.minHeight:0}else{this.originalSize=C.width;this.minimumSize=B.minWidth?B.minWidth:0}E.each(function(H){A.addEvent(H,this.toggleElement.bind(this))},this)},toggleElement:function(){var B=this.element.getContentBoxSize();var A={};if(this.layout=="vertical"){if(B.height==this.minimumSize){A.height=this.originalSize}else{this.originalSize=B.height;A.height=this.minimumSize}}else{if(B.width==this.minimumSize){A.width=this.originalSize}else{this.originalSize=B.width;A.width=this.minimumSize}}this.element.resize(A);this.splitter.sizeChanged()},sizeChange:function(){var A=this.element.getContentBoxSize();if(this.layout=="vertical"){if(A.height==this.minimumSize){this.snap.addClass("jxSnapClosed");this.snap.removeClass("jxSnapOpened")}else{this.snap.addClass("jxSnapOpened");this.snap.removeClass("jxSnapClosed")}}else{if(A.width==this.minimumSize){this.snap.addClass("jxSnapClosed");this.snap.removeClass("jxSnapOpened")}else{this.snap.addClass("jxSnapOpened");this.snap.removeClass("jxSnapClosed")}}}});Jx.TabSet=new Class({Family:"Jx.TabSet",Implements:[Options,Events],tabs:null,domObj:null,initialize:function(B,A){this.setOptions(A);this.tabs=[];this.domObj=$(B);if(!this.domObj.hasClass("jxTabSetContainer")){this.domObj.addClass("jxTabSetContainer")}this.setActiveTabFn=this.setActiveTab.bind(this)},resizeTabBox:function(){if(this.activeTab&&this.activeTab.content.resize){this.activeTab.content.resize({forceResize:true})}},add:function(){$A(arguments).each(function(A){if(A instanceof Jx.Button.Tab){A.addEvent("down",this.setActiveTabFn);A.tabSet=this;this.domObj.appendChild(A.content);this.tabs.push(A);if((!this.activeTab||A.options.active)&&A.options.enabled){A.options.active=false;A.setActive(true)}}},this);return this},remove:function(A){if(A instanceof Jx.Button.Tab&&this.tabs.indexOf(A)!=-1){this.tabs.erase(A);if(this.activeTab==A){if(this.tabs.length){this.tabs[0].setActive(true)}}A.removeEvent("down",this.setActiveTabFn);A.content.dispose()}},setActiveTab:function(A){if(this.activeTab&&this.activeTab!=A){this.activeTab.setActive(false)}this.activeTab=A;if(this.activeTab.content.resize){this.activeTab.content.resize({forceResize:true})}this.fireEvent("tabChange",[this,A])}});Jx.TabBox=new Class({Family:"Jx.TabBox",Implements:[Options,Events,Jx.Addable],options:{parent:null,position:"top",height:null,width:null},tabBar:null,tabSet:null,initialize:function(A){this.setOptions(A);this.tabBar=new Jx.Toolbar({type:"TabBar",position:this.options.position,scroll:this.options.scroll});this.panel=new Jx.Panel({toolbars:[this.tabBar],hideTitle:true,height:this.options.height,width:this.options.width});this.panel.domObj.addClass("jxTabBox");this.tabSet=new Jx.TabSet(this.panel.content);this.tabSet.addEvent("tabChange",function(B,C){this.showItem(C)}.bind(this.tabBar));this.domObj=this.panel.domObj;this.panel.addEvent("sizeChange",this.tabSet.resizeTabBox.bind(this.tabSet));this.tabBar.addEvents({add:(function(){this.domObj.resize({forceResize:true})}).bind(this),remove:(function(){this.domObj.resize({forceResize:true})}).bind(this)});this.addEvent("addTo",function(){this.domObj.resize({forceResize:true})});if(this.options.parent){this.addTo(this.options.parent)}},add:function(){this.tabBar.add.apply(this.tabBar,arguments);this.tabSet.add.apply(this.tabSet,arguments);$A(arguments).flatten().each(function(A){A.addEvents({close:(function(){this.tabBar.remove(A);this.tabSet.remove(A)}).bind(this)})},this);return this},remove:function(A){this.tabBar.remove(A);this.tabSet.remove(A)}});Jx.Button.Tab=new Class({Family:"Jx.Button.Tab",Extends:Jx.Button,Implements:[Jx.ContentLoader],content:null,initialize:function(B){this.parent($merge(B,{type:"Tab",toggle:true}));this.content=new Element("div",{"class":"tabContent"});new Jx.Layout(this.content,B);this.loadContent(this.content);var C=this;this.addEvent("down",function(){C.content.addClass("tabContentActive")});this.addEvent("up",function(){C.content.removeClass("tabContentActive")});if(this.options.close){this.domObj.addClass("jxTabClose");var A=new Element("a",{"class":"jxTabClose",events:{click:(function(){this.fireEvent("close")}).bind(this)}});A.adopt(new Element("img",{src:Jx.aPixel.src,alt:"",title:""}));this.domObj.adopt(A)}},clicked:function(A){if(this.options.enabled){this.setActive(true)}}});Jx.Toolbar=new Class({Family:"Jx.Toolbar",Implements:[Options,Events],items:null,domObj:null,isActive:false,options:{type:"Toolbar",position:"top",parent:null,autoSize:false,scroll:true},initialize:function(A){this.setOptions(A);this.items=[];this.domObj=new Element("ul",{id:this.options.id,"class":"jx"+this.options.type});if(this.options.parent){this.addTo(this.options.parent)}this.deactivateWatcher=this.deactivate.bindWithEvent(this);if(this.options.items){this.add(this.options.items)}},addTo:function(A){var B=$(A).retrieve("jxBarContainer");if(!B){B=new Jx.Toolbar.Container({parent:A,position:this.options.position,autoSize:this.options.autoSize,scroll:this.options.scroll})}B.add(this);return this},add:function(){$A(arguments).flatten().each(function(A){if(A.domObj){A=A.domObj}if(A.tagName=="LI"){if(!A.hasClass("jxToolItem")){A.addClass("jxToolItem")}this.domObj.appendChild(A)}else{var B=new Jx.Toolbar.Item(A);this.domObj.appendChild(B.domObj)}},this);if(arguments.length>0){this.fireEvent("add",this)}return this},remove:function(B){if(B.domObj){B=B.domObj}var A=B.findElement("LI");if(A&&A.parentNode==this.domObj){B.dispose();A.dispose();this.fireEvent("remove",this)}else{return null}},deactivate:function(){this.items.each(function(A){A.hide()});this.setActive(false)},isActive:function(){return this.isActive},setActive:function(A){this.isActive=A;if(this.isActive){document.addEvent("click",this.deactivateWatcher)}else{document.removeEvent("click",this.deactivateWatcher)}},setVisibleItem:function(A){if(this.visibleItem&&this.visibleItem.hide&&this.visibleItem!=A){this.visibleItem.hide()}this.visibleItem=A;if(this.isActive()){this.visibleItem.show()}},showItem:function(A){this.fireEvent("show",A)}});Jx.Toolbar.Item=new Class({Family:"Jx.Toolbar.Item",Implements:[Options],options:{active:true},domObj:null,initialize:function(A){this.al=[];this.domObj=new Element("li",{"class":"jxToolItem"});if(A){if(A.domObj){this.domObj.appendChild(A.domObj);if(A instanceof Jx.Tab){this.domObj.addClass("jxTabItem")}}else{this.domObj.appendChild(A);if(A.hasClass("jxTab")){this.domObj.addClass("jxTabItem")}}}}});Jx.Toolbar.Separator=new Class({Family:"Jx.Toolbar.Separator",domObj:null,initialize:function(){this.domObj=new Element("li",{"class":"jxToolItem"});this.domSpan=new Element("span",{"class":"jxBarSeparator"});this.domObj.appendChild(this.domSpan)}});Jx.Toolbar.Container=new Class({Family:"Jx.Toolbar.Container",Implements:[Options,Events,Jx.Addable],domObj:null,options:{parent:null,position:"top",autoSize:false,scroll:true},initialize:function(A){this.setOptions(A);var B=$(this.options.parent);this.domObj=B||new Element("div");this.domObj.addClass("jxBarContainer");if(this.options.scroll){this.scroller=new Element("div",{"class":"jxBarScroller"});this.domObj.adopt(this.scroller)}this.domObj.store("jxBarContainer",this);if(["top","right","bottom","left"].contains(this.options.position)){this.domObj.addClass("jxBar"+this.options.position.capitalize())}else{this.domObj.addClass("jxBarTop");this.options.position="top"}if(this.options.scroll&&["top","bottom"].contains(this.options.position)){this.addEvent("addTo",this.update.bind(this));this.scrollFx=scrollFx=new Fx.Tween(this.scroller,{link:"chain"});this.scrollLeft=new Jx.Button({image:Jx.aPixel.src}).addTo(this.domObj);this.scrollLeft.domObj.addClass("jxBarScrollLeft");this.scrollLeft.addEvents({click:(function(){var D=this.scroller.getStyle("left").toInt();if(isNaN(D)){D=0}var C=Math.min(D+100,0);if(C>=0){this.scrollLeft.domObj.setStyle("visibility","hidden")}this.scrollRight.domObj.setStyle("visibility","");this.scrollFx.start("left",D,C)}).bind(this)});this.scrollRight=new Jx.Button({image:Jx.aPixel.src}).addTo(this.domObj);this.scrollRight.domObj.addClass("jxBarScrollRight");this.scrollRight.addEvents({click:(function(){var D=this.scroller.getStyle("left").toInt();if(isNaN(D)){D=0}var C=Math.max(D-100,this.scrollWidth);if(C==this.scrollWidth){this.scrollRight.domObj.setStyle("visibility","hidden")}this.scrollLeft.domObj.setStyle("visibility","");this.scrollFx.start("left",D,C)}).bind(this)})}else{this.options.scroll=false}if(this.options.toolbars){this.add(this.options.toolbars)}},update:function(){if(this.options.autoSize){(function(){var A=0;this.scroller.getChildren().each(function(B){A+=B.getSize().x});this.domObj.setStyles({width:A});this.measure()}).delay(1,this)}else{this.measure()}},measure:function(){if((!this.scrollLeftSize||!this.scrollLeftSize.x)&&this.domObj.parentNode){this.scrollLeftSize=this.scrollLeft.domObj.getSize();this.scrollRightSize=this.scrollRight.domObj.getSize()}this.scrollWidth=this.domObj.getSize().x;this.scroller.getChildren().each(function(C){this.scrollWidth-=C.getSize().x},this);if(this.scrollWidth<0){var A=this.scroller.getStyle("left").toInt();if(A<0){this.scrollLeft.domObj.setStyle("visibility","")}else{this.scrollLeft.domObj.setStyle("visibility","hidden")}if(A<=this.scrollWidth){this.scrollRight.domObj.setStyle("visibility","hidden");if(A<this.scrollWidth){this.scrollFx.start("left",A,this.scrollWidth)}}else{this.scrollRight.domObj.setStyle("visibility","")}}else{this.scrollLeft.domObj.setStyle("visibility","hidden");this.scrollRight.domObj.setStyle("visibility","hidden");var B=this.scroller.getStyle("left").toInt();if(!isNaN(B)&&B!==0){this.scrollFx.start("left",0)}}},add:function(){$A(arguments).flatten().each(function(A){if(this.options.scroll){A.addEvent("add",this.update.bind(this));A.addEvent("remove",this.update.bind(this));A.addEvent("show",this.scrollIntoView.bind(this))}if(this.scroller){this.scroller.adopt(A.domObj)}else{this.domObj.adopt(A.domObj)}this.domObj.addClass("jx"+A.options.type+this.options.position.capitalize())},this);if(this.options.scroll){this.update()}if(arguments.length>0){this.fireEvent("add",this)}return this},remove:function(A){},scrollIntoView:function(D){var C=this.domObj.getSize().x;var E=D.domObj.getCoordinates(this.scroller);var B=this.scroller.getStyle("left");if(B==="auto"||B.length<=0){B=0}else{B=B.toInt()}var G=this.scrollLeftSize?this.scrollLeftSize.x:0;var A=this.scrollRightSize?this.scrollRightSize.x:0;var F=B;if(B<-E.left+G){F=-E.left+G;if(F>=0){F=0}}else{if(C-E.right-A<B){F=C-E.right-A;if(F<this.scrollWidth){F=this.scrollWidth}}}if(F<0){this.scrollLeft.domObj.setStyle("visibility","")}else{this.scrollLeft.domObj.setStyle("visibility","hidden")}if(F<=this.scrollWidth){this.scrollRight.domObj.setStyle("visibility","hidden")}else{this.scrollRight.domObj.setStyle("visibility","")}if(F!=B){this.scrollFx.start("left",F)}}});Jx.TreeItem=new Class({Family:"Jx.TreeItem",Implements:[Options,Events],domObj:null,owner:null,options:{label:"",data:null,contextMenu:null,image:null,enabled:true,type:"Item",imageClass:""},initialize:function(A){this.setOptions(A);this.domObj=new Element("li",{"class":"jxTree"+this.options.type});if(this.options.id){this.domObj.id=this.options.id}this.domNode=new Element("img",{"class":"jxTreeImage",src:Jx.aPixel.src,alt:"",title:""});this.domObj.appendChild(this.domNode);this.domLabel=(this.options.draw)?this.options.draw.apply(this):this.draw();this.domObj.appendChild(this.domLabel);this.domObj.store("jxTreeItem",this);if(!this.options.enabled){this.domObj.addClass("jxDisabled")}},draw:function(){var C=new Element("img",{"class":"jxTreeIcon",src:Jx.aPixel.src,alt:"",title:""});if(this.options.image){C.setStyle("backgroundImage","url("+this.options.image+")")}if(this.options.imageClass){C.addClass(this.options.imageClass)}var D;var A;var B=new Element("a",{href:"javascript:void(0)",html:this.options.label});B.addEvents({click:this.selected.bind(this),dblclick:this.selected.bind(this),drag:function(E){E.stop()},contextmenu:function(E){E.stop()},mousedown:(function(E){B.addClass("jxTreeItemPressed");D=true;A=true;B.focus();if(E.rightClick&&this.options.contextMenu){this.options.contextMenu.show(E)}}).bind(this),mouseup:function(E){B.removeClass("jxTreeItemPressed");A=false},mouseleave:function(E){B.removeClass("jxTreeItemPressed")},mouseenter:function(E){if(D&&A){B.addClass("jxTreeItemPressed")}},keydown:function(E){if(E.key=="enter"){B.addClass("jxTreeItemPressed")}},keyup:function(E){if(E.key=="enter"){B.removeClass("jxTreeItemPressed")}},blur:function(){D=false}});B.appendChild(C);new Drag(B,{onStart:function(){this.stop()}});return B},finalize:function(){this.finalizeItem()},finalizeItem:function(){if(!this.domObj){return }this.options=null;this.domObj.dispose();this.domObj=null;this.owner=null},clone:function(){return new Jx.TreeItem(this.options)},update:function(B){var A=(arguments.length>1)?arguments[1]:(this.owner&&this.owner.isLastNode(this));if(A){this.domObj.removeClass("jxTree"+this.options.type);this.domObj.addClass("jxTree"+this.options.type+"Last")}else{this.domObj.removeClass("jxTree"+this.options.type+"Last");this.domObj.addClass("jxTree"+this.options.type)}},selected:function(A){this.fireEvent("click",this)},getName:function(){return this.options.label},propertyChanged:function(A){this.options.enabled=A.isEnabled();if(this.options.enabled){this.domObj.removeClass("jxDisabled")}else{this.domObj.addClass("jxDisabled")}}});Jx.TreeFolder=new Class({Family:"Jx.TreeFolder",Extends:Jx.TreeItem,subDomObj:null,nodes:null,options:{open:false,folderCloseImage:Jx.baseURL+"images/tree_folder.png",folderOpenImage:Jx.baseURL+"images/tree_folder_open.png"},initialize:function(A){this.parent($merge(A,{type:"Branch"}));$(this.domNode).addEvent("click",this.clicked.bindWithEvent(this));this.addEvent("click",this.clicked.bindWithEvent(this));this.nodes=[];this.subDomObj=new Element("ul",{"class":"jxTree"});this.domObj.appendChild(this.subDomObj);if(this.options.open){this.expand()}else{this.collapse()}},finalize:function(){this.finalizeFolder();this.finalizeItem();this.subDomObj.dispose();this.subDomObj=null},finalizeFolder:function(){this.domObj.childNodes[0].removeEvents();for(var A=this.nodes.length-1;A>=0;A--){this.nodes[A].finalize();this.nodes.pop()}},clone:function(){var A=new Jx.TreeFolder(this.options);this.nodes.each(function(B){A.append(B.clone())});return A},isLastNode:function(A){if(this.nodes.length==0){return false}else{return this.nodes[this.nodes.length-1]==A}},update:function(C){if(!this.parent){return }var B=false;if(arguments.length>1){B=arguments[1]}else{B=(this.owner&&this.owner.isLastNode(this))}var D="jxTree"+this.options.type;D+=B?"Last":"";D+=this.options.open?"Open":"Closed";this.domObj.className=D;if(B){this.subDomObj.className="jxTree"}else{this.subDomObj.className="jxTree jxTreeNest"}if(this.nodes&&C){var A=this;this.nodes.each(function(F,E){F.update(false,E==A.nodes.length-1)})}},append:function(A){A.owner=this;this.nodes.push(A);this.subDomObj.appendChild(A.domObj);this.update(true);return this},insert:function(D,B){D.owner=this;if(!B){this.nodes.unshift(D);if(this.subDomObj.childNodes.length==0){this.subDomObj.appendChild(D.domObj)}else{this.subDomObj.insertBefore(D.domObj,this.subDomObj.childNodes[0])}}else{var A=false;for(var C=0;C<this.nodes.length;C++){if(this.nodes[C]==B){C=C+1;if(C<this.nodes.length){this.nodes.splice(C,0,D);this.subDomObj.insertBefore(D.domObj,this.subDomObj.childNodes[C]);A=true;break}}}if(!A){this.nodes.push(D);this.subDomObj.appendChild(D.domObj)}}this.update(true);return this},remove:function(B){B.owner=null;for(var A=0;A<this.nodes.length;A++){if(this.nodes[A]==B){this.nodes.splice(A,1);this.subDomObj.removeChild(this.subDomObj.childNodes[A]);break}}this.update(true);return this},replace:function(D,B){var A=false;for(var C=0;C<this.nodes.length;C++){if(this.nodes[C]==B){if(C<this.nodes.length){D.owner=this;this.nodes.splice(C,1,D);this.subDomObj.replaceChild(D.domObj,B.domObj);return true}}}return false},clicked:function(A){if(this.options.open){this.collapse()}else{this.expand()}},expand:function(){this.options.open=true;this.subDomObj.setStyle("display","block");this.update(true);this.fireEvent("disclosed",this)},collapse:function(){this.options.open=false;this.subDomObj.setStyle("display","none");this.update(true);this.fireEvent("disclosed",this)},findChild:function(C){if(C.length==0){return this}if(C.length==1){for(var B=0;B<this.nodes.length;B++){if(this.nodes[B].getName()==C[0]){return this.nodes[B]}}return null}var A=C.shift();for(var B=0;B<this.nodes.length;B++){if(this.nodes[B].getName()==A&&this.nodes[B].findChild){return this.nodes[B].findChild(C)}}return null}});Jx.Tree=new Class({Family:"Jx.Tree",Implements:[Jx.Addable],Extends:Jx.TreeFolder,initialize:function(A){this.parent(A);this.subDomObj=new Element("ul",{"class":"jxTreeRoot"});this.nodes=[];this.isOpen=true;this.addable=this.subDomObj;if(this.options.parent){this.addTo(this.options.parent)}},finalize:function(){this.clear();this.subDomObj.parentNode.removeChild(this.subDomObj)},clear:function(){for(var A=this.nodes.length-1;A>=0;A--){this.subDomObj.removeChild(this.nodes[A].domObj);this.nodes[A].finalize();this.nodes.pop()}},update:function(A){var B=true;if(this.subDomObj){if(B){this.subDomObj.removeClass("jxTreeNest")}else{this.subDomObj.addClass("jxTreeNest")}}if(this.nodes&&A){this.nodes.each(function(C){C.update(false)})}},append:function(A){A.owner=this;this.nodes.push(A);this.subDomObj.appendChild(A.domObj);this.update(true);return this}});