var Window=Class.create();Window.keepMultiModalWindow=false;Window.hasEffectLib=(typeof Effect!="undefined");Window.resizeEffectDuration=0.4;Window.prototype={initialize:function(){var a;var c=0;if(arguments.length>0){if(typeof arguments[0]=="string"){a=arguments[0];c=1}else{a=arguments[0]?arguments[0].id:null}}if(!a){a="window_"+new Date().getTime()}if($(a)){alert("Window "+a+" is already registered in the DOM! Make sure you use setDestroyOnClose() or destroyOnClose: true in the constructor")}this.options=Object.extend({className:"dialog",blurClassName:null,minWidth:100,minHeight:20,resizable:true,closable:true,minimizable:true,maximizable:true,draggable:true,userData:null,showEffect:(Window.hasEffectLib?Effect.Appear:Element.show),hideEffect:(Window.hasEffectLib?Effect.Fade:Element.hide),showEffectOptions:{},hideEffectOptions:{},effectOptions:null,parent:document.body,title:"&nbsp;",url:null,onload:Prototype.emptyFunction,width:200,height:300,opacity:1,recenterAuto:true,wiredDrag:false,closeCallback:null,destroyOnClose:false,gridX:1,gridY:1},arguments[c]||{});if(this.options.blurClassName){this.options.focusClassName=this.options.className}if(typeof this.options.top=="undefined"&&typeof this.options.bottom=="undefined"){this.options.top=this._round(Math.random()*500,this.options.gridY)}if(typeof this.options.left=="undefined"&&typeof this.options.right=="undefined"){this.options.left=this._round(Math.random()*500,this.options.gridX)}if(this.options.effectOptions){Object.extend(this.options.hideEffectOptions,this.options.effectOptions);Object.extend(this.options.showEffectOptions,this.options.effectOptions);if(this.options.showEffect==Element.Appear){this.options.showEffectOptions.to=this.options.opacity}}if(Window.hasEffectLib){if(this.options.showEffect==Effect.Appear){this.options.showEffectOptions.to=this.options.opacity}if(this.options.hideEffect==Effect.Fade){this.options.hideEffectOptions.from=this.options.opacity}}if(this.options.hideEffect==Element.hide){this.options.hideEffect=function(){Element.hide(this.element);if(this.options.destroyOnClose){this.destroy()}}.bind(this)}if(this.options.parent!=document.body){this.options.parent=$(this.options.parent)}this.element=this._createWindow(a);this.element.win=this;this.eventMouseDown=this._initDrag.bindAsEventListener(this);this.eventMouseUp=this._endDrag.bindAsEventListener(this);this.eventMouseMove=this._updateDrag.bindAsEventListener(this);this.eventOnLoad=this._getWindowBorderSize.bindAsEventListener(this);this.eventMouseDownContent=this.toFront.bindAsEventListener(this);this.eventResize=this._recenter.bindAsEventListener(this);this.topbar=$(this.element.id+"_top");this.bottombar=$(this.element.id+"_bottom");this.content=$(this.element.id+"_content");Event.observe(this.topbar,"mousedown",this.eventMouseDown);Event.observe(this.bottombar,"mousedown",this.eventMouseDown);Event.observe(this.content,"mousedown",this.eventMouseDownContent);Event.observe(window,"load",this.eventOnLoad);Event.observe(window,"resize",this.eventResize);Event.observe(window,"scroll",this.eventResize);Event.observe(this.options.parent,"scroll",this.eventResize);if(this.options.draggable){var b=this;[this.topbar,this.topbar.up().previous(),this.topbar.up().next()].each(function(d){d.observe("mousedown",b.eventMouseDown);d.addClassName("top_draggable")});[this.bottombar.up(),this.bottombar.up().previous(),this.bottombar.up().next()].each(function(d){d.observe("mousedown",b.eventMouseDown);d.addClassName("bottom_draggable")})}if(this.options.resizable){this.sizer=$(this.element.id+"_sizer");Event.observe(this.sizer,"mousedown",this.eventMouseDown)}this.useLeft=null;this.useTop=null;if(typeof this.options.left!="undefined"){this.element.setStyle({left:parseFloat(this.options.left)+"px"});this.useLeft=true}else{this.element.setStyle({right:parseFloat(this.options.right)+"px"});this.useLeft=false}if(typeof this.options.top!="undefined"){this.element.setStyle({top:parseFloat(this.options.top)+"px"});this.useTop=true}else{this.element.setStyle({bottom:parseFloat(this.options.bottom)+"px"});this.useTop=false}this.storedLocation=null;this.setOpacity(this.options.opacity);if(this.options.zIndex){this.setZIndex(this.options.zIndex)}if(this.options.destroyOnClose){this.setDestroyOnClose(true)}this._getWindowBorderSize();this.width=this.options.width;this.height=this.options.height;this.visible=false;this.constraint=false;this.constraintPad={top:0,left:0,bottom:0,right:0};if(this.width&&this.height){this.setSize(this.options.width,this.options.height)}this.setTitle(this.options.title);Windows.register(this)},destroy:function(){this._notify("onDestroy");Event.stopObserving(this.topbar,"mousedown",this.eventMouseDown);Event.stopObserving(this.bottombar,"mousedown",this.eventMouseDown);Event.stopObserving(this.content,"mousedown",this.eventMouseDownContent);Event.stopObserving(window,"load",this.eventOnLoad);Event.stopObserving(window,"resize",this.eventResize);Event.stopObserving(window,"scroll",this.eventResize);Event.stopObserving(this.content,"load",this.options.onload);if(this._oldParent){var a=this.getContent();var b=null;for(var c=0;c<a.childNodes.length;c++){b=a.childNodes[c];if(b.nodeType==1){break}b=null}if(b){this._oldParent.appendChild(b)}this._oldParent=null}if(this.sizer){Event.stopObserving(this.sizer,"mousedown",this.eventMouseDown)}if(this.options.url){this.content.src=null}if(this.iefix){Element.remove(this.iefix)}Element.remove(this.element);Windows.unregister(this)},setCloseCallback:function(a){this.options.closeCallback=a},getContent:function(){return this.content},setContent:function(e,c,g){var f=$(e);if(null==f){throw"Unable to find element '"+e+"' in DOM"}this._oldParent=f.parentNode;var b=null;var a=null;if(c){b=Element.getDimensions(f)}if(g){a=Position.cumulativeOffset(f)}var h=this.getContent();this.setHTMLContent("");h=this.getContent();h.appendChild(f);f.show();if(c){this.setSize(b.width,b.height)}if(g){this.setLocation(a[1]-this.heightN,a[0]-this.widthW)}},setHTMLContent:function(a){if(this.options.url){this.content.src=null;this.options.url=null;var b='<div id="'+this.getId()+'_content" class="'+this.options.className+'_content"> </div>';$(this.getId()+"_table_content").innerHTML=b;this.content=$(this.element.id+"_content")}this.getContent().innerHTML=a},setAjaxContent:function(d,c,b,a){this.showFunction=b?"showCenter":"show";this.showModal=a||false;c=c||{};this.setHTMLContent("");this.onComplete=c.onComplete;if(!this._onCompleteHandler){this._onCompleteHandler=this._setAjaxContent.bind(this)}c.onComplete=this._onCompleteHandler;new Ajax.Request(d,c);c.onComplete=this.onComplete},_setAjaxContent:function(a){Element.update(this.getContent(),a.responseText);if(this.onComplete){this.onComplete(a)}this.onComplete=null;this[this.showFunction](this.showModal)},setURL:function(a){if(this.options.url){this.content.src=null}this.options.url=a;var b="<iframe frameborder='0' name='"+this.getId()+"_content'  id='"+this.getId()+"_content' src='"+a+"' width='"+this.width+"' height='"+this.height+"'> </iframe>";$(this.getId()+"_table_content").innerHTML=b;this.content=$(this.element.id+"_content")},getURL:function(){return this.options.url?this.options.url:null},refresh:function(){if(this.options.url){$(this.element.getAttribute("id")+"_content").src=this.options.url}},setCookie:function(g,i,e,k,f){g=g||this.element.id;this.cookie=[g,i,e,k,f];var c=WindowUtilities.getCookie(g);if(c){var d=c.split(",");var a=d[0].split(":");var n=d[1].split(":");var b=parseFloat(d[2]),l=parseFloat(d[3]);var m=d[4];var j=d[5];this.setSize(b,l);if(m=="true"){this.doMinimize=true}else{if(j=="true"){this.doMaximize=true}}this.useLeft=a[0]=="l";this.useTop=n[0]=="t";this.element.setStyle(this.useLeft?{left:a[1]}:{right:a[1]});this.element.setStyle(this.useTop?{top:n[1]}:{bottom:n[1]})}},getId:function(){return this.element.id},setDestroyOnClose:function(){this.options.destroyOnClose=true},setConstraint:function(a,b){this.constraint=a;this.constraintPad=Object.extend(this.constraintPad,b||{});if(this.useTop&&this.useLeft){this.setLocation(parseFloat(this.element.style.top),parseFloat(this.element.style.left))}},_initDrag:function(b){if(Event.element(b)==this.sizer&&this.isMinimized()){return}if(Event.element(b)!=this.sizer&&this.isMaximized()){return}if(Prototype.Browser.IE&&this.heightN==0){this._getWindowBorderSize()}this.pointer=[this._round(Event.pointerX(b),this.options.gridX),this._round(Event.pointerY(b),this.options.gridY)];if(this.options.wiredDrag){this.currentDrag=this._createWiredElement()}else{this.currentDrag=this.element}if(Event.element(b)==this.sizer){this.doResize=true;this.widthOrg=this.width;this.heightOrg=this.height;this.bottomOrg=parseFloat(this.element.getStyle("bottom"));this.rightOrg=parseFloat(this.element.getStyle("right"));this._notify("onStartResize")}else{this.doResize=false;var a=$(this.getId()+"_close");if(a&&Position.within(a,this.pointer[0],this.pointer[1])){this.currentDrag=null;return}this.toFront();if(!this.options.draggable){return}this._notify("onStartMove")}Event.observe(document,"mouseup",this.eventMouseUp,false);Event.observe(document,"mousemove",this.eventMouseMove,false);WindowUtilities.disableScreen("__invisible__","__invisible__",this.overlayOpacity);document.body.ondrag=function(){return false};document.body.onselectstart=function(){return false};this.currentDrag.show();Event.stop(b)},_round:function(b,a){return a==1?b:b=Math.floor(b/a)*a},_updateDrag:function(k){var j=[this._round(Event.pointerX(k),this.options.gridX),this._round(Event.pointerY(k),this.options.gridY)];var i=j[0]-this.pointer[0];var g=j[1]-this.pointer[1];if(this.doResize){var f=this.widthOrg+i;var b=this.heightOrg+g;i=this.width-this.widthOrg;g=this.height-this.heightOrg;if(this.useLeft){f=this._updateWidthConstraint(f)}else{this.currentDrag.setStyle({right:(this.rightOrg-i)+"px"})}if(this.useTop){b=this._updateHeightConstraint(b)}else{this.currentDrag.setStyle({bottom:(this.bottomOrg-g)+"px"})}this.setSize(f,b);this._notify("onResize")}else{this.pointer=j;if(this.useLeft){var a=parseFloat(this.currentDrag.getStyle("left"))+i;var e=this._updateLeftConstraint(a);this.pointer[0]+=e-a;this.currentDrag.setStyle({left:e+"px"})}else{this.currentDrag.setStyle({right:parseFloat(this.currentDrag.getStyle("right"))-i+"px"})}if(this.useTop){var d=parseFloat(this.currentDrag.getStyle("top"))+g;var c=this._updateTopConstraint(d);this.pointer[1]+=c-d;this.currentDrag.setStyle({top:c+"px"})}else{this.currentDrag.setStyle({bottom:parseFloat(this.currentDrag.getStyle("bottom"))-g+"px"})}this._notify("onMove")}if(this.iefix){this._fixIEOverlapping()}this._removeStoreLocation();Event.stop(k)},_endDrag:function(a){WindowUtilities.enableScreen("__invisible__");if(this.doResize){this._notify("onEndResize")}else{this._notify("onEndMove")}Event.stopObserving(document,"mouseup",this.eventMouseUp,false);Event.stopObserving(document,"mousemove",this.eventMouseMove,false);Event.stop(a);this._hideWiredElement();this._saveCookie();document.body.ondrag=null;document.body.onselectstart=null},_updateLeftConstraint:function(b){if(this.constraint&&this.useLeft&&this.useTop){var a=this.options.parent==document.body?WindowUtilities.getPageSize().windowWidth:this.options.parent.getDimensions().width;if(b<this.constraintPad.left){b=this.constraintPad.left}if(b+this.width+this.widthE+this.widthW>a-this.constraintPad.right){b=a-this.constraintPad.right-this.width-this.widthE-this.widthW}}return b},_updateTopConstraint:function(a){if(this.constraint&&this.useLeft&&this.useTop){var b=this.options.parent==document.body?WindowUtilities.getPageSize().windowHeight:this.options.parent.getDimensions().height;var c=this.height+this.heightN+this.heightS;if(a<this.constraintPad.top){a=this.constraintPad.top}if(a+c>b-this.constraintPad.bottom){a=b-this.constraintPad.bottom-c}}return a},_updateWidthConstraint:function(b){if(this.constraint&&this.useLeft&&this.useTop){var c=this.options.parent==document.body?WindowUtilities.getPageSize().windowWidth:this.options.parent.getDimensions().width;var a=parseFloat(this.element.getStyle("left"));if(a+b+this.widthE+this.widthW>c-this.constraintPad.right){b=c-this.constraintPad.right-a-this.widthE-this.widthW}}return b},_updateHeightConstraint:function(c){if(this.constraint&&this.useLeft&&this.useTop){var b=this.options.parent==document.body?WindowUtilities.getPageSize().windowHeight:this.options.parent.getDimensions().height;var a=parseFloat(this.element.getStyle("top"));if(a+c+this.heightN+this.heightS>b-this.constraintPad.bottom){c=b-this.constraintPad.bottom-a-this.heightN-this.heightS}}return c},_createWindow:function(a){var f=this.options.className;var d=document.createElement("div");d.setAttribute("id",a);d.className="dialog";var e;if(this.options.url){e='<iframe frameborder="0" name="'+a+'_content"  id="'+a+'_content" src="'+this.options.url+'"> </iframe>'}else{e='<div id="'+a+'_content" class="'+f+'_content"> </div>'}var g=this.options.closable?"<div class='"+f+"_close' id='"+a+"_close' onclick='Windows.close(\""+a+"\", event)'> </div>":"";var h=this.options.minimizable?"<div class='"+f+"_minimize' id='"+a+"_minimize' onclick='Windows.minimize(\""+a+"\", event)'> </div>":"";var i=this.options.maximizable?"<div class='"+f+"_maximize' id='"+a+"_maximize' onclick='Windows.maximize(\""+a+"\", event)'> </div>":"";var c=this.options.resizable?"class='"+f+"_sizer' id='"+a+"_sizer'":"class='"+f+"_se'";var b="../themes/default/blank.gif";d.innerHTML=g+h+i+"      <table id='"+a+"_row1' class=\"top table_window\">        <tr>          <td class='"+f+"_nw'></td>          <td class='"+f+"_n'><div id='"+a+"_top' class='"+f+"_title title_window'>"+this.options.title+"</div></td>          <td class='"+f+"_ne'></td>        </tr>      </table>      <table id='"+a+"_row2' class=\"mid table_window\">        <tr>          <td class='"+f+"_w'></td>            <td id='"+a+"_table_content' class='"+f+"_content' valign='top'>"+e+"</td>          <td class='"+f+"_e'></td>        </tr>      </table>        <table id='"+a+"_row3' class=\"bot table_window\">        <tr>          <td class='"+f+"_sw'></td>            <td class='"+f+"_s'><div id='"+a+"_bottom' class='status_bar'><span style='float:left; width:1px; height:1px'></span></div></td>            <td "+c+"></td>        </tr>      </table>    ";Element.hide(d);this.options.parent.insertBefore(d,this.options.parent.firstChild);Event.observe($(a+"_content"),"load",this.options.onload);return d},changeClassName:function(b){var c=this.options.className;var a=this.getId();$A(["_close","_minimize","_maximize","_sizer","_content"]).each(function(d){this._toggleClassName($(a+d),c+d,b+d)}.bind(this));this._toggleClassName($(a+"_top"),c+"_title",b+"_title");$$("#"+a+" td").each(function(d){d.className=d.className.sub(c,b)});this.options.className=b},_toggleClassName:function(a,c,b){if(a){a.removeClassName(c);a.addClassName(b)}},setLocation:function(a,c){a=this._updateTopConstraint(a);c=this._updateLeftConstraint(c);var b=this.currentDrag||this.element;b.setStyle({top:a+"px"});b.setStyle({left:c+"px"});this.useLeft=true;this.useTop=true},getLocation:function(){var a={};if(this.useTop){a=Object.extend(a,{top:this.element.getStyle("top")})}else{a=Object.extend(a,{bottom:this.element.getStyle("bottom")})}if(this.useLeft){a=Object.extend(a,{left:this.element.getStyle("left")})}else{a=Object.extend(a,{right:this.element.getStyle("right")})}return a},getSize:function(){return{width:this.width,height:this.height}},setSize:function(a,f,d){a=parseFloat(a);f=parseFloat(f);if(!this.minimized&&a<this.options.minWidth){a=this.options.minWidth}if(!this.minimized&&f<this.options.minHeight){f=this.options.minHeight}if(this.options.maxHeight&&f>this.options.maxHeight){f=this.options.maxHeight}if(this.options.maxWidth&&a>this.options.maxWidth){a=this.options.maxWidth}if(this.useTop&&this.useLeft&&Window.hasEffectLib&&Effect.ResizeWindow&&d){new Effect.ResizeWindow(this,null,null,a,f,{duration:Window.resizeEffectDuration})}else{this.width=a;this.height=f;var c=this.currentDrag?this.currentDrag:this.element;c.setStyle({width:a+this.widthW+this.widthE+"px"});c.setStyle({height:f+this.heightN+this.heightS+"px"});if(!this.currentDrag||this.currentDrag==this.element){var b=$(this.element.id+"_content");b.setStyle({height:f+"px"});b.setStyle({width:a+"px"})}}},updateHeight:function(){this.setSize(this.width,this.content.scrollHeight,true)},updateWidth:function(){this.setSize(this.content.scrollWidth,this.height,true)},toFront:function(){if(this.element.style.zIndex<Windows.maxZIndex){this.setZIndex(Windows.maxZIndex+1)}if(this.iefix){this._fixIEOverlapping()}},getBounds:function(d){if(!this.width||!this.height||!this.visible){this.computeBounds()}var c=this.width;var a=this.height;if(!d){c+=this.widthW+this.widthE;a+=this.heightN+this.heightS}var b=Object.extend(this.getLocation(),{width:c+"px",height:a+"px"});return b},computeBounds:function(){if(!this.width||!this.height){var a=WindowUtilities._computeSize(this.content.innerHTML,this.content.id,this.width,this.height,0,this.options.className);if(this.height){this.width=a+5}else{this.height=a+5}}this.setSize(this.width,this.height);if(this.centered){this._center(this.centerTop,this.centerLeft)}},show:function(b){this.visible=true;if(b){if(typeof this.overlayOpacity=="undefined"){var a=this;setTimeout(function(){a.show(b)},10);return}Windows.addModalWindow(this);this.modal=true;this.setZIndex(Windows.maxZIndex+1);Windows.unsetOverflow(this)}else{if(!this.element.style.zIndex){this.setZIndex(Windows.maxZIndex+1)}}if(this.oldStyle){this.getContent().setStyle({overflow:this.oldStyle})}this.computeBounds();this._notify("onBeforeShow");if(this.options.showEffect!=Element.show&&this.options.showEffectOptions){this.options.showEffect(this.element,this.options.showEffectOptions)}else{this.options.showEffect(this.element)}this._checkIEOverlapping();WindowUtilities.focusedWindow=this;this._notify("onShow")},showCenter:function(b,a,c){this.centered=true;this.centerTop=a;this.centerLeft=c;this.show(b)},isVisible:function(){return this.visible},_center:function(a,d){var b=WindowUtilities.getWindowScroll(this.options.parent);var c=WindowUtilities.getPageSize(this.options.parent);if(typeof a=="undefined"){a=(c.windowHeight-(this.height+this.heightN+this.heightS))/2}a+=b.top;if(typeof d=="undefined"){d=(c.windowWidth-(this.width+this.widthW+this.widthE))/2}d+=b.left;this.setLocation(a,d);this.toFront()},_recenter:function(c){if(this.centered){var b=WindowUtilities.getPageSize(this.options.parent);var a=WindowUtilities.getWindowScroll(this.options.parent);if(this.pageSize&&this.pageSize.windowWidth==b.windowWidth&&this.pageSize.windowHeight==b.windowHeight&&this.windowScroll.left==a.left&&this.windowScroll.top==a.top){return}this.pageSize=b;this.windowScroll=a;if($("overlay_modal")){$("overlay_modal").setStyle({height:(b.pageHeight+"px")})}if(this.options.recenterAuto){this._center(this.centerTop,this.centerLeft)}}},hide:function(){this.visible=false;if(this.modal){Windows.removeModalWindow(this);Windows.resetOverflow()}this.oldStyle=this.getContent().getStyle("overflow")||"auto";this.getContent().setStyle({overflow:"hidden"});this.options.hideEffect(this.element,this.options.hideEffectOptions);if(this.iefix){this.iefix.hide()}if(!this.doNotNotifyHide){this._notify("onHide")}},close:function(){if(this.visible){if(this.options.closeCallback&&!this.options.closeCallback(this)){return}if(this.options.destroyOnClose){var a=this.destroy.bind(this);if(this.options.hideEffectOptions.afterFinish){var b=this.options.hideEffectOptions.afterFinish;this.options.hideEffectOptions.afterFinish=function(){b();a()}}else{this.options.hideEffectOptions.afterFinish=function(){a()}}}Windows.updateFocusedWindow();this.doNotNotifyHide=true;this.hide();this.doNotNotifyHide=false;this._notify("onClose")}},minimize:function(){if(this.resizing){return}var c=$(this.getId()+"_row2");if(!this.minimized){this.minimized=true;var b=c.getDimensions().height;this.r2Height=b;var a=this.element.getHeight()-b;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow){new Effect.ResizeWindow(this,null,null,null,this.height-b,{duration:Window.resizeEffectDuration})}else{this.height-=b;this.element.setStyle({height:a+"px"});c.hide()}if(!this.useTop){var d=parseFloat(this.element.getStyle("bottom"));this.element.setStyle({bottom:(d+b)+"px"})}}else{this.minimized=false;var b=this.r2Height;this.r2Height=null;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow){new Effect.ResizeWindow(this,null,null,null,this.height+b,{duration:Window.resizeEffectDuration})}else{var a=this.element.getHeight()+b;this.height+=b;this.element.setStyle({height:a+"px"});c.show()}if(!this.useTop){var d=parseFloat(this.element.getStyle("bottom"));this.element.setStyle({bottom:(d-b)+"px"})}this.toFront()}this._notify("onMinimize");this._saveCookie()},maximize:function(){if(this.isMinimized()||this.resizing){return}if(Prototype.Browser.IE&&this.heightN==0){this._getWindowBorderSize()}if(this.storedLocation!=null){this._restoreLocation();if(this.iefix){this.iefix.hide()}}else{this._storeLocation();Windows.unsetOverflow(this);var d=WindowUtilities.getWindowScroll(this.options.parent);var f=WindowUtilities.getPageSize(this.options.parent);var c=d.left;var b=d.top;if(this.options.parent!=document.body){d={top:0,left:0,bottom:0,right:0};var a=this.options.parent.getDimensions();f.windowWidth=a.width;f.windowHeight=a.height;b=0;c=0}if(this.constraint){f.windowWidth-=Math.max(0,this.constraintPad.left)+Math.max(0,this.constraintPad.right);f.windowHeight-=Math.max(0,this.constraintPad.top)+Math.max(0,this.constraintPad.bottom);c+=Math.max(0,this.constraintPad.left);b+=Math.max(0,this.constraintPad.top)}var g=f.windowWidth-this.widthW-this.widthE;var e=f.windowHeight-this.heightN-this.heightS;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow){new Effect.ResizeWindow(this,b,c,g,e,{duration:Window.resizeEffectDuration})}else{this.setSize(g,e);this.element.setStyle(this.useLeft?{left:c}:{right:c});this.element.setStyle(this.useTop?{top:b}:{bottom:b})}this.toFront();if(this.iefix){this._fixIEOverlapping()}}this._notify("onMaximize");this._saveCookie()},isMinimized:function(){return this.minimized},isMaximized:function(){return(this.storedLocation!=null)},setOpacity:function(a){if(Element.setOpacity){Element.setOpacity(this.element,a)}},setZIndex:function(a){this.element.setStyle({zIndex:a});Windows.updateZindex(a,this)},setTitle:function(a){if(!a||a==""){a="&nbsp;"}Element.update(this.element.id+"_top",a)},getTitle:function(){return $(this.element.id+"_top").innerHTML},setStatusBar:function(b){var a=$(this.getId()+"_bottom");if(typeof(b)=="object"){if(this.bottombar.firstChild){this.bottombar.replaceChild(b,this.bottombar.firstChild)}else{this.bottombar.appendChild(b)}}else{this.bottombar.innerHTML=b}},_checkIEOverlapping:function(){if(!this.iefix&&(navigator.appVersion.indexOf("MSIE")>0)&&(navigator.userAgent.indexOf("Opera")<0)&&(this.element.getStyle("position")=="absolute")){new Insertion.After(this.element.id,'<iframe id="'+this.element.id+'_iefix" style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.element.id+"_iefix")}if(this.iefix){setTimeout(this._fixIEOverlapping.bind(this),50)}},_fixIEOverlapping:function(){Position.clone(this.element,this.iefix);this.iefix.style.zIndex=this.element.style.zIndex-1;this.iefix.show()},_getWindowBorderSize:function(c){var a=this._createHiddenDiv(this.options.className+"_n");this.heightN=Element.getDimensions(a).height;a.parentNode.removeChild(a);var a=this._createHiddenDiv(this.options.className+"_s");this.heightS=Element.getDimensions(a).height;a.parentNode.removeChild(a);var a=this._createHiddenDiv(this.options.className+"_e");this.widthE=Element.getDimensions(a).width;a.parentNode.removeChild(a);var a=this._createHiddenDiv(this.options.className+"_w");this.widthW=Element.getDimensions(a).width;a.parentNode.removeChild(a);var a=document.createElement("div");a.className="overlay_"+this.options.className;document.body.appendChild(a);var b=this;setTimeout(function(){b.overlayOpacity=($(a).getStyle("opacity"));a.parentNode.removeChild(a)},10);if(Prototype.Browser.IE){this.heightS=$(this.getId()+"_row3").getDimensions().height;this.heightN=$(this.getId()+"_row1").getDimensions().height}if(Prototype.Browser.WebKit&&Prototype.Browser.WebKitVersion<420){this.setSize(this.width,this.height)}if(this.doMaximize){this.maximize()}if(this.doMinimize){this.minimize()}},_createHiddenDiv:function(c){var b=document.body;var a=document.createElement("div");a.setAttribute("id",this.element.id+"_tmp");a.className=c;a.style.display="none";a.innerHTML="";b.insertBefore(a,b.firstChild);return a},_storeLocation:function(){if(this.storedLocation==null){this.storedLocation={useTop:this.useTop,useLeft:this.useLeft,top:this.element.getStyle("top"),bottom:this.element.getStyle("bottom"),left:this.element.getStyle("left"),right:this.element.getStyle("right"),width:this.width,height:this.height}}},_restoreLocation:function(){if(this.storedLocation!=null){this.useLeft=this.storedLocation.useLeft;this.useTop=this.storedLocation.useTop;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow){new Effect.ResizeWindow(this,this.storedLocation.top,this.storedLocation.left,this.storedLocation.width,this.storedLocation.height,{duration:Window.resizeEffectDuration})}else{this.element.setStyle(this.useLeft?{left:this.storedLocation.left}:{right:this.storedLocation.right});this.element.setStyle(this.useTop?{top:this.storedLocation.top}:{bottom:this.storedLocation.bottom});this.setSize(this.storedLocation.width,this.storedLocation.height)}Windows.resetOverflow();this._removeStoreLocation()}},_removeStoreLocation:function(){this.storedLocation=null},_saveCookie:function(){if(this.cookie){var a="";if(this.useLeft){a+="l:"+(this.storedLocation?this.storedLocation.left:this.element.getStyle("left"))}else{a+="r:"+(this.storedLocation?this.storedLocation.right:this.element.getStyle("right"))}if(this.useTop){a+=",t:"+(this.storedLocation?this.storedLocation.top:this.element.getStyle("top"))}else{a+=",b:"+(this.storedLocation?this.storedLocation.bottom:this.element.getStyle("bottom"))}a+=","+(this.storedLocation?this.storedLocation.width:this.width);a+=","+(this.storedLocation?this.storedLocation.height:this.height);a+=","+this.isMinimized();a+=","+this.isMaximized();WindowUtilities.setCookie(a,this.cookie)}},_createWiredElement:function(){if(!this.wiredElement){if(Prototype.Browser.IE){this._getWindowBorderSize()}var b=document.createElement("div");b.className="wired_frame "+this.options.className+"_wired_frame";b.style.position="absolute";this.options.parent.insertBefore(b,this.options.parent.firstChild);this.wiredElement=$(b)}if(this.useLeft){this.wiredElement.setStyle({left:this.element.getStyle("left")})}else{this.wiredElement.setStyle({right:this.element.getStyle("right")})}if(this.useTop){this.wiredElement.setStyle({top:this.element.getStyle("top")})}else{this.wiredElement.setStyle({bottom:this.element.getStyle("bottom")})}var a=this.element.getDimensions();this.wiredElement.setStyle({width:a.width+"px",height:a.height+"px"});this.wiredElement.setStyle({zIndex:Windows.maxZIndex+30});return this.wiredElement},_hideWiredElement:function(){if(!this.wiredElement||!this.currentDrag){return}if(this.currentDrag==this.element){this.currentDrag=null}else{if(this.useLeft){this.element.setStyle({left:this.currentDrag.getStyle("left")})}else{this.element.setStyle({right:this.currentDrag.getStyle("right")})}if(this.useTop){this.element.setStyle({top:this.currentDrag.getStyle("top")})}else{this.element.setStyle({bottom:this.currentDrag.getStyle("bottom")})}this.currentDrag.hide();this.currentDrag=null;if(this.doResize){this.setSize(this.width,this.height)}}},_notify:function(a){if(this.options[a]){this.options[a](this)}else{Windows.notify(a,this)}}};var Windows={windows:[],modalWindows:[],observers:[],focusedWindow:null,maxZIndex:0,overlayShowEffectOptions:{duration:0.5},overlayHideEffectOptions:{duration:0.5},addObserver:function(a){this.removeObserver(a);this.observers.push(a)},removeObserver:function(a){this.observers=this.observers.reject(function(b){return b==a})},notify:function(a,b){this.observers.each(function(c){if(c[a]){c[a](a,b)}})},getWindow:function(a){return this.windows.detect(function(b){return b.getId()==a})},getFocusedWindow:function(){return this.focusedWindow},updateFocusedWindow:function(){this.focusedWindow=this.windows.length>=2?this.windows[this.windows.length-2]:null},register:function(a){this.windows.push(a)},addModalWindow:function(a){if(this.modalWindows.length==0){WindowUtilities.disableScreen(a.options.className,"overlay_modal",a.overlayOpacity,a.getId(),a.options.parent)}else{if(Window.keepMultiModalWindow){$("overlay_modal").style.zIndex=Windows.maxZIndex+1;Windows.maxZIndex+=1;WindowUtilities._hideSelect(this.modalWindows.last().getId())}else{this.modalWindows.last().element.hide()}WindowUtilities._showSelect(a.getId())}this.modalWindows.push(a)},removeModalWindow:function(a){this.modalWindows.pop();if(this.modalWindows.length==0){WindowUtilities.enableScreen()}else{if(Window.keepMultiModalWindow){this.modalWindows.last().toFront();WindowUtilities._showSelect(this.modalWindows.last().getId())}else{this.modalWindows.last().element.show()}}},register:function(a){this.windows.push(a)},unregister:function(a){this.windows=this.windows.reject(function(b){return b==a})},closeAll:function(){this.windows.each(function(a){Windows.close(a.getId())})},closeAllModalWindows:function(){WindowUtilities.enableScreen();this.modalWindows.each(function(a){if(a){a.close()}})},minimize:function(a,b){var c=this.getWindow(a);if(c&&c.visible){c.minimize()}Event.stop(b)},maximize:function(a,b){var c=this.getWindow(a);if(c&&c.visible){c.maximize()}Event.stop(b)},close:function(a,b){var c=this.getWindow(a);if(c){c.close()}if(b){Event.stop(b)}},blur:function(b){var a=this.getWindow(b);if(!a){return}if(a.options.blurClassName){a.changeClassName(a.options.blurClassName)}if(this.focusedWindow==a){this.focusedWindow=null}a._notify("onBlur")},focus:function(b){var a=this.getWindow(b);if(!a){return}if(this.focusedWindow){this.blur(this.focusedWindow.getId())}if(a.options.focusClassName){a.changeClassName(a.options.focusClassName)}this.focusedWindow=a;a._notify("onFocus")},unsetOverflow:function(a){this.windows.each(function(b){b.oldOverflow=b.getContent().getStyle("overflow")||"auto";b.getContent().setStyle({overflow:"hidden"})});if(a&&a.oldOverflow){a.getContent().setStyle({overflow:a.oldOverflow})}},resetOverflow:function(){this.windows.each(function(a){if(a.oldOverflow){a.getContent().setStyle({overflow:a.oldOverflow})}})},updateZindex:function(a,b){if(a>this.maxZIndex){this.maxZIndex=a;if(this.focusedWindow){this.blur(this.focusedWindow.getId())}}this.focusedWindow=b;if(this.focusedWindow){this.focus(this.focusedWindow.getId())}}};var Dialog={dialogId:null,onCompleteFunc:null,callFunc:null,parameters:null,confirm:function(b,a){if(b&&typeof b!="string"){Dialog._runAjaxRequest(b,a,Dialog.confirm);return}b=b||"";a=a||{};var d=a.okLabel?a.okLabel:"Ok";var e=a.cancelLabel?a.cancelLabel:"Cancel";a=Object.extend(a,a.windowParameters||{});a.windowParameters=a.windowParameters||{};a.className=a.className||"alert";var f="class ='"+(a.buttonClass?a.buttonClass+" ":"")+" ok_button'";var c="class ='"+(a.buttonClass?a.buttonClass+" ":"")+" cancel_button'";var b="      <div class='"+a.className+"_message'>"+b+"</div>        <div class='"+a.className+"_buttons'>          <input type='button' value='"+d+"' onclick='Dialog.okCallback()' "+f+"/>          <input type='button' value='"+e+"' onclick='Dialog.cancelCallback()' "+c+"/>        </div>    ";return this._openDialog(b,a)},alert:function(a,d){if(a&&typeof a!="string"){Dialog._runAjaxRequest(a,d,Dialog.alert);return}a=a||"";d=d||{};var b=d.okLabel?d.okLabel:"Ok";d=Object.extend(d,d.windowParameters||{});d.windowParameters=d.windowParameters||{};d.className=d.className||"alert";var c="class ='"+(d.buttonClass?d.buttonClass+" ":"")+" ok_button'";var a="      <div class='"+d.className+"_message'>"+a+"</div>        <div class='"+d.className+"_buttons'>          <input type='button' value='"+b+"' onclick='Dialog.okCallback()' "+c+"/>        </div>";return this._openDialog(a,d)},info:function(b,a){if(b&&typeof b!="string"){Dialog._runAjaxRequest(b,a,Dialog.info);return}b=b||"";a=a||{};a=Object.extend(a,a.windowParameters||{});a.windowParameters=a.windowParameters||{};a.className=a.className||"alert";var b="<div id='modal_dialog_message' class='"+a.className+"_message'>"+b+"</div>";if(a.showProgress){b+="<div id='modal_dialog_progress' class='"+a.className+"_progress'>  </div>"}a.ok=null;a.cancel=null;return this._openDialog(b,a)},setInfoMessage:function(a){$("modal_dialog_message").update(a)},closeInfo:function(){Windows.close(this.dialogId)},_openDialog:function(c,b){var a=b.className;if(!b.height&&!b.width){b.width=WindowUtilities.getPageSize(b.options.parent||document.body).pageWidth/2}if(b.id){this.dialogId=b.id}else{var f=new Date();this.dialogId="modal_dialog_"+f.getTime();b.id=this.dialogId}if(!b.height||!b.width){var e=WindowUtilities._computeSize(c,this.dialogId,b.width,b.height,5,a);if(b.height){b.width=e+5}else{b.height=e+5}}b.effectOptions=b.effectOptions;b.resizable=b.resizable||false;b.minimizable=b.minimizable||false;b.maximizable=b.maximizable||false;b.draggable=b.draggable||false;b.closable=b.closable||false;var d=new Window(b);d.getContent().innerHTML=c;d.showCenter(true,b.top,b.left);d.setDestroyOnClose();d.cancelCallback=b.onCancel||b.cancel;d.okCallback=b.onOk||b.ok;return d},_getAjaxContent:function(a){Dialog.callFunc(a.responseText,Dialog.parameters)},_runAjaxRequest:function(a,c,b){if(a.options==null){a.options={}}Dialog.onCompleteFunc=a.options.onComplete;Dialog.parameters=c;Dialog.callFunc=b;a.options.onComplete=Dialog._getAjaxContent;new Ajax.Request(a.url,a.options)},okCallback:function(){var a=Windows.focusedWindow;if(!a.okCallback||a.okCallback(a)){$$("#"+a.getId()+" input").each(function(b){b.onclick=null});a.close()}},cancelCallback:function(){var a=Windows.focusedWindow;$$("#"+a.getId()+" input").each(function(b){b.onclick=null});a.close();if(a.cancelCallback){a.cancelCallback(a)}}};if(Prototype.Browser.WebKit){var array=navigator.userAgent.match(new RegExp(/AppleWebKit\/([\d\.\+]*)/));Prototype.Browser.WebKitVersion=parseFloat(array[1])}var WindowUtilities={getWindowScroll:function(parent){var T,L,W,H;parent=parent||document.body;if(parent!=document.body){T=parent.scrollTop;L=parent.scrollLeft;W=parent.scrollWidth;H=parent.scrollHeight}else{var w=window;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft}else{if(w.document.body){T=body.scrollTop;L=body.scrollLeft}}if(w.innerWidth){W=w.innerWidth;H=w.innerHeight}else{if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight}else{W=body.offsetWidth;H=body.offsetHeight}}}}return{top:T,left:L,width:W,height:H}},getPageSize:function(a){a=a||document.body;var g,d;var b,f;if(a!=document.body){g=a.getWidth();d=a.getHeight();f=a.scrollWidth;b=a.scrollHeight}else{var c,e;if(window.innerHeight&&window.scrollMaxY){c=document.body.scrollWidth;e=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){c=document.body.scrollWidth;e=document.body.scrollHeight}else{c=document.body.offsetWidth;e=document.body.offsetHeight}}if(self.innerHeight){g=self.innerWidth;d=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight){g=document.documentElement.clientWidth;d=document.documentElement.clientHeight}else{if(document.body){g=document.body.clientWidth;d=document.body.clientHeight}}}if(e<d){b=d}else{b=e}if(c<g){f=g}else{f=c}}return{pageWidth:f,pageHeight:b,windowWidth:g,windowHeight:d}},disableScreen:function(a,d,b,c,e){WindowUtilities.initLightbox(d,a,function(){this._disableScreen(a,d,b,c)}.bind(this),e||document.body)},_disableScreen:function(a,f,c,d){var b=$(f);var e=WindowUtilities.getPageSize(b.parentNode);if(d&&Prototype.Browser.IE){WindowUtilities._hideSelect();WindowUtilities._showSelect(d)}b.style.height=(e.pageHeight+"px");b.style.display="none";if(f=="overlay_modal"&&Window.hasEffectLib&&Windows.overlayShowEffectOptions){b.overlayOpacity=c;new Effect.Appear(b,Object.extend({from:0,to:c},Windows.overlayShowEffectOptions))}else{b.style.display="block"}},enableScreen:function(b){b=b||"overlay_modal";var a=$(b);if(a){if(b=="overlay_modal"&&Window.hasEffectLib&&Windows.overlayHideEffectOptions){new Effect.Fade(a,Object.extend({from:a.overlayOpacity,to:0},Windows.overlayHideEffectOptions))}else{a.style.display="none";a.parentNode.removeChild(a)}if(b!="__invisible__"){WindowUtilities._showSelect()}}},_hideSelect:function(a){if(Prototype.Browser.IE){a=a==null?"":"#"+a+" ";$$(a+"select").each(function(b){if(!WindowUtilities.isDefined(b.oldVisibility)){b.oldVisibility=b.style.visibility?b.style.visibility:"visible";b.style.visibility="hidden"}})}},_showSelect:function(a){if(Prototype.Browser.IE){a=a==null?"":"#"+a+" ";$$(a+"select").each(function(b){if(WindowUtilities.isDefined(b.oldVisibility)){try{b.style.visibility=b.oldVisibility}catch(c){b.style.visibility="visible"}b.oldVisibility=null}else{if(b.style.visibility){b.style.visibility="visible"}}})}},isDefined:function(a){return typeof(a)!="undefined"&&a!=null},initLightbox:function(c,a,d,e){if($(c)){Element.setStyle(c,{zIndex:Windows.maxZIndex+1});Windows.maxZIndex++;d()}else{var b=document.createElement("div");b.setAttribute("id",c);b.className="overlay_"+a;b.style.display="none";b.style.position="absolute";b.style.top="0";b.style.left="0";b.style.zIndex=Windows.maxZIndex+1;Windows.maxZIndex++;b.style.width="100%";e.insertBefore(b,e.firstChild);if(Prototype.Browser.WebKit&&c=="overlay_modal"){setTimeout(function(){d()},10)}else{d()}}},setCookie:function(b,a){document.cookie=a[0]+"="+escape(b)+((a[1])?"; expires="+a[1].toGMTString():"")+((a[2])?"; path="+a[2]:"")+((a[3])?"; domain="+a[3]:"")+((a[4])?"; secure":"")},getCookie:function(a){var e=document.cookie;var c=a+"=";var b=e.indexOf("; "+c);if(b==-1){b=e.indexOf(c);if(b!=0){return null}}else{b+=2}var d=document.cookie.indexOf(";",b);if(d==-1){d=e.length}return unescape(e.substring(b+c.length,d))},_computeSize:function(e,a,b,g,d,f){var i=document.body;var c=document.createElement("div");c.setAttribute("id",a);c.className=f+"_content";if(g){c.style.height=g+"px"}else{c.style.width=b+"px"}c.style.position="absolute";c.style.top="0";c.style.left="0";c.style.display="none";c.innerHTML=e;i.insertBefore(c,i.firstChild);var h;if(g){h=$(c).getDimensions().width+d}else{h=$(c).getDimensions().height+d}i.removeChild(c);return h}};