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(){if($("windowUnderlay")){MochaUI.setUnderlaySize();}else{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&&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&&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.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);