var mBox=new Class({Implements:[Options,Events],options:{id:"",theme:"",addClass:{wrapper:"",container:"",content:"",title:"",footer:""},setStyles:{wrapper:{},container:{},content:{},title:{},footer:{}},target:$(window),attach:null,event:"click",preventDefault:!1,width:"auto",height:"auto",zIndex:8e3,content:null,setContent:"data-setContent",load:null,url:"",reload:!1,title:null,footer:null,draggable:!1,position:{x:"center",y:"center"},fixed:null,offset:{x:0,y:0},pointer:!1,fade:{open:!0,close:!0},fadeDuration:{open:200,close:300},fadeWhenOpen:!1,overlay:!1,overlayStyles:{color:"black",opacity:.75},overlayFadeDuration:100,transition:{open:null,close:null},closeOnEsc:!0,closeOnClick:!1,closeOnBoxClick:!1,closeOnWrapperClick:!1,closeOnBodyClick:!0,closeOnMouseleave:!1,closeInTitle:!1,delayOpen:0,delayClose:0,delayOpenOnce:!0,constructOnInit:!0,openOnInit:!1},initialize:function(t){this.block=!1,this.ignoreDelay=!1,this.ignoreDelayOnce=!1,this.setOptions(t),this.fixOptions(),this.getPosition(),this.target=this.getTarget(),null==this.options.fixed&&(this.options.fixed=[$(window),$(document),$(document.body)].contains(this.target)),"mouse"==this.target&&(this.options.pointer=!1),this.targets=[],this.id=this.options.id||"mBox"+ ++mBox.currentId,this.addListeners(),this.options.constructOnInit&&this.construct(),this.fireEvent("init").fireEvent("systemInit"),this.options.openOnInit&&this.open(),mBox.instances.push(this)},reInit:function(){this.addListeners()},fixOptions:function(){"string"==typeof this.options.addClass&&(this.options.addClass={wrapper:this.options.addClass}),"object"!=typeof this.options.setStyles||this.options.setStyles.wrapper||this.options.setStyles.container||this.options.setStyles.content||this.options.setStyles.title||this.options.setStyles.footer||(this.options.setStyles={wrapper:this.options.setStyles}),this.options.fade={open:this.options.fade.open||1==this.options.fade,close:this.options.fade.close||1==this.options.fade},this.options.fadeDuration={open:this.options.fadeDuration.open||this.options.fadeDuration,close:this.options.fadeDuration.close||this.options.fadeDuration}},construct:function(){if(this.wrapper)return null;this.wrapper=new Element("div",{id:this.id,class:"mBox "+(this.defaultTheme||"Core")+(this.options.theme?"-"+this.options.theme:"")+" "+(this.options.addClass.wrapper||""),styles:{zIndex:this.options.zIndex,position:0==this.options.fixed||Browser.ie6||Browser.ie7?"absolute":"fixed",display:"none",opacity:1e-5,top:-12e3,left:-12e3,zoom:1}}).setStyles(this.options.setStyles.wrapper||{});var t=$(t)||t||this.target||$(this.options.target)||this.options.target||$(this.options.attach);t&&"element"===typeOf(t)?this.wrapper.inject(t,"after"):this.wrapper.inject(document.body,"bottom"),this.options.closeOnMouseleave&&this.wrapper.addEvents({mouseenter:function(t){this.open()}.bind(this),mouseleave:function(t){this.close()}.bind(this)}),this.container=new Element("div",{class:"mBoxContainer "+(this.options.addClass.container||"")}).setStyles(this.options.setStyles.container||{}).inject(this.wrapper),this.content=new Element("div",{class:"mBoxContent "+(this.options.addClass.content||""),styles:{width:this.options.width,height:this.options.height}}).setStyles(this.options.setStyles.content||{}).inject(this.container),this.load(this.options.content,this.options.title,this.options.footer,!0),this.fireEvent("systemBoxReady").fireEvent("boxReady")},addListeners:function(t){if(t=t||this.options.attach,elements=Array.from($(t)).combine(Array.from($$("."+t))).combine(Array.from($$(t))).clean(),!elements||0==elements.length)return this;switch(this.targets.combine(elements),this.options.event){case"mouseenter":case"mouseover":var e={mouseenter:function(t){this.target=this.getTargetFromEvent(t),this.source=this.getTargetElementFromEvent(t),this.open()}.bind(this),mouseleave:function(t){this.close()}.bind(this)};break;default:e={click:function(t){this.options.preventDefault&&t.preventDefault(),this.isOpen?this.close():(this.target=this.getTargetFromEvent(t),this.source=this.getTargetElementFromEvent(t),this.open())}.bind(this)}}$$(elements).each(function(t){t.retrieve("mBoxElementEventsAdded"+this.id)||t.addEvents(e).store("mBoxElementEventsAdded"+this.id,!0)}.bind(this))},loadAjax:function(t){this.ajaxRequest||(this.ajaxRequest=new Request.HTML({link:"cancel",update:this.content,onRequest:function(){this.setContent(""),this.wrapper.addClass("mBoxLoading")}.bind(this),onComplete:function(){this.wrapper.removeClass("mBoxLoading"),"auto"!=this.options.width&&"auto"!=this.options.height||this.setPosition(),this.fireEvent("ajaxComplete")}.bind(this)}).send()),this.ajaxRequest.send(t),this.ajaxLoaded=!0},open:function(r){if(this.wrapper||this.construct(),"object"!=typeof r&&(r={}),clearTimeout(this.timer),!this.isOpen&&!this.block){var t=function(){this.ignoreDelayOnce=!1,this.fireEvent("systemOpenComplete").fireEvent("openComplete")}.bind(this),e=function(t){if(this.isOpen=!0,"ajax"!=this.options.load||!this.options.url||this.ajaxLoaded&&!this.options.reload||this.loadAjax({url:this.options.url}),this.target=this.getTarget(r.target||null),this.options.setContent&&this.source&&this.source.getAttribute(this.options.setContent))if($(this.source.getAttribute(this.options.setContent)))this.content.getChildren().setStyle("display","none"),$(this.source.getAttribute(this.options.setContent)).setStyle("display","");else{var e=this.source.getAttribute(this.options.setContent).split("|"),i=e[0]||null,o=e[1]||null,n=e[2]||null;this.load(i,o,n)}this.wrapper&&this.wrapper.inject(document.body,"bottom"),this.setPosition(null,r.position||null,r.offset||null),this.fireEvent("systemOpen").fireEvent("open"),this.fx&&this.fx.cancel(),this.wrapper.setStyles({display:""}),this.options.fadeWhenOpen&&this.wrapper.setStyle("opacity",0),this.fx=new Fx.Tween(this.wrapper,{property:"opacity",duration:this.options.fadeDuration.open,link:"cancel",onComplete:t})[r.instant||!this.options.fade.open?"set":"start"](1),!r.instant&&this.options.fade.open||t();var s=this.getTransition();s.open&&new Fx.Tween(this.wrapper,{property:s.open.property||"top",duration:s.open.duration||this.options.fadeDuration.open,transition:s.open.transition||null,onStart:s.open.onStart||null,onComplete:s.open.onComplete||null}).start(s.open.start||this.wrapper.getStyle(s.open.property||"top").toInt()+(s.open.difference_start||0),s.open.end||this.wrapper.getStyle(s.open.property||"top").toInt()+(s.open.difference_end||0));this.attachEvents(),this.options.overlay&&this.addOverlay(r.instant||!this.options.fade.open),this.options.delayOpenOnce&&(this.delayOpenOnce=!0)}.bind(this);0"+this.wrapper.get("html")+""},attachEvents:function(){this.escEvent=function(t){"esc"==t.key&&(this.ignoreDelayOnce=!0,this.close())}.bind(this),this.options.closeOnEsc&&$(window).addEvent("keyup",this.escEvent),this.resizeEvent=function(t){this.setPosition()}.bind(this),$(window).addEvent("resize",this.resizeEvent),this.options.fixed&&(Browser.ie6||Browser.ie7)&&$(window).addEvent("scroll",this.resizeEvent),this.closeOnClickEvent=function(t){this.isOpen&&$(this.options.attach)!=t.target&&!$$("."+this.options.attach).contains(t.target)&&(this.ignoreDelayOnce=!0,this.close())}.bind(this),this.options.closeOnClick&&$(document).addEvent("mouseup",this.closeOnClickEvent),this.closeOnBoxClickEvent=function(t){this.isOpen&&(this.wrapper==t.target||this.wrapper.contains(t.target))&&(this.ignoreDelayOnce=!0,this.close())}.bind(this),this.options.closeOnBoxClick&&$(document).addEvent("mouseup",this.closeOnBoxClickEvent),this.closeOnWrapperClickEvent=function(t){this.isOpen&&this.wrapper==t.target&&(this.ignoreDelayOnce=!0,this.close())}.bind(this),this.options.closeOnWrapperClick&&$(document).addEvent("mouseup",this.closeOnWrapperClickEvent),this.closeOnBodyClickEvent=function(t){!this.isOpen||$(this.options.attach)==t.target||$$("."+this.options.attach).contains(t.target)||t.target==this.wrapper||this.wrapper.contains(t.target)||(this.ignoreDelayOnce=!0,this.close())}.bind(this),this.options.closeOnBodyClick&&$(document).addEvent("mouseup",this.closeOnBodyClickEvent),this.mouseMoveEvent=function(t){this.mouseX=t.page.x,this.mouseY=t.page.y,this.setPosition("mouse")}.bind(this),"mouse"==this.target&&$(document).addEvent("mousemove",this.mouseMoveEvent)},detachEvents:function(){this.options.fixed&&(Browser.ie6||Browser.ie7)&&$(window).removeEvent("scroll",this.resizeEvent),$(window).removeEvent("keyup",this.keyEvent),$(window).removeEvent("resize",this.resizeEvent),$(document).removeEvent("mouseup",this.closeOnClickEvent),$(document).removeEvent("mouseup",this.closeOnBoxClickEvent),$(document).removeEvent("mouseup",this.closeOnWrapperClickEvent),$(document).removeEvent("mouseup",this.closeOnBodyClickEvent),$(document).removeEvent("mousemove",this.mouseMoveEvent)},destroy:function(){mBox.instances.erase(this),this.detachEvents(),this.wrapper.dispose(),delete this.wrapper}});mBox.instances=[],mBox.currentId=0,mBox.reInit=function(){mBox.addConfirmEvents&&mBox.addConfirmEvents(),mBox.instances.each(function(t){try{t.reInit()}catch(t){}})},mBox.Notice=new Class({Extends:mBox,options:{type:"Default",position:{x:["left","inside"],y:["bottom","inside"]},offset:{x:30,y:30},fixed:!0,move:!0,moveDuration:500,delayClose:4e3,fade:!0,fadeDuration:{open:250,close:400},target:$(window),zIndex:1e6,closeOnEsc:!1,closeOnBoxClick:!0,closeOnBodyClick:!1,openOnInit:!0},initialize:function(t){this.defaultInOut="inside",this.defaultTheme="Notice",t.onSystemBoxReady=function(){if(this.container.addClass("mBoxNotice"+(this.options.type.capitalize()||"Default")),this.options.move&&("inside"==this.position.x[1]||"center"==this.position.x[0])&&"inside"==this.position.y[1]&&("top"==this.position.y[0]||"bottom"==this.position.y[0])){var t=this.wrapper.getDimensions({computeSize:!0});this.container.setStyle("position","absolute"),this.container.setStyle("top"==this.position.y[0]?"bottom":"top",0),this.wrapper.setStyles({height:0,width:t.totalWidth,overflowY:"hidden"}),this.options.transition={open:{transition:"linear",property:"height",duration:this.options.moveDuration,start:0,end:t.totalHeight+this.options.offset.y}},this.options.offset.y=0,this.options.delayClose+=this.options.moveDuration}},t.onSystemOpen=function(){$(window).retrieve("mBoxNotice")&&($(window).retrieve("mBoxNotice").ignoreDelay=!0,$(window).retrieve("mBoxNotice").close()),$(window).store("mBoxNotice",this)},t.onSystemOpenComplete=function(){this.close()},t.onSystemCloseComplete=function(){this.destroy()},this.parent(t)}}),mBox.Tooltip=new Class({Extends:mBox,options:{target:null,event:"mouseenter",position:{x:["center"],y:["top","outside"]},pointer:"center",fixed:!1,delayOpenOnce:!0},initialize:function(t){this.defaultInOut="outside",this.defaultTheme="Tooltip",this.parent(t)}});