var Modalbox=new Class({options:{customclass:"ig-modaltype-default",width:null,height:null,position:{screen:{horizontal:"center",vertical:"middle"}},title:"",showtitle:true,closetext:window.translations["media-js-Close"],top:0,left:0,zindex:null,modalpadding:10,adopt:null,adoptclone:null,ismodal:true,draggable:true,fadein:true,fadeout:true,blanketcolor:"#000",blanketopacity:0.2,shadowcolor:"#000000",shadowopacity:0.7,shadowwidth:4,defaultfocus:null,preventScrolling:true,onOpen:Class.empty,onClose:Class.empty,onBeforeClose:Class.empty,onAdopt:Class.empty,onBeforeAdopt:Class.empty,onSetContents:Class.empty,onBeforeSetContents:Class.empty,onAdoptClone:Class.empty,onBeforeAdoptClone:Class.empty,onBeforeDrag:Class.empty,onStartDrag:Class.empty,onDrag:Class.empty,onDragComplete:Class.empty},initialize:function(c){var a=this;this.setOptions(c);this.randguid=Math.floor(Math.random()*1000000000);if(c.position&&c.position.absolute){this.options.position=c.position;this.options.preventScrolling=false;this.toppos=null}if(this.options.preventScrolling){var f=$(document.body);this.bodyoverflow=f.getStyle("overflow");f.setStyle("overflow","hidden")}if(!$("mymodalcontainer")){this.mymodalcontainer=new Element("div",{id:"mymodalcontainer"});this.mymodalcontainer.inject(document.body,"bottom")}else{this.mymodalcontainer=$("mymodalcontainer")}this.mymodal=new Element("div",{id:this.randguid+"mymodal","class":"modalcontainer"});this.mymodal.inject(this.mymodalcontainer,"bottom");if(this.options.zindex){this.mymodal.setStyle("z-index",this.options.zindex)}this.mymodal.modalobj=this;this.mymodalfront=new Element("div",{id:this.randguid+"mymodalfront","class":"modalfront"});if(this.options.width){this.mymodalfront.setStyle("width",this.options.width)}if(this.options.height){this.mymodalfront.setStyle("height",this.options.height)}this.mymodalfront.addClass(this.options.customclass);this.mymodalfront.setStyle("opacity",0);this.mymodalfront.inject(this.mymodal,"top");this.mymodalshad=new Element("div",{id:this.randguid+"mymodalshad","class":"modalshadow"});this.mymodalshad.inject(this.mymodal,"top");this.mymodalshad.setStyle("opacity",0);if(this.options.shadowcolor){this.mymodalshad.setStyle("background-color",this.options.shadowcolor)}if(this.options.showtitle){this.titlepart=new Element("div",{id:this.randguid+"titlepart","class":"modaltitle"});this.titlemessage=new Element("h1",{id:this.randguid+"titlemessage","class":"heading2"});this.titlemessage.injectInside(this.titlepart);this.titlemessagespan=new Element("span",{id:this.randguid+"title"}).set("html",this.options.title);this.titlemessagespan.injectInside(this.titlemessage);this.closebuttonspan=new Element("span",{"class":"meta"});this.closebuttonspan.injectInside(this.titlemessage);this.closebutton=new Element("a",{id:this.randguid+"closebutton","class":"closebutton"}).set("html",this.options.closetext);this.closebutton.injectInside(this.closebuttonspan);this.titlepart.injectInside(this.mymodalfront);this.closebutton.mymodaltarget=this;this.closebutton.onclick=function(){this.mymodaltarget.close();return false}}this.bodypart=new Element("div",{id:this.randguid+"bodypart","class":"modalbody"});this.bodypart.inject(this.mymodalfront,"bottom");if(typeof(this.options.modalpadding)!="undefined"){}if(this.options.ismodal){if($("blanket")){var g=$("blanket");if(g.boxes){g.boxes.push(this.randguid)}}else{var g=new Element("div",{id:"blanket","class":"modalblanket"});g.setStyle("opacity",0);if(this.options.blanketcolor){g.setStyle("background-color",this.options.blanketcolor)}g.inject(this.mymodalcontainer,"top");g.boxes=Array();g.boxes.push(this.randguid);if(this.options.fadein){var b=new Fx.Tween(g,{duration:200});b.start("opacity",this.options.blanketopacity);g.setStyles({height:screen.height})}else{g.setStyle("opacity",1)}}if(Browser.Engine.name=="trident"&&Browser.Engine.version<7){this.iframeshim=new Element("iframe",{src:"javascript:;",frameborder:"0",scrolling:"0"});this.iframeshim.setStyles({"z-index":"500",position:"absolute",left:"0",top:"0",width:"100%",filter:"progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)",height:screen.height});this.iframeshim.inject(this.mymodalcontainer,"top")}}if(this.options.fadein){var d=new Fx.Tween(this.mymodalfront,{duration:200});var e=new Fx.Tween(this.mymodalshad,{duration:200});e.obj=this;d.start("opacity",1);e.start("opacity",a.options.shadowopacity).chain(function(){if(this.obj.options.defaultfocus){if(this.obj.bodypart.getElement(this.obj.options.defaultfocus)){this.obj.bodypart.getElement(this.obj.options.defaultfocus).select()}}})}else{this.mymodalfront.setStyle("opacity",1);this.mymodalshad.setStyle("opacity",this.options.blanketopacity)}if(this.options.draggable){if(this.options.showtitle){this.mymodal.makeDraggable({handle:this.titlepart});this.titlepart.setStyle("cursor","move")}else{this.mymodal.makeDraggable({handle:this.mymodal});this.mymodal.setStyle("cursor","move")}}if(this.options.adoptclone){this.adoptclone(this.options.adoptclone)}if(this.options.adopt){this.adopt(this.options.adopt)}this.adjustposition();window.thismodal=this;this.fireEvent("onOpen")},close:function(){if(Browser.Engine.name=="trident"&&Browser.Engine.version<7){if(this.iframeshim&&this.iframeshim.dispose){this.iframeshim.dispose()}}this.fireEvent("onBeforeClose");var c=false;if($("blanket")){var d=$("blanket");if(d.boxes){for(var b=0;b<d.boxes.length;b++){if(d.boxes[b]==this.randguid){d.boxes.splice(b,1)}}if(d.boxes.length==0){c=true}}}if(this.options.fadeout){this.fadefxfront=new Fx.Tween(this.mymodalfront,{duration:200});this.fadefxshad=new Fx.Tween(this.mymodalshad,{duration:200});this.fadefxshad.obj=this;if($("blanket")){if(c){var a=new Fx.Tween($("blanket"),{duration:200});a.start("opacity",0)}}this.fadefxfront.start("opacity",0);this.fadefxshad.start("opacity",0).chain(function(){if(!this.obj.isclone){if(this.obj.options.adopt){this.obj.mymodalcontainer.adopt(this.obj.options.adopt);this.obj.options.adopt.addClass("hide")}}if($(this.obj.randguid+"mymodal")){$(this.obj.randguid+"mymodal").destroy()}if($("blanket")&&c){$("blanket").destroy()}});this.fireEvent("onClose")}else{if(!this.isclone){this.options.adopt.inject(this.mymodalcontainer,"top");this.options.adopt.addClass("hide")}if($(this.randguid+"mymodal")){$(this.randguid+"mymodal").destroy()}if($("blanket")&&c){$("blanket").destroy()}this.fireEvent("onClose")}if(this.options.preventScrolling){$(document.body).setStyle("overflow",this.bodyoverflow)}window.removeEvents("keyup")},setcontents:function(a){this.fireEvent("onBeforeSetContents");this.bodypart.innerHTML=a;this.adjustposition();this.fireEvent("setContents")},settitle:function(a){this.titlemessagespan.set("html",a)},adopt:function(a){a=$(a);this.isclone=false;a.removeClass("hide");this.fireEvent("onBeforeAdopt");this.bodypart.empty();this.bodypart.adopt(a);this.adjustposition();this.fireEvent("onAdopt")},adoptclone:function(c){c=$(c);this.isclone=true;this.fireEvent("onBeforeAdoptClone");var b=c;var e=b.clone();e.removeClass("hide");if(b.id){e.id=this.randguid+b.id}var g=b.getElementsByTagName("*");var d=e.getElementsByTagName("*");for(var a=0;a<g.length;a++){if(g[a].id){var f=g[a].id;d[a].id=this.randguid+f}d[a].onclick=g[a].onclick;d[a].onmouseover=g[a].onmouseover;d[a].onmouseout=g[a].onmouseout;d[a].onfocus=g[a].onfocus;d[a].onsubmit=g[a].onsubmit;d[a].onblur=g[a].onblur;d[a].onkeyup=g[a].onkeyup;d[a].className=g[a].className;d[a].dataobj=g[a].dataobj;if(d[a].isvalid){d[a].isvalid.length=0}}e.inject(this.bodypart,"top");if(typeof(applyvalidators)=="function"){applyvalidators(e)}if(typeof(applyformvalidation)=="function"){applyformvalidation(e)}if(typeof(jstrimspace)=="function"){jstrimspace()}this.adjustposition();this.fireEvent("onAdoptClone")},adjustposition:function(){var b={width:Window.getWidth(),height:Window.getHeight(),top:Window.getScrollTop(),left:Window.getScrollLeft(),right:Window.getScrollLeft()+Window.getWidth(),bottom:Window.getScrollTop()+Window.getHeight()};if(this.options.height){b.height=this.options.height}if(this.options.position.absolute){this.mymodal.setStyle("position","absolute");this.mymodal.setStyle("left",(Math.floor(Window.getWidth()/2)-(this.mymodalfront.getSize()["x"]/2)));var c=this.mymodalfront.getSize()["y"];var g=Window.getHeight();var d=Window.getScrollTop();if(this.options.position.absolute.top){d+=this.options.position.absolute.top}else{if(c<g){d+=(Math.floor(g/2)-Math.floor(c/2))}else{d+=20}}this.toppos=d;this.mymodal.setStyle("top",this.toppos);this.mymodal.setStyle("width",(this.mymodalfront.getSize()["x"]+this.options.shadowwidth));modalwidth=(this.mymodalfront.getSize()["x"]+this.options.shadowwidth);this.mymodal.setStyle("width",modalwidth)}if(this.options.position.screen){this.mymodal.setStyle("left",(Math.floor(Window.getWidth()/2)-(this.mymodalfront.getSize()["x"]/2)));var d=(Math.floor(Window.getHeight()/2)-(this.mymodalfront.getSize()["y"]/2));this.mymodal.setStyle("top",d<=this.options.shadowwidth?this.options.shadowwidth:d);this.mymodal.setStyle("width",(this.mymodalfront.getSize()["x"]+this.options.shadowwidth));c=(this.mymodalfront.getSize()["y"]+this.options.shadowwidth);modalwidth=(this.mymodalfront.getSize()["x"]+this.options.shadowwidth);if(c>b.height){this.mymodalfront.setStyle("height",b.height-this.options.shadowwidth*2);this.bodypart.setStyle("height",b.height-this.options.shadowwidth*2-this.titlepart.getSize()["y"]-this.options.modalpadding*2);this.bodypart.setStyle("overflow","auto")}else{this.mymodal.setStyle("height",c)}this.mymodal.setStyle("width",modalwidth)}if(this.options.position.align){var e=this.options.position.align.element;var a=e.getCoordinates();this.mymodal.setStyle("position","absolute");this.mymodal.setStyle("width",(this.mymodalfront.getSize()["x"]+this.options.shadowwidth));this.mymodal.setStyle("height",(this.mymodalfront.getSize()["y"]+this.options.shadowwidth));var f=this.mymodal.getCoordinates();if(f.width>(b.width-a.right)){if(f.height>(b.height-(a.bottom-Window.getScrollTop()))){this.mymodal.setStyle("left",a.left-f.width+this.options.shadowwidth);this.mymodal.setStyle("top",a.bottom-f.height+this.options.shadowwidth)}else{this.mymodal.setStyle("left",a.left-f.width+this.options.shadowwidth);this.mymodal.setStyle("top",a.top+this.options.shadowwidth)}}else{if(f.height>(b.height-(a.top-Window.getScrollTop()))){this.mymodal.setStyle("left",a.right+this.options.shadowwidth);this.mymodal.setStyle("top",a.bottom-f.height)}else{this.mymodal.setStyle("left",a.right+this.options.shadowwidth);this.mymodal.setStyle("top",a.top+this.options.shadowwidth)}}}this.mymodalshad.setStyle("width",(this.mymodalfront.getSize()["x"])+(this.options.shadowwidth*2));this.mymodalshad.setStyle("height",(this.mymodalfront.getSize()["y"])+(this.options.shadowwidth*2));this.mymodalshad.setStyle("top",(this.options.shadowwidth*-1));this.mymodalshad.setStyle("left",(this.options.shadowwidth*-1))}});Modalbox.implement(new Events,new Options);