/* 

	MochaUI - A Web Applications User Interface Framework.
	
Copyright:
	Copyright (c) 2007-2008 Greg Houston, <http://greghoustondesign.com/>.
	
License:
	MIT-style license.

Contributors:
	- Scott F. Frederick
	- Joel Lindau
	
*/
var MochaUI=new Hash({options:new Hash({useEffects:true}),Columns:{instances:new Hash()},Panels:{instances:new Hash()},Windows:{instances:new Hash(),indexLevel:100,windowIDCount:0,windowsVisible:true},ieSupport:"excanvas",focusingWindow:"false",updateContent:function(C){var K={element:null,childElement:null,title:null,content:null,loadMethod:null,url:null,padding:null};$extend(K,C);if(!K.element){return }var F=K.element;if(MochaUI.Windows.instances.get(F.id)){var I="window";var J=MochaUI.Windows.instances.get(F.id);var H=J.spinnerEl;if(K.title){J.titleEl.set("html",K.title)}}else{var I="panel";var J=MochaUI.Panels.instances.get(F.id);if(K.title){J.titleEl.set("html",K.title)}}var A=J.contentEl;if(K.childElement!=null){var G=K.childElement}else{var G=J.contentEl}var D=K.loadMethod!=null?K.loadMethod:J.options.loadMethod;if(G==J.contentEl){J.contentWrapperEl.setStyles({overflow:J.options.scrollbars==true&&D!="iframe"?"auto":"hidden"})}var E=J.contentWrapperEl;if(K.padding!=null){A.setStyles({"padding-top":K.padding.top,"padding-bottom":K.padding.bottom,"padding-left":K.padding.left,"padding-right":K.padding.right})}if(G==A){A.empty()}if(K.url=="/html/empty.html"||K.url==""){D="html"}switch(D){case"xhr":new Request.HTML({url:K.url,update:G,evalScripts:J.options.evalScripts,evalResponse:J.options.evalResponse,onRequest:function(){if(I=="window"&&G==A){J.showSpinner(H)}else{if(I=="panel"&&G==A&&$("spinner")){$("spinner").setStyle("visibility","visible")}}}.bind(this),onFailure:function(){if(G==A){G.set("html","<p><strong>Error Loading XMLHttpRequest</strong></p>");if(I=="window"){J.hideSpinner(H)}else{if(I=="panel"&&$("spinner")){$("spinner").setStyle("visibility","hidden")}}}}.bind(this),onException:function(){}.bind(this),onSuccess:function(){if(G==A){if(I=="window"){J.hideSpinner(H)}else{if(I=="panel"&&$("spinner")){$("spinner").setStyle("visibility","hidden")}}J.fireEvent("onContentLoaded",F)}}.bind(this),onComplete:function(){}.bind(this)}).get();break;case"iframe":if(J.options.contentURL==""||G!=A){break}J.iframeEl=new Element("iframe",{id:J.options.id+"_iframe",name:J.options.id+"_iframe","class":"mochaIframe",src:K.url,marginwidth:0,marginheight:0,frameBorder:0,scrolling:"auto",styles:{height:E.offsetHeight-E.getStyle("border-top").toInt()-E.getStyle("border-bottom").toInt(),width:J.panelEl?E.offsetWidth-E.getStyle("border-left").toInt()-E.getStyle("border-right").toInt():"100%"}}).injectInside(A);J.iframeEl.addEvent("load",function(L){if(I=="window"){J.hideSpinner(H)}else{if(I=="panel"&&G==A&&$("spinner")){$("spinner").setStyle("visibility","hidden")}}J.fireEvent("onContentLoaded",F)}.bind(this));if(I=="window"){J.showSpinner(H)}else{if(I=="panel"&&G==A&&$("spinner")){$("spinner").setStyle("visibility","visible")}}break;case"html":default:var B=new Array("element","textnode","whitespace","collection");if(B.contains($type(K.content))){K.content.inject(G)}else{G.set("html",K.content)}J.fireEvent("onContentLoaded",F);break}},reloadIframe:function(A){if(Browser.Engine.gecko){$(A).src=$(A).src}else{top.frames[A].location.reload(true)}},collapseToggle:function(D){var C=MochaUI.Windows.instances;var B=C.get(D.id);var A=B.windowEl.getElements(".handle");if(B.isMaximized==true){return }if(B.isCollapsed==false){B.isCollapsed=true;A.setStyle("display","none");if(B.iframeEl){B.iframeEl.setStyle("visibility","hidden")}B.contentBorderEl.setStyles({visibility:"hidden",position:"absolute",top:-10000,left:-10000});if(B.toolbarWrapperEl){B.toolbarWrapperEl.setStyles({visibility:"hidden",position:"absolute",top:-10000,left:-10000})}B.drawWindowCollapsed(D)}else{B.isCollapsed=false;B.drawWindow(D);B.contentBorderEl.setStyles({visibility:"visible",position:null,top:null,left:null});if(B.toolbarWrapperEl){B.toolbarWrapperEl.setStyles({visibility:"visible",position:null,top:null,left:null})}if(B.iframeEl){B.iframeEl.setStyle("visibility","visible")}A.setStyle("display","block")}},closeWindow:function(D){var C=MochaUI.Windows.instances;var B=C.get(D.id);if(D!=$(D)||B.isClosing){return }B.isClosing=true;B.fireEvent("onClose",D);if(B.check){B.check.destroy()}if((B.options.type=="modal"||B.options.type=="modal2")&&Browser.Engine.trident4){$("modalFix").setStyle("display","none")}if(MochaUI.options.useEffects==false){if(B.options.type=="modal"||B.options.type=="modal2"){$("modalOverlay").setStyle("opacity",0)}MochaUI.closingJobs(D);return true}else{if(Browser.Engine.trident){B.drawWindow(D,false)}if(B.options.type=="modal"||B.options.type=="modal2"){MochaUI.Modal.modalOverlayCloseMorph.start({opacity:0})}var A=new Fx.Morph(D,{duration:120,onComplete:function(){MochaUI.closingJobs(D);return true}.bind(this)});A.start({opacity:0.4})}},closingJobs:function(E){var D=MochaUI.Windows.instances;var C=D.get(E.id);E.setStyle("visibility","hidden");E.destroy();C.fireEvent("onCloseComplete");if(C.options.type!="notification"){var B=this.getWindowWithHighestZindex();this.focusWindow(B)}D.erase(C.options.id);if(this.loadingWorkspace==true){this.windowUnload()}if(MochaUI.Dock&&$(MochaUI.options.dock)&&C.options.type=="window"){var A=$(C.options.id+"_dockTab");if(A!=null){MochaUI.Dock.dockSortables.removeItems(A).destroy()}MochaUI.Desktop.setDesktopSize()}},closeAll:function(){$$("div.mocha").each(function(A){this.closeWindow(A)}.bind(this))},toggleWindowVisibility:function(){MochaUI.Windows.instances.each(function(A){if(A.options.type=="modal"||A.options.type=="modal2"||A.isMinimized==true){return }var B=$(A.options.id);if(B.getStyle("visibility")=="visible"){if(A.iframe){A.iframeEl.setStyle("visibility","hidden")}if(A.toolbarEl){A.toolbarWrapperEl.setStyle("visibility","hidden")}A.contentBorderEl.setStyle("visibility","hidden");B.setStyle("visibility","hidden");MochaUI.Windows.windowsVisible=false}else{B.setStyle("visibility","visible");A.contentBorderEl.setStyle("visibility","visible");if(A.iframe){A.iframeEl.setStyle("visibility","visible")}if(A.toolbarEl){A.toolbarWrapperEl.setStyle("visibility","visible")}MochaUI.Windows.windowsVisible=true}}.bind(this))},focusWindow:function(E,B){MochaUI.focusingWindow="true";var A=function(){MochaUI.focusingWindow="false"};A.delay(170,this);if($$(".mocha").length==0){return }if(E!=$(E)||E.hasClass("isFocused")){return }var D=MochaUI.Windows.instances;var C=D.get(E.id);if(C.options.type=="notification"){return }MochaUI.Windows.indexLevel+=2;E.setStyle("zIndex",MochaUI.Windows.indexLevel);$("windowUnderlay").setStyle("zIndex",MochaUI.Windows.indexLevel-1).inject($(E),"after");D.each(function(F){if(F.windowEl.hasClass("isFocused")){F.fireEvent("onBlur",F.windowEl)}F.windowEl.removeClass("isFocused")});if(MochaUI.Dock&&$(MochaUI.options.dock)&&C.options.type=="window"){MochaUI.Dock.makeActiveTab()}C.windowEl.addClass("isFocused");if(B!=false){C.fireEvent("onFocus",E)}},getWindowWithHighestZindex:function(){this.highestZindex=0;$$("div.mocha").each(function(A){this.zIndex=A.getStyle("zIndex");if(this.zIndex>=this.highestZindex){this.highestZindex=this.zIndex}}.bind(this));$$("div.mocha").each(function(A){if(A.getStyle("zIndex")==this.highestZindex){this.windowWithHighestZindex=A}}.bind(this));return this.windowWithHighestZindex},blurAll:function(){if(MochaUI.focusingWindow=="false"){$$(".mocha").each(function(C){var B=MochaUI.Windows.instances;var A=B.get(C.id);if(A.options.type!="modal"&&A.options.type!="modal2"){C.removeClass("isFocused")}});$$("div.dockTab").removeClass("activeDockTab")}},roundedRect:function(E,C,H,G,B,A,F,D){E.fillStyle="rgba("+F.join(",")+","+D+")";E.beginPath();E.moveTo(C,H+A);E.lineTo(C,H+B-A);E.quadraticCurveTo(C,H+B,C+A,H+B);E.lineTo(C+G-A,H+B);E.quadraticCurveTo(C+G,H+B,C+G,H+B-A);E.lineTo(C+G,H+A);E.quadraticCurveTo(C+G,H,C+G-A,H);E.lineTo(C+A,H);E.quadraticCurveTo(C,H,C,H+A);E.fill()},triangle:function(D,B,G,F,A,E,C){D.beginPath();D.moveTo(B+F,G);D.lineTo(B,G+A);D.lineTo(B+F,G+A);D.closePath();D.fillStyle="rgba("+E.join(",")+","+C+")";D.fill()},circle:function(C,A,F,E,D,B){C.beginPath();C.moveTo(A,F);C.arc(A,F,E,0,Math.PI*2,true);C.fillStyle="rgba("+D.join(",")+","+B+")";C.fill()},centerWindow:function(F){if(!F){MochaUI.Windows.instances.each(function(G){if(G.windowEl.hasClass("isFocused")){F=G.windowEl}})}var E=MochaUI.Windows.instances.get(F.id);var A=E.options;var C=A.container.getCoordinates();var B=window.getScroll().y+(window.getSize().y*0.5)-(F.offsetHeight*0.5);if(B<0){B=0}var D=(C.width*0.5)-(F.offsetWidth*0.5);if(D<0){D=0}if(MochaUI.options.useEffects==true){E.morph.start({top:B,left:D})}else{F.setStyles({top:B,left:D})}},notification:function(A){new MochaUI.Window({loadMethod:"html",closeAfter:1500,type:"notification",addClass:"notification",content:A,width:220,height:40,y:53,padding:{top:10,right:12,bottom:10,left:12},shadowBlur:5,bodyBgColor:[255,255,255]})},dynamicResize:function(D){var C=MochaUI.Windows.instances.get(D.id);var B=C.contentWrapperEl;var A=C.contentEl;B.setStyle("height",A.offsetHeight);B.setStyle("width",A.offsetWidth);C.drawWindow(D)},garbageCleanUp:function(){$$("div.mocha").each(function(A){A.destroy()}.bind(this))},underlayInitialize:function(){var A=new Element("div",{id:"windowUnderlay",styles:{height:parent.getCoordinates().height,opacity:0.01,display:"none"}}).inject(document.body)},setUnderlaySize:function(){$("windowUnderlay").setStyle("height",parent.getCoordinates().height)}});function fixPNG(E){if(Browser.Engine.trident4&&document.body.filters){var B=(E.id)?"id='"+E.id+"' ":"";var D=(E.className)?"class='"+E.className+"' ":"";var F=(E.title)?"title='"+E.title+"' ":"title='"+E.alt+"' ";var C="display:inline-block;"+E.style.cssText;var A="<span "+B+D+F+' style="width:'+E.width+"px; height:"+E.height+"px;"+C+";filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+E.src+"', sizingMethod='scale');\"></span>";E.outerHTML=A}}document.addEvent("keydown",function(A){if(A.key=="q"&&A.control&&A.alt){MochaUI.toggleWindowVisibility()}});document.addEvent("mousedown",function(A){MochaUI.blurAll.delay(50)});document.addEvent("domready",function(){MochaUI.underlayInitialize()});window.addEvent("resize",function(){MochaUI.setUnderlaySize()});MochaUI.Windows.windowOptions={id:null,title:"New Window",icon:false,type:"window",loadMethod:"html",contentURL:"/html/empty.html",closeAfter:false,evalScripts:true,evalResponse:false,content:"Window content",toolbar:false,toolbarPosition:"top",toolbarHeight:29,toolbarURL:"/html/empty.html",toolbarContent:"",toolbar2:false,toolbar2Position:"bottom",toolbar2Height:29,toolbar2URL:"/html/empty.html",toolbar2Content:"",container:null,restrict:false,shape:"box",collapsible:true,minimizable:true,maximizable:true,closable:true,startMinimized:true,draggable:null,draggableGrid:false,draggableLimit:false,draggableSnap:false,resizable:null,resizeLimit:{x:[250,2500],y:[125,2000]},addClass:"",width:300,height:125,x:null,y:null,scrollbars:true,padding:{top:10,right:12,bottom:10,left:12},shadowBlur:5,shadowOffset:{x:0,y:1},controlsOffset:{right:6,top:6},useCanvas:true,useCanvasControls:true,useSpinner:true,headerHeight:25,footerHeight:25,cornerRadius:8,contentBgColor:"#fff",headerStartColor:[250,250,250],headerStopColor:[229,229,229],bodyBgColor:[229,229,229],minimizeBgColor:[255,255,255],minimizeColor:[0,0,0],maximizeBgColor:[255,255,255],maximizeColor:[0,0,0],closeBgColor:[255,255,255],closeColor:[0,0,0],resizableColor:[254,254,254],onBeforeBuild:$empty,onContentLoaded:$empty,onFocus:$empty,onBlur:$empty,onResize:$empty,onMinimize:$empty,onMaximize:$empty,onRestore:$empty,onClose:$empty,onCloseComplete:$empty};MochaUI.Window=new Class({options:MochaUI.Windows.windowOptions,initialize:function(A){this.setOptions(A);var A=this.options;$extend(this,{mochaControlsWidth:0,minimizebuttonX:0,maximizebuttonX:0,closebuttonX:0,headerFooterShadow:A.headerHeight+A.footerHeight+(A.shadowBlur*2),oldTop:0,oldLeft:0,isMaximized:false,isMinimized:false,isCollapsed:false,timestamp:$time()});if(A.type!="window"){A.container=document.body;A.minimizable=false}if(!A.container){A.container=MochaUI.Desktop.desktop?MochaUI.Desktop.desktop:document.body}if(A.resizable==null){if(A.type!="window"||A.shape=="gauge"){A.resizable=false}else{A.resizable=true}}if(A.draggable==null){if(A.type!="window"){A.draggable=false}else{A.draggable=true}}if(A.shape=="gauge"||A.type=="notification"){A.collapsible=false;A.maximizable=false;A.contentBgColor="transparent";A.scrollbars=false;A.footerHeight=0}if(A.type=="notification"){A.closable=false;A.headerHeight=0}if(MochaUI.Dock&&$(MochaUI.options.dock)){if(MochaUI.Dock.dock&&A.type!="modal"&&A.type!="modal2"){A.minimizable=A.minimizable}}else{A.minimizable=false}A.maximizable=MochaUI.Desktop.desktop&&A.maximizable&&A.type!="modal"&&A.type!="modal2";if(this.options.type=="modal2"){this.options.shadowBlur=0;this.options.shadowOffset={x:0,y:0};this.options.useSpinner=false;this.options.useCanvas=false;this.options.footerHeight=0;this.options.headerHeight=0}if(A.id==null){A.id="win"+(++MochaUI.Windows.windowIDCount)}this.windowEl=$(A.id);this.newWindow();return this},saveValues:function(){var A=this.windowEl.getCoordinates();this.options.x=A.left.toInt();this.options.y=A.top.toInt()},newWindow:function(E){var A=MochaUI.Windows.instances;var I=A.get(this.options.id);if(I){var D=I}if(this.windowEl&&!this.isClosing){if(D.isMinimized){MochaUI.Dock.restoreMinimized(this.windowEl)}if(D.isCollapsed){MochaUI.collapseToggle(this.windowEl);setTimeout(MochaUI.focusWindow.pass(this.windowEl,this),10)}else{var H=document.getCoordinates();if(this.windowEl.getStyle("left").toInt()>H.width||this.windowEl.getStyle("top").toInt()>H.height){MochaUI.centerWindow(this.windowEl)}setTimeout(MochaUI.focusWindow.pass(this.windowEl,this),10)}return }else{A.set(this.options.id,this)}this.isClosing=false;this.fireEvent("onBeforeBuild");MochaUI.Windows.indexLevel++;this.windowEl=new Element("div",{"class":"mocha",id:this.options.id,styles:{width:this.options.width,height:this.options.height,display:"block",opacity:0,zIndex:MochaUI.Windows.indexLevel+=2}});this.windowEl.addClass(this.options.addClass);if(this.options.type=="modal2"){this.windowEl.addClass("modal2")}if(Browser.Engine.trident&&this.options.shape=="gauge"){this.windowEl.setStyle("background","url(../images/spacer.gif)")}if((this.options.type=="modal"||this.options.type=="modal2")&&Browser.Platform.mac&&Browser.Engine.gecko){if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){var C=new Number(RegExp.$1);if(C<3){this.windowEl.setStyle("position","fixed")}}}if(this.options.loadMethod=="iframe"){this.options.padding={top:0,right:0,bottom:0,left:0}}this.insertWindowElements();this.titleEl.set("html",this.options.title);this.contentWrapperEl.setStyles({overflow:"hidden",background:this.options.contentBgColor});this.contentEl.setStyles({"padding-top":this.options.padding.top,"padding-bottom":this.options.padding.bottom,"padding-left":this.options.padding.left,"padding-right":this.options.padding.right});if(this.options.shape=="gauge"){if(this.options.useCanvasControls){this.canvasControlsEl.setStyle("display","none")}else{this.controlsEl.setStyle("display","none")}this.windowEl.addEvent("mouseover",function(){this.mouseover=true;var J=function(){if(this.mouseover!=false){if(this.options.useCanvasControls){this.canvasControlsEl.setStyle("display","block")}else{this.controlsEl.setStyle("display","block")}this.canvasHeaderEl.setStyle("display","block");this.titleEl.setStyle("display","block")}};J.delay(150,this)}.bind(this));this.windowEl.addEvent("mouseleave",function(){this.mouseover=false;if(this.options.useCanvasControls){this.canvasControlsEl.setStyle("display","none")}else{this.controlsEl.setStyle("display","none")}this.canvasHeaderEl.setStyle("display","none");this.titleEl.setStyle("display","none")}.bind(this))}this.windowEl.injectInside(this.options.container);if(this.options.type!="notification"){this.setMochaControlsWidth()}MochaUI.updateContent({element:this.windowEl,content:this.options.content,url:this.options.contentURL});if(this.options.toolbar==true){MochaUI.updateContent({element:this.windowEl,childElement:this.toolbarEl,content:this.options.toolbarContent,loadMethod:"xhr",url:this.options.toolbarURL})}if(this.options.toolbar2==true){MochaUI.updateContent({element:this.windowEl,childElement:this.toolbar2El,content:this.options.toolbar2Content,loadMethod:"xhr",url:this.options.toolbar2URL})}this.drawWindow(this.windowEl);this.attachDraggable(this.windowEl);this.attachResizable(this.windowEl);this.setupEvents(this.windowEl);if(this.options.resizable){this.adjustHandles()}if(this.options.container==document.body||this.options.container==MochaUI.Desktop.desktop){var B=window.getSize()}else{var B=$(this.options.container).getSize()}if(!this.options.y){if(MochaUI.Desktop.desktop){var F=(B.y*0.5)-(this.windowEl.offsetHeight*0.5)}else{var F=window.getScroll().y+(window.getSize().y*0.5)-(this.windowEl.offsetHeight*0.5)}}else{var F=this.options.y-this.options.shadowBlur}if(!this.options.x){var G=(B.x*0.5)-(this.windowEl.offsetWidth*0.5)}else{var G=this.options.x-this.options.shadowBlur}this.windowEl.setStyles({top:F,left:G});if(MochaUI.options.useEffects==true){if(Browser.Engine.trident){this.drawWindow(this.windowEl,false)}this.opacityMorph=new Fx.Morph(this.windowEl,{duration:350,transition:Fx.Transitions.Sine.easeInOut,onComplete:function(){if(Browser.Engine.trident){this.drawWindow(this.windowEl)}}.bind(this)})}if(this.options.type=="modal"||this.options.type=="modal2"){MochaUI.currentModal=this.windowEl;if(Browser.Engine.trident4){$("modalFix").setStyle("display","block")}$("modalOverlay").setStyle("display","block");if(MochaUI.options.useEffects==false){$("modalOverlay").setStyle("opacity",0.6);this.windowEl.setStyles({zIndex:11000,opacity:1})}else{MochaUI.Modal.modalOverlayCloseMorph.cancel();MochaUI.Modal.modalOverlayOpenMorph.start({opacity:0.6});this.windowEl.setStyles({zIndex:11000});this.opacityMorph.start({opacity:1})}$$(".dockTab").removeClass("activeDockTab");$$(".mocha").removeClass("isFocused");this.windowEl.addClass("isFocused")}else{if(MochaUI.options.useEffects==false){this.windowEl.setStyle("opacity",1);if(this.options.startMinimized){MochaUI.Dock.minimizeWindow(this.windowEl)}else{setTimeout(MochaUI.focusWindow.pass(this.windowEl,this),10)}}else{console.log("focus2");this.opacityMorph.start({opacity:1});setTimeout(MochaUI.focusWindow.pass(this.windowEl,this),10)}}this.morph=new Fx.Morph(this.windowEl,{duration:200});if($(this.windowEl.id+"LinkCheck")){this.check=new Element("div",{"class":"check",id:this.options.id+"_check"}).inject(this.windowEl.id+"LinkCheck")}if(this.options.closeAfter!=false){MochaUI.closeWindow.delay(this.options.closeAfter,this,this.windowEl)}if(MochaUI.Dock&&$(MochaUI.options.dock)&&this.options.type=="window"){MochaUI.Dock.createDockTab(this.windowEl)}},setupEvents:function(A){if(this.closeButtonEl){this.closeButtonEl.addEvent("click",function(B){new Event(B).stop();MochaUI.closeWindow(A)}.bind(this))}if(this.options.type=="window"){A.addEvent("mousedown",function(){MochaUI.focusWindow(A)}.bind(this))}if(this.minimizeButtonEl){this.minimizeButtonEl.addEvent("click",function(B){new Event(B).stop();MochaUI.Dock.minimizeWindow(A)}.bind(this))}if(this.maximizeButtonEl){this.maximizeButtonEl.addEvent("click",function(B){new Event(B).stop();if(this.isMaximized){MochaUI.Desktop.restoreWindow(A)}else{MochaUI.Desktop.maximizeWindow(A)}}.bind(this))}if(this.options.collapsible==true){this.titleEl.addEvent("selectstart",function(B){B=new Event(B).stop()}.bind(this));this.titleBarEl.addEvent("mousedown",function(B){if(Browser.Engine.trident){this.titleEl.setCapture()}}.bind(this));this.titleBarEl.addEvent("mouseup",function(B){if(Browser.Engine.trident){this.titleEl.releaseCapture()}}.bind(this));this.titleBarEl.addEvent("dblclick",function(B){B=new Event(B).stop();MochaUI.collapseToggle(this.windowEl)}.bind(this))}},attachDraggable:function(A){if(!this.options.draggable){return }this.windowDrag=new Drag.Move(A,{handle:this.titleBarEl,container:this.options.restrict==true?$(this.options.container):false,grid:this.options.draggableGrid,limit:this.options.draggableLimit,snap:this.options.draggableSnap,onStart:function(){if(this.options.type!="modal"&&this.options.type!="modal2"){MochaUI.focusWindow(A);$("windowUnderlay").setStyle("display","block")}if(this.iframeEl){this.iframeEl.setStyle("visibility","hidden")}}.bind(this),onComplete:function(){if(this.options.type!="modal"&&this.options.type!="modal2"){$("windowUnderlay").setStyle("display","none")}if(this.iframeEl){this.iframeEl.setStyle("visibility","visible")}this.saveValues()}.bind(this)})},attachResizable:function(A){if(!this.options.resizable){return }this.resizable1=this.windowEl.makeResizable({handle:[this.n,this.ne,this.nw],limit:{y:[function(){return this.windowEl.getStyle("top").toInt()+this.windowEl.getStyle("height").toInt()-this.options.resizeLimit.y[1]}.bind(this),function(){return this.windowEl.getStyle("top").toInt()+this.windowEl.getStyle("height").toInt()-this.options.resizeLimit.y[0]}.bind(this)]},modifiers:{x:false,y:"top"},onStart:function(){this.resizeOnStart();this.coords=this.contentWrapperEl.getCoordinates();this.y2=this.coords.top.toInt()+this.contentWrapperEl.offsetHeight}.bind(this),onDrag:function(){this.coords=this.contentWrapperEl.getCoordinates();this.contentWrapperEl.setStyle("height",this.y2-this.coords.top.toInt());this.drawWindow(A);this.adjustHandles()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable2=this.contentWrapperEl.makeResizable({handle:[this.e,this.ne],limit:{x:[this.options.resizeLimit.x[0]-(this.options.shadowBlur*2),this.options.resizeLimit.x[1]-(this.options.shadowBlur*2)]},modifiers:{x:"width",y:false},onStart:function(){this.resizeOnStart()}.bind(this),onDrag:function(){this.drawWindow(A);this.adjustHandles()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable3=this.contentWrapperEl.makeResizable({container:this.options.restrict==true?$(this.options.container):false,handle:this.se,limit:{x:[this.options.resizeLimit.x[0]-(this.options.shadowBlur*2),this.options.resizeLimit.x[1]-(this.options.shadowBlur*2)],y:[this.options.resizeLimit.y[0]-this.headerFooterShadow,this.options.resizeLimit.y[1]-this.headerFooterShadow]},modifiers:{x:"width",y:"height"},onStart:function(){this.resizeOnStart()}.bind(this),onDrag:function(){this.drawWindow(A);this.adjustHandles()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable4=this.contentWrapperEl.makeResizable({handle:[this.s,this.sw],limit:{y:[this.options.resizeLimit.y[0]-this.headerFooterShadow,this.options.resizeLimit.y[1]-this.headerFooterShadow]},modifiers:{x:false,y:"height"},onStart:function(){this.resizeOnStart()}.bind(this),onDrag:function(){this.drawWindow(A);this.adjustHandles()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)});this.resizable5=this.windowEl.makeResizable({handle:[this.w,this.sw,this.nw],limit:{x:[function(){return this.windowEl.getStyle("left").toInt()+this.windowEl.getStyle("width").toInt()-this.options.resizeLimit.x[1]}.bind(this),function(){return this.windowEl.getStyle("left").toInt()+this.windowEl.getStyle("width").toInt()-this.options.resizeLimit.x[0]}.bind(this)]},modifiers:{x:"left",y:false},onStart:function(){this.resizeOnStart();this.coords=this.contentWrapperEl.getCoordinates();this.x2=this.coords.left.toInt()+this.contentWrapperEl.offsetWidth}.bind(this),onDrag:function(){this.coords=this.contentWrapperEl.getCoordinates();this.contentWrapperEl.setStyle("width",this.x2-this.coords.left.toInt());this.drawWindow(A);this.adjustHandles()}.bind(this),onComplete:function(){this.resizeOnComplete()}.bind(this)})},resizeOnStart:function(){$("windowUnderlay").setStyle("display","block");if(this.iframeEl){this.iframeEl.setStyle("visibility","hidden")}},resizeOnComplete:function(){$("windowUnderlay").setStyle("display","none");if(this.iframeEl){this.iframeEl.setStyle("visibility","visible")}this.fireEvent("onResize",this.windowEl)},adjustHandles:function(){var D=this.options.shadowBlur;var I=D*2;var J=this.options.shadowOffset;var E=D-J.y-1;var G=D+J.x-1;var A=D+J.y-1;var C=D-J.x-1;var F=this.windowEl.getCoordinates();var B=F.width-I+2;var H=F.height-I+2;this.n.setStyles({top:E,left:C+10,width:B-20});this.e.setStyles({top:E+10,right:G,height:H-30});this.s.setStyles({bottom:A,left:C+10,width:B-30});this.w.setStyles({top:E+10,left:C,height:H-20});this.ne.setStyles({top:E,right:G});this.se.setStyles({bottom:A,right:G});this.sw.setStyles({bottom:A,left:C});this.nw.setStyles({top:E,left:C})},detachResizable:function(){this.resizable1.detach();this.resizable2.detach();this.resizable3.detach();this.resizable4.detach();this.resizable5.detach();this.windowEl.getElements(".handle").setStyle("display","none")},reattachResizable:function(){this.resizable1.attach();this.resizable2.attach();this.resizable3.attach();this.resizable4.attach();this.resizable5.attach();this.windowEl.getElements(".handle").setStyle("display","block")},insertWindowElements:function(){var D=this.options;var A=D.height;var E=D.width;var F=D.id;var B={};if(Browser.Engine.trident4){B.zIndexFixEl=new Element("iframe",{id:F+"_zIndexFix","class":"zIndexFix",scrolling:"no",marginWidth:0,marginHeight:0,src:""}).inject(this.windowEl)}B.overlayEl=new Element("div",{id:F+"_overlay","class":"mochaOverlay"}).inject(this.windowEl);B.titleBarEl=new Element("div",{id:F+"_titleBar","class":"mochaTitlebar",styles:{cursor:D.draggable?"move":"default"}}).inject(B.overlayEl,"top");B.titleEl=new Element("h3",{id:F+"_title","class":"mochaTitle"}).inject(B.titleBarEl);if(D.icon!=false){B.titleBarEl.setStyles({"padding-left":15,background:"url("+D.icon+") 5px 5px no-repeat"})}B.contentBorderEl=new Element("div",{id:F+"_contentBorder","class":"mochaContentBorder"}).inject(B.overlayEl);if(D.toolbar){B.toolbarWrapperEl=new Element("div",{id:F+"_toolbarWrapper","class":"mochaToolbarWrapper"}).inject(B.contentBorderEl,D.toolbarPosition=="bottom"?"after":"before");if(D.toolbarPosition=="bottom"){B.toolbarWrapperEl.addClass("bottom")}B.toolbarEl=new Element("div",{id:F+"_toolbar","class":"mochaToolbar"}).inject(B.toolbarWrapperEl)}if(D.toolbar2){B.toolbar2WrapperEl=new Element("div",{id:F+"_toolbar2Wrapper","class":"mochaToolbarWrapper"}).inject(B.contentBorderEl,D.toolbar2Position=="bottom"?"after":"before");if(D.toolbar2Position=="bottom"){B.toolbar2WrapperEl.addClass("bottom")}B.toolbar2El=new Element("div",{id:F+"_toolbar2","class":"mochaToolbar"}).inject(B.toolbar2WrapperEl)}B.contentWrapperEl=new Element("div",{id:F+"_contentWrapper","class":"mochaContentWrapper",styles:{width:E+"px",height:A+"px"}}).inject(B.contentBorderEl);if(this.options.shape=="gauge"){B.contentBorderEl.setStyle("borderWidth",0)}B.contentEl=new Element("div",{id:F+"_content","class":"mochaContent"}).inject(B.contentWrapperEl);if(this.options.useCanvas==true){B.canvasEl=new Element("canvas",{id:F+"_canvas","class":"mochaCanvas",width:1,height:1}).inject(this.windowEl);if(Browser.Engine.trident&&MochaUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(B.canvasEl);B.canvasEl=this.windowEl.getElement(".mochaCanvas")}}B.controlsEl=new Element("div",{id:F+"_controls","class":"mochaControls"}).inject(B.overlayEl,"after");if(D.useCanvasControls==true){B.canvasControlsEl=new Element("canvas",{id:F+"_canvasControls","class":"mochaCanvasControls",width:14,height:14}).inject(this.windowEl);if(Browser.Engine.trident&&MochaUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(B.canvasControlsEl);B.canvasControlsEl=this.windowEl.getElement(".mochaCanvasControls")}}if(D.closable){B.closeButtonEl=new Element("div",{id:F+"_closeButton","class":"mochaCloseButton",title:"Close"}).inject(B.controlsEl);if(D.useCanvasControls==true){B.closeButtonEl.setStyle("background","none")}}if(D.maximizable){B.maximizeButtonEl=new Element("div",{id:F+"_maximizeButton","class":"mochaMaximizeButton",title:"Maximize"}).inject(B.controlsEl);if(D.useCanvasControls==true){B.maximizeButtonEl.setStyle("background","none")}}if(D.minimizable){B.minimizeButtonEl=new Element("div",{id:F+"_minimizeButton","class":"mochaMinimizeButton",title:"Minimize"}).inject(B.controlsEl);if(D.useCanvasControls==true){B.minimizeButtonEl.setStyle("background","none")}}if(D.useSpinner==true&&D.shape!="gauge"&&D.type!="notification"){B.spinnerEl=new Element("div",{id:F+"_spinner","class":"mochaSpinner",width:16,height:16}).inject(this.windowEl,"bottom")}if(this.options.shape=="gauge"){B.canvasHeaderEl=new Element("canvas",{id:F+"_canvasHeader","class":"mochaCanvasHeader",width:this.options.width,height:26}).inject(this.windowEl,"bottom");if(Browser.Engine.trident&&MochaUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(B.canvasHeaderEl);B.canvasHeaderEl=this.windowEl.getElement(".mochaCanvasHeader")}}if(Browser.Engine.trident){B.overlayEl.setStyle("zIndex",2)}if(Browser.Platform.mac&&Browser.Engine.gecko){if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){var C=new Number(RegExp.$1);if(C<3){B.overlayEl.setStyle("overflow","auto")}}}if(D.resizable){B.n=new Element("div",{id:F+"_resizeHandle_n","class":"handle",styles:{top:0,left:10,cursor:"n-resize"}}).inject(B.overlayEl,"after");B.ne=new Element("div",{id:F+"_resizeHandle_ne","class":"handle corner",styles:{top:0,right:0,cursor:"ne-resize"}}).inject(B.overlayEl,"after");B.e=new Element("div",{id:F+"_resizeHandle_e","class":"handle",styles:{top:10,right:0,cursor:"e-resize"}}).inject(B.overlayEl,"after");B.se=new Element("div",{id:F+"_resizeHandle_se","class":"handle cornerSE",styles:{bottom:0,right:0,cursor:"se-resize"}}).inject(B.overlayEl,"after");B.s=new Element("div",{id:F+"_resizeHandle_s","class":"handle",styles:{bottom:0,left:10,cursor:"s-resize"}}).inject(B.overlayEl,"after");B.sw=new Element("div",{id:F+"_resizeHandle_sw","class":"handle corner",styles:{bottom:0,left:0,cursor:"sw-resize"}}).inject(B.overlayEl,"after");B.w=new Element("div",{id:F+"_resizeHandle_w","class":"handle",styles:{top:10,left:0,cursor:"w-resize"}}).inject(B.overlayEl,"after");B.nw=new Element("div",{id:F+"_resizeHandle_nw","class":"handle corner",styles:{top:0,left:0,cursor:"nw-resize"}}).inject(B.overlayEl,"after")}$extend(this,B)},drawWindow:function(G,B){if(this.isCollapsed){this.drawWindowCollapsed(G,B);return }var L=this.options;var C=L.shadowBlur;var I=C*2;var K=this.options.shadowOffset;this.overlayEl.setStyles({width:this.contentWrapperEl.offsetWidth});if(this.iframeEl){this.iframeEl.setStyles({height:this.contentWrapperEl.offsetHeight})}var D=this.contentBorderEl.getStyle("border-top").toInt()+this.contentBorderEl.getStyle("border-bottom").toInt();var F=this.toolbarWrapperEl?this.toolbarWrapperEl.getStyle("height").toInt()+this.toolbarWrapperEl.getStyle("border-top").toInt():0;var E=this.toolbar2WrapperEl?this.toolbar2WrapperEl.getStyle("height").toInt()+this.toolbar2WrapperEl.getStyle("border-top").toInt():0;this.headerFooterShadow=L.headerHeight+L.footerHeight+I;var H=this.contentWrapperEl.getStyle("height").toInt()+this.headerFooterShadow+F+E+D;var A=this.contentWrapperEl.getStyle("width").toInt()+I;this.windowEl.setStyles({height:H,width:A});this.overlayEl.setStyles({height:H,top:C-K.y,left:C-K.x});if(this.options.useCanvas==true){this.canvasEl.height=H;this.canvasEl.width=A}if(Browser.Engine.trident4){this.zIndexFixEl.setStyles({width:A,height:H})}this.titleBarEl.setStyles({width:A-I,height:L.headerHeight});if(L.useSpinner==true&&L.shape!="gauge"&&L.type!="notification"){this.spinnerEl.setStyles({left:C-K.x+3,bottom:C+K.y+4})}if(this.options.useCanvas!=false){var J=this.canvasEl.getContext("2d");J.clearRect(0,0,A,H);switch(L.shape){case"box":this.drawBox(J,A,H,C,K,B);break;case"gauge":this.drawGauge(J,A,H,C,K,B);break}if(L.resizable){MochaUI.triangle(J,A-(C+K.x+17),H-(C+K.y+18),11,11,L.resizableColor,1)}if(Browser.Engine.trident){MochaUI.triangle(J,0,0,10,10,L.resizableColor,0)}}if(L.type!="notification"&&L.useCanvasControls==true){this.drawControls(A,H,B)}},drawWindowCollapsed:function(E,B){var J=this.options;var C=J.shadowBlur;var F=C*2;var I=J.shadowOffset;var D=J.headerHeight+F+2;var G=D;var A=this.contentWrapperEl.getStyle("width").toInt()+F;this.windowEl.setStyle("height",G);this.overlayEl.setStyles({height:G,top:C-I.y,left:C-I.x});this.canvasEl.height=G;this.canvasEl.width=A;if(Browser.Engine.trident4){this.zIndexFixEl.setStyles({width:A,height:G})}this.windowEl.setStyle("width",A);this.overlayEl.setStyle("width",A);this.titleBarEl.setStyles({width:A-F,height:J.headerHeight});if(this.options.useCanvas!=false){var H=this.canvasEl.getContext("2d");H.clearRect(0,0,A,G);this.drawBoxCollapsed(H,A,G,C,I,B);if(J.useCanvasControls==true){this.drawControls(A,G,B)}if(Browser.Engine.trident){MochaUI.triangle(H,0,0,10,10,J.resizableColor,0)}}},drawControls:function(G,E,H){var F=this.options;var D=F.shadowBlur;var C=F.shadowOffset;var B=F.controlsOffset;this.controlsEl.setStyles({right:D+C.x+B.right,top:D-C.y+B.top});this.canvasControlsEl.setStyles({right:D+C.x+B.right,top:D-C.y+B.top});this.closebuttonX=F.closable?this.mochaControlsWidth-7:this.mochaControlsWidth+12;this.maximizebuttonX=this.closebuttonX-(F.maximizable?19:0);this.minimizebuttonX=this.maximizebuttonX-(F.minimizable?19:0);var A=this.canvasControlsEl.getContext("2d");A.clearRect(0,0,100,100);if(this.options.closable){this.closebutton(A,this.closebuttonX,7,F.closeBgColor,1,F.closeColor,1)}if(this.options.maximizable){this.maximizebutton(A,this.maximizebuttonX,7,F.maximizeBgColor,1,F.maximizeColor,1)}if(this.options.minimizable){this.minimizebutton(A,this.minimizebuttonX,7,F.minimizeBgColor,1,F.minimizeColor,1)}if(Browser.Engine.trident){MochaUI.circle(A,0,0,3,this.options.resizableColor,0)}},drawBox:function(H,A,G,C,I,B){var F=C*2;var D=this.options.cornerRadius;if(B!=false){for(var E=0;E<=C;E++){MochaUI.roundedRect(H,I.x+E,I.y+E,A-(E*2)-I.x,G-(E*2)-I.y,D+(C-E),[0,0,0],E==C?0.29:0.065+(E*0.01))}}this.bodyRoundedRect(H,C-I.x,C-I.y,A-F,G-F,D,this.options.bodyBgColor);if(this.options.type!="notification"){this.topRoundedRect(H,C-I.x,C-I.y,A-F,this.options.headerHeight,D,this.options.headerStartColor,this.options.headerStopColor)}},drawBoxCollapsed:function(H,A,G,C,I,B){var J=this.options;var F=C*2;var D=J.cornerRadius;if(B!=false){for(var E=0;E<=C;E++){MochaUI.roundedRect(H,I.x+E,I.y+E,A-(E*2)-I.x,G-(E*2)-I.y,D+(C-E),[0,0,0],E==C?0.3:0.06+(E*0.01))}}this.topRoundedRect2(H,C-I.x,C-I.y,A-F,J.headerHeight+2,D,J.headerStartColor,J.headerStopColor)},drawGauge:function(G,A,F,C,H,B){var I=this.options;var D=(A*0.5)-(C)+16;if(B!=false){for(var E=0;E<=C;E++){MochaUI.circle(G,A*0.5+H.x,(F+I.headerHeight)*0.5+H.x,(A*0.5)-(E*2)-H.x,[0,0,0],E==C?0.75:0.075+(E*0.04))}}MochaUI.circle(G,A*0.5-H.x,(F+I.headerHeight)*0.5-H.y,(A*0.5)-C,I.bodyBgColor,1);this.canvasHeaderEl.setStyles({top:C-H.y,left:C-H.x});var G=this.canvasHeaderEl.getContext("2d");G.clearRect(0,0,A,100);G.beginPath();G.lineWidth=24;G.lineCap="round";G.moveTo(13,13);G.lineTo(A-(C*2)-13,13);G.strokeStyle="rgba(0, 0, 0, .65)";G.stroke()},bodyRoundedRect:function(D,C,G,F,B,A,E){D.fillStyle="rgba("+E.join(",")+", 100)";D.beginPath();D.moveTo(C,G+A);D.lineTo(C,G+B-A);D.quadraticCurveTo(C,G+B,C+A,G+B);D.lineTo(C+F-A,G+B);D.quadraticCurveTo(C+F,G+B,C+F,G+B-A);D.lineTo(C+F,G+A);D.quadraticCurveTo(C+F,G,C+F-A,G);D.lineTo(C+A,G);D.quadraticCurveTo(C,G,C,G+A);D.fill()},topRoundedRect:function(I,G,F,A,H,E,C,D){var B=I.createLinearGradient(0,0,0,H);B.addColorStop(0,"rgba("+C.join(",")+", 1)");B.addColorStop(1,"rgba("+D.join(",")+", 1)");I.fillStyle=B;I.beginPath();I.moveTo(G,F);I.lineTo(G,F+H);I.lineTo(G+A,F+H);I.lineTo(G+A,F+E);I.quadraticCurveTo(G+A,F,G+A-E,F);I.lineTo(G+E,F);I.quadraticCurveTo(G,F,G,F+E);I.fill()},topRoundedRect2:function(I,G,F,A,H,E,C,D){var B=I.createLinearGradient(0,this.options.shadowBlur-1,0,H+this.options.shadowBlur+3);B.addColorStop(0,"rgba("+C.join(",")+", 1)");B.addColorStop(1,"rgba("+D.join(",")+", 1)");I.fillStyle=B;I.beginPath();I.moveTo(G,F+E);I.lineTo(G,F+H-E);I.quadraticCurveTo(G,F+H,G+E,F+H);I.lineTo(G+A-E,F+H);I.quadraticCurveTo(G+A,F+H,G+A,F+H-E);I.lineTo(G+A,F+E);I.quadraticCurveTo(G+A,F,G+A-E,F);I.lineTo(G+E,F);I.quadraticCurveTo(G,F,G,F+E);I.fill()},maximizebutton:function(D,B,G,A,F,E,C){D.beginPath();D.moveTo(B,G);D.arc(B,G,7,0,Math.PI*2,true);D.fillStyle="rgba("+A.join(",")+","+F+")";D.fill();D.strokeStyle="rgba("+E.join(",")+","+C+")";D.beginPath();D.moveTo(B,G-4);D.lineTo(B,G+4);D.stroke();D.beginPath();D.moveTo(B-4,G);D.lineTo(B+4,G);D.stroke()},closebutton:function(D,B,G,A,F,E,C){D.beginPath();D.moveTo(B,G);D.arc(B,G,7,0,Math.PI*2,true);D.fillStyle="rgba("+A.join(",")+","+F+")";D.fill();D.strokeStyle="rgba("+E.join(",")+","+C+")";D.beginPath();D.moveTo(B-3,G-3);D.lineTo(B+3,G+3);D.stroke();D.beginPath();D.moveTo(B+3,G-3);D.lineTo(B-3,G+3);D.stroke()},minimizebutton:function(D,B,G,A,F,E,C){D.beginPath();D.moveTo(B,G);D.arc(B,G,7,0,Math.PI*2,true);D.fillStyle="rgba("+A.join(",")+","+F+")";D.fill();D.strokeStyle="rgba("+E.join(",")+","+C+")";D.beginPath();D.moveTo(B-4,G);D.lineTo(B+4,G);D.stroke()},hideSpinner:function(A){if($(A)){$(A).setStyle("visibility","hidden")}},showSpinner:function(A){if(!this.options.useSpinner||this.options.shape=="gauge"||this.options.type=="notification"){return }$(A).setStyles({visibility:"visible"})},setMochaControlsWidth:function(){this.mochaControlsWidth=0;var A=this.options;if(A.minimizable){this.mochaControlsWidth+=(this.minimizeButtonEl.getStyle("margin-left").toInt()+this.minimizeButtonEl.getStyle("width").toInt())}if(A.maximizable){this.mochaControlsWidth+=(this.maximizeButtonEl.getStyle("margin-left").toInt()+this.maximizeButtonEl.getStyle("width").toInt())}if(A.closable){this.mochaControlsWidth+=(this.closeButtonEl.getStyle("margin-left").toInt()+this.closeButtonEl.getStyle("width").toInt())}this.controlsEl.setStyle("width",this.mochaControlsWidth);if(A.useCanvasControls==true){this.canvasControlsEl.setProperty("width",this.mochaControlsWidth)}}});MochaUI.Window.implement(new Options,new Events);MochaUI.Modal=new Class({Extends:MochaUI.Window,Implements:[Events,Options],initialize:function(A){this.modalInitialize();window.addEvent("resize",function(){this.setModalSize()}.bind(this))},modalInitialize:function(){var A=new Element("div",{id:"modalOverlay",styles:{height:document.getCoordinates().height,opacity:0.6}}).inject(document.body);A.addEvent("click",function(C){MochaUI.closeWindow(MochaUI.currentModal)});if(Browser.Engine.trident4){var B=new Element("iframe",{id:"modalFix",scrolling:"no",marginWidth:0,marginHeight:0,src:"",styles:{height:document.getCoordinates().height}}).inject(document.body)}this.modalOverlayOpenMorph=new Fx.Morph($("modalOverlay"),{duration:150});this.modalOverlayCloseMorph=new Fx.Morph($("modalOverlay"),{duration:150,onComplete:function(){$("modalOverlay").setStyle("display","none");if(Browser.Engine.trident4){$("modalFix").setStyle("display","none")}}.bind(this)})},setModalSize:function(){$("modalOverlay").setStyle("height",document.getCoordinates().height);if(Browser.Engine.trident4){$("modalFix").setStyle("height",document.getCoordinates().height)}}});MochaUI.Modal.implement(new Options,new Events);MochaUI.extend({NewWindowsFromHTML:function(){$$("div.mocha").each(function(B){if(Browser.Engine.presto||Browser.Engine.trident5){B.setStyle("display","block")}var D=B.getElement("h3.mochaTitle");var C=B.getStyles("height","width");var A={id:B.getProperty("id"),height:C.height.toInt(),width:C.width.toInt(),x:B.getStyle("left").toInt(),y:B.getStyle("top").toInt()};if(D){A.title=D.innerHTML;D.destroy()}A.content=B.innerHTML;B.destroy();new MochaUI.Window(A,true)}.bind(this))}});MochaUI.extend({newWindowsFromJSON:function(A){A.each(function(B){new MochaUI.Window(B)}.bind(this))}});MochaUI.options.extend({viewportTopOffset:30,viewportLeftOffset:20,windowTopOffset:50,windowLeftOffset:40});MochaUI.extend({arrangeCascade:function(){var E=document.getCoordinates();var B=0;MochaUI.Windows.instances.each(function(G){if(!G.isMinimized){B++}});if((this.options.windowTopOffset*(B+1))>=(E.height-this.options.viewportTopOffset)){var C=(E.height-this.options.viewportTopOffset)/(B+1)}else{var C=this.options.windowTopOffset}if((this.options.windowLeftOffset*(B+1))>=(E.width-this.options.viewportLeftOffset-20)){var D=(E.width-this.options.viewportLeftOffset-20)/(B+1)}else{var D=this.options.windowLeftOffset}var A=this.options.viewportLeftOffset;var F=this.options.viewportTopOffset;$$("div.mocha").each(function(H){var I=MochaUI.Windows.instances.get(H.id);if(!I.isMinimized&&!I.isMaximized){id=H.id;MochaUI.focusWindow(H);A+=D;F+=C;if(MochaUI.options.useEffects==false){H.setStyles({top:F,left:A})}else{var G=new Fx.Morph(H,{duration:550});G.start({top:F,left:A})}}}.bind(this))}});MochaUI.extend({arrangeTile:function(){var G=10;var E=10;var A=MochaUI.Windows.instances;var I=0;A.each(function(L){if(!L.isMinimized&&!L.isMaximized){I++}});var F=3;var K=Math.ceil(I/F);var H=document.getCoordinates();var D=((H.width-this.options.viewportLeftOffset)/F);var C=((H.height-this.options.viewportTopOffset)/K);var J=0;var B=0;A.each(function(T){if(!T.isMinimized&&!T.isMaximized){var P=T.contentWrapperEl;var L=P.getCoordinates();var S=T.windowEl.getCoordinates();var O=L.top-S.top;var R=S.height-L.height-O;var N=L.left-S.left;var U=S.width-L.width-N;var M=(G+(B*D));var Q=(E+(J*C));T.windowEl.setStyles({left:M,top:Q});T.drawWindow(T.windowEl);MochaUI.focusWindow(T.windowEl);if(++B===F){J++;B=0}}}.bind(this))}});MochaUI.extend({initializeTabs:function(A){$(A).getElements("li").each(function(B){B.addEvent("click",function(C){MochaUI.selected(this,A)})})},selected:function(B,A){$(A).getChildren().each(function(C){C.removeClass("selected")});B.addClass("selected")}});MochaUI.Desktop=new Class({Extends:MochaUI.Window,Implements:[Events,Options],options:{desktop:"desktop",desktopHeader:"desktopHeader",desktopFooter:"desktopFooter",desktopNavBar:"desktopNavbar",pageWrapper:"pageWrapper",page:"page",desktopFooter:"desktopFooterWrapper"},initialize:function(A){this.setOptions(A);this.desktop=$(this.options.desktop);this.desktopHeader=$(this.options.desktopHeader);this.desktopNavBar=$(this.options.desktopNavBar);this.pageWrapper=$(this.options.pageWrapper);this.page=$(this.options.page);this.desktopFooter=$(this.options.desktopFooter);if(!MochaUI.Dock.dockWrapper){this.setDesktopSize()}window.addEvent("resize",function(B){this.onBrowserResize()}.bind(this))},menuInitialize:function(){if(Browser.Engine.trident4&&this.desktopNavBar){this.desktopNavBar.getElements("li").each(function(A){A.addEvent("mouseenter",function(){this.addClass("ieHover")});A.addEvent("mouseleave",function(){this.removeClass("ieHover")})})}},onBrowserResize:function(){this.setDesktopSize();setTimeout(function(){MochaUI.Windows.instances.each(function(A){if(A.isMaximized){if(A.iframeEl){A.iframeEl.setStyle("visibility","hidden")}var D=document.getCoordinates();var B=A.contentBorderEl.getStyle("border-top").toInt()+A.contentBorderEl.getStyle("border-bottom").toInt();var C=A.toolbarWrapperEl?A.toolbarWrapperEl.getStyle("height").toInt()+A.toolbarWrapperEl.getStyle("border-top").toInt():0;A.contentWrapperEl.setStyles({height:D.height-A.options.headerHeight-A.options.footerHeight-B-C,width:D.width});A.drawWindow($(A.options.id));if(A.iframeEl){A.iframeEl.setStyles({height:A.contentWrapperEl.getStyle("height")});A.iframeEl.setStyle("visibility","visible")}}}.bind(this))}.bind(this),100)},setDesktopSize:function(){var D=window.getCoordinates();var B=$(MochaUI.options.dockWrapper);if(this.desktop){this.desktop.setStyle("height",D.height)}if(this.pageWrapper){var A=MochaUI.dockVisible?B.offsetHeight:0;var C=D.height;C-=this.pageWrapper.getStyle("border-top").toInt();C-=this.pageWrapper.getStyle("border-bottom").toInt();if(this.desktopHeader){C-=this.desktopHeader.offsetHeight}if(this.desktopFooter){C-=this.desktopFooter.offsetHeight}C-=A;if(C<0){C=0}this.pageWrapper.setStyle("height",C)}if(MochaUI.Columns.instances.getKeys().length>0){MochaUI.Desktop.resizePanels()}},resizePanels:function(){if(Browser.Engine.trident4){$$(".pad").setStyle("display","none");$$(".rHeight").setStyle("height",1)}MochaUI.panelHeight();MochaUI.rWidth();if(Browser.Engine.trident4){$$(".pad").setStyle("display","block")}},maximizeWindow:function(H){var G=MochaUI.Windows.instances.get(H.id);var J=G.options;var D=G.windowDrag;if(H!=$(H)||G.isMaximized){return }if(G.isCollapsed){MochaUI.collapseToggle(H)}G.isMaximized=true;if(G.options.restrict){D.detach();if(J.resizable){G.detachResizable()}G.titleBarEl.setStyle("cursor","default")}if(J.container!=this.desktop){this.desktop.grab(H);if(this.options.restrict){D.container=this.desktop}}G.oldTop=H.getStyle("top");G.oldLeft=H.getStyle("left");var E=G.contentWrapperEl;E.oldWidth=E.getStyle("width");E.oldHeight=E.getStyle("height");if(G.iframeEl){G.iframeEl.setStyle("visibility","hidden")}var C=document.getCoordinates();var J=G.options;var F=J.shadowBlur;var I=J.shadowOffset;var B=C.height-J.headerHeight-J.footerHeight;B-=G.contentBorderEl.getStyle("border-top").toInt();B-=G.contentBorderEl.getStyle("border-bottom").toInt();B-=(G.toolbarWrapperEl?G.toolbarWrapperEl.getStyle("height").toInt()+G.toolbarWrapperEl.getStyle("border-top").toInt():0);if(MochaUI.options.useEffects==false){H.setStyles({top:I.y-F,left:I.x-F});G.contentWrapperEl.setStyles({height:B,width:C.width});G.drawWindow(H);if(G.iframeEl){G.iframeEl.setStyle("visibility","visible")}G.fireEvent("onMaximize",H)}else{var A=new Fx.Elements([E,H],{duration:100,transition:Fx.Transitions.Sine.easeInOut,onStart:function(K){G.maximizeAnimation=G.drawWindow.periodical(20,G,K)}.bind(this),onComplete:function(K){$clear(G.maximizeAnimation);G.drawWindow(K);if(G.iframeEl){G.iframeEl.setStyle("visibility","visible")}G.fireEvent("onMaximize",K)}.bind(this)});A.start({"0":{height:B,width:C.width},"1":{top:I.y-F,left:I.x-F}})}G.maximizeButtonEl.setProperty("title","Restore");MochaUI.focusWindow(H)},restoreWindow:function(E){var D=MochaUI.Windows.instances.get(E.id);if(E!=$(E)||!D.isMaximized){return }var B=D.options;D.isMaximized=false;if(B.restrict){D.windowDrag.attach();if(B.resizable){D.reattachResizable()}D.titleBarEl.setStyle("cursor","move")}if(D.iframeEl){D.iframeEl.setStyle("visibility","hidden")}var C=D.contentWrapperEl;if(MochaUI.options.useEffects==false){C.setStyles({width:C.oldWidth,height:C.oldHeight});D.drawWindow(E);E.setStyles({top:D.oldTop,left:D.oldLeft});if(D.iframeEl){D.iframeEl.setStyle("visibility","visible")}if(B.container!=this.desktop){$(B.container).grab(E);if(B.restrict){D.windowDrag.container=$(B.container)}}D.fireEvent("onRestore",E)}else{var A=new Fx.Elements([C,E],{duration:200,transition:Fx.Transitions.Sine.easeInOut,onStart:function(F){D.maximizeAnimation=D.drawWindow.periodical(20,D,F)}.bind(this),onComplete:function(F){$clear(D.maximizeAnimation);D.drawWindow(E);if(D.iframeEl){D.iframeEl.setStyle("visibility","visible")}if(B.container!=this.desktop){$(B.container).grab(E);if(B.restrict){D.windowDrag.container=$(B.container)}}D.fireEvent("onRestore",E)}.bind(this)});A.start({"0":{height:C.oldHeight,width:C.oldWidth},"1":{top:D.oldTop,left:D.oldLeft}})}D.maximizeButtonEl.setProperty("title","Maximize")}});MochaUI.Desktop.implement(new Options,new Events);MochaUI.Column=new Class({Extends:MochaUI.Desktop,Implements:[Events,Options],options:{id:null,placement:null,width:null,resizeLimit:[],onResize:$empty,onCollapse:$empty,onExpand:$empty},initialize:function(A){this.setOptions(A);$extend(this,{timestamp:$time(),isCollapsed:false,oldWidth:0});var A=this.options;var F=MochaUI.Columns.instances;var C=F.get(A.id);if(C){var D=C}if(this.columnEl){return }else{F.set(A.id,this)}this.columnEl=new Element("div",{id:this.options.id,"class":"column expanded",styles:{width:A.placement=="main"?null:A.width}}).inject($(MochaUI.Desktop.pageWrapper));var B=this.columnEl.getParent();var E=B.getStyle("height").toInt();this.columnEl.setStyle("height",E);if(A.placement=="main"){this.columnEl.addClass("rWidth")}this.spacerEl=new Element("div",{id:this.options.id+"_spacer","class":"horizontalHandle"}).inject(this.columnEl);switch(this.options.placement){case"left":this.handleEl=new Element("div",{id:this.options.id+"_handle","class":"columnHandle"}).inject(this.columnEl,"after");this.handleIconEl=new Element("div",{id:A.id+"_handle_icon","class":"handleIcon"}).inject(this.handleEl);addResizeRight(this.columnEl,A.resizeLimit[0],A.resizeLimit[1]);break;case"right":this.handleEl=new Element("div",{id:this.options.id+"_handle","class":"columnHandle"}).inject(this.columnEl,"before");this.handleIconEl=new Element("div",{id:A.id+"_handle_icon","class":"handleIcon"}).inject(this.handleEl);addResizeLeft(this.columnEl,A.resizeLimit[0],A.resizeLimit[1]);break}if(this.handleEl!=null){this.handleEl.addEvent("dblclick",function(){this.columnToggle()}.bind(this))}MochaUI.rWidth()},columnToggle:function(){var A=this.columnEl;if(this.isCollapsed==false){this.oldWidth=A.getStyle("width").toInt();this.resize.detach();this.handleEl.removeEvents("dblclick");this.handleEl.addEvent("click",function(){this.columnToggle()}.bind(this));this.handleEl.setStyle("cursor","pointer").addClass("detached");A.setStyle("width",0);this.isCollapsed=true;A.addClass("collapsed");A.removeClass("expanded");MochaUI.rWidth();this.fireEvent("onCollapse")}else{A.setStyle("width",this.oldWidth);this.isCollapsed=false;A.addClass("expanded");A.removeClass("collapsed");this.handleEl.removeEvents("click");this.handleEl.addEvent("dblclick",function(){this.columnToggle()}.bind(this));this.resize.attach();this.handleEl.setStyle("cursor","e-resize").addClass("attached");MochaUI.rWidth();this.fireEvent("onExpand")}}});MochaUI.Column.implement(new Options,new Events);MochaUI.Panel=new Class({Extends:MochaUI.Desktop,Implements:[Events,Options],options:{id:null,title:"New Panel",column:null,loadMethod:"html",contentURL:"pages/lipsum.html",evalScripts:true,evalResponse:false,content:"Panel content",tabsURL:null,footer:false,footerURL:"pages/lipsum.html",height:125,addClass:"",scrollbars:true,padding:{top:8,right:8,bottom:8,left:8},panelBackground:"#f8f8f8",onBeforeBuild:$empty,onContentLoaded:$empty,onResize:$empty,onCollapse:$empty,onExpand:$empty},initialize:function(A){this.setOptions(A);$extend(this,{timestamp:$time(),isCollapsed:false,oldHeight:0,partner:null});var D=MochaUI.Panels.instances;var B=D.get(this.options.id);if(B){var C=B}if(this.panelEl){return }else{D.set(this.options.id,this)}this.fireEvent("onBeforeBuild");if(this.options.loadMethod=="iframe"){this.options.scrollbars=false;this.options.padding={top:0,right:0,bottom:0,left:0}}this.showHandle=true;if($(this.options.column).getChildren().length==0){this.showHandle=false}this.panelEl=new Element("div",{id:this.options.id,"class":"panel expanded",styles:{height:this.options.height,background:this.options.panelBackground}}).inject($(this.options.column));this.panelEl.addClass(this.options.addClass);this.contentEl=new Element("div",{id:this.options.id+"_pad","class":"pad"}).inject(this.panelEl);if(this.options.footer){this.footerWrapperEl=new Element("div",{id:this.options.id+"_panelFooterWrapper","class":"panel-footerWrapper"}).inject(this.panelEl);this.footerEl=new Element("div",{id:this.options.id+"_panelFooter","class":"panel-footer"}).inject(this.footerWrapperEl);MochaUI.updateContent({element:this.panelEl,childElement:this.footerEl,loadMethod:"xhr",url:this.options.footerURL})}this.contentWrapperEl=this.panelEl;this.contentWrapperEl.setStyles({overflow:this.options.scrollbars&&!this.iframeEl?"auto":"hidden"});this.contentEl.setStyles({"padding-top":this.options.padding.top,"padding-bottom":this.options.padding.bottom,"padding-left":this.options.padding.left,"padding-right":this.options.padding.right});this.panelHeaderEl=new Element("div",{id:this.options.id+"_header","class":"panel-header"}).inject(this.panelEl,"before");this.panelHeaderToolboxEl=new Element("div",{id:this.options.id+"_headerToolbox","class":"panel-header-toolbox"}).inject(this.panelHeaderEl);this.collapseToggleEl=new Element("div",{id:this.options.id+"_minmize","class":"panel-collapse icon16",styles:{width:16,height:16},title:"Collapse Panel"}).inject(this.panelHeaderToolboxEl);this.collapseToggleEl.addEvent("click",function(H){var E=this.panelEl;var I=MochaUI.Panels.instances;var G=[];E.getAllPrevious(".panel").each(function(J){var K=I.get(J.id);if(K.isCollapsed==false){G.push(J)}});E.getAllNext(".panel").each(function(J){var K=I.get(J.id);if(K.isCollapsed==false){G.push(J)}});if(this.isCollapsed==false){var F=MochaUI.Columns.instances.get($(this.options.column).id);if(G.length==0&&F.options.placement!="main"){var F=MochaUI.Columns.instances.get($(this.options.column).id);F.columnToggle();return }else{if(G.length==0&&F.options.placement=="main"){return }}this.oldHeight=E.getStyle("height").toInt();if(this.oldHeight<10){this.oldHeight=20}E.setStyle("height",0);this.isCollapsed=true;E.addClass("collapsed");E.removeClass("expanded");MochaUI.panelHeight(this.options.column,E,"collapsing");this.collapseToggleEl.removeClass("panel-collapsed");this.collapseToggleEl.addClass("panel-expand");this.collapseToggleEl.setProperty("title","Expand Panel");this.fireEvent("onCollapse")}else{E.setStyle("height",this.oldHeight);this.isCollapsed=false;E.addClass("expanded");E.removeClass("collapsed");MochaUI.panelHeight(this.options.column,E,"expanding");this.collapseToggleEl.removeClass("panel-expand");this.collapseToggleEl.addClass("panel-collapsed");this.collapseToggleEl.setProperty("title","Collapse Panel");this.fireEvent("onExpand")}}.bind(this));this.panelHeaderContentEl=new Element("div",{id:this.options.id+"_headerContent","class":"panel-headerContent"}).inject(this.panelHeaderEl);this.titleEl=new Element("h2",{id:this.options.id+"_title"}).inject(this.panelHeaderContentEl);if(this.options.tabsURL==null){this.titleEl.set("html",this.options.title)}else{this.panelHeaderContentEl.addClass("tabs");MochaUI.updateContent({element:this.panelEl,childElement:this.panelHeaderContentEl,loadMethod:"xhr",url:this.options.tabsURL})}this.handleEl=new Element("div",{id:this.options.id+"_handle","class":"horizontalHandle",styles:{display:this.showHandle==true?"block":"none"}}).inject(this.panelEl,"after");this.handleIconEl=new Element("div",{id:this.options.id+"_handle_icon","class":"handleIcon"}).inject(this.handleEl);addResizeBottom(this.options.id);MochaUI.updateContent({element:this.panelEl,content:this.options.content,url:this.options.contentURL});MochaUI.panelHeight(this.options.column,this.panelEl,"new")}});MochaUI.Panel.implement(new Options,new Events);MochaUI.extend({panelHeight:function(A,C,B){if(A!=null){MochaUI.panelHeight2($(A),C,B)}else{$$(".column").each(function(D){MochaUI.panelHeight2(D)}.bind(this))}},panelHeight2:function(E,L,F){var B=MochaUI.Panels.instances;var I=E.getParent();var H=I.getStyle("height").toInt();if(Browser.Engine.trident4){H-=1}E.setStyle("height",H);var G=E.getChildren(".panel");var J=E.getChildren(".expanded");var C=[];var D;var A=0;this.panelsHeight=0;this.height=0;G.each(function(M){currentInstance=B.get(M.id);if(M.hasClass("expanded")&&M.getNext(".expanded")){currentInstance.partner=M.getNext(".expanded");currentInstance.resize.attach();currentInstance.handleEl.setStyles({display:"block",cursor:"n-resize"}).removeClass("detached")}else{currentInstance.resize.detach();currentInstance.handleEl.setStyle("cursor",null).addClass("detached")}if(M.getNext(".panel")==null){currentInstance.handleEl.setStyle("display","none")}}.bind(this));E.getChildren().each(function(M){if(M.hasClass("panel")){var N=B.get(M.id);areAnyNextSiblingsExpanded=function(O){var P;O.getAllNext(".panel").each(function(Q){var R=B.get(Q.id);if(R.isCollapsed==false){P=true}}.bind(this));return P}.bind(this);areAnyExpandingNextSiblingsExpanded=function(){var O;L.getAllNext(".panel").each(function(P){var Q=B.get(P.id);if(Q.isCollapsed==false){O=true}}.bind(this));return O}.bind(this);if(F=="new"){if(N.isCollapsed!=true&&M!=L){C.push(M)}if(N.isCollapsed!=true&&M!=L){this.panelsHeight+=M.offsetHeight.toInt()}}else{if(F==null||F=="collapsing"){if(N.isCollapsed!=true&&(M.getAllNext(".panel").contains(L)!=true||areAnyNextSiblingsExpanded(M)!=true)){C.push(M)}if(N.isCollapsed!=true&&(M.getAllNext(".panel").contains(L)!=true||areAnyNextSiblingsExpanded(M)!=true)){this.panelsHeight+=M.offsetHeight.toInt()}}else{if(F=="expanding"){if(N.isCollapsed!=true&&(M.getAllNext(".panel").contains(L)!=true||(areAnyExpandingNextSiblingsExpanded()!=true&&M.getNext(".expanded")==L))&&M!=L){C.push(M)}if(N.isCollapsed!=true&&(M.getAllNext(".panel").contains(L)!=true||(areAnyExpandingNextSiblingsExpanded()!=true&&M.getNext(".expanded")==L))&&M!=L){this.panelsHeight+=M.offsetHeight.toInt()}}}}if(M.style.height){this.height+=M.getStyle("height").toInt()}}else{this.height+=M.offsetHeight.toInt()}}.bind(this));var K=E.offsetHeight.toInt()-this.height;this.height=0;E.getChildren().each(function(M){this.height+=M.offsetHeight.toInt()}.bind(this));var K=E.offsetHeight.toInt()-this.height;C.each(function(M){var O=this.panelsHeight/M.offsetHeight.toInt();var N=M.getStyle("height").toInt()+(K/O);if(N<1){N=0}M.setStyle("height",N)}.bind(this));this.height=0;E.getChildren().each(function(M){this.height+=M.offsetHeight.toInt();if(M.hasClass("panel")&&M.getStyle("height").toInt()>A){D=M;A=M.getStyle("height").toInt()}}.bind(this));var K=E.offsetHeight.toInt()-this.height;if((K>0||K<0)&&A>0){D.setStyle("height",D.getStyle("height").toInt()+K);if(D.getStyle("height")<1){D.setStyle("height",0)}}$$(".columnHandle").each(function(N){var M=I.getStyle("height").toInt()-N.getStyle("border-top").toInt()-N.getStyle("border-bottom").toInt();if(Browser.Engine.trident4){M-=1}N.setStyle("height",M)});J.each(function(M){MochaUI.resizeChildren(M)}.bind(this))},resizeChildren:function(A){var D=MochaUI.Panels.instances;var C=D.get(A.id);var B=C.contentWrapperEl;if(C.iframeEl){C.iframeEl.setStyles({height:B.getStyle("height"),width:B.offsetWidth-B.getStyle("border-left").toInt()-B.getStyle("border-right").toInt()})}},rWidth:function(){$$(".rWidth").each(function(D){var A=D.offsetWidth.toInt();A-=D.getStyle("border-left").toInt();A-=D.getStyle("border-right").toInt();var C=D.getParent();this.width=0;C.getChildren().each(function(F){if(F.hasClass("mocha")!=true){this.width+=F.offsetWidth.toInt()}}.bind(this));var B=C.offsetWidth.toInt()-this.width;var E=A+B;if(E<1){E=0}D.setStyle("width",E);D.getChildren(".panel").each(function(F){F.setStyle("width",E-F.getStyle("border-left").toInt()-F.getStyle("border-right").toInt());MochaUI.resizeChildren(F)}.bind(this))})}});function addResizeRight(C,B,A){if(!$(C)){return }C=$(C);var F=MochaUI.Columns.instances;var E=F.get(C.id);var D=C.getNext(".columnHandle");D.setStyle("cursor","e-resize");if(!B){B=50}if(!A){A=250}if(Browser.Engine.trident){D.addEvents({mousedown:function(){D.setCapture()},mouseup:function(){D.releaseCapture()}})}E.resize=C.makeResizable({handle:D,modifiers:{x:"width",y:false},limit:{x:[B,A]},onStart:function(){C.getElements("iframe").setStyle("visibility","hidden");C.getNext(".column").getElements("iframe").setStyle("visibility","hidden")}.bind(this),onDrag:function(){MochaUI.rWidth();if(Browser.Engine.trident4){C.getChildren().each(function(H){var G=$(C).getStyle("width").toInt();G-=H.getStyle("border-right").toInt();G-=H.getStyle("border-left").toInt();G-=H.getStyle("padding-right").toInt();G-=H.getStyle("padding-left").toInt();H.setStyle("width",G)}.bind(this))}}.bind(this),onComplete:function(){MochaUI.rWidth();C.getElements("iframe").setStyle("visibility","visible");C.getNext(".column").getElements("iframe").setStyle("visibility","visible");E.fireEvent("onResize")}.bind(this)})}function addResizeLeft(C,B,A){if(!$(C)){return }C=$(C);var G=MochaUI.Columns.instances;var F=G.get(C.id);var E=C.getPrevious(".columnHandle");E.setStyle("cursor","e-resize");var D=C.getPrevious(".column");if(!B){B=50}if(!A){A=250}if(Browser.Engine.trident){E.addEvents({mousedown:function(){E.setCapture()},mouseup:function(){E.releaseCapture()}})}F.resize=C.makeResizable({handle:E,modifiers:{x:"width",y:false},invert:true,limit:{x:[B,A]},onStart:function(){$(C).getElements("iframe").setStyle("visibility","hidden");D.getElements("iframe").setStyle("visibility","hidden")}.bind(this),onDrag:function(){MochaUI.rWidth()}.bind(this),onComplete:function(){MochaUI.rWidth();$(C).getElements("iframe").setStyle("visibility","visible");D.getElements("iframe").setStyle("visibility","visible");F.fireEvent("onResize")}.bind(this)})}function addResizeBottom(A){if(!$(A)){return }var A=$(A);var D=MochaUI.Panels.instances;var C=D.get(A.id);var B=C.handleEl;B.setStyle("cursor","n-resize");partner=C.partner;min=0;max=function(){return A.getStyle("height").toInt()+partner.getStyle("height").toInt()}.bind(this);if(Browser.Engine.trident){B.addEvents({mousedown:function(){B.setCapture()},mouseup:function(){B.releaseCapture()}})}C.resize=A.makeResizable({handle:B,modifiers:{x:false,y:"height"},limit:{y:[min,max]},invert:false,onBeforeStart:function(){partner=C.partner;this.originalHeight=A.getStyle("height").toInt();this.partnerOriginalHeight=partner.getStyle("height").toInt()}.bind(this),onStart:function(){if(C.iframeEl){C.iframeEl.setStyle("visibility","hidden")}partner.getElements("iframe").setStyle("visibility","hidden")}.bind(this),onDrag:function(){partnerHeight=partnerOriginalHeight+(this.originalHeight-A.getStyle("height").toInt());partner.setStyle("height",partnerHeight);MochaUI.resizeChildren(A,A.getStyle("height").toInt());MochaUI.resizeChildren(partner,partnerHeight)}.bind(this),onComplete:function(){partnerHeight=partnerOriginalHeight+(this.originalHeight-A.getStyle("height").toInt());partner.setStyle("height",partnerHeight);MochaUI.resizeChildren(A,A.getStyle("height").toInt());MochaUI.resizeChildren(partner,partnerHeight);if(C.iframeEl){C.iframeEl.setStyle("visibility","visible")}partner.getElements("iframe").setStyle("visibility","visible");C.fireEvent("onResize")}.bind(this)})}MochaUI.options.extend({dockWrapper:"dockWrapper",dock:"dock"});window.addEvent("domready",function(){if($("dockWrapper")){MochaUI.dockVisible=true}});MochaUI.extend({minimizeAll:function(){$$("div.mocha").each(function(B){var A=MochaUI.Windows.instances.get(B.id);if(!A.isMinimized&&A.options.minimizable==true){MochaUI.Dock.minimizeWindow(B)}}.bind(this))}});MochaUI.Dock=new Class({Extends:MochaUI.Window,Implements:[Events,Options],options:{useControls:true,dockPosition:"top",dockTabColor:[255,255,255],trueButtonColor:[70,245,70],enabledButtonColor:[125,208,250],disabledButtonColor:[170,170,170]},initialize:function(A){if(!MochaUI.Desktop){return }this.setOptions(A);this.dockWrapper=$(MochaUI.options.dockWrapper);this.dock=$(MochaUI.options.dock);this.autoHideEvent=null;this.dockAutoHide=false;if(!this.dockWrapper){return }if(!this.options.useControls){if($("dockPlacement")){$("dockPlacement").setStyle("cursor","default")}if($("dockAutoHide")){$("dockAutoHide").setStyle("cursor","default")}}this.dockWrapper.setStyles({display:"block",position:"absolute",top:null,bottom:MochaUI.Desktop.desktopFooter?MochaUI.Desktop.desktopFooter.offsetHeight:0,left:0});if(this.options.useControls){this.initializeDockControls()}if($("dockLinkCheck")){this.sidebarCheck=new Element("div",{"class":"check",id:"dock_check"}).inject($("dockLinkCheck"))}this.dockSortables=new Sortables("#dockSort",{opacity:Browser.Engine.trident?1:0.5,constrain:true,clone:false,revert:false});this.dockSortables.removeItems($("dockApps"));MochaUI.Desktop.setDesktopSize()},initializeDockControls:function(){if(this.options.useControls){var C=new Element("canvas",{id:"dockCanvas",width:"15",height:"18"}).inject(this.dock);if(Browser.Engine.trident&&MochaUI.ieSupport=="excanvas"){G_vmlCanvasManager.initElement(C)}}var B=$("dockPlacement");var D=$("dockAutoHide");B.setProperty("title","Position Dock Top");B.addEvent("click",function(){this.moveDock()}.bind(this));D.setProperty("title","Turn Auto Hide On");D.addEvent("click",function(F){if(this.dockWrapper.getProperty("dockPosition")=="top"){return false}var E=$("dockCanvas").getContext("2d");this.dockAutoHide=!this.dockAutoHide;if(this.dockAutoHide){$("dockAutoHide").setProperty("title","Turn Auto Hide Off");MochaUI.circle(E,5,14,3,this.options.trueButtonColor,1);this.autoHideEvent=function(H){if(!this.dockAutoHide){return }if(!MochaUI.Desktop.desktopFooter){var G=this.dockWrapper.offsetHeight;if(G<25){G=25}}else{if(MochaUI.Desktop.desktopFooter){var G=this.dockWrapper.offsetHeight+MochaUI.Desktop.desktopFooter.offsetHeight;if(G<25){G=25}}}if(!MochaUI.Desktop.desktopFooter&&H.client.y>(document.getCoordinates().height-G)){if(!MochaUI.dockVisible){this.dockWrapper.setStyle("display","block");MochaUI.dockVisible=true;MochaUI.Desktop.setDesktopSize()}}else{if(MochaUI.Desktop.desktopFooter&&H.client.y>(document.getCoordinates().height-G)){if(!MochaUI.dockVisible){this.dockWrapper.setStyle("display","block");MochaUI.dockVisible=true;MochaUI.Desktop.setDesktopSize()}}else{if(MochaUI.dockVisible){this.dockWrapper.setStyle("display","none");MochaUI.dockVisible=false;MochaUI.Desktop.setDesktopSize()}}}}.bind(this);document.addEvent("mousemove",this.autoHideEvent)}else{$("dockAutoHide").setProperty("title","Turn Auto Hide On");MochaUI.circle(E,5,14,3,this.options.enabledButtonColor,1);document.removeEvent("mousemove",this.autoHideEvent)}}.bind(this));var A=$("dockCanvas").getContext("2d");A.clearRect(0,0,100,100);MochaUI.circle(A,5,4,3,this.options.enabledButtonColor,1);MochaUI.circle(A,5,14,3,this.options.enabledButtonColor,1);if(this.options.dockPosition=="top"){this.moveDock()}},moveDock:function(){var A=$("dockCanvas").getContext("2d");if(this.dockWrapper.getStyle("position")!="relative"){this.dockWrapper.setStyles({position:"relative",bottom:null});this.dockWrapper.addClass("top");MochaUI.Desktop.setDesktopSize();this.dockWrapper.setProperty("dockPosition","top");A.clearRect(0,0,100,100);MochaUI.circle(A,5,4,3,this.options.enabledButtonColor,1);MochaUI.circle(A,5,14,3,this.options.disabledButtonColor,1);$("dockPlacement").setProperty("title","Position Dock Bottom");$("dockAutoHide").setProperty("title","Auto Hide Disabled in Top Dock Position");this.dockAutoHide=false}else{this.dockWrapper.setStyles({position:"absolute",bottom:MochaUI.Desktop.desktopFooter?MochaUI.Desktop.desktopFooter.offsetHeight:0});this.dockWrapper.removeClass("top");MochaUI.Desktop.setDesktopSize();this.dockWrapper.setProperty("dockPosition","bottom");A.clearRect(0,0,100,100);MochaUI.circle(A,5,4,3,this.options.enabledButtonColor,1);MochaUI.circle(A,5,14,3,this.options.enabledButtonColor,1);$("dockPlacement").setProperty("title","Position Dock Top");$("dockAutoHide").setProperty("title","Turn Auto Hide On")}},createDockTab:function(E){var D=MochaUI.Windows.instances.get(E.id);var C=new Element("div",{id:D.options.id+"_dockTab","class":"dockTab",title:A}).inject($("dockClear"),"before");C.addEvent("mousedown",function(F){new Event(F).stop();this.timeDown=$time()});C.addEvent("mouseup",function(F){this.timeUp=$time();if((this.timeUp-this.timeDown)<275){if(MochaUI.Windows.windowsVisible==false){MochaUI.toggleWindowVisibility();if(D.isMinimized==true){MochaUI.Dock.restoreMinimized.delay(25,MochaUI.Dock,E)}else{MochaUI.focusWindow(E)}return }if(D.isMinimized==true){MochaUI.Dock.restoreMinimized.delay(25,MochaUI.Dock,E)}else{if(D.windowEl.hasClass("isFocused")&&D.options.minimizable==true){MochaUI.Dock.minimizeWindow(E)}else{MochaUI.focusWindow(E)}var G=document.getCoordinates();if(E.getStyle("left").toInt()>G.width||E.getStyle("top").toInt()>G.height){MochaUI.centerWindow(E)}}}});this.dockSortables.addItems(C);var A=D.titleEl.innerHTML;var B=new Element("div",{id:D.options.id+"_dockTabText","class":"dockText"}).set("html",A.substring(0,20)+(A.length>20?"...":"")).inject($(C));if(D.options.icon!=false){B.setStyle("background","url("+D.options.icon+") 4px 4px no-repeat")}MochaUI.Desktop.setDesktopSize()},makeActiveTab:function(){var C=MochaUI.getWindowWithHighestZindex();var B=MochaUI.Windows.instances.get(C.id);$$("div.dockTab").removeClass("activeDockTab");if(B.isMinimized!=true){B.windowEl.addClass("isFocused");var A=$(B.options.id+"_dockTab");if(A!=null){A.addClass("activeDockTab")}}else{B.windowEl.removeClass("isFocused")}},minimizeWindow:function(C){if(C!=$(C)){return }var B=MochaUI.Windows.instances.get(C.id);B.isMinimized=true;if(B.iframeEl){B.iframeEl.setStyle("visibility","hidden")}B.contentBorderEl.setStyle("visibility","hidden");if(B.toolbarWrapperEl){B.toolbarWrapperEl.setStyle("visibility","hidden")}C.setStyle("visibility","hidden");if(Browser.Platform.mac&&Browser.Engine.gecko){if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){var A=new Number(RegExp.$1);if(A<3){B.contentWrapperEl.setStyle("overflow","hidden")}}}MochaUI.Desktop.setDesktopSize();setTimeout(function(){C.setStyle("zIndex",1);C.removeClass("isFocused");this.makeActiveTab()}.bind(this),100);B.fireEvent("onMinimize",C)},restoreMinimized:function(B){var A=MochaUI.Windows.instances.get(B.id);if(A.isMinimized==false){return }if(MochaUI.Windows.windowsVisible==false){MochaUI.toggleWindowVisibility()}MochaUI.Desktop.setDesktopSize();if(A.options.scrollbars==true&&!A.iframeEl){A.contentWrapperEl.setStyle("overflow","auto")}if(A.isCollapsed){MochaUI.collapseToggle(B)}B.setStyle("visibility","visible");A.contentBorderEl.setStyle("visibility","visible");if(A.toolbarWrapperEl){A.toolbarWrapperEl.setStyle("visibility","visible")}if(A.iframeEl){A.iframeEl.setStyle("visibility","visible")}A.isMinimized=false;MochaUI.focusWindow(B);A.fireEvent("onRestore",B)}});MochaUI.Dock.implement(new Options,new Events);MochaUI.extend({saveWorkspace:function(){this.cookie=new Hash.Cookie("mochaUIworkspaceCookie",{duration:3600});this.cookie.empty();MochaUI.Windows.instances.each(function(A){A.saveValues();this.cookie.set(A.options.id,{id:A.options.id,top:A.options.y,left:A.options.x})}.bind(this));this.cookie.save();new MochaUI.Window({loadMethod:"html",type:"notification",addClass:"notification",content:"Workspace saved.",closeAfter:"1400",width:200,height:40,y:53,padding:{top:10,right:12,bottom:10,left:12},shadowBlur:5,bodyBgColor:[255,255,255]})},windowUnload:function(){if($$("div.mocha").length==0&&this.myChain){this.myChain.callChain()}},loadWorkspace2:function(workspaceWindows){workspaceWindows.each(function(instance){windowFunction=eval("MochaUI."+instance.id+"Window");if(windowFunction){eval("MochaUI."+instance.id+"Window();");$(instance.id).setStyles({top:instance.top,left:instance.left})}}.bind(this));this.loadingWorkspace=false},loadWorkspace:function(){cookie=new Hash.Cookie("mochaUIworkspaceCookie",{duration:3600});workspaceWindows=cookie.load();if(!cookie.getKeys().length){new MochaUI.Window({loadMethod:"html",type:"notification",addClass:"notification",content:"You have no saved workspace.",closeAfter:"1400",width:220,height:40,y:25,padding:{top:10,right:12,bottom:10,left:12},shadowBlur:5,bodyBgColor:[255,255,255]});return }if($$("div.mocha").length!=0){this.loadingWorkspace=true;this.myChain=new Chain();this.myChain.chain(function(){$$("div.mocha").each(function(A){this.closeWindow(A)}.bind(this))}.bind(this),function(){this.loadWorkspace2(workspaceWindows)}.bind(this));this.myChain.callChain()}else{this.loadWorkspace2(workspaceWindows)}}});