var Window=Class.create();Window.prototype={initialize:function(id,parameters){this.hasEffectLib=String.prototype.parseColor!=null;this.minWidth=parameters.minWidth||100;this.minHeight=parameters.minHeight||100;this.maxWidth=parameters.maxWidth;this.maxHeight=parameters.maxHeight;this.showEffect=parameters.showEffect||(this.hasEffectLib?Effect.Appear:Element.show);this.hideEffect=parameters.hideEffect||(this.hasEffectLib?Effect.Fade:Element.hide);var resizable=parameters.resizable!=null?parameters.resizable:true;var className=parameters.className!=null?parameters.className:"dialog";this.element=this.createWindow(id,className,resizable,parameters.title,parameters.url);this.isIFrame=parameters.url!=null;this.eventMouseDown=this.initDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.updateDrag.bindAsEventListener(this);this.topbar=$(this.element.id+"_top");Event.observe(this.topbar,"mousedown",this.eventMouseDown);if(resizable){this.sizer=$(this.element.id+"_sizer");Event.observe(this.sizer,"mousedown",this.eventMouseDown);};var top=parseFloat(parameters.top)||10;var width=parseFloat(parameters.width)||200;var height=parseFloat(parameters.height)||200;if(parameters.left!=null)Element.setStyle(this.element,{left:parseFloat(parameters.left)+'px'});if(parameters.right!=null)Element.setStyle(this.element,{right:parseFloat(parameters.right)+'px'});if(parameters.top!=null)Element.setStyle(this.element,{top:parameters.top+'px'});if(parameters.bottom!=null)Element.setStyle(this.element,{bottom:parameters.bottom+'px'});this.setSize(width,height);if(parameters.opacity)this.setOpacity(parameters.opacity);if(parameters.zIndex){Element.setStyle(this.element,{zIndex:parameters.zIndex});};Windows.register(this);},destroy:function(){Event.stopObserving(this.topbar,"mousedown",this.eventMouseDown);if(this.sizer)Event.stopObserving(this.sizer,"mousedown",this.eventMouseDown);var objBody=document.getElementsByTagName("body").item(0);objBody.removeChild(this.element);Windows.unregister(this);},getContent:function(){return $(this.element.id+"_content");},getId:function(){return this.element.id;},initDrag:function(event){this.pointer=[Event.pointerX(event),Event.pointerY(event)];this.doResize=false;var closeButton=$(this.getId()+'_close');if(closeButton&&Position.within(closeButton,this.pointer[0],this.pointer[1])){return;}if(this.sizer&&Position.within(this.sizer,this.pointer[0],this.pointer[1])){this.doResize=true;}Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);if(this.isIFrame){var objBody=document.getElementsByTagName("body").item(0);var div=document.createElement("div");div.style.position="absolute";div.style.top="0px";div.style.bottom="0px";div.style.zIndex="10000";div.style.width=(this.width+100)+"px";div.style.height=(this.height+100)+"px";this.element.appendChild(div);this.tmpDiv=div;}this.toFront();Event.stop(event);},updateDrag:function(event){var pointer=[Event.pointerX(event),Event.pointerY(event)];var dx=pointer[0]-this.pointer[0];var dy=pointer[1]-this.pointer[1];this.pointer=pointer;if(this.doResize){var width=parseFloat(Element.getStyle(this.element,'width'));var height=parseFloat(Element.getStyle(this.element,'height'));width+=dx;height+=dy;var right=Element.getStyle(this.element,'right');if(right!=null)Element.setStyle(this.element,{right:(parseFloat(right)-dx)+'px'});var bottom=Element.getStyle(this.element,'bottom');if(bottom!=null)Element.setStyle(this.element,{bottom:(parseFloat(bottom)-dy)+'px'});this.setSize(width,height)}else{var top=Element.getStyle(this.element,'top');var left=Element.getStyle(this.element,'left');if(left!=null){left=parseFloat(left)+dx;Element.setStyle(this.element,{left:left+'px'});}else{var right=Element.getStyle(this.element,'right');right=parseFloat(right)-dx;Element.setStyle(this.element,{right:right+'px'});}if(top!=null){top=parseFloat(top)+dy;Element.setStyle(this.element,{top:top+'px'});}else{var bottom=Element.getStyle(this.element,'bottom');bottom=parseFloat(bottom)-dy;Element.setStyle(this.element,{bottom:bottom+'px'});}};Event.stop(event);},endDrag:function(event){Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);if(this.isIFrame){this.tmpDiv.parentNode.removeChild(this.tmpDiv);this.tmpDiv=null;}Event.stop(event);},createWindow:function(id,className,resizable,title,url){var objBody=document.getElementsByTagName("body").item(0);win=document.createElement("div");win.setAttribute('id',id);win.className="dialog";if(!title)title="&nbsp;";var content;if(url)content="<IFRAME id=\""+id+"_content\" SRC=\""+url+"\" > </IFRAME>";else content="<DIV id=\""+id+"_content\" class=\""+className+"_content\"> content</DIV>"; win.innerHTML="<DIV class=\""+className+"_close\" id=\""+id+"_close\" onclick=\"Windows.close('"+id+"')\"> </DIV><TABLE background='#F00' border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" id=\""+id+"_header\"><TR id=\""+id+"_row1\"><TD><TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" id=\""+id+"_top\"><TR><TD id=\""+id+"_nw\"  class=\""+className+"_nw\"></TD><TD class=\""+className+"_n\"  valign=\"middle\"><DIV class=\""+className+"_title\">"+title+" </DIV></TD><TD class=\""+className+"_ne\"> </TD></TR></TABLE></TD></TR><TR id=\""+id+"_row2\"><TD>				<TABLE class=\""+className+"der=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><TR><TD class=\""+className+"_w\"><DIV class=\""+className+"_w\"> </TD><TD class=\""+className+"_content\">"+content+"</TD><TD class=\""+className+"_e\"><DIV class=\""+className+"_e\"></TD></TR></TABLE></TD></TR><TR id=\""+id+"_row3\"><TD><TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" id=\""+id+"_bottom\"><TR><TD class=\""+className+"_sw\" id=\""+id+"_sw\"  > </TD><TD class=\""+className+"_s\" valign=\"middle\">&nbsp;</TD><TD class=\""+className+"_se\"> "+(resizable?"<DIV id=\""+id+"_sizer\" class=\""+className+"_sizer\"></DIV>":"")+"</TD></TR></TABLE></TD></TR></TABLE>";Element.hide(win);objBody.insertBefore(win,objBody.firstChild);return win;},setLocation:function(top,left){Element.setStyle(this.element,{top:top+'%'});Element.setStyle(this.element,{left:left+'%'});},setSize:function(width,height){if(width<this.minWidth)width=this.minWidth;if(height<this.minHeight)height=this.minHeight;if(this.maxHeight&&height>this.maxHeight)height=this.maxHeight;if(this.minHeight&&height<this.minHeight)height=this.minHeight;this.width=width;this.height=height;Element.setStyle(this.element,{width:width+'px'});Element.setStyle(this.element,{height:height+'px'});var content=$(this.element.id+'_content');Element.setStyle(content,{height:height+'px'});Element.setStyle(content,{width:width+'px'});},toFront:function(){windows=document.getElementsByClassName("dialog");var maxIndex=0;for(i=0;i<windows.length;i++){if(maxIndex<parseFloat(windows[i].style.zIndex))maxIndex=windows[i].style.zIndex;}this.element.style.zIndex=parseFloat(maxIndex)+1;},show:function(){this.setSize(this.width,this.height);this.showEffect(this.element);},showCenter:function(){this.setSize(this.width,this.height);var arrayPageSize=getPageSize();var arrayPageScroll=getPageScroll();this.element.style.top=(arrayPageScroll[1]+((arrayPageSize[3]-this.height)/2)+'px');this.element.style.left=(((arrayPageSize[0]-this.width)/2)+'px');this.showEffect(this.element);},hide:function(){if(Element.getStyle(this.element,'display')!='none'){Element.setStyle(this.getContent(),{overflow:"hidden"});this.hideEffect(this.element);}},setOpacity:function(opacity){if(Element.setOpacity)Element.setOpacity(this.element,opacity);}};var Windows={windows:[],getWindow:function(id){return this.windows.detect(function(d){return d.getId()==id});},register:function(win){this.windows.push(win);},unregister:function(win){this.windows=this.windows.reject(function(d){return d==win});},close:function(id){win=this.getWindow(id);if(win)win.hide();}};function getPageScroll(){var yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;}else if(document.body){yScroll=document.body.scrollTop;};arrayPageScroll=new Array('',yScroll);return arrayPageScroll;};function getPageSize(){var xScroll,yScroll;var windowWidth,windowHeight;if(window.innerHeight&&window.scrollMaxY){xScroll=document.body.scrollWidth;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}if(self.innerHeight){windowWidth=self.innerWidth;windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}if(xScroll<windowWidth){pageWidth=windowWidth;}else{pageWidth=xScroll;}arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight);return arrayPageSize;}