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()}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(f,d,i,h,c,b,g,e){f.fillStyle="rgba("+g.join(",")+","+e+")";f.beginPath();f.moveTo(d,i+b);f.lineTo(d,i+c-b);f.quadraticCurveTo(d,i+c,d+b,i+c);f.lineTo(d+h-b,i+c);f.quadraticCurveTo(d+h,i+c,d+h,i+c-b);f.lineTo(d+h,i+b);f.quadraticCurveTo(d+h,i,d+h-b,i);f.lineTo(d+b,i);f.quadraticCurveTo(d,i,d,i+b);f.fill()},triangle:function(e,c,h,g,b,f,d){e.beginPath();e.moveTo(c+g,h);e.lineTo(c,h+b);e.lineTo(c+g,h+b);e.closePath();e.fillStyle="rgba("+f.join(",")+","+d+")";e.fill()},circle:function(d,b,g,f,e,c){d.beginPath();d.moveTo(b,g);d.arc(b,g,f,0,Math.PI*2,true);d.fillStyle="rgba("+e.join(",")+","+c+")";d.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=(c.height*0.5)-((a.height+e.headerFooterShadow)*0.5);if(b<0){b=0}var d=(c.width*0.5)-(a.width*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:"pages/lipsum.html",closeAfter:false,evalScripts:true,evalResponse:false,content:"Window content",toolbar:false,toolbarPosition:"top",toolbarHeight:29,toolbarURL:"pages/lipsum.html",toolbarContent:"",toolbar2:false,toolbar2Position:"bottom",toolbar2Height:29,toolbar2URL:"pages/lipsum.html",toolbar2Content:"",container:null,restrict:true,shape:"box",collapsible:true,minimizable:true,maximizable:true,closable: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){var f=(b.y*0.5)-((this.options.height+this.headerFooterShadow+this.windowEl.getStyle("border-top").toInt()+this.windowEl.getStyle("border-bottom").toInt())*0.5)}else{var f=this.options.y-this.options.shadowBlur}if(!this.options.x){var g=(b.x*0.5)-(this.options.width*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,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);setTimeout(MochaUI.focusWindow.pass(this.windowEl,this),10)}else{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)}},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(e,c,h,b,g,f,d){e.beginPath();e.moveTo(c,h);e.arc(c,h,7,0,Math.PI*2,true);e.fillStyle="rgba("+b.join(",")+","+g+")";e.fill();e.strokeStyle="rgba("+f.join(",")+","+d+")";e.beginPath();e.moveTo(c,h-4);e.lineTo(c,h+4);e.stroke();e.beginPath();e.moveTo(c-4,h);e.lineTo(c+4,h);e.stroke()},closebutton:function(e,c,h,b,g,f,d){e.beginPath();e.moveTo(c,h);e.arc(c,h,7,0,Math.PI*2,true);e.fillStyle="rgba("+b.join(",")+","+g+")";e.fill();e.strokeStyle="rgba("+f.join(",")+","+d+")";e.beginPath();e.moveTo(c-3,h-3);e.lineTo(c+3,h+3);e.stroke();e.beginPath();e.moveTo(c+3,h-3);e.lineTo(c-3,h+3);e.stroke()},minimizebutton:function(e,c,h,b,g,f,d){e.beginPath();e.moveTo(c,h);e.arc(c,h,7,0,Math.PI*2,true);e.fillStyle="rgba("+b.join(",")+","+g+")";e.fill();e.strokeStyle="rgba("+f.join(",")+","+d+")";e.beginPath();e.moveTo(c-4,h);e.lineTo(c+4,h);e.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.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.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()}this.menuInitialize();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:70,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:150,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.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);

