UserToolbarClass=new Class({options:{elementID:'uBarDiv',barPosition:'bottom',styles:{barColor:'#333',barPad:false,borderColor:'#333',borderStyle:'none',borderWidth:2,highlight:'#444',opacity:0.9,position:'bottom-center',textColor:'#ccc'}},config:{mootools:1.1},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.config.mootools=$pick(cfg.mootools,'1.1').toFloat();this.__b();this._setupToolbarStyles();this.div.buttons=new Element('div').inject(this.div.bar);if(window.ie6)this.js('components/com_ubar/assets/js/bar.ie6.js?'+this.config.version);this.fireEvent('onLoad');this.config.state=1;if($pick(cfg.hide,'0').toInt()==1&&!this.isCookieKey('bar'))this.hideToolbar(true);else if(this.getCookieValue('bar',1)==0)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)}}).inject(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});var xo=pos[0]=='bottom'?0:32;var yo=pos[0]=='bottom'?20:0;this.tt=new Tips({},{maxTitleChars:70,showDelay:100,hideDelay:100,className:'ubar-t',offsets:{x:xo,y:yo},fixed:false});if(this.config.mootools==1.2&&!this.tt.tip.hasClass('ubar-t'))this.tt.tip.addClass('ubar-t')},_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%');this.div.bar.setStyle('margin-right','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;').inject(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},getLabel:function(opts){var txt=this.urldecode($pick(opts.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(opts.className))lbl.addClass(opts.className);if($defined(opts.id))lbl.setProperty('id',opts.id);if($type(opts.icon)=='string'&&opts.icon.length>4){new Element('img',{src:this.src(opts.icon),align:'absmiddle','class':'ubar-icon'}).inject(lbl);if($type(opts.text)=='string'&&opts.text.length>0){new Element('span',{styles:{margin:'0 0 0 2px'}}).setHTML(txt).inject(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($defined(lbl.position)&&this.getPosition()=='bottom')btn.setStyle('float','right');if($type(clk)=='function')btn.addEvent('click',clk);this.ref.include(btn);btn.inject(this.div.buttons);var msg=$pick(lbl.message,'');if(msg.length>0){btn.setProperty('title',msg);if(this.config.mootools==1.2)this.tt.attach(btn);else this.tt.build(btn)}this.fireEvent('onInsertButton',[this.ref.length-1])},getLinkOnClick:function(url,o){url=this.src(this.urldecode(url));url=url.replace(/&amp;/ig,'&');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=ubh.getSize(window);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)){ubh.modal();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(ty,id,o,c){if($defined(this.div.box[id]))return this.div.box[id];if(ty.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:ty};var ds=this.options.styles;var div=new Element('div',{styles:{'z-index':99990,position:'fixed',padding:(ty=='menu'?ds.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.inject(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'});if(!$defined(o.className)||o.className.length==0)o.className='ubar-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}}).inject(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.inject(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=ubh.getSize(d.element);if(sBox.x>600)d.element.setStyle('width',600);var pBtn=$(d.id).getPosition();var sBar=ubh.getSize(this.div.bar);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)}}},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=ubh.getSize(this.div.bar);var oSize=ubh.getSize(this.div.open);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=ubh.getSize(this.div.bar);var oSize=ubh.getSize(this.div.open);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 ubh.getCookie('ubarcookie')},setCookieValue:function(k,v){return ubh.setCookieValue('ubarcookie',k,v)},getCookieValue:function(k,d){return ubh.getCookieValue('ubarcookie',k,d)},isCookieKey:function(k){return ubh.isCookieKey('ubarcookie',k)},_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;