UserToolbarClass=new Class({options:{elementID:'plg-ubar',barPosition:'bottom',styles:{barColor:'#333',barPad:false,borderColor:'#333',borderStyle:'none',borderWidth:2,highlight:'#444',opacity:0.9,position:'bottom-center',textColor:'#ccc'}},config:{},div:{box:{}},fx:{},initialize:function(options){},init:function(o,cfg){if($type(this.div.bar)=='element')return;this.setOptions(o);cfg=$pick(cfg,{});this.config.root=$pick(cfg.siteRoot,'');this.config.root=this.urldecode(this.config.root);this.config.version=$pick(cfg.version,'0').toFloat();this.__b();this._setupToolbarStyles();this._setupToolbarAreas();if(window.ie6)new Asset.javascript(this.config.root+'components/com_ubar/assets/js/bar.ie6.js?'+this.config.version);this.fireEvent('onLoad');this.config.state=1;if(this.getCookieValue('bar',1)==0)this.hideToolbar(true);else if($pick(cfg.hide,'0').toInt()==1)this.hideToolbar(true)},__b:function(){this.div.bar=new Element('div',{id:this.options.elementID,styles:{'z-index':99999,position:'fixed'}}).inject(document.body);var ds=this.options.styles;this.div.open=new Element('div',{id:this.options.elementID+'-open',styles:{'z-index':99999,position:'fixed',padding:0,color:ds.textColor,'border-color':ds.borderColor,'border-style':ds.borderStyle,'border-width':ds.borderWidth,'background-color':ds.barColor}}).injectAfter(this.div.bar);var pos=ds.position.split('-',2);this.div.open.setStyle(pos[0],-1000);if(pos[0]=='bottom')this.div.open.setStyle('left',-1000);else this.div.open.setStyle('top',-1000);var i=$pick(this.options.openIcon,'');i=i.length>4?i:'components/com_ubar/assets/img/icons/cog.png';new Element('img',{alt:'open',align:'absmiddle',src:this.src(i),'class':'ubar-hover',styles:{margin:0,padding:5,cursor:'pointer',border:'1px solid transparent'},events:{click:this.showToolbar.bind(this)}}).injectInside(this.div.open);this.fx.bar=new Fx.Style(this.div.bar,pos[0],{duration:200});this.fx.open=new Fx.Style(this.div.open,pos[0],{duration:200})},_setupToolbarStyles:function(){var ds=this.options.styles;this.div.bar.setStyles({padding:0,color:ds.textColor,opacity:ds.opacity.toFloat(),'border-color':ds.borderColor,'border-style':ds.borderStyle,'border-width':ds.borderWidth,'background-color':ds.barColor});var pos=this.options.styles.position.split('-',2);switch(pos[0]){case'bottom':this._setupBottomToolbar(pos[1]);break;case'left':case'right':this._setupSideToolbar(pos[0]);break;default:this._setupBottomToolbar('center')}},_setupBottomToolbar:function(pos){this.div.bar.setStyles({bottom:0});if(pos=='center'){this.div.bar.setStyle('width','80%');this.div.bar.setStyle('margin-left','10%')}else{this.div.bar.setStyle(pos,0);this.div.bar.setStyle('width','auto');this.div.bar.setStyle('border-'+pos,'none')}if(this.options.styles.barPad){this.div.bar.setStyle('bottom',10)}else{this.div.bar.setStyle('border-bottom','none')}new Element('div').setHTML('&nbsp;').injectInside(document.body);this.options.barPosition='bottom'},_setupSideToolbar:function(side){this.div.bar.setStyles({top:'20%',height:'auto'});if(this.options.styles.barPad){this.div.bar.setStyle(side,10)}else{this.div.bar.setStyle(side,0);this.div.bar.setStyle('border-'+side,'none')}this.options.barPosition=side},_setupToolbarAreas:function(){this.div.buttons=new Element('div',{styles:{'float':'left'}}).injectInside(this.div.bar);this.div.msg=new Element('div',{styles:{'z-index':99995,padding:5,'font-size':12,'font-style':'italic','text-align':'left'}});this.fx.msg=new Fx.Style(this.div.msg,'opacity',{duration:100});switch(this.getPosition()){case'left':case'right':var ds=this.options.styles;this.div.msg.injectAfter(this.div.bar);this.div.msg.setStyle(this.getPosition(),-1000);this.div.msg.setStyles({position:'fixed',top:this.div.bar.getStyle('top'),color:ds.textColor,'border-color':ds.borderColor,'border-style':ds.borderStyle,'border-width':ds.borderWidth,'background-color':ds.barColor});break;case'bottom':default:this.div.msg.injectInside(this.div.bar);this.div.msg.setStyles({width:300,'float':'left','margin-left':2})}},getLabel:function(options){var txt=this.urldecode($pick(options.text,''));var lbl=new Element('div',{'class':'ubar-btn ubar-hover',styles:{margin:0,padding:5,cursor:'pointer',border:'1px solid '+this.getStyle('barColor','#333'),'font-size':12}});if($defined(options.className))lbl.addClass(options.className);if($defined(options.id))lbl.setProperty('id',options.id);if($type(options.icon)=='string'&&options.icon.length>0){new Element('img',{src:this.src(options.icon),align:'absmiddle','class':'ubar-icon'}).injectInside(lbl);if($type(options.text)=='string'&&options.text.length>0){new Element('span',{styles:{margin:'0 0 0 2px'}}).setHTML(txt).injectInside(lbl)}}else{lbl.setHTML(txt)}return lbl},addLink:function(lbl,url,pop){var click=this.getLinkOnClick(url,pop);this.addButton(lbl,click)},addMenu:function(lbl,lks){if(!$defined(lbl.id))return this.setError('addMenu: ID required');if($type(lks)!='array'||lks.length<1)return this.setError('addMenu: Invalid links');this.getMenuBox(lbl.id,lks,lbl);this.addButton(lbl,function(id){var d=this.getMenuBox(id);this.fireEvent('onBtnClick',[id,d.state,d.element]);if(d.state==1){d.state=0;d.fx.start(1,0)}else{this.closeBoxes();this.openMenuBox(d)}}.bind(this,[lbl.id]))},addHtml:function(lbl,msg){if(!$defined(lbl.id))return this.setError('addHtml: ID required');this.getHtmlBox(lbl.id,msg,lbl);this.addButton(lbl,function(id){var d=this.getHtmlBox(id);this.fireEvent('onBtnClick',[id,d.state,d.element]);if(d.state==1){d.state=0;d.fx.start(1,0)}else{this.closeBoxes();this.openMessageBox(d)}}.bind(this,[lbl.id]))},ref:[],addButton:function(lbl,clk){var btn=this.getLabel(lbl);if(this.getPosition()=='bottom')btn.setStyle('float','left');if($type(clk)=='function')btn.addEvent('click',clk);var msg=$pick(lbl.message,'');if(msg.length>0)btn.addEvent('mouseenter',this.showMessage.bind(this,msg));btn.addEvent('mouseleave',this.hideMessage.bind(this));this.ref.include(btn);btn.injectInside(this.div.buttons);this.fireEvent('onInsertButton',[this.ref.length-1])},getLinkOnClick:function(url,o){url=this.src(this.urldecode(url));if($type(o)=='object'){if($defined(o.name)){var w=$pick(o.width,800);var h=$pick(o.height,600);var clk=function(){var s=window.getSize().size;var t=((s.y-h)/2).round();var l=((s.x-w)/2).round();window.open(url,o.name,'scrollbars=1,width='+w+',height='+h+',top='+t+',left='+l)}}else if($defined(o.modal)){if(!$defined(this._modal)){this._modal=true;if(!$defined(window.SqueezeBox)){this.js('media/system/js/modal.js');this.css('media/system/css/modal.css')}}var mo=$type(o.modal)=='object'?o.modal:{};mo.url=url;var clk=function(e){new Event(e).stop();SqueezeBox.fromElement(this,mo)}}else{var clk=function(){window.open(url)}}}else{if(url.substr(0,1)=='#'&&$(url.substr(1))){var clk=function(e){new Fx.Scroll(window).toElement(url.substr(1))}}else{var clk=function(){window.location=url}}}return clk},getBox:function(type,id,o,c){if($defined(this.div.box[id]))return this.div.box[id];if(type.length<1||id.length<1)return this.setError('getBox: Invalid type or id');o=$type(o)=='object'?o:{};this.div.box[id]={id:id,state:0,type:type};var ds=this.options.styles;var div=new Element('div',{styles:{'z-index':99990,position:'fixed',padding:(type=='menu'?this.options.styles.borderWidth:10),opacity:0,color:ds.textColor,'border-color':ds.borderColor,'border-style':ds.borderStyle,'border-width':ds.borderWidth,'background-color':ds.barColor}}).injectAfter(this.div.bar);this.div.box[id].element=div;if($defined(o.className))div.addClass(o.className);if($type(c)=='string')div.setHTML(c);else if($type(c)=='element')c.injectInside(div);var fx=new Fx.Style(div,'opacity',{duration:100});this.div.box[id].fx=fx;return this.div.box[id]},getHtmlBox:function(id,msg,o){if(!$defined(this.div.box[id]))return this.getBox('message',id,o,this.urldecode(msg));return this.getBox('message',id)},getMenuBox:function(id,lks,o){if(!$defined(this.div.box[id])){var menu=new Element('div',{id:id+'-menu'});lks.each(function(l){if($type(l)!='object')return;var ty=$pick(l.type,'link');if(ty=='separator'){var bc=this.options.styles.textColor;return new Element('div',{styles:{margin:'2px 0 0 0',padding:'0 0 2px 0','border-top':'1px solid '+bc}}).injectInside(menu)}if($type(l.label)!='object')return;var link=this.getLabel(l.label);var clk=$pick(l.click,0);if($type(clk)!='function'){var pop=$pick(l.popup,false);var url=$pick(l.url,this.config.root);clk=this.getLinkOnClick(url,pop)}link.addEvent('click',clk);link.injectInside(menu)},this);return this.getBox('menu',id,o,menu)}return this.getBox('menu',id)},openBox:function(ty,d){if($type(d)=='string')d=this.getBox(ty,d);if($type(d)!='object')return;d.element.setStyle('opacity',0);var sBox=d.element.getSize().size;if(sBox.x>600)d.element.setStyle('width',600);var pBtn=$(d.id).getPosition();var sBar=this.div.bar.getSize().size;switch(this.getPosition()){case'left':case'right':var x=sBar.x+5;var y=this.div.bar.getStyle('top');if(this.options.styles.barPad)x+=10;d.element.setStyle('top',y);d.element.setStyle(this.getPosition(),x);break;default:var x=pBtn.x;var y=sBar.y+5;if(this.options.styles.barPad)y+=10;d.element.setStyles({left:x,bottom:y})}d.fx.start(0,1);d.state=1},openMenuBox:function(d){return this.openBox('menu',d)},openMessageBox:function(d){return this.openBox('message',d)},closeBoxes:function(){var ad=this.div.box;for(var od in ad){cd=this.div.box[od];if(cd.state==1){cd.state=0;cd.fx.start(1,0)}}},showMessage:function(m){var tgt=1;this.div.msg.setHTML(m);if(this.getPosition()!='bottom'){tgt=0.8;var sb=this.div.bar.getSize().size;var x=sb.x+5;if(this.options.styles.barPad)x+=10;this.div.msg.setStyle(this.getPosition(),x)}this.fx.msg.stop().start(0,tgt)},hideMessage:function(){this.fx.msg.stop().start(1,0);if(this.getPosition()=='bottom'){this.div.msg.setHTML('')}},getToolbar:function(){return this.div.bar},toggleToolbar:function(){this.config.state==0?this.showToolbar():this.hideToolbar()},hideToolbar:function(noFX){if(this.config.state==0)return;var pos=this.getPosition();var bPos=this.div.bar.getPosition();if(pos=='bottom'){var side='y';this.div.open.setStyle('left',bPos.x)}else{var side='x';this.div.open.setStyle('top',bPos.y)}var bSize=this.div.bar.getSize().size;var oSize=this.div.open.getSize().size;var hp=-5-bSize[side];var sp=this.options.styles.barPad?10:0;if(noFX===true){this.div.bar.setStyle(pos,-1000);this.div.open.setStyle(pos,sp)}else{this.fx.open.start(hp,sp);this.fx.bar.start(sp,hp)}this.config.state=0;this.setCookieValue('bar',0);this.closeBoxes();this.fireEvent('onHideBar')},showToolbar:function(){if(this.config.state==1)return;var bSize=this.div.bar.getSize().size;var oSize=this.div.open.getSize().size;var s=this.getPosition()=='bottom'?'y':'x';var hp=-5-bSize[s];var sp=this.options.styles.barPad?10:0;this.fx.open.start(sp,hp);this.fx.bar.start(hp,sp);this.config.state=1;this.setCookieValue('bar',1);this.fireEvent('onShowBar')},getPosition:function(){return this.options.barPosition},getCookie:function(){return new Hash.Cookie('ubarcookie',{autoSave:false,duration:30,path:'/'})},setCookieValue:function(k,v){return this.getCookie().set(k,v).save()},getCookieValue:function(k,d){var c=this.getCookie();return c.hasKey(k)?c.get(k):d},_e:[],setError:function(m){this._e[this._e.length]=m;return false},getError:function(){return this._e.length?this._e[this._e.length-1]:''},getAllErrors:function(){return this._e},src:function(p){return(p.contains('http')||p.substr(0,1)=='#')?p:this.config.root+p},js:function(p,a){new Asset.javascript(this.src(p),a)},css:function(p,a){new Asset.css(this.src(p),a)},UTF8:{isEncoded:function(str){var isEncoded=true;try{this.decodeString(str)}catch(e){isEncoded=false}return isEncoded},Encode:function(str){return this.isEncoded(str)?str:this.encodeString(str)},Decode:function(str){return this.isEncoded(str)?this.decodeString(str):str},encodeString:function(str){return(encodeURIComponent)?unescape(encodeURIComponent(str)):escape(str)},decodeString:function(str){return(decodeURIComponent)?decodeURIComponent(escape(str)):unescape(str)}},Base64:{_k:'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',Encode:function(str){if($type(str)!='string'||str.length<1)return'';str=window.UTb.UTF8.Encode(str);var output='';var c1,c2,c3,e1,e2,e3,e4;var i=0;while(i<str.length){c1=str.charCodeAt(i++);c2=str.charCodeAt(i++);c3=str.charCodeAt(i++);e1=c1>>2;e2=((c1&3)<<4)|(c2>>4);e3=((c2&15)<<2)|(c3>>6);e4=c3&63;if(isNaN(c2)){e3=e4=64}else if(isNaN(c3)){e4=64}output+=this._k.charAt(e1);output+=this._k.charAt(e2);output+=this._k.charAt(e3);output+=this._k.charAt(e4)}return output},Decode:function(str){if($type(str)!='string')return'';str=str.replace(/[^A-Z0-9\+\/\=]/gi,'');if(str.length<1)return'';var output='';var c1,c2,c3,e1,e2,e3,e4;var i=0;while(i<str.length){e1=this._k.indexOf(str.charAt(i++));e2=this._k.indexOf(str.charAt(i++));e3=this._k.indexOf(str.charAt(i++));e4=this._k.indexOf(str.charAt(i++));c1=(e1<<2)|(e2>>4);c2=((e2&15)<<4)|(e3>>2);c3=((e3&3)<<6)|e4;output+=String.fromCharCode(c1);if(e3!=64)output+=String.fromCharCode(c2);if(e4!=64)output+=String.fromCharCode(c3)}return window.UTb.UTF8.Decode(output)}},urlencode:function(str){if($type(str)!='string')return'';str=(encodeURIComponent)?encodeURIComponent(str):escape(str);str=str.replace(/'/g,'%27');str=str.replace(/\(/g,'%28');str=str.replace(/\)/g,'%29');str=str.replace(/\*/g,'%2A');str=str.replace(/~/g,'%7E');str=str.replace(/\!/g,'%21');str=str.replace(/%20/g,'+');return str.replace(/(\%([a-z0-9]{2}))/g,function(full,m1,m2){return'%'+m2.toUpperCase()})},urldecode:function(str){if($type(str)!='string')return'';str=str.replace(/%27/g,'\'');str=str.replace(/%28/g,'(');str=str.replace(/%29/g,')');str=str.replace(/%2A/g,'*');str=str.replace(/%7E/g,'~');str=str.replace(/%21/g,'!');str=str.replace(/\+/g,'%20');return(decodeURIComponent)?decodeURIComponent(str):unescape(str)},getStyle:function(n,d){return $defined(this.options.styles[n])?this.options.styles[n]:d}});UserToolbarClass.implement(new Options,new Events);var UserToolbar=new UserToolbarClass({});window.UTb=UserToolbar;