function mui_createID(id){if(id==null||id==false){var r=(Math.random()*999999)+(Math.random()*999999);return $time()+'_'+r.round();}else{return id;}}function mui_msgToHTML(msg){if($type(msg)=='array'){r='';for(i=0;i<msg.length;i++){r+='<p>'+msg[i]+'</p>';}return r;}return msg;}function mui_fitImage(width,height,dw,dh,allowup){var sw=width/dw;var sh=height/dh;if(allowup==false||allowup==null){if(sw<1)sw=1;if(sh<1)sh=1;}if(sw>=sh){width=width/sw;height=height/sw;}else{width=width/sh;height=height/sh;}width=width.toInt();height=height.toInt();return{width:width,height:height};}function mui_ME(el){switch($type(el)){case'string':return $(el);break;case'element':return $(el);break;default:return el;break;}}var mui_tabControl=new Class({options:{active_class:'active',menu_class:'tabs_menu',default_tab:0},initialize:function(container,tabs,titles,options){this.tabs=new Array();this.setOptions(options);container=mui_ME(container);var etabs=container.getElements(tabs);var id,title,dtitle,tab;for(var i=0;i<etabs.length;i++){tab=etabs[i];dtitle=tab.getElement(titles);if(dtitle==null)continue;title=dtitle.getText();dtitle.remove();id=mui_createID(tab.getProperty('id'));this.tabs.push({id:id,obj:tab,title:title,selected:false});if(i!=this.options.default_tab)tab.hide();}var menu=new Element('div',{'class':this.options.menu_class});var menu_ul=new Element('ul');for(var i=0;i<this.tabs.length;i++){var li=new Element('li').injectInside(menu_ul);this.tabs[i].li=li;var a=new Element('a',{href:'#'}).setText(this.tabs[i].title).addEvent('click',this.tabClicked).injectInside(li);a.inst=this;a.idx=i;if(i==this.options.default_tab){li.addClass(this.options.active_class);this.tabs[i].selected=true;}}menu_ul.injectInside(menu);menu.injectTop(container);this.menu=menu_ul;return this;},makeSpecial:function(id,_class,active_class){this.tabs[this.findTab(id)].li.addClass(_class);if(active_class!=null)this.tabs[this.findTab(id)].active_class=active_class;},doShowTab:function(idx){var tab=this.tabs[idx];var ac=this.options.active_class;if($defined(tab.active_class))ac=tab.active_class;tab.obj.show();tab.selected=true;tab.li.addClass(ac);return this;},doHideTab:function(idx){var tab=this.tabs[idx];var ac=this.options.active_class;if($defined(tab.active_class))ac=tab.active_class;tab.selected=false;tab.obj.hide();tab.li.removeClass(ac);return this;},showTab:function(id){for(var i=0;i<this.tabs.length;i++){if(this.tabs[i].selected){this.doHideTab(i);}if(this.tabs[i].id==id){this.doShowTab(i);}}return this;},findTab:function(id){for(var i=0;i<this.tabs.length;i++){if(this.tabs[i].id==id){return i;}}return false;},tabClicked:function(e){new Event(e).stop();this.inst.showTab(this.inst.tabs[this.idx].id);}});mui_tabControl.implement(new Options);var mui_busyBox=new Class({initialize:function(){var div=new Element('div').addClass('busy_box').injectInside(document.body).hide();this.div=div;this.block=null;},show:function(msg){this.div.setHTML('<p>'+msg+'</p>');this.div.show().center();},showModal:function(msg){if(this.block==null){this.block=new mui_blockUI(false,{'z-index':2020});this.block.block();}this.show(msg);},hide:function(){if(this.block!=null){this.block.unblock();this.block.free();this.block=null;}this.div.hide();},free:function(){this.div.remove();this.div=null;}});var mui_blockUI=new Class({options:{color:'white',opacity:'0.7',"z-index":1000,id:'%random%'},initialize:function(element,options){if(!$defined(element)||element==false)element=$(window);this.el=element;this.setOptions(options);this.blocked=false;if(this.options.id=='%random%'){this.options.id=mui_createID(null);}var block=new Element('div',{styles:{position:'absolute','z-index':this.options['z-index']},id:this.options.id}).injectInside(document.body);this.div=block;},block:function(){var t,l;if(this.el.getTop){t=this.el.getTop();l=this.el.getLeft();}else{t=0;l=0;}var c=this.el.getSize();$(this.options.id).setStyles({left:l,top:t,width:c.scrollSize.x,height:c.scrollSize.y,display:'block',"background-color":this.options.color,opacity:this.options.opacity});this.blocked=true;},unblock:function(){$(this.options.id).setStyle('display','none');this.blocked=false;},free:function(){this.div.remove();this.element=null;}});mui_blockUI.implement(new Options);var mui_imgView=new Class({options:{width:800,height:600,allow_up:false},initialize:function(options){var _this=this;this.setOptions(options);this.oryg_width=0;this.oryg_height=0;this.status='empty';this.img=null;},onLoad:function(){var inst=this.inst;inst.oryg_width=inst.img.width;inst.oryg_height=inst.img.height;w=inst.img.width;h=inst.img.height;var x=mui_fitImage(w,h,inst.options.width,inst.options.height,false);w=x.width;h=x.height;inst.img.setProperties({width:w,height:h});inst.status='loaded';inst.fireEvent('load');},load:function(src,title){if(title==null||title==false)title=src;var _this=this;this.status='loading';if(this.img!=null){delete this.img;}this.img=new Element('img',{src:'',title:title});this.img.inst=this;this.img.addEvent('load',this.onLoad);this.img.setProperty('src',src);}});mui_imgView.implement(new Options,new Events);function mui_centerX(obj){var w=window.getSize();var l=(w.size.x-obj.getSize().size.x)/2;l=l.round()+w.scroll.x;if(l<0)l=0;return l;}function mui_centerY(obj){var w=window.getSize();var t=(w.size.y-obj.getSize().size.y)/2;t=t.round()+w.scroll.y;if(t<0)t=0;return t;}function mui_alignXR(obj,distance){if(distance==null)distance=10;var w=window.getSize();var l=(w.size.x-obj.getSize().size.x)-distance;return l.round()+w.scroll.x;}function mui_alignXL(obj,distance){if(distance==null)distance=10;var w=window.getSize();return w.scroll.x+distance;}function mui_alignYB(obj,distance){if(distance==null)distance=10;var w=window.getSize();var t=(w.size.y-obj.getSize().size.y-distance);return t.round()+w.scroll.y;}function mui_alignYT(obj,distance){if(distance==null)distance=10;var w=window.getSize();return w.scroll.y+distance;}var mui_simpleDialog=new Class({initialize:function(id,html){this.id=mui_createID(id);this.block=null;var div=$(id);if(!$defined(div)){div=new Element('div',{id:this.id,'class':"mui_simple_dialog",styles:{display:'none'}}).injectInside(document.body);if(html!=null)div.setHTML(html);}else{var clone=div.clone();div.remove();div.injectInside(document.body);}this.dlg=div;return this;},setHTML:function(html){this.dlg.setHTML(html);return this;},show:function(html){this.dlg.setStyle('display','block');if(html!=null)this.dlg.setHTML(html);l=mui_centerX(this.dlg);t=mui_centerY(this.dlg);this.dlg.setStyles({left:l,top:t});return this;},showModal:function(html){this.block=new mui_blockUI();this.block.block();this.dlg.setStyle('display','block');if(html!=null)this.dlg.setHTML(html);l=mui_centerX(this.dlg);t=mui_centerY(this.dlg);this.dlg.setStyles({left:l,top:t});return this;},hide:function(){if(this.block!=null){this.block.unblock();this.block.free();this.block=null;}$(this.id).setStyle('display','none');return this;},free:function(){delete this.block;this.dlg.remove();delete this.dlg;}});var mui_defaultDialogBody='<h2>moo</h2><div class="body"></div><div class="buttons"></div>';var mui_customDialog=new Class({options:{'z-index':2100,'css_class':'mui_dialog',title:'Moo User Interface',type:'',body:mui_defaultDialogBody},initialize:function(options){this.id=mui_createID(null);this.setOptions(options);div=new Element('div',{id:this.id,'class':this.options.css_class,styles:{display:'none','z-index':this.options['z-index']}}).injectInside(document.body);if(this.options.type!='')div.addClass('md_'+this.options.type);div.setHTML(this.options.body);var h2=div.getElements('h2')[0];h2.setStyle('cursor','move');div.makeDraggable({handle:h2});this.dlg=div;this.block=new mui_blockUI(false,{'z-index':1099});return this;},doShow:function(){this.dlg.show().center();this.fireEvent('onShow');},doHide:function(){this.dlg.hide();this.fireEvent('onHide');},show:function(msg,buttons){var h2=this.dlg.getElements('h2')[0];h2.setHTML(this.options.title);this.dlg.getElements('.body')[0].setHTML(mui_msgToHTML(msg));b=this.dlg.getElements('.buttons')[0];b.empty();if($type(buttons)!='object'){throw'mui_customDialog.show: second parameter must be an object !'}var _this=this;for(i in buttons){a=new Element('a',{href:'#'+i,'class':'mui_button_'+i}).setText(buttons[i]);a.addEvent('click',function(e){new Event(e).stop();_this.clickHandler(this);});a.injectInside(b);}this.doShow();return this;},showModal:function(msg,buttons){this.block.block();this.show(msg,buttons);return this;},hide:function(){this.doHide();return this;},clickHandler:function(a){var id=a.getProperty('href').substr(1);var event=id.substr(0,1).toUpperCase()+id.substr(1).toLowerCase();if(this.block.blocked)this.block.unblock();this.hide();this.fireEvent('on'+event,event);},free:function(){this.block.free();delete this.block;this.dlg.remove();delete this.dlg;}});mui_customDialog.implement(new Options,new Events);var mui_customDialogFX=mui_customDialog.extend({initialize:function(options){this.parent(options);var _this=this;this.fx_show=new Fx.Style(this.dlg,'opacity',{duration:250}).addEvent('onComplete',function(){_this.fireEvent('onShow');});this.fx_hide=new Fx.Style(this.dlg,'opacity',{duration:250}).addEvent('onComplete',function(){_this.dlg.hide();_this.fireEvent('onHide');});},doShow:function(){if(this.fx_show!=null){this.dlg.show().setStyle('opacity',0.005).center();this.fx_show.start(1);}else{this.dlg.setStyle('opacity',1).show().center();this.fireEvent('onShow');}},doHide:function(){if(this.fx_hide!=null){this.fx_hide.start(0);}else{this.dlg.hide();this.fireEvent('onHide');}}});var mui_floatingMessages=new Class({options:{'css_class':'mui_floating_message',duration:7000,fade_duration:2000},initialize:function(options){this.setOptions(options);},add:function(html,type,duration){if(duration==null||duration==false)duration=this.options.duration;if(type==null||type==false)type='';if(type!='')type='mfm_'+type;var div=new Element('div',{'class':this.options.css_class}).injectInside(document.body);if(type!='')div.addClass(type);div.setHTML(html);div.setStyle('left',mui_alignXR(div,20));this.order();(function(){this.del(div);}).delay(duration,this);},del:function(div,inst){var _this=this;var _div=div;fx=new Fx.Style(_div,'opacity',{duration:this.options.fade_duration,transition:Fx.Transitions.Quad.easeIn}).addEvent('onComplete',function(){_div.remove();_this.order();});fx.start(0);},order:function(){height=20;els=$$('.'+this.options.css_class);for(i=els.length-1;i>=0;i--){m=els[i];m.setStyle('top',mui_alignYT(m,height));height+=m.getSize().size.y+5;}}});mui_floatingMessages.implement(new Options);Element.extend({show:function(){this.setStyles({'display':'block','opacity':1});return this;},hide:function(){this.setStyle('display','none');return this;},center:function(){this.setStyles({left:mui_centerX(this),top:mui_centerY(this)});return this;}});var moo_ui_block_object=false;function ui_block(color,opacity){if(moo_ui_block_object==false){if(!$defined(color))color='white';if(!$defined(opacity))opacity=0.7;moo_ui_block_object=new mui_blockUI(undefined,{id:'block_ui',color:color,opacity:opacity});}moo_ui_block_object.block();}function ui_unblock(){moo_ui_block_object.unblock();}
