var Window=Class.create();Window.prototype={initialize:function(c,j){this.hasEffectLib=String.prototype.parseColor!=null;this.minWidth=j.minWidth||100;this.minHeight=j.minHeight||20;this.maxWidth=j.maxWidth;this.maxHeight=j.maxHeight;this.showEffect=j.showEffect||(this.hasEffectLib?Effect.Appear:Element.show);this.hideEffect=j.hideEffect||(this.hasEffectLib?Effect.Fade:Element.hide);this.showEffectOptions=j.showEffectOptions||j.effectOptions;this.hideEffectOptions=j.hideEffectOptions||j.effectOptions;this.draggable=j.draggable!=null?j.draggable:true;this.userData=j.userData;var a=j.resizable!=null?j.resizable:true;var k=j.closable!=null?j.closable:true;var e=j.minimizable!=null?j.minimizable:true;var d=j.maximizable!=null?j.maximizable:true;var g=j.className!=null?j.className:"dialog";this.className=g;var h=j.parent||document.getElementsByTagName("body").item(0);this.element=this.createWindow(c,g,h,a,k,e,d,j.title,j.url,j.onload);this.isIFrame=j.url!=null;this.eventMouseDown=this.initDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.updateDrag.bindAsEventListener(this);this.eventKeyPress=this.keyPress.bindAsEventListener(this);this.eventOnLoad=this._getWindowBorderSize.bindAsEventListener(this);this.topbar=$(this.element.id+"_top");this.bottombar=$(this.element.id+"_bottom");Event.observe(this.topbar,"mousedown",this.eventMouseDown);Event.observe(this.bottombar,"mousedown",this.eventMouseDown);Event.observe(window,"load",this.eventOnLoad);if(this.draggable){this.bottombar.addClassName("bottom_draggable");this.topbar.addClassName("top_draggable")}var f=[0,0];if(a){this.sizer=$(this.element.id+"_sizer");Event.observe(this.sizer,"mousedown",this.eventMouseDown)}var b=parseFloat(j.width)||200;var i=parseFloat(j.height)||200;if(j.left!=null){this.element.setStyle({left:parseFloat(j.left)+f[0]+"px"});this.useLeft=true}if(j.right!=null){this.element.setStyle({right:parseFloat(j.right)+"px"});this.useLeft=false}if(j.top!=null){this.element.setStyle({top:parseFloat(j.top)+"px"});this.useTop=true}if(j.bottom!=null){this.element.setStyle({bottom:parseFloat(j.bottom)+"px"});this.useTop=false}this.storedLocation=null;if(j.opacity){this.setOpacity(j.opacity)}if(j.zIndex){this.setZIndex(j.zIndex)}this.destroyOnClose=false;this._getWindowBorderSize();this.setSize(b,i);Windows.register(this)},destroy:function(){Windows.notify("onDestroy",this);Event.stopObserving(this.topbar,"mousedown",this.eventMouseDown);Event.stopObserving(this.bottombar,"mousedown",this.eventMouseDown);Event.stopObserving(window,"load",this.eventOnLoad);if(this.sizer){Event.stopObserving(this.sizer,"mousedown",this.eventMouseDown)}if(this.iefix){Element.hide(this.iefix)}Element.remove(this.element);Windows.unregister(this)},setDelegate:function(a){this.delegate=a},getDelegate:function(){return this.delegate},getContent:function(){return $(this.element.id+"_content")},setContent:function(g,f,a){var e=null;var c=null;if(f){e=Element.getDimensions(g)}if(a){c=Position.cumulativeOffset($(g))}var b=this.getContent();b.appendChild($(g));if(f){this.setSize(e.width,e.height)}if(a){this.setLocation(c[1]-this.heightN,c[0]-this.widthW)}},setCookie:function(b,c,n,e,a){b=b||this.element.id;this.cookie=[b,c,n,e,a];var l=WindowUtilities.getCookie(b);if(l){var m=l.split(",");var j=m[0].split(":");var i=m[1].split(":");var k=parseFloat(m[2]),f=parseFloat(m[3]);var g=m[4];var d=m[5];this.setSize(k,f);if(g=="true"){this.minimize()}else{if(d=="true"){this.doMaximize=true}}this.useLeft=j[0]=="l";this.useTop=i[0]=="t";this.element.setStyle(this.useLeft?{left:j[1]}:{right:j[1]});this.element.setStyle(this.useTop?{top:i[1]}:{bottom:i[1]})}},getId:function(){return this.element.id},setDestroyOnClose:function(){this.destroyOnClose=true},initDrag:function(c){this.pointer=[Event.pointerX(c),Event.pointerY(c)];this.doResize=false;var a=$(this.getId()+"_close");if(a&&Position.within(a,this.pointer[0],this.pointer[1])){return}this.toFront();if(this.sizer&&Position.within(this.sizer,this.pointer[0],this.pointer[1])){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"));Windows.notify("onStartResize",this)}else{if(!this.draggable){return}Windows.notify("onStartMove",this)}Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);if(this.isIFrame){var b=document.getElementsByTagName("body").item(0);var d=document.createElement("div");d.style.position="absolute";d.style.top=this.heightN+"px";d.style.left=this.widthW+"px";d.style.zIndex=Windows.maxZIndex;d.style.height=this.height+"px";d.style.width=this.width+"px";this.element.appendChild(d);this.tmpDiv=d}Event.stop(c)},updateDrag:function(c){var d=[Event.pointerX(c),Event.pointerY(c)];var b=d[0]-this.pointer[0];var a=d[1]-this.pointer[1];if(this.doResize){this.setSize(this.widthOrg+b,this.heightOrg+a);b=this.width-this.widthOrg;a=this.height-this.heightOrg;if(!this.useLeft){this.element.setStyle({right:(this.rightOrg-b)+"px"})}if(!this.useTop){this.element.setStyle({bottom:(this.bottomOrg-a)+"px"})}if(this.tmpDiv){Element.setStyle(this.tmpDiv,{width:this.width+"px",height:this.height+"px"})}}else{this.pointer=d;if(this.useLeft){this.element.setStyle({left:parseFloat(this.element.getStyle("left"))+b+"px"})}else{this.element.setStyle({right:parseFloat(this.element.getStyle("right"))-b+"px"})}if(this.useTop){this.element.setStyle({top:parseFloat(this.element.getStyle("top"))+a+"px"})}else{this.element.setStyle({bottom:parseFloat(this.element.getStyle("bottom"))-a+"px"})}}if(this.iefix){this._fixIEOverlapping()}this._removeStoreLocation();Event.stop(c)},endDrag:function(a){if(this.doResize){Windows.notify("onEndResize",this)}else{Windows.notify("onEndMove",this)}Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);if(this.isIFrame){this.tmpDiv.parentNode.removeChild(this.tmpDiv);this.tmpDiv=null}this._saveCookie();Event.stop(a)},keyPress:function(a){},createWindow:function(c,h,j,b,k,e,d,i,a,f){win=document.createElement("div");win.setAttribute("id",c);win.className="dialog";if(!i){i="&nbsp;"}var g;if(a){g='<IFRAME name="'+c+'_content"  id="'+c+'_content" SRC="'+a+'" onload="'+f+'" > </IFRAME>'}else{g='<DIV id="'+c+'_content" class="'+h+'_content" onload="'+f+'"> </DIV>'}win.innerHTML="		<div class='"+h+"_close' id='"+c+"_close' onclick='Windows.close(\""+c+"\")'> </div>		<div class='"+h+"_minimize' id='"+c+"_minimize' onclick='Windows.minimize(\""+c+"\")'> </div>		<div class='"+h+"_maximize' id='"+c+"_maximize' onclick='Windows.maximize(\""+c+"\")'> </div>		<table id='"+c+"_header' class='"+h+"_header'>			<tr id='"+c+"_row1'>				<td>					<table>						<tr>							<td id='"+c+"_nw' class='"+h+"_nw'><div class='"+h+"_nw'> </div></td>							<td class='"+h+"_n'  valign='middle'><div id='"+c+"_top' class='"+h+"_title'>"+i+"</div></td>							<td class='"+h+"_ne'> <div class='"+h+"_ne'></div></td>						</tr>					</table>				</td>			</tr>			<tr id='"+c+"_row2'>				<td>					<table >						<tr>							<td class='"+h+"_w'><div class='"+h+"_w'> </div></td>							<td class='"+h+"_content'>"+g+"</td>							<td class='"+h+"_e'><div class='"+h+"_e'> </div></td>						</tr>					</table>				</td>			</tr>			<tr id='"+c+"_row3'>				<td>					<table>						<tr>							<td class='"+h+"_sw' id='"+c+"_sw'><div class='"+h+"_sw'></div> </td>							<td class='"+h+"_s'><div  id='"+c+"_bottom' class='"+h+"_s'></div></td>							<td class='"+h+"_se'>"+(b?"<div id='"+c+"_sizer' class='"+h+"_sizer'></div>":"<div class='"+h+"_se'></div>")+"</td>						</tr>					</table>				</td>			</tr>		</table>		";Element.hide(win);j.insertBefore(win,j.firstChild);if(!k){Element.hide(c+"_close")}if(!e){Element.hide(c+"_minimize")}if(!d){Element.hide(c+"_maximize")}return win},setLocation:function(b,a){if(b<0){b=0}if(a<0){a=0}this.element.setStyle({top:b+"px"});this.element.setStyle({left:a+"px"});this.useLeft=true;this.useTop=true},setSize:function(b,a){if(b<this.minWidth){b=this.minWidth}if(a<this.minHeight){a=this.minHeight}if(this.maxHeight&&a>this.maxHeight){a=this.maxHeight}if(this.maxWidth&&b>this.maxWidth){b=this.maxWidth}this.width=b;this.height=a;this.element.setStyle({width:b+this.widthW+this.widthE+"px"});this.element.setStyle({height:a+this.heightN+this.heightS+"px"});var c=$(this.element.id+"_content");c.setStyle({height:a+"px"});c.setStyle({width:b+"px"})},toFront:function(){this.setZIndex(Windows.maxZIndex+20)},show:function(a){if(a){WindowUtilities.disableScreen(this.className);this.modal=true;this.setZIndex(Windows.maxZIndex+20);Windows.unsetOverflow(this);Event.observe(document,"keypress",this.eventKeyPress)}if(this.oldStyle){this.getContent().setStyle({overflow:this.oldStyle})}this.setSize(this.width,this.height);if(this.showEffect!=Element.show&&this.showEffectOptions){this.showEffect(this.element,this.showEffectOptions)}else{this.showEffect(this.element)}this._checkIEOverlapping()},showCenter:function(a){this.setSize(this.width,this.height);this.center();this.show(a)},center:function(){var b=WindowUtilities.getWindowScroll();var a=WindowUtilities.getPageSize();this.setLocation(b.top+(a.windowHeight-(this.height+this.heightN+this.heightS))/2,b.left+(a.windowWidth-(this.width+this.widthW+this.widthE))/2);this.toFront()},hide:function(){if(this.modal){WindowUtilities.enableScreen();Windows.resetOverflow();Event.stopObserving(document,"keypress",this.eventKeyPress)}this.getContent().setStyle({overflow:"hidden"});this.oldStyle=this.getContent().getStyle("overflow");if(this.hideEffect!=Element.hide&&this.hideEffectOptions){this.hideEffect(this.element,this.hideEffectOptions)}else{this.hideEffect(this.element)}if(this.iefix){this.iefix.hide()}},minimize:function(){var b=$(this.getId()+"_row2");var a=$(this.getId()+"_row3");if(b.visible()){b.hide();a.hide()}else{b.show();a.show()}this._saveCookie()},maximize:function(){if(this.storedLocation!=null){this._restoreLocation();if(this.iefix){this.iefix.hide()}}else{this._storeLocation();Windows.unsetOverflow(this);var b=WindowUtilities.getWindowScroll();var a=WindowUtilities.getPageSize();this.element.setStyle(this.useLeft?{left:b.left}:{right:b.left});this.element.setStyle(this.useTop?{top:b.top}:{bottom:b.top});this.setSize(a.windowWidth-this.widthW-this.widthE,a.windowHeight-this.heightN-this.heightS);this.toFront();if(this.iefix){this._fixIEOverlapping()}}this._saveCookie()},isMinimized:function(){var a=$(this.getId()+"_row2");return !a.visible()},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="&nbsp;"}Element.update(this.element.id+"_top",a)},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(a){var b=this._createHiddenDiv(this.className+"_n");this.heightN=Element.getDimensions(b).height;b.parentNode.removeChild(b);var b=this._createHiddenDiv(this.className+"_s");this.heightS=Element.getDimensions(b).height;b.parentNode.removeChild(b);var b=this._createHiddenDiv(this.className+"_e");this.widthE=Element.getDimensions(b).width;b.parentNode.removeChild(b);var b=this._createHiddenDiv(this.className+"_w");this.widthW=Element.getDimensions(b).width;b.parentNode.removeChild(b);if(this.doMaximize){this.maximize()}},_createHiddenDiv:function(b){var a=document.getElementsByTagName("body").item(0);var c=document.createElement("div");c.setAttribute("id",this.element.id+"_tmp");c.className=b;c.style.display="none";c.innerHTML="";a.insertBefore(c,a.firstChild);return c},_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;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)}}};var Windows={windows:[],observers:[],focusedWindow:null,maxZIndex:0,addObserver:function(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})},register:function(a){this.windows.push(a)},unregister:function(a){this.windows=this.windows.reject(function(b){return b==a})},close:function(a){win=this.getWindow(a);if(win){if(win.getDelegate()&&!win.getDelegate().canClose(win)){return}this.notify("onClose",win);win.hide();if(win.destroyOnClose){win.destroy()}}},closeAll:function(){this.windows.each(function(a){Windows.close(a.getId())})},minimize:function(a){win=this.getWindow(a);win.minimize()},maximize:function(a){win=this.getWindow(a);win.maximize()},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}this.focusedWindow=b}};var Dialog={win:null,confirm:function(d,c){c=c||{};var f=c.okLabel?c.okLabel:"Ok";var a=c.cancelLabel?c.cancelLabel:"Cancel";var e=c.windowParameters||{};e.className=e.className||"alert";buttonClass=c.buttonClass?"class="+c.buttonClass:"";var b="			<div class='"+e.className+"_message'>"+d+"</div>				<div class='"+e.className+"_buttons'>					<input type='button' value='"+f+"' onclick='Dialog.okCallback()'"+buttonClass+"/>					<input type='button' value='"+a+"' onclick='Dialog.cancelCallback()"+buttonClass+"'/>				</div>		";this.openDialog(b,c);return this.win},alert:function(c,b){b=b||{};var e=b.okLabel?b.okLabel:"Ok";var d=b.windowParameters||{};d.className=d.className||"alert";buttonClass=b.buttonClass?"class="+b.buttonClass:"";var a="			<div class='"+d.className+"_message'>"+c+"</div>				<div class='"+d.className+"_buttons'>					<input type='button' value='"+e+"' onclick='Dialog.okCallback()"+buttonClass+"'/>				</div>";return this.openDialog(a,b)},info:function(d,c){c=c||{};c.windowParameters=c.windowParameters||{};var a=c.windowParameters.className||"alert";var b="<div id='modal_dialog_message' class='"+a+"_message'>"+d+"</div>";if(c.showProgress){b+="<div id='modal_dialog_progress' class='"+a+"_progress'>	</div>"}c.windowParameters.ok=null;c.windowParameters.cancel=null;c.windowParameters.className=a;return this.openDialog(b,c)},setInfoMessage:function(a){$("modal_dialog_message").update(a)},closeInfo:function(){Windows.close("modal_dialog")},openDialog:function(b,a){if(this.win){this.win.destroy()}var c=a&&a.windowParameters?a.windowParameters:{};c.resizable=c.resizable||false;c.effectOptions=c.effectOptions||{duration:1};this.win=new Window("modal_dialog",c);this.win.getContent().innerHTML=b;this.win.showCenter(true);this.win.cancelCallback=a.cancel;this.win.okCallback=a.ok;if(!this.eventResize){this.eventResize=this.recenter.bindAsEventListener(this)}Event.observe(window,"resize",this.eventResize);Event.observe(window,"scroll",this.eventResize);return this.win},okCallback:function(){this.win.hide();Event.stopObserving(window,"resize",this.eventResize);Event.stopObserving(window,"scroll",this.eventResize);if(this.win.okCallback){this.win.okCallback(this.win)}},cancelCallback:function(){this.win.hide();Event.stopObserving(window,"resize",this.eventResize);Event.stopObserving(window,"scroll",this.eventResize);if(this.win.cancelCallback){this.win.cancelCallback(this.win)}},recenter:function(b){var a=WindowUtilities.getPageSize();if($("overlay_modal")){$("overlay_modal").style.height=(a.pageHeight+"px")}this.win.center()}};var isIE=navigator.appVersion.match(/MSIE/)=="MSIE";var WindowUtilities={getWindowScroll:function(){var w=window;var T,L,W,H;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(){var e,a;if(window.innerHeight&&window.scrollMaxY){e=document.body.scrollWidth;a=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){e=document.body.scrollWidth;a=document.body.scrollHeight}else{e=document.body.offsetWidth;a=document.body.offsetHeight}}var c,f;if(self.innerHeight){c=self.innerWidth;f=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight){c=document.documentElement.clientWidth;f=document.documentElement.clientHeight}else{if(document.body){c=document.body.clientWidth;f=document.body.clientHeight}}}var d,b;if(a<f){d=f}else{d=a}if(e<c){b=c}else{b=e}return{pageWidth:b,pageHeight:d,windowWidth:c,windowHeight:f}},disableScreen:function(d){WindowUtilities.initLightbox(d);var c=document.getElementsByTagName("body").item(0);var e=$("overlay_modal");var a=WindowUtilities.getPageSize();if(isIE){selects=document.getElementsByTagName("select");for(var b=0;b!=selects.length;b++){selects[b].style.visibility="hidden"}}e.style.height=(a.pageHeight+"px");e.style.display="block"},enableScreen:function(){var b=$("overlay_modal");if(b){b.style.display="none";if(isIE){selects=document.getElementsByTagName("select");for(var a=0;a!=selects.length;a++){selects[a].style.visibility="visible"}}b.parentNode.removeChild(b)}},initLightbox:function(b){if($("overlay_modal")){Element.setStyle("overlay_modal",{zIndex:Windows.maxZIndex+10})}else{var a=document.getElementsByTagName("body").item(0);var c=document.createElement("div");c.setAttribute("id","overlay_modal");c.className="overlay_"+b;c.style.display="none";c.style.position="absolute";c.style.top="0";c.style.left="0";c.style.zIndex=Windows.maxZIndex+10;c.style.width="100%";a.insertBefore(c,a.firstChild)}},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(c){var b=document.cookie;var e=c+"=";var d=b.indexOf("; "+e);if(d==-1){d=b.indexOf(e);if(d!=0){return null}}else{d+=2}var a=document.cookie.indexOf(";",d);if(a==-1){a=b.length}return unescape(b.substring(d+e.length,a))}};