var Window=Class.create();Window.keepMultiModalWindow=false;Window.hasEffectLib=typeof Effect!="undefined";Window.resizeEffectDuration=.4;Window.prototype={initialize:function(){var a,b=0;if(arguments.length>0)if(typeof arguments[0]=="string"){a=arguments[0];b=1}else a=arguments[0]?arguments[0].id:null;if(!a)a="window_"+(new Date).getTime();$(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[b]||{});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);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 c=this;[this.topbar,this.topbar.up().previous(),this.topbar.up().next()].each(function(a){a.observe("mousedown",c.eventMouseDown);a.addClassName("top_draggable")});[this.bottombar.up(),this.bottombar.up().previous(),this.bottombar.up().next()].each(function(a){a.observe("mousedown",c.eventMouseDown);a.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);this.options.zIndex&&this.setZIndex(this.options.zIndex);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};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){for(var c=this.getContent(),a=null,b=0;b<c.childNodes.length;b++){a=c.childNodes[b];if(a.nodeType==1)break;a=null}a&&this._oldParent.appendChild(a);this._oldParent=null}this.sizer&&Event.stopObserving(this.sizer,"mousedown",this.eventMouseDown);if(this.options.url)this.content.src=null;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(g,e,d){var a=$(g);if(null==a)throw"Unable to find element '"+g+"' in DOM";this._oldParent=a.parentNode;var b=null,c=null;if(e)b=Element.getDimensions(a);if(d)c=Position.cumulativeOffset(a);var f=this.getContent();this.setHTMLContent("");f=this.getContent();f.appendChild(a);a.show();e&&this.setSize(b.width,b.height);d&&this.setLocation(c[1]-this.heightN,c[0]-this.widthW)},setHTMLContent:function(b){if(this.options.url){this.content.src=null;this.options.url=null;var a='<div id="'+this.getId()+'_content" class="'+this.options.className+'_content"> </div>';$(this.getId()+"_table_content").innerHTML=a;this.content=$(this.element.id+"_content")}this.getContent().innerHTML=b},setAjaxContent:function(d,a,b,c){this.showFunction=b?"showCenter":"show";this.showModal=c||false;a=a||{};this.setHTMLContent("");this.onComplete=a.onComplete;if(!this._onCompleteHandler)this._onCompleteHandler=this._setAjaxContent.bind(this);a.onComplete=this._onCompleteHandler;new Ajax.Request(d,a);a.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(b,f,k,g,h){b=b||this.element.id;this.cookie=[b,f,k,g,h];var e=WindowUtilities.getCookie(b);if(e){var a=e.split(","),c=a[0].split(":"),d=a[1].split(":"),m=parseFloat(a[2]),l=parseFloat(a[3]),j=a[4],i=a[5];this.setSize(m,l);if(j=="true")this.doMinimize=true;else if(i=="true")this.doMaximize=true;this.useLeft=c[0]=="l";this.useTop=d[0]=="t";this.element.setStyle(this.useLeft?{left:c[1]}:{right:c[1]});this.element.setStyle(this.useTop?{top:d[1]}:{bottom:d[1]})}},getId:function(){return this.element.id},setDestroyOnClose:function(){this.options.destroyOnClose=true},setConstraint:function(b,a){this.constraint=b;this.constraintPad=Object.extend(this.constraintPad,a||{});this.useTop&&this.useLeft&&this.setLocation(parseFloat(this.element.style.top),parseFloat(this.element.style.left))},_initDrag:function(a){if(Event.element(a)==this.sizer&&this.isMinimized())return;if(Event.element(a)!=this.sizer&&this.isMaximized())return;Prototype.Browser.IE&&this.heightN==0&&this._getWindowBorderSize();this.pointer=[this._round(Event.pointerX(a),this.options.gridX),this._round(Event.pointerY(a),this.options.gridY)];if(this.options.wiredDrag)this.currentDrag=this._createWiredElement();else this.currentDrag=this.element;if(Event.element(a)==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 b=$(this.getId()+"_close");if(b&&Position.within(b,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(a)},_round:function(b,a){return a==1?b:(b=Math.floor(b/a)*a)},_updateDrag:function(d){var c=[this._round(Event.pointerX(d),this.options.gridX),this._round(Event.pointerY(d),this.options.gridY)],a=c[0]-this.pointer[0],b=c[1]-this.pointer[1];if(this.doResize){var f=this.widthOrg+a,e=this.heightOrg+b;a=this.width-this.widthOrg;b=this.height-this.heightOrg;if(this.useLeft)f=this._updateWidthConstraint(f);else this.currentDrag.setStyle({right:this.rightOrg-a+"px"});if(this.useTop)e=this._updateHeightConstraint(e);else this.currentDrag.setStyle({bottom:this.bottomOrg-b+"px"});this.setSize(f,e);this._notify("onResize")}else{this.pointer=c;if(this.useLeft){var i=parseFloat(this.currentDrag.getStyle("left"))+a,g=this._updateLeftConstraint(i);this.pointer[0]+=g-i;this.currentDrag.setStyle({left:g+"px"})}else this.currentDrag.setStyle({right:parseFloat(this.currentDrag.getStyle("right"))-a+"px"});if(this.useTop){var j=parseFloat(this.currentDrag.getStyle("top"))+b,h=this._updateTopConstraint(j);this.pointer[1]+=h-j;this.currentDrag.setStyle({top:h+"px"})}else this.currentDrag.setStyle({bottom:parseFloat(this.currentDrag.getStyle("bottom"))-b+"px"});this._notify("onMove")}this.iefix&&this._fixIEOverlapping();this._removeStoreLocation();Event.stop(d)},_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(a){if(this.constraint&&this.useLeft&&this.useTop){var b=this.options.parent==document.body?WindowUtilities.getPageSize().windowWidth:this.options.parent.getDimensions().width;if(a<this.constraintPad.left)a=this.constraintPad.left;if(a+this.width+this.widthE+this.widthW>b-this.constraintPad.right)a=b-this.constraintPad.right-this.width-this.widthE-this.widthW}return a},_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,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(a){if(this.constraint&&this.useLeft&&this.useTop){var b=this.options.parent==document.body?WindowUtilities.getPageSize().windowWidth:this.options.parent.getDimensions().width,c=parseFloat(this.element.getStyle("left"));if(c+a+this.widthE+this.widthW>b-this.constraintPad.right)a=b-this.constraintPad.right-c-this.widthE-this.widthW}return a},_updateHeightConstraint:function(a){if(this.constraint&&this.useLeft&&this.useTop){var b=this.options.parent==document.body?WindowUtilities.getPageSize().windowHeight:this.options.parent.getDimensions().height,c=parseFloat(this.element.getStyle("top"));if(c+a+this.heightN+this.heightS>b-this.constraintPad.bottom)a=b-this.constraintPad.bottom-c-this.heightN-this.heightS}return a},_createWindow:function(a){var b=this.options.className,c=document.createElement("div");c.setAttribute("id",a);c.className="dialog";var d;if(this.options.url)d='<iframe frameborder="0" name="'+a+'_content"  id="'+a+'_content" src="'+this.options.url+'"> </iframe>';else d='<div id="'+a+'_content" class="'+b+'_content"> </div>';var f=this.options.closable?"<div class='"+b+"_close' id='"+a+"_close' onclick='Windows.close(\""+a+"\", event)'> </div>":"",h=this.options.minimizable?"<div class='"+b+"_minimize' id='"+a+"_minimize' onclick='Windows.minimize(\""+a+"\", event)'> </div>":"",g=this.options.maximizable?"<div class='"+b+"_maximize' id='"+a+"_maximize' onclick='Windows.maximize(\""+a+"\", event)'> </div>":"",e=this.options.resizable?"class='"+b+"_sizer' id='"+a+"_sizer'":"class='"+b+"_se'",i="../themes/default/blank.gif";c.innerHTML=f+h+g+"      <table id='"+a+"_row1' class=\"top table_window\">        <tr>          <td class='"+b+"_nw'></td>          <td class='"+b+"_n'><div id='"+a+"_top' class='"+b+"_title title_window'>"+this.options.title+"</div></td>          <td class='"+b+"_ne'></td>        </tr>      </table>      <table id='"+a+"_row2' class=\"mid table_window\">        <tr>          <td class='"+b+"_w'></td>            <td id='"+a+"_table_content' class='"+b+"_content' valign='top'>"+d+"</td>          <td class='"+b+"_e'></td>        </tr>      </table>        <table id='"+a+"_row3' class=\"bot table_window\">        <tr>          <td class='"+b+"_sw'></td>            <td class='"+b+"_s'><div id='"+a+"_bottom' class='status_bar'><span style='float:left; width:1px; height:1px'></span></div></td>            <td "+e+"></td>        </tr>      </table>    ";Element.hide(c);this.options.parent.insertBefore(c,this.options.parent.firstChild);Event.observe($(a+"_content"),"load",this.options.onload);return c},changeClassName:function(a){var b=this.options.className,c=this.getId();$A(["_close","_minimize","_maximize","_sizer","_content"]).each(function(d){this._toggleClassName($(c+d),b+d,a+d)}.bind(this));this._toggleClassName($(c+"_top"),b+"_title",a+"_title");$$("#"+c+" td").each(function(c){c.className=c.className.sub(b,a)});this.options.className=a},_toggleClassName:function(a,c,b){if(a){a.removeClassName(c);a.addClassName(b)}},setLocation:function(b,a){b=this._updateTopConstraint(b);a=this._updateLeftConstraint(a);var c=this.currentDrag||this.element;c.setStyle({top:b+"px"});c.setStyle({left:a+"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(b,a,e){b=parseFloat(b);a=parseFloat(a);if(!this.minimized&&b<this.options.minWidth)b=this.options.minWidth;if(!this.minimized&&a<this.options.minHeight)a=this.options.minHeight;if(this.options.maxHeight&&a>this.options.maxHeight)a=this.options.maxHeight;if(this.options.maxWidth&&b>this.options.maxWidth)b=this.options.maxWidth;if(this.useTop&&this.useLeft&&Window.hasEffectLib&&Effect.ResizeWindow&&e)new Effect.ResizeWindow(this,null,null,b,a,{duration:Window.resizeEffectDuration});else{this.width=b;this.height=a;var d=this.currentDrag?this.currentDrag:this.element;d.setStyle({width:b+this.widthW+this.widthE+"px"});d.setStyle({height:a+this.heightN+this.heightS+"px"});if(!this.currentDrag||this.currentDrag==this.element){var c=$(this.element.id+"_content");c.setStyle({height:a+"px"});c.setStyle({width:b+"px"})}}},updateHeight:function(){this.setSize(this.width,this.content.scrollHeight,true)},updateWidth:function(){this.setSize(this.content.scrollWidth,this.height,true)},toFront:function(){this.element.style.zIndex<Windows.maxZIndex&&this.setZIndex(Windows.maxZIndex+1);this.iefix&&this._fixIEOverlapping()},getBounds:function(c){(!this.width||!this.height||!this.visible)&&this.computeBounds();var b=this.width,a=this.height;if(!c){b+=this.widthW+this.widthE;a+=this.heightN+this.heightS}var d=Object.extend(this.getLocation(),{width:b+"px",height:a+"px"});return d},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);this.centered&&this._center(this.centerTop,this.centerLeft)},show:function(a){this.visible=true;if(a){if(typeof this.overlayOpacity=="undefined"){var b=this;setTimeout(function(){b.show(a)},10);return}Windows.addModalWindow(this);this.modal=true;this.setZIndex(Windows.maxZIndex+1);Windows.unsetOverflow(this)}else!this.element.style.zIndex&&this.setZIndex(Windows.maxZIndex+1);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(a,c,b){this.centered=true;this.centerTop=c;this.centerLeft=b;this.show(a)},isVisible:function(){return this.visible},_center:function(b,a){var c=WindowUtilities.getWindowScroll(this.options.parent),d=WindowUtilities.getPageSize(this.options.parent);if(typeof b=="undefined")b=(d.windowHeight-(this.height+this.heightN+this.heightS))/2;b+=c.top;if(typeof a=="undefined")a=(d.windowWidth-(this.width+this.widthW+this.widthE))/2;a+=c.left;this.setLocation(b,a);this.toFront()},_recenter:function(){if(this.centered){var a=WindowUtilities.getPageSize(this.options.parent),b=WindowUtilities.getWindowScroll(this.options.parent);if(this.pageSize&&this.pageSize.windowWidth==a.windowWidth&&this.pageSize.windowHeight==a.windowHeight&&this.windowScroll.left==b.left&&this.windowScroll.top==b.top)return;this.pageSize=a;this.windowScroll=b;$("overlay_modal")&&$("overlay_modal").setStyle({height:a.pageHeight+"px"});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.options.hideEffect(this.element,this.options.hideEffectOptions);this.iefix&&this.iefix.hide();!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 b=$(this.getId()+"_row2");if(!this.minimized){this.minimized=true;var a=b.getDimensions().height;this.r2Height=a;var d=this.element.getHeight()-a;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow)new Effect.ResizeWindow(this,null,null,null,this.height-a,{duration:Window.resizeEffectDuration});else{this.height-=a;this.element.setStyle({height:d+"px"});b.hide()}if(!this.useTop){var c=parseFloat(this.element.getStyle("bottom"));this.element.setStyle({bottom:c+a+"px"})}}else{this.minimized=false;var a=this.r2Height;this.r2Height=null;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow)new Effect.ResizeWindow(this,null,null,null,this.height+a,{duration:Window.resizeEffectDuration});else{var d=this.element.getHeight()+a;this.height+=a;this.element.setStyle({height:d+"px"});b.show()}if(!this.useTop){var c=parseFloat(this.element.getStyle("bottom"));this.element.setStyle({bottom:c-a+"px"})}this.toFront()}this._notify("onMinimize");this._saveCookie()},maximize:function(){if(this.isMinimized()||this.resizing)return;Prototype.Browser.IE&&this.heightN==0&&this._getWindowBorderSize();if(this.storedLocation!=null){this._restoreLocation();this.iefix&&this.iefix.hide()}else{this._storeLocation();Windows.unsetOverflow(this);var d=WindowUtilities.getWindowScroll(this.options.parent),a=WindowUtilities.getPageSize(this.options.parent),b=d.left,c=d.top;if(this.options.parent!=document.body){d={top:0,left:0,bottom:0,right:0};var g=this.options.parent.getDimensions();a.windowWidth=g.width;a.windowHeight=g.height;c=0;b=0}if(this.constraint){a.windowWidth-=Math.max(0,this.constraintPad.left)+Math.max(0,this.constraintPad.right);a.windowHeight-=Math.max(0,this.constraintPad.top)+Math.max(0,this.constraintPad.bottom);b+=Math.max(0,this.constraintPad.left);c+=Math.max(0,this.constraintPad.top)}var f=a.windowWidth-this.widthW-this.widthE,e=a.windowHeight-this.heightN-this.heightS;if(this.useLeft&&this.useTop&&Window.hasEffectLib&&Effect.ResizeWindow)new Effect.ResizeWindow(this,c,b,f,e,{duration:Window.resizeEffectDuration});else{this.setSize(f,e);this.element.setStyle(this.useLeft?{left:b}:{right:b});this.element.setStyle(this.useTop?{top:c}:{bottom:c})}this.toFront();this.iefix&&this._fixIEOverlapping()}this._notify("onMaximize");this._saveCookie()},isMinimized:function(){return this.minimized},isMaximized:function(){return this.storedLocation!=null},setOpacity:function(a){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(a){var b=$(this.getId()+"_bottom");if(typeof a=="object")if(this.bottombar.firstChild)this.bottombar.replaceChild(a,this.bottombar.firstChild);else this.bottombar.appendChild(a);else this.bottombar.innerHTML=a},_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")}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(){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}Prototype.Browser.WebKit&&Prototype.Browser.WebKitVersion<420&&this.setSize(this.width,this.height);this.doMaximize&&this.maximize();this.doMinimize&&this.minimize()},_createHiddenDiv:function(c){var b=document.body,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){Prototype.Browser.IE&&this._getWindowBorderSize();var a=document.createElement("div");a.className="wired_frame "+this.options.className+"_wired_frame";a.style.position="absolute";this.options.parent.insertBefore(a,this.options.parent.firstChild);this.wiredElement=$(a)}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 b=this.element.getDimensions();this.wiredElement.setStyle({width:b.width+"px",height:b.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;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:.5},overlayHideEffectOptions:{duration:.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){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(){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){a&&a.close()})},minimize:function(c,b){var a=this.getWindow(c);a&&a.visible&&a.minimize();Event.stop(b)},maximize:function(c,b){var a=this.getWindow(c);a&&a.visible&&a.maximize();Event.stop(b)},close:function(c,a){var b=this.getWindow(c);b&&b.close();a&&Event.stop(a)},blur:function(b){var a=this.getWindow(b);if(!a)return;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;this.focusedWindow&&this.blur(this.focusedWindow.getId());a.options.focusClassName&&a.changeClassName(a.options.focusClassName);this.focusedWindow=a;a._notify("onFocus")},unsetOverflow:function(a){this.windows.each(function(a){a.oldOverflow=a.getContent().getStyle("overflow")||"auto"});a&&a.oldOverflow&&a.getContent().setStyle({overflow:a.oldOverflow})},resetOverflow:function(){this.windows.each(function(a){a.oldOverflow&&a.getContent().setStyle({overflow:a.oldOverflow})})},updateZindex:function(a,b){if(a>this.maxZIndex){this.maxZIndex=a;this.focusedWindow&&this.blur(this.focusedWindow.getId())}this.focusedWindow=b;this.focusedWindow&&this.focus(this.focusedWindow.getId())}},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 f=a.okLabel?a.okLabel:"Ok",e=a.cancelLabel?a.cancelLabel:"Cancel";a=Object.extend(a,a.windowParameters||{});a.windowParameters=a.windowParameters||{};a.className=a.className||"alert";var d="class ='"+(a.buttonClass?a.buttonClass+" ":"")+" ok_button'",c="class ='"+(a.buttonClass?a.buttonClass+" ":"")+" cancel_button'",b="      <div class='"+a.className+"_message'>"+b+"</div>        <div class='"+a.className+"_buttons'>          <input type='button' value='"+f+"' onclick='Dialog.okCallback()' "+d+"/>          <input type='button' value='"+e+"' onclick='Dialog.cancelCallback()' "+c+"/>        </div>    ";return this._openDialog(b,a)},alert:function(b,a){if(b&&typeof b!="string"){Dialog._runAjaxRequest(b,a,Dialog.alert);return}b=b||"";a=a||{};var d=a.okLabel?a.okLabel:"Ok";a=Object.extend(a,a.windowParameters||{});a.windowParameters=a.windowParameters||{};a.className=a.className||"alert";var c="class ='"+(a.buttonClass?a.buttonClass+" ":"")+" ok_button'",b="      <div class='"+a.className+"_message'>"+b+"</div>        <div class='"+a.className+"_buttons'>          <input type='button' value='"+d+"' onclick='Dialog.okCallback()' "+c+"/>        </div>";return this._openDialog(b,a)},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,a){var e=a.className;if(!a.height&&!a.width)a.width=WindowUtilities.getPageSize(a.options.parent||document.body).pageWidth/2;if(a.id)this.dialogId=a.id;else{var f=new Date;this.dialogId="modal_dialog_"+f.getTime();a.id=this.dialogId}if(!a.height||!a.width){var d=WindowUtilities._computeSize(c,this.dialogId,a.width,a.height,5,e);if(a.height)a.width=d+5;else a.height=d+5}a.effectOptions=a.effectOptions;a.resizable=a.resizable||false;a.minimizable=a.minimizable||false;a.maximizable=a.maximizable||false;a.draggable=a.draggable||false;a.closable=a.closable||false;var b=new Window(a);b.getContent().innerHTML=c;b.showCenter(true,a.top,a.left);b.setDestroyOnClose();b.cancelCallback=a.onCancel||a.cancel;b.okCallback=a.onOk||a.ok;return b},_getAjaxContent:function(a){Dialog.callFunc(a.responseText,Dialog.parameters)},_runAjaxRequest:function(a,b,c){if(a.options==null)a.options={};Dialog.onCompleteFunc=a.options.onComplete;Dialog.parameters=b;Dialog.callFunc=c;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(a){a.onclick=null});a.close()}},cancelCallback:function(){var a=Windows.focusedWindow;$$("#"+a.getId()+" input").each(function(a){a.onclick=null});a.close();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(a){var T,L,W,H;a=a||document.body;if(a!=document.body){T=a.scrollTop;L=a.scrollLeft;W=a.scrollWidth;H=a.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(c){c=c||document.body;var b,a,f,g;if(c!=document.body){b=c.getWidth();a=c.getHeight();g=c.scrollWidth;f=c.scrollHeight}else{var d,e;if(window.innerHeight&&window.scrollMaxY){d=document.body.scrollWidth;e=window.innerHeight+window.scrollMaxY}else if(document.body.scrollHeight>document.body.offsetHeight){d=document.body.scrollWidth;e=document.body.scrollHeight}else{d=document.body.offsetWidth;e=document.body.offsetHeight}if(self.innerHeight){b=self.innerWidth;a=self.innerHeight}else if(document.documentElement&&document.documentElement.clientHeight){b=document.documentElement.clientWidth;a=document.documentElement.clientHeight}else if(document.body){b=document.body.clientWidth;a=document.body.clientHeight}if(e<a)f=a;else f=e;if(d<b)g=b;else g=d}return{pageWidth:g,pageHeight:f,windowWidth:b,windowHeight:a}},disableScreen:function(a,b,c,d,e){WindowUtilities.initLightbox(b,a,function(){this._disableScreen(a,b,c,d)}.bind(this),e||document.body)},_disableScreen:function(f,d,b,c){var a=$(d),e=WindowUtilities.getPageSize(a.parentNode);if(c&&Prototype.Browser.IE){WindowUtilities._hideSelect();WindowUtilities._showSelect(c)}a.style.height=e.pageHeight+"px";a.style.display="none";if(d=="overlay_modal"&&Window.hasEffectLib&&Windows.overlayShowEffectOptions){a.overlayOpacity=b;new Effect.Appear(a,Object.extend({from:0,to:b},Windows.overlayShowEffectOptions))}else a.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)}b!="__invisible__"&&WindowUtilities._showSelect()}},_hideSelect:function(a){if(Prototype.Browser.IE){a=a==null?"":"#"+a+" ";$$(a+"select").each(function(a){if(!WindowUtilities.isDefined(a.oldVisibility)){a.oldVisibility=a.style.visibility?a.style.visibility:"visible";a.style.visibility="hidden"}})}},_showSelect:function(a){if(Prototype.Browser.IE){a=a==null?"":"#"+a+" ";$$(a+"select").each(function(a){if(WindowUtilities.isDefined(a.oldVisibility)){try{a.style.visibility=a.oldVisibility}catch(b){a.style.visibility="visible"}a.oldVisibility=null}else if(a.style.visibility)a.style.visibility="visible"})}},isDefined:function(a){return typeof a!="undefined"&&a!=null},initLightbox:function(b,e,c,d){if($(b)){Element.setStyle(b,{zIndex:Windows.maxZIndex+1});Windows.maxZIndex++;c()}else{var a=document.createElement("div");a.setAttribute("id",b);a.className="overlay_"+e;a.style.display="none";a.style.position="absolute";a.style.top="0";a.style.left="0";a.style.zIndex=Windows.maxZIndex+1;Windows.maxZIndex++;a.style.width="100%";d.insertBefore(a,d.firstChild);if(Prototype.Browser.WebKit&&b=="overlay_modal")setTimeout(function(){c()},10);else c()}},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(e){var b=document.cookie,c=e+"=",a=b.indexOf("; "+c);if(a==-1){a=b.indexOf(c);if(a!=0)return null}else a+=2;var d=document.cookie.indexOf(";",a);if(d==-1)d=b.length;return unescape(b.substring(a+c.length,d))},_computeSize:function(g,i,h,c,e,f){var b=document.body,a=document.createElement("div");a.setAttribute("id",i);a.className=f+"_content";if(c)a.style.height=c+"px";else a.style.width=h+"px";a.style.position="absolute";a.style.top="0";a.style.left="0";a.style.display="none";a.innerHTML=g;b.insertBefore(a,b.firstChild);var d;if(c)d=$(a).getDimensions().width+e;else d=$(a).getDimensions().height+e;b.removeChild(a);return d}}
