
Object.extend(Element,{getWidth:function(element){element=$(element);return element.offsetWidth;},setWidth:function(element,w){element=$(element);element.style.width=w+"px";},setHeight:function(element,h){element=$(element);element.style.height=h+"px";},setTop:function(element,t){element=$(element);element.style.top=t+"px";},setLeft:function(element,l){element=$(element);element.style.left=l+"px";},setSrc:function(element,src){element=$(element);element.src=src;},setHref:function(element,href){element=$(element);element.href=href;},setInnerHTML:function(element,content){element=$(element);element.innerHTML=content;}});var Modalbox=Class.create();Modalbox.prototype={selector:'',ie:false,ajaxRequest:false,requestOptions:{},initialize:function(selector,requestOptions){this.ie=!(document.defaultView);this.selector=selector;Object.extend(this.requestOptions,requestOptions||{});this.updateElementList();var objBody=document.getElementsByTagName("body").item(0);var objOverlay=document.createElement("div");objOverlay.setAttribute('id','modal_overlay');objOverlay.style.display='none';objOverlay.onclick=function(){myModalbox.end();};objBody.appendChild(objOverlay);var objModalbox=document.createElement("div");objModalbox.setAttribute('id','modal_container');objModalbox.style.display='none';objBody.appendChild(objModalbox);},updateElementList:function(){$$(this.selector).each(function(elm){elm.onclick=function(){myModalbox.start(this,elm);return false;};});},start:function(modalobj,elm){if(this.ie){this.hideSelectBoxes();this.hideFlash();}
var xy=$(elm).cumulativeOffset();$('modal_container').setStyle({position:'absolute',top:xy[1]+0+'px',left:xy[0]+0+'px',zIndex:99});$('modal_overlay').setStyle({position:'absolute',zIndex:98,top:"0px",left:"0px"});var arrayPageSize=getPageSize();Element.setWidth('modal_overlay',arrayPageSize[0]);Element.setHeight('modal_overlay',arrayPageSize[1]);var options={method:'post',evalJS:true,onSuccess:function(request){var response=request.responseText;if(typeof(response)=='string')
$('modal_container').update(response);else{$('modal_container').update('');(response.each)?response.each(function(node){$('modal_container').appendChild(node);}):$('modal_container').appendChild(node);}
$('modal_container').show();this.ajaxRequest=false;Event.observe($(document.getElementsByTagName('body')[0]),'keydown',this.onKeyDown);$('modal_overlay').show();}};Object.extend(options,this.requestOptions);this.ajaxRequest=new Ajax.Request($(elm).href,options);},end:function(){if(this.ajaxRequest)
this.ajaxRequest.transport.abort();Event.stopObserving(window,'keyup',this.onKeyDown);$('modal_overlay').hide();$('modal_container').hide();$('modal_container').update('');if(this.ie){this.showSelectBoxes();this.showFlash();}},onKeyDown:function(event){if(event.keyCode==Event.KEY_ESC)
myModalbox.end();},showSelectBoxes:function(){var selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="visible";}},hideSelectBoxes:function(){var selects=document.getElementsByTagName("select");for(i=0;i!=selects.length;i++){selects[i].style.visibility="hidden";}},showFlash:function(){var flashObjects=document.getElementsByTagName("object");for(i=0;i<flashObjects.length;i++){flashObjects[i].style.visibility="visible";}
var flashEmbeds=document.getElementsByTagName("embed");for(i=0;i<flashEmbeds.length;i++){flashEmbeds[i].style.visibility="visible";}},hideFlash:function(){var flashObjects=document.getElementsByTagName("object");for(i=0;i<flashObjects.length;i++){flashObjects[i].style.visibility="hidden";}
var flashEmbeds=document.getElementsByTagName("embed");for(i=0;i<flashEmbeds.length;i++){flashEmbeds[i].style.visibility="hidden";}}};if(typeof(getPageSize)=='undefined'){function getPageSize(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=window.innerWidth+window.scrollMaxX;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;}
var windowWidth,windowHeight;if(self.innerHeight){if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;}else{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=xScroll;}else{pageWidth=windowWidth;}
arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight);return arrayPageSize;}}
