String.implement({is_empty:function(){return(this==null||this.length==0);},is_not_empty:function(){return(this!=null&&this.length>0);},is_email:function(){return(this!=null&&this.length>0&&(this.indexOf('@')>0));},is_number:function(){return(this!=null&&this.length>0&&!isNaN(this));},is_not_number:function(){return(this!=null&&this.length>0&&isNaN(this));},urlEncode:function(){var tmp=this;tmp=tmp.replace('%','%25');tmp=tmp.replace('$','%24');tmp=tmp.replace('&','%26');tmp=tmp.replace('+','%2B');tmp=tmp.replace(',','%2C');tmp=tmp.replace('/','%2F');tmp=tmp.replace(':','%3A');tmp=tmp.replace(';','%3B');tmp=tmp.replace('=','%3D');tmp=tmp.replace('?','%3F');tmp=tmp.replace('@','%40');tmp=tmp.replace(' ','%20');tmp=tmp.replace('"','%22');tmp=tmp.replace('<','%3C');tmp=tmp.replace('>','%3E');tmp=tmp.replace('#','%23');return tmp;},urlDecode:function(){var tmp=this;tmp=tmp.replace('%24','$');tmp=tmp.replace('%26','&');tmp=tmp.replace('%2B','+');tmp=tmp.replace('%2C',',');tmp=tmp.replace('%2F','/');tmp=tmp.replace('%3A',':');tmp=tmp.replace('%3B',';');tmp=tmp.replace('%3D','=');tmp=tmp.replace('%3F','?');tmp=tmp.replace('%40','@');tmp=tmp.replace('%20',' ');tmp=tmp.replace('%22','#');tmp=tmp.replace('%3C','<');tmp=tmp.replace('%3E','>');tmp=tmp.replace('%23','#');tmp=tmp.replace('%25','%');return tmp;},xmlDecode:function(){var tmp=this;tmp=tmp.replace("&amp;","&");tmp=tmp.replace("&apos;","'");tmp=tmp.replace("&#39;","'");tmp=tmp.replace("&quot;","\"");tmp=tmp.replace("&gt;",">");tmp=tmp.replace("&lt;","<");return tmp;},xmlEncode:function(){var tmp=this;tmp=tmp.replace("&","&amp;");tmp=tmp.replace("'","&#39;");tmp=tmp.replace("\"","&quot;");tmp=tmp.replace(">","&gt;");tmp=tmp.replace("<","&lt;");return tmp;}});var MFXObserve=new Class({initialize:function(dom,url,time){var thaturl=url;var thatdom=$(dom);var refreshTime=time;var req=new Request({url:thaturl,method:'get',onSuccess:function(txt){$(thatdom).innerHTML=txt;$(thatdom).getParent().highlight();}});var doMany=function(){req.send();};doMany.periodical(refreshTime);}});var MFXToggle=new Class({initialize:function(el,el2){this.el=$(el);this.el2=$(el2);var clazz=this;this.el.addEvent('click',function(e){new Event(e).stop();clazz.toggle();});},is_open:function(){if(this.el2.getStyle('display')=='none'){return false;}else{return true;}},toggle:function(){var clazz=this;if(this.el2.getStyle('display')=='none'){this.el2.setStyle('display','block');this.el2.highlight();}else{this.el2.setStyle('display','none');}}});var MFXCharsLeft=new Class({initialize:function(target,info,amount,text){this.target=$(target);this.info=$(info);this.amount=amount;this.text='characters left';if(text!=null){this.text=text;}
this.target.set('maxlength',amount);var me=this;window.addEvent('domready',function(){me.update();});this.target.addEvent('blur',function(){me.update();});this.target.addEvent('keyup',function(){me.update();});},reset:function(){this.target.value="";this.update();},update:function(){var curr=this.target.value.length;this.info.innerHTML=(this.amount-curr)+' '+this.text;}});var MFXLazyImage=new Class({initialize:function(load_url){window.addEvent('domready',function(){$$('.mfxthumb').each(function(image)
{image.setProperty('_src',image.getProperty('title'));image.setProperty('src',load_url);if(image.match('em')){image.setProperty('style','background: url('+load_url+'); width:32px; height:32px; display:block;');}
image.addEvent('scrolled',function()
{if(((window.getSize().y+Window.getScrollTop())+120)>=this.getCoordinates().top){if(this.match('em')){var curr_el=this;var parent=this.getParent();curr_el.destroy();var el=new Element('em',{'style':curr_el.getProperty('_src')});el.inject(parent);}
if(this.match('img')){this.setProperty('src',this.getProperty('_src'));}
this.removeEvents('scrolled');}});});window.addEvent('scroll',function()
{$$('.mfxthumb').fireEvent('scrolled',null,250);});$$('.mfxthumb').fireEvent('scrolled');(function(){$$('.mfxthumb').fireEvent('scrolled');}).delay(5);});}});var MFXPopTop=new Class({options:{body:document.body,duration:250,onload:false,delay:1500,state:false,height:25,zindex:99,msg:null},initialize:function(msg,options){this.options=$merge(this.options,options);var opts=this.options;var el=new Element('div',{'style':'position:fixed;left:0;top:0;width:100%;display:none;overflow:hidden;','class':'mfxpoptop'});el.setStyle('z-index',opts['zindex']);el.inject($(opts['body']));var holder=new Element('div',{'style':'width:80%;margin:0 auto;','class':'mfxholder'});holder.inject(el);var iholder=new Element('div',{'class':'mfxinner'});iholder.innerHTML=msg;iholder.inject(holder);var clazz=this;el.addEvent('click',function(e){clazz.close();});this.options['el']=el;if(opts['onload']){window.addEvent('domready',function(){(function(){clazz.open();}).delay(opts['delay']);});}},open:function(){this.options['state']=true;var opts=this.options;var el=opts['el'];el.setStyle('opacity',1.0);el.setStyle('height','1px');el.setStyle('display','block');new Fx.Tween(el,{duration:opts['duration'],onComplete:function(){el.setStyle('height','auto');el.highlight();}}).start('height',1,opts['height']);},close:function(){this.options['state']=false;var opts=this.options;var el=opts['el'];new Fx.Tween(el,{duration:opts['duration'],onComplete:function(){el.setStyle('display','none');}}).start('opacity',1.0,0.1);},toggle:function(){var opts=this.options;if(opts['state']){this.open();}else{this.close();}}});var MFXSmoothScroll=new Class({options:{body:document,duration:1000},initialize:function(options){var opts=$merge(this.options,options);new SmoothScroll({duration:opts['duration'],offset:{'x':0,'y':0},transition:Fx.Transitions.Quad.easeInOut},opts['body']);}});var MFXClickField=new Class({initialize:function(body){if(body==null){body=document;}
body.getElements('input.clickfield').each(function(el,i){if(el.value==null||el.value==''){el.value=el.title;}
el.addEvent('click',function(e){if(el.value==el.title){el.value="";}});el.addEvent('blur',function(e){if(el.value.length==0){el.value=el.title;}});});}});function MFXJSLoader(url,delay,where,callback){window.addEvent('load',function(){(function(){var js_s=new Element('script',{'type':'text/javascript','src':url});js_s.inject(where);js_s.addEvent('load',function(){callback();});}).delay(delay);});}
var MFXValidator=new Class({validators:[{name:'required',error_msg:'Field #name cannot be empty',validate:function(el){return el.value.is_not_empty();}},{name:'numeric',error_msg:'Field #name has to be a number',validate:function(el){return el.value.is_number();}},{name:'string',error_msg:'Field #name has to be a string',validate:function(el){return el.value.is_not_number();}},{name:'email',error_msg:'Field #name has to contain a valid email',validate:function(el){return el.value.is_email();}}],initialize:function(form){form=$(form);var mfxval=this;form.addEvent('submit',function(e){form.getElements('input').each(function(el,i){mfxval.validators.each(function(val){if(el.get('class').match(val.name)){if(!val.validate(el)){new Event(e).stop();curr_class=el.get('class');el.set('class',curr_class+' '+'error');}else{curr_class=el.get('class');if(curr_class.match('error')){el.set('class',curr_class.replace('error',''));}}}});});});},merge_error_msg:function(hash){hash=new Hash(hash);this.validators.each(function(val){if(hash.has(val.name)){val.error_msg=hash[val.name];}});},add:function(validator){this.validators.include(validator);}});var MFXWarn=new Class({initialize:function(dom,msg,cb){dom=$(dom);if(msg==null){msg="Are you sure?";}
dom.addEvent('click',function(e){e=new Event(e);var cfirm=confirm(msg);if(!cfirm){e.stop();}else{if(cb!=null){cb(e);}}});}});var MFXHashLoop={settings:{has_init:false},events:[],addEvent:function(cb){var clazz=this;clazz.events.include(cb);if("onhashchange"in window){if(!clazz.settings['has_init']){window.onhashchange=function(){clazz.events.forEach(function(el,i){el();});};}}else{if(!clazz.settings['has_init']){clazz.settings['has_init']=true;var current=window.location.hash;var loop=function(){if(window.location.hash!=current){current=window.location.hash;clazz.events.forEach(function(el,i){el();});}
(function(){loop();}).delay(500);};loop();};}}};var currWindowEvents=window.addEvent;window.addEvent=function(what,cb){if(what.toLowerCase()=='hashchange'){MFXHashLoop.addEvent(cb);}else{currWindowEvents(what,cb);}};var MFXHashChange=new Class({options:{onChange:function(){},interval:250},initialize:function(options){var opts=$merge(this.options,options);if("onhashchange"in window){window.onhashchange=function(){opts['onChange']();};}else{var current=window.location.hash;var loop=function(){if(window.location.hash!=current){current=window.location.hash;opts['onChange']();}
(function(){loop();}).delay(opts['interval']);};loop();}}});var MFXPasswordConfirm=new Class({initialize:function(el,el2,update_el){var clazz=this;this.el=$(el);this.el2=$(el2);this.update_el=$(update_el);this.update_el.setStyle('display','none');this.el2.addEvent('keyup',function(e){clazz.update_el.setStyle('display',clazz.validate()?'none':'inline');});},validate:function(){return this.el.value.length>0&&this.el2.value.length>0&&this.el.value==this.el2.value;}});var MFXPasswordField=new Class({initialize:function(el,update_el,min_required){el=$(el);update_el=$(update_el);var ptest=new MFXPasswordTest(min_required);var test_it=function(){if(el.value.length>0){ptest.test_password(el.value);update_el.set('html','<span class="'+ptest.strVerdict.replace(' ','_')+'">'+ptest.strVerdict+'</span>');}else{update_el.set('html','');}};test_it();el.addEvent('keyup',function(e){test_it();});this.validate=function(){test_it();return ptest.level;}}});var MFXPasswordTest=new Class({initialize:function(min_required){if(min_required==null){min_required=0;}},test_password:function(passwd){this.intScore=0;this.strVerdict="weak";this.strLog="";this.level=0;if(passwd.length<5)
{this.intScore=(this.intScore+3);this.strLog=this.strLog+"3 points for length ("+passwd.length+")\n";}
else if(passwd.length>4&&passwd.length<8)
{this.intScore=(this.intScore+6);this.strLog=this.strLog+"6 points for length ("+passwd.length+")\n";}
else if(passwd.length>7&&passwd.length<16)
{this.intScore=(this.intScore+12);this.strLog=this.strLog+"12 points for length ("+passwd.length+")\n";}
else if(passwd.length>15)
{this.intScore=(this.intScore+18);this.strLog=this.strLog+"18 point for length ("+passwd.length+")\n";}
if(passwd.match(/[a-z]/))
{this.intScore=(this.intScore+1);this.strLog=this.strLog+"1 point for at least one lower case char\n";}
if(passwd.match(/[A-Z]/))
{this.intScore=(this.intScore+5);this.strLog=this.strLog+"5 points for at least one upper case char\n";}
if(passwd.match(/\d+/))
{this.intScore=(this.intScore+5);this.strLog=this.strLog+"5 points for at least one number\n";}
if(passwd.match(/(.*[0-9].*[0-9].*[0-9])/))
{this.intScore=(this.intScore+5);this.strLog=this.strLog+"5 points for at least three numbers\n";}
if(passwd.match(/.[!,@,#,$,%,^,&,*,?,_,~]/))
{this.intScore=(this.intScore+5);this.strLog=this.strLog+"5 points for at least one special char\n";}
if(passwd.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/))
{this.intScore=(this.intScore+5);this.strLog=this.strLog+"5 points for at least two special chars\n";}
if(passwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/))
{this.intScore=(this.intScore+2);this.strLog=this.strLog+"2 combo points for upper and lower letters\n";}
if(passwd.match(/([a-zA-Z])/)&&passwd.match(/([0-9])/))
{this.intScore=(this.intScore+2);this.strLog=this.strLog+"2 combo points for letters and numbers\n";}
if(passwd.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/))
{this.intScore=(this.intScore+2);this.strLog=this.strLog+"2 combo points for letters, numbers and special chars\n";}
if(this.intScore<13)
{this.strVerdict="very weak";this.level=0;}
else if(this.intScore>12&&this.intScore<21)
{this.strVerdict="weak";this.level=1;}
else if(this.intScore>21&&this.intScore<31)
{this.strVerdict="mediocre";this.level=2;}
else if(this.intScore>31&&this.intScore<42)
{this.strVerdict="strong";this.level=3;}
else
{this.strVerdict="stronger";this.level=4;}}});var MFXPopUp=new Class({options:{bg:'#000',zindex:99,anchor:null,duration:250,fade:true,width:'250px',inject:document.body,attach:null,onComplete:null,onDestroy:null,onOpen:null,heightOffset:100,msg:null,keyClose:null,opened:false,activateKeys:false},is_open:function(){return this.options['opened'];},close:function(){this.options['opened']=false;var bg=$('mfxbg');if(bg!=null){bg.destroy();}
if(this.options['keyClose']!=null){this.options['keyClose'].deactivate();}
if(this.options['onDestroy']!=null){this.options['onDestroy']();}
this.win_dom.setStyle('display','none');},open:function(msg){this.alert(msg);},fade_background:function(){var bg=new Element('div',{'style':'display: block; cursor:pointer; position: absolute; top:0; z-index:1; left:0; background-color: #000; opacity: 0.4;','id':'mfxbg'});var clazz=this;bg.setStyle('z-index',this.options['zindex']-2);bg.setStyle('width','100%');bg.setStyle('height',Window.getScrollHeight());bg.setStyle('opacity','0.1');bg.addEvent('click',function(e){clazz.close();});bg.inject(document.body);new Fx.Tween(bg,{duration:this.options['duration']-(this.options['duration']/2)}).start('opacity',0.1,0.4);},alert:function(msg){this.options['opened']=true;var win_dom=this.win_dom;var opts=this.options;var clazz=this;if(opts['onOpen']!=null){opts['onOpen']();}
if(opts['activateKeys']){opts['keyClose']=new Keyboard({defaultEventType:'keyup',events:{'esc':function(e){new Event(e);clazz.close();}}});opts['keyClose'].activate();}
if(msg!=null&&msg.is_not_empty()){opts['msg']=msg;}
if(opts['attach']==null){win_dom.set('html','<a id="mfxwarning"></a>'+opts['msg']);}
win_dom.setStyle('z-index',opts['zindex']);if(opts['inject']!=null){win_dom.inject($(opts['inject']));}
win_dom.getElements('.mfxclose').each(function(el,i){el.addEvent('click',function(e){clazz.close();});});if(win_dom.getStyle('display')=='none'){if(opts['fade']){clazz.fade_background();}
if(Browser.Engine.trident){var winw=document.body.offsetWidth;var winh=document.body.offsetHeight;}else{var winw=window.getWidth();var winh=window.getHeight();}
var current_view_height=(document.documentElement.scrollTop||document.body.scrollTop);win_dom.setStyle('left',((winw-(win_dom.getStyle('width').replace('px','')))/2)+'px');win_dom.setStyle('top',(current_view_height+opts['heightOffset'])+'px');win_dom.setStyle('z-index',opts['zindex']);win_dom.setStyle('opacity','0.1');win_dom.setStyle('display','block');if(opts['attach']==null){if((current_view_height-50)>win_dom.offsetTop){window.location="#mfxwarning";}}
new Fx.Tween(win_dom,{duration:opts['duration'],onComplete:opts['onComplete']}).start('opacity',0.1,1.0);}else{win_dom.setStyle('display','none');}},initialize:function(options){var opts=$merge(this.options,options);var clazz=this;this.options=opts;var win_dom=null;if(opts['attach']!=null){opts['attach']=$(opts['attach']);opts['attach'].setStyle('position','absolute');win_dom=opts['attach'];clazz.win_dom=win_dom;}else{win_dom=new Element('div',{'class':'mfxpopup-body','styles':{'position':'absolute','width':opts['width'],'padding':'5px 10px 5px 10px','display':'none','cursor':'pointer','opacity':0.1}});win_dom.inject(opts['inject']);clazz.win_dom=win_dom;win_dom.addEvent('click',function(e){clazz.close();});}
if(opts['anchor']!=null){$(opts['anchor']).addEvent('click',function(e){new Event(e).stop();clazz.alert();});}}});var MFXJSEnter=new Class({initialize:function(elm,cb){var arr=new Array();$(elm).getElements('input.text').forEach(function(el,i){el.focused=false;el.addEvent('click',function(){this.focused=true;});el.addEvent('blur',function(){this.focused=false;});arr.push(el);});var key=new Keyboard({defaultEventType:'keyup',events:{'enter':function(){arr.each(function(el,i){if(el.focused){cb();}});}}});key.activate();}});var MFXStyleSheet=new Class({options:{id:'theme',url:'/themes/#{key}/style.css',keys:[]},initialize:function(options){this.opts=$merge(this.options,options);},switch_theme:function(theme_name){var head=document.getElementsByTagName("head")[0];var curr_theme=$(this.opts['id']);if(curr_theme!=null){curr_theme.destroy();}
var toswitch=true;this.opts['keys'].forEach(function(el,i){if(el==theme_name){toswitch=false;}});if(toswitch){var url=this.opts['url'].replace('#{key}',theme_name);new Element('link',{'rel':'stylesheet','href':url,'id':this.opts['id'],'type':'text/css','media':'screen','title':'no title','charset':'utf-8'}).inject(head);}}});var MFXTips=new Class({options:{body:document.body,bg:'#111',color:'#fff',border:'0px',zindex:99,left:10,top:12,width:'200px',delay:1000,opacity:'0.8',classtype:'.mfxtip',onComplete:null},initialize:function(options){var tipGen=0;var opts=$merge(this.options,options);if(opts['body']==null){opts['body']=document.body;}
opts['body'].getElements(opts['classtype']).each(function(el,i){if(el.get('id')==null){el.setAttribute('id','mfxtip'+(tipGen=tipGen+1));}
if(el.get('title')!=null&&el.get('title').is_not_empty()){el.setAttribute('tip',new String(el.get('title')).xmlDecode());el.removeProperty('title');}
el.addEvent('mouseover',function(e){new Event(e).stop();var tip_caller=null;var tip=null;var tipfunc=function(){var y=el.getPosition().y;var x=el.getPosition().x;var w=el.getWidth();var w2=el.getParent().getWidth();var h=el.getHeight();tip=new Element('div',{'class':'mfxtip-body','styles':{'background-color':opts['bg'],'position':'absolute','left':(x+w+opts['left'])+'px','top':(y-opts['top'])+'px','z-index':opts['zindex'],'color':opts['color'],'border':opts['border'],'width':opts['width'],'padding':'5px 10px 5px 10px','opacity':0.1}});tip.setAttribute('id',el.get('id')+'tip');var inner=new Element('div');inner.addClass('inner');var msg=new Element('span',{'style':{'font-family':'Georgia','font-size':'1.2em'}});if(el.get('tip')==null){return;}
msg.innerHTML=el.get('tip');msg.injectInside(inner);inner.injectInside(tip);tip.injectInside(document.body);tip.addEvent('click',function(e){new Event(e).stop();this.destroy();});var postLoad=[];tip.getElements('code.js').forEach(function(el,i){postLoad.include(el.innerHTML);el.destroy();});new Fx.Tween(tip,{duration:250,onComplete:function(){postLoad.forEach(function(el,i){eval(el);});}}).start('opacity',0.1,opts['opacity']);};if(tip_caller==null){tip_caller=function(){tipfunc();};}
(function(){if(tip_caller!=null){tip_caller();}}).delay(opts['delay']);el.addEvent('mouseout',function(e){new Event(e).stop();tip_caller=null;(function(){if(tip!=null){new Fx.Tween(tip,{duration:250}).start('opacity',opts['opacity'],0.1).chain(function(){tip.destroy();if(opts['onComplete']!=null){opts['onComplete']();}});}}).delay((opts['delay']/2));});});});}});var MFXFieldTopTips=new Class({options:{body:document.body,classtype:'.mfxfieldtoptip'},initialize:function(options){var tipGen=0;var opts=$merge(this.options,options);if(opts['body']==null){opts['body']=document.body;}
opts['body'].getElements('input.'+opts['classtype']).each(function(el,i){if(el.get('id')==null){el.setAttribute('id',opts['classtype']+(tipGen=tipGen+1));}
if(el.get('title')!=null&&el.get('title').is_not_empty()){el.setAttribute('tip',new String(el.get('title')).xmlDecode());el.removeProperty('title');}
var title=el.get('tip');var pinfo=new MFXPopTop('<span>'+title+'</span>');el.addEvent('focus',function(e){pinfo.open();});el.addEvent('blur',function(e){pinfo.close();});});}});var MFXFieldTips=new Class({options:{body:document.body,bg:'#aa1a1a',color:'#fff',border:'1px solid #691010',zindex:99,width:'200px',classtype:'.mfxfieldtip'},initialize:function(options){var tipGen=0;var opts=$merge(this.options,options);if(opts['body']==null){opts['body']=document.body;}
opts['body'].getElements('input.'+opts['classtype']).each(function(el,i){if(el.get('id')==null){el.setAttribute('id',opts['classtype']+(tipGen=tipGen+1));}
if(el.get('title')!=null&&el.get('title').is_not_empty()){el.setAttribute('tip',new String(el.get('title')).xmlDecode());el.removeProperty('title');}
el.addEvent('focus',function(){var y=el.getPosition().y;var x=el.getPosition().x;var w=el.getWidth();var w2=el.getParent().getWidth();var h=el.getHeight();var tip=new Element('div',{'class':'mfxfieldtip-body','styles':{'background-color':opts['bg'],'position':'absolute','left':(x+w+10)+'px','top':(y-12)+'px','z-index':opts['zindex'],'color':opts['color'],'border':opts['border'],'width':opts['width'],'padding':'5px 10px 5px 10px','opacity':0.1}});tip.setAttribute('id',el.get('id')+'tip');if(el.type=="textarea"){tip.setStyle('top',y+'px');}
var inner=new Element('div');inner.addClass('inner');var msg=new Element('span',{'style':{'color':opts['color']}});if(el.get('tip')==null){return;}
msg.innerHTML=el.get('tip');msg.injectInside(inner);inner.injectInside(tip);tip.injectInside(document.body);new Fx.Tween(tip,{duration:250}).start('opacity',0.1,1.0);});el.addEvent('blur',function(){var tip=$(el.get('id')+'tip');if(tip!=null){new Fx.Tween(tip,{duration:250}).start('opacity',1.0,0.1).chain(function(){tip.destroy();});}});});}});var MFXHide=new Class({initialize:function(domel,_callback){domel=$(domel);domel.addEvent('click',function(e){new Event(e).stop();new Fx.Tween(this,{onComplete:function(){domel.setStyle('display','none');}}).start('opacity','1.0','0.1');if(_callback!=null){_callback();}});}});var MFXAjaxForm=new Class({options:{form:null,info:null,headers:null,onStart:null,onComplete:null,onFlashClick:null,onCheck:null,loader:'ajax_loader'},initialize:function(options){var opts=$merge(this.options,options);this.options=opts;$(opts['form']).addEvent('submit',function(e){new Event(e).stop();var loader=$(opts['loader']);if(loader!=null){loader.setStyle('display','block');}
this.set('send',{headers:opts['headers'],onRequest:function(){if(opts['onStart']!=null){opts['onStart']();}},onComplete:function(response){var resp=JSON.decode(response);if(loader!=null){loader.setStyle('display','none');}
var type='notice';var result=response;if(resp['type']){type=resp['type'];}
if(resp['result']){result=resp['result'];}
MFXApplication.flash(type,result,{flash:opts['info'],onComplete:opts['onFlashClick']});if(opts['onComplete']!=null){opts['onComplete'](resp);}}});if(opts['onCheck']!=null){if(opts['onCheck']()){this.send();}else{if(loader!=null){loader.setStyle('display','none');}}}else{this.send();}});}});var MFXApplication={flash:function(_type,_message,opts){opts=$merge({flash:'flash'},opts);var info_state=$(opts['flash']);info_state.removeEvents();new MFXHide(info_state,opts['onComplete']);if(info_state!=null){if(info_state.get('id')==null){info_state.setAttribute('id',opts['flash']);}
info_state.setStyle('opacity',1.0);info_state.setStyle('display','block');info_state.set('class',_type);info_state.set('html',_message);var current_view_height=(document.documentElement.scrollTop||document.body.scrollTop);if((current_view_height-50)>info_state.offsetTop){window.location="#flash";}}else{alert(_type+": "+_message);}}};var HashCode=function(length){chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";pass="";for(x=0;x<length;x++)
{i=Math.floor(Math.random()*62);pass+=chars.charAt(i);}
return pass;}
var UUID=function(){var s=[],itoh='0123456789ABCDEF';for(var i=0;i<36;i++)s[i]=Math.floor(Math.random()*0x10);s[14]=4;s[19]=(s[19]&0x3)|0x8;for(var i=0;i<36;i++)s[i]=itoh[s[i]];s[8]=s[13]=s[18]=s[23]='-';return s.join('');}
var MD5=function(string){function RotateLeft(lValue,iShiftBits){return(lValue<<iShiftBits)|(lValue>>>(32-iShiftBits));}
function AddUnsigned(lX,lY){var lX4,lY4,lX8,lY8,lResult;lX8=(lX&0x80000000);lY8=(lY&0x80000000);lX4=(lX&0x40000000);lY4=(lY&0x40000000);lResult=(lX&0x3FFFFFFF)+(lY&0x3FFFFFFF);if(lX4&lY4){return(lResult^0x80000000^lX8^lY8);}
if(lX4|lY4){if(lResult&0x40000000){return(lResult^0xC0000000^lX8^lY8);}else{return(lResult^0x40000000^lX8^lY8);}}else{return(lResult^lX8^lY8);}}
function F(x,y,z){return(x&y)|((~x)&z);}
function G(x,y,z){return(x&z)|(y&(~z));}
function H(x,y,z){return(x^y^z);}
function I(x,y,z){return(y^(x|(~z)));}
function FF(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(F(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);};function GG(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(G(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);};function HH(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(H(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);};function II(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(I(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);};function ConvertToWordArray(string){var lWordCount;var lMessageLength=string.length;var lNumberOfWords_temp1=lMessageLength+8;var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1%64))/64;var lNumberOfWords=(lNumberOfWords_temp2+1)*16;var lWordArray=Array(lNumberOfWords-1);var lBytePosition=0;var lByteCount=0;while(lByteCount<lMessageLength){lWordCount=(lByteCount-(lByteCount%4))/4;lBytePosition=(lByteCount%4)*8;lWordArray[lWordCount]=(lWordArray[lWordCount]|(string.charCodeAt(lByteCount)<<lBytePosition));lByteCount++;}
lWordCount=(lByteCount-(lByteCount%4))/4;lBytePosition=(lByteCount%4)*8;lWordArray[lWordCount]=lWordArray[lWordCount]|(0x80<<lBytePosition);lWordArray[lNumberOfWords-2]=lMessageLength<<3;lWordArray[lNumberOfWords-1]=lMessageLength>>>29;return lWordArray;};function WordToHex(lValue){var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;for(lCount=0;lCount<=3;lCount++){lByte=(lValue>>>(lCount*8))&255;WordToHexValue_temp="0"+lByte.toString(16);WordToHexValue=WordToHexValue+WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);}
return WordToHexValue;};function Utf8Encode(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}
else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}
return utftext;};var x=Array();var k,AA,BB,CC,DD,a,b,c,d;var S11=7,S12=12,S13=17,S14=22;var S21=5,S22=9,S23=14,S24=20;var S31=4,S32=11,S33=16,S34=23;var S41=6,S42=10,S43=15,S44=21;string=Utf8Encode(string);x=ConvertToWordArray(string);a=0x67452301;b=0xEFCDAB89;c=0x98BADCFE;d=0x10325476;for(k=0;k<x.length;k+=16){AA=a;BB=b;CC=c;DD=d;a=FF(a,b,c,d,x[k+0],S11,0xD76AA478);d=FF(d,a,b,c,x[k+1],S12,0xE8C7B756);c=FF(c,d,a,b,x[k+2],S13,0x242070DB);b=FF(b,c,d,a,x[k+3],S14,0xC1BDCEEE);a=FF(a,b,c,d,x[k+4],S11,0xF57C0FAF);d=FF(d,a,b,c,x[k+5],S12,0x4787C62A);c=FF(c,d,a,b,x[k+6],S13,0xA8304613);b=FF(b,c,d,a,x[k+7],S14,0xFD469501);a=FF(a,b,c,d,x[k+8],S11,0x698098D8);d=FF(d,a,b,c,x[k+9],S12,0x8B44F7AF);c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);a=FF(a,b,c,d,x[k+12],S11,0x6B901122);d=FF(d,a,b,c,x[k+13],S12,0xFD987193);c=FF(c,d,a,b,x[k+14],S13,0xA679438E);b=FF(b,c,d,a,x[k+15],S14,0x49B40821);a=GG(a,b,c,d,x[k+1],S21,0xF61E2562);d=GG(d,a,b,c,x[k+6],S22,0xC040B340);c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);b=GG(b,c,d,a,x[k+0],S24,0xE9B6C7AA);a=GG(a,b,c,d,x[k+5],S21,0xD62F105D);d=GG(d,a,b,c,x[k+10],S22,0x2441453);c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);b=GG(b,c,d,a,x[k+4],S24,0xE7D3FBC8);a=GG(a,b,c,d,x[k+9],S21,0x21E1CDE6);d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);c=GG(c,d,a,b,x[k+3],S23,0xF4D50D87);b=GG(b,c,d,a,x[k+8],S24,0x455A14ED);a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);d=GG(d,a,b,c,x[k+2],S22,0xFCEFA3F8);c=GG(c,d,a,b,x[k+7],S23,0x676F02D9);b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);a=HH(a,b,c,d,x[k+5],S31,0xFFFA3942);d=HH(d,a,b,c,x[k+8],S32,0x8771F681);c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);a=HH(a,b,c,d,x[k+1],S31,0xA4BEEA44);d=HH(d,a,b,c,x[k+4],S32,0x4BDECFA9);c=HH(c,d,a,b,x[k+7],S33,0xF6BB4B60);b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);d=HH(d,a,b,c,x[k+0],S32,0xEAA127FA);c=HH(c,d,a,b,x[k+3],S33,0xD4EF3085);b=HH(b,c,d,a,x[k+6],S34,0x4881D05);a=HH(a,b,c,d,x[k+9],S31,0xD9D4D039);d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);b=HH(b,c,d,a,x[k+2],S34,0xC4AC5665);a=II(a,b,c,d,x[k+0],S41,0xF4292244);d=II(d,a,b,c,x[k+7],S42,0x432AFF97);c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);b=II(b,c,d,a,x[k+5],S44,0xFC93A039);a=II(a,b,c,d,x[k+12],S41,0x655B59C3);d=II(d,a,b,c,x[k+3],S42,0x8F0CCC92);c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);b=II(b,c,d,a,x[k+1],S44,0x85845DD1);a=II(a,b,c,d,x[k+8],S41,0x6FA87E4F);d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);c=II(c,d,a,b,x[k+6],S43,0xA3014314);b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);a=II(a,b,c,d,x[k+4],S41,0xF7537E82);d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);c=II(c,d,a,b,x[k+2],S43,0x2AD7D2BB);b=II(b,c,d,a,x[k+9],S44,0xEB86D391);a=AddUnsigned(a,AA);b=AddUnsigned(b,BB);c=AddUnsigned(c,CC);d=AddUnsigned(d,DD);}
var temp=WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);return temp.toLowerCase();}
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(input){var output="";var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;input=Base64._utf8_encode(input);while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;}
output=output+
this._keyStr.charAt(enc1)+this._keyStr.charAt(enc2)+
this._keyStr.charAt(enc3)+this._keyStr.charAt(enc4);}
return output;},decode:function(input){var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<input.length){enc1=this._keyStr.indexOf(input.charAt(i++));enc2=this._keyStr.indexOf(input.charAt(i++));enc3=this._keyStr.indexOf(input.charAt(i++));enc4=this._keyStr.indexOf(input.charAt(i++));chr1=(enc1<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2);}
if(enc4!=64){output=output+String.fromCharCode(chr3);}}
output=Base64._utf8_decode(output);return output;},_utf8_encode:function(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}
else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}
return utftext;},_utf8_decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}
else if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}
else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}
return string;}}
var UBInterface=$merge(MFXApplication,{settings:{},init_ui:function(){new UBMenu('lang_menu');new UBMenu('theme_menu');var theme_menu=$('theme_menu');var clazz=this;if(theme_menu!=null){theme_menu.getElements('a').forEach(function(el,i){el.addEvent('click',function(e){new Event(e).stop();if(clazz.is_logged_in()){clazz.api_request({url:'/api/change_theme/'+el.get('id'),method:'POST'});}
clazz.switch_theme(el.get('id'));});});}
var logo=$('logo');if(logo!=null){logo.addEvent('click',function(e){window.location="http://uploadbooth.com/";});}
var clazz=this;clazz.settings['new_reg_alert']=function(){new MFXPopUp({width:500}).alert('<div class="uh"><div class="ui"><span>'+i18n['js']['registration_info']+'</span></div></div>');}
if(clazz.is_registration_page()){clazz.settings['new_reg_alert']();}
var newaccount=$('newaccount');if(newaccount!=null){newaccount.addEvent('click',function(e){if(clazz.is_registration_page()){new Event(e).stop();clazz.settings['new_reg_alert']();}});}},is_registration_page:function(){var uri=window.location.href;return uri.match(/(http:\/\/www.uploadbooth.com:[0-9]+\/$|http:\/\/uploadbooth.com\/$)/)&&!this.is_logged_in();},switch_theme:function(theme){new MFXStyleSheet({'keys':['default']}).switch_theme(theme);Cookie.write('theme',theme,{domain:'.uploadbooth.com',path:'/',duration:30});},get_value:function(field){field=$(field);if(field.get('tag')=='input'){return field.value;}else{return field.innerHTML;}},define_batch:function(batch){batch=$(batch);if(batch.value==null||batch.value.length<1){batch.set('value',HashCode(7).toLowerCase());}},get_form_login:function(){var addy=this.get_value('addy');var login=this.get_value('login');if(login.is_not_empty()){return login;}else{return addy;}},get_form_batch:function(){var batch=this.get_value('batch');var batch_name=this.get_value('batch_name');if(batch_name.is_not_empty()){return batch_name;}else{return batch;}},generate_url:function(login,batch){port=document.location.port;if(port.is_not_empty()&&port==443){return"https://"+login+".uploadbooth.com/"+batch;}else if(port.is_not_empty()&&port!=80){return"http://"+login+".uploadbooth.com:"+port+"/"+batch;}else{return"http://"+login+".uploadbooth.com/"+batch;}},get_form_upload_url:function(){return this.generate_url(this.get_form_login(),this.get_form_batch());},hide_config_box_if_possible:function(){var batch=$('batch');var addy=$('addy');var define_user=$('define_user');var furl=$('final_url');var lpreview=$('linkpreview');if(this.is_disabled(addy)&&this.is_disabled(batch)){if(define_user!=null&&furl!=null){define_user.setStyle('display','none');furl.setStyle('display','block');furl.set('html','<a href="'+this.get_form_upload_url()+'">'+this.get_form_upload_url()+'</a>');if(lpreview!=null){lpreview.setStyle('display','none');}}}},disable_field:function(field){field=$(field);field.set('disabled','true');},is_disabled:function(field){field=$(field);return field.get('disabled')==true;},rename_file_popup:function(el,_batch,_file){var clazz=this;var curr_url=window.location.href;if(curr_url.indexOf('#')>0){curr_url=curr_url.substring(curr_url.indexOf('#'));}
if($(_batch+'-'+_file+'-rename-dialog')==null){alert('null '+_file+" : "+_batch);}
new MFXPopUp({anchor:el,attach:$(_batch+'-'+_file+'-rename-dialog'),onDestroy:function(){clazz.quickview_keys(true);},onOpen:function(){clazz.quickview_keys(false);}});var form=$(_batch+'-'+_file+'-rename-form');form.addEvent('submit',function(e){new Event(e).stop();this.set('send',{headers:clazz.auth_headers(),onComplete:function(resp){resp=JSON.decode(resp);if(resp['type']=='error'){clazz.flash(resp['type'],resp['result'],{flash:_batch+'-'+_file+'-flash'});}else{clazz.flash('notice',i18n['js']['file_renamed'],{flash:_batch+'-'+_file+'-flash'});window.location=curr_url;}}});this.send();});},rename_batch_popup:function(_batch){var curr_url=window.location.href;if(curr_url.indexOf('#')>0){curr_url=curr_url.substring(curr_url.indexOf('#'));}
new MFXPopUp({anchor:_batch+'-rename',attach:_batch+'-rename-dialog'});var clazz=this;var form=$(_batch+'-rename-form');form.addEvent('submit',function(e){new Event(e).stop();this.set('send',{headers:clazz.auth_headers(),onComplete:function(resp){resp=JSON.decode(resp);if(resp['type']=='error'){clazz.flash(resp['type'],resp['result'],{flash:_batch+'-flash'});}else{clazz.flash('notice',i18n['js']['batch_renamed'],{flash:_batch+'-flash'});window.location=curr_url;}}});this.send();});},client_login:function(_login,_pass,notify){var clazz=this;notify=(notify==null)?false:true
new Request({url:'/api/authenticate',method:'post',data:{login:_login,password:_pass},onComplete:function(resp){resp=JSON.decode(resp);if(resp['type']=="notice"){if(notify){clazz.flash('notice',i18n['js']['logged_in']);}
clazz.new_login(_login,_pass);var lnk=$('loginlogout');if(lnk!=null){lnk.setStyle('display','none');}}else{if(notify){clazz.flash('error',resp['result']);}}}}).send();},login_info:{},new_login:function(login,password){this.login_info['login']=login;Cookie.write('ubauth',login+":"+MD5(password),{domain:'.uploadbooth.com',path:'/',duration:15});},update_ui:function(login){this.update_profile_pic(login);(function(){new UBAsyncLoad('footer_feed','/ajax/footer_feed/'+login);}).delay(1000);},update_profile_pic:function(login){var pic=$('profile_pic');if(pic!=null){new Request({method:'GET',url:'/ajax/profile_pic/'+login,onSuccess:function(resp){pic.set('src',resp);}}).send();}},contact_form:function(){new MFXAjaxForm({form:'contact_form',info:'flash',onComplete:function(resp){if(resp['type']=='notice'){$('contact_form').setStyle('display','none');}},onFlashClick:function(){window.location="/contact";}});},toggle_view:function(dom){$(dom).getElements('.toggle-view').each(function(el,i){var parent=el.getParent().getParent();parent.addEvent('mouseover',function(){el.setStyle('display','block');});parent.addEvent('mouseout',function(){el.setStyle('display','none');});});},password_form:function(){var mfp=new MFXPasswordField('new_password','password_status',6);var mfcp=new MFXPasswordConfirm('new_password','confirm_password','password_confirm_status');var new_pass=$('new_password');var curr_pass=$('current_password');var clazz=this;new MFXAjaxForm({form:'passwordform',info:'flash',headers:clazz.auth_headers(),onCheck:function(){var error="";if(curr_pass.value.length==0){error+="&bull; "+i18n['model']['current_invalid_password']+"<br/>";}
if(new_pass.value.length==0){error+="&bull; "+i18n['model']['invalid_password']+"<br/>";}
if(!mfcp.validate()){error+="&bull; "+i18n['settings_form']['pass_not_match']+"<br/>";}
if(mfp.validate()<1){error+="&bull; "+i18n['settings_form']['pass_needs_effort'];}
if(error.length>0){clazz.flash('error',error);}
return error.length==0;},onComplete:function(resp){if(resp['type']=='notice'){clazz.new_login(clazz.login_info['login'],new_pass.value);}
clazz.flash(resp['type'],resp['result']);}});},settings_form:function(login){new MFXAjaxForm({form:'settingsform',info:'flash',onComplete:function(resp){UBInterface.update_ui(login);}});},login_form:function(){new MFXAjaxForm({form:'login_form',info:'flash',onComplete:function(resp){if(resp['type']=='notice'){new Fx.Tween('login_form',{onComplete:function(){$('login_form').setStyle('display','none');}}).start('opacity','1.0','0.1');window.location=resp['url'];}}});},fetch:function(target,uri){this.fetch(target,uri,null);},fetch:function(target,uri,cb){new UBAsyncLoad(target,uri,cb);},download_all_wait:function(el){el=$(el);el.addEvent('click',function(e){e=new Event(e);msg='<div style=\'text-align:center;padding-bottom:4px;\'>Processing the download...<br/><img src=\'http://static.uploadbooth.com/images/ajax-loader.gif\' alt=\'loading\'/><br/></div>';if(Browser.Engine.gecko||Browser.Engine.trident){e.stop();var vp=new MFXPopUp();vp.alert(msg);var ve=new Element('iframe',{src:el.get('href'),height:0,width:0,frameborder:0});ve.addEvent('readystatechange',function(e){vp.close();});ve.addEvent('load',function(e){vp.close();});ve.inject(el.getParent());}else{new MFXPopUp().alert(msg);}});},append_pass_to_link:function(el,batch_name){el=$(el);if(el!=null){var cookie=Cookie.read(batch_name);var href=el.get('href');if(href!=null&&cookie!=null){if(href.indexOf('?')>0){el.set('href',href+"&password="+cookie);}else{el.set('href',href+"?password="+cookie);}}}},quickview_cache:{},quickview_prefetch_next:function(){var clazz=this;if(clazz.quickview_cache['prefetched']==null){clazz.quickview_cache['prefetched']={};}
var idx=clazz.quickview_cache['key_index']+1;idx=(idx>=clazz.quickview_cache['preview_pops'].length)?0:idx;var pop=clazz.quickview_cache['preview_pops'][idx];var obj=JSON.decode(pop.prefetch_end_points);obj.forEach(function(el,i){if(clazz.quickview_cache['prefetched'][el]==null){(function(){if(Browser.Engine.trident){new Image().src=el;}else{new Element('object',{data:el,width:0,height:0}).inject(document.body);}}).delay(500);clazz.quickview_cache['prefetched'][el]=true;}});},quickview_left:function(){var clazz=this;var idx=clazz.quickview_cache['key_index']-=1;idx=(idx<0)?0:idx;var pop=clazz.quickview_cache['preview_pops'][idx];if(clazz.quickview_cache['key_current']!=null){clazz.quickview_cache['key_current'].close();clazz.quickview_cache['key_current']=null;}
clazz.quickview_cache['key_current']=pop;pop.alert();},quickview_right:function(){var clazz=this;var idx=clazz.quickview_cache['key_index']+=1;idx=(idx>=clazz.quickview_cache['preview_pops'].length)?0:idx;var pop=clazz.quickview_cache['preview_pops'][idx];if(clazz.quickview_cache['key_current']!=null){clazz.quickview_cache['key_current'].close();clazz.quickview_cache['key_current']=null;}
clazz.quickview_cache['key_current']=pop;pop.alert();},quickview_close:function(){var clazz=this;if(clazz.quickview_cache['key_current']!=null){clazz.quickview_cache['key_current'].close();clazz.quickview_cache['key_current']=null;}},quickview_onhash:function(){var clazz=this;if(clazz.quickview_cache['preview_pops']==null){clazz.quickview_cache['preview_pops']=[];}
window.addEvent('hashchange',function(){var opened=false;clazz.quickview_cache['preview_pops'].forEach(function(pop,i){if(pop.file_name==window.location.hash.replace('#','')){opened=true;if(!pop.is_open()){clazz.quickview_close();pop.open();}}});if(!opened){clazz.quickview_close();}});clazz.quickview_cache['preview_pops'].forEach(function(pop,i){if(pop.file_name==window.location.hash.replace('#','')){pop.open();}});},quickview_arrows:function(el){el=$(el);var clazz=this;el.getElements('a.mleft').forEach(function(el,i){el.addEvent('click',function(e){new Event(e).stop();clazz.quickview_left();});});el.getElements('a.mright').forEach(function(el,i){el.addEvent('click',function(e){new Event(e).stop();clazz.quickview_right();});});},quickview_keys:function(bool){var clazz=this;if(clazz.quickview_cache['key']==null){var key=new Keyboard({defaultEventType:'keyup',events:{'left':function(e){new Event(e).stop();clazz.quickview_left();},'right':function(e){new Event(e).stop();clazz.quickview_right();},'esc':function(e){new Event(e).stop();clazz.quickview_close();}}});clazz.quickview_cache['key_index']=-1;clazz.quickview_cache['key_current']=null;clazz.quickview_cache['key']=key;}
var key=clazz.quickview_cache['key'];if(bool){key.activate();}else{key.deactivate();}},quickview_fetch:function(target,uri){var clazz=this;clazz.fetch(target,uri,function(){clazz.quickview_prefetch_next();});},quickview:function(el,login,batch,file){el=$(el);var clazz=this;var dialog=$(batch+'-'+file+'-quickviewdialog');if(clazz.quickview_cache['preview_pops']==null){clazz.quickview_cache['preview_pops']=[];}
var qs=dialog.getElements('div.quickstage')[0];var qc=dialog.getElements('a.quickcode')[0];var qpc=dialog.getElements('a.prefetchcode')[0];var qclose=dialog.getElements('a.qclosepop')[0];qclose.addEvent('click',function(e){new Event(e).stop();clazz.quickview_close();});var pop=new MFXPopUp({anchor:el,attach:dialog,heightOffset:35,onComplete:function(){window.location.hash=file;if(qc==null){qs.innerHTML=i18n['js']['preview_error'];}else{qs.innerHTML=qc.get('title').xmlDecode();qs.getElements('code.js').forEach(function(el,i){var js=el.innerHTML;el.destroy();eval(js);});clazz.quickview_cache['key_current']=pop;for(i=0;i<clazz.quickview_cache['preview_pops'].length;i++){if(clazz.quickview_cache['preview_pops'][i]==pop){clazz.quickview_cache['key_index']=i;}}}},onDestroy:function(){window.location.hash='nil';soundManager.stopAll();}});pop.file_name=file;pop.prefetch_end_points=(qpc!=null)?qpc.get('title').xmlDecode():'[]';clazz.quickview_cache['preview_pops'].include(pop);},audio_preview_cache:{},play_audio_preview:function(uri){var player=soundManager.createSound({id:'preview-'+uri,url:uri,autoLoad:true,autoPlay:false,volume:100});player.play();},audio_preview:function(uri,dom,size){var ppanel=$(dom);var clazz=this;if(ppanel!=null){if(clazz.audio_preview_cache[uri]!=null){ppanel.innerHTML=clazz.audio_preview_cache[uri];UBInterface.play_audio_preview(uri);clazz.quickview_prefetch_next();}else{var append=(uri.indexOf('?')>0)?'&':'?';var info_url=uri+append+'size='+size+'&info=true';new Request({method:'GET',url:info_url,onComplete:function(ret){ret=JSON.decode(ret);var pic_url=uri+append+'size='+size+'&pic=true';var llink='http://www.last.fm/search?q=';var alink=(ret['artist']=='n/a'||ret['artist']==null)?'Not Tagged':'<a target=\"_vblank\" href=\"'+llink+ret['artist'].urlEncode()+'&type=artist\">'+ret['artist']+'</a>';var amlink=(ret['album']=='n/a'||ret['album']==null)?'Not Tagged':'<a target=\"_vblank\" href=\"'+llink+(ret['artist']+' '+ret['album']).urlEncode()+'&type=album\">'+ret['album']+'</a>';var tlink=(ret['title']=='n/a'||ret['title']==null)?'Not Tagged':ret['title'];var out='<b>Artist:</b> '+alink;out+='<br/><b>Album:</b> '+amlink;out+='<br/><b>Song Name:</b> '+tlink;out+='<div style="text-align:center; margin-top:2px;">';out+='<img onload="UBInterface.play_audio_preview(\''+uri+'\');" src="'+pic_url+'" alt="album art" />';out+='</div>';clazz.audio_preview_cache[uri]=out;ppanel.innerHTML=out;clazz.quickview_prefetch_next();}}).send();}}},check_password_form:function(ret_url){var clazz=this;new MFXAjaxForm({form:'password_form',info:'flash',onComplete:function(resp){if(resp['type']=='notice'){var exp=(resp['expire']<=3600*24)?1:resp['expire']/3600/24;Cookie.write(resp['batch'],resp['password'],{domain:'.uploadbooth.com',duration:exp,path:'/'})
if(ret_url!=null&&ret_url.length>0){window.location=ret_url;}else{window.location=resp['url'];}}else{clazz.flash('error',resp['result'])}}});},is_logged_in:function(){return Cookie.read('ubauth')!=null;},auth_headers:function(opts){if(opts!=null&&opts['login']!=null&&opts['password']!=null){return{authorization:'Basic '+Base64.encode(opts['login']+':'+opts['password'])};}else{var cookie=Cookie.read('ubauth');if(cookie!=null){return{authorization:'Basic '+Base64.encode(cookie)};}else{return{};}}},api_request:function(opts_passed){var _headers=this.auth_headers(opts_passed);var opts={headers:_headers,method:'get'}
opts=$merge(opts,opts_passed);new Request(opts).send();},delete_item:function(dom,msg){dom=$(dom);var clazz=this;new MFXWarn(dom,msg,function(e){e.stop();var parent=null;var tempParent=$(dom);while(parent==null){if(tempParent!=null&&tempParent.get('class')!=null&&tempParent.get('class').match('ub-row')){parent=tempParent;break;}else if(tempParent==null){parent=$(dom).getParent().getParent();break;}
tempParent=tempParent.getParent();}
var api_url=(dom.get('href').indexOf('api')>0)?dom.get('href'):'/api'+dom.get('href');new Fx.Tween(parent,{duration:250,onComplete:function(){new Request({method:'get',url:api_url,headers:clazz.auth_headers()}).send();parent.destroy();}}).start('opacity','1.0','0.1');});},show_password:function(link,field){link=$(link);field=$(field);var ieswap=function(thefield,thetype){thefield=$(thefield);var ne=new Element('input',{type:thetype,id:field.get('id'),name:field.get('name'),'class':field.get('class'),value:field.get('value')});thefield.getParent().replaceChild(ne,thefield);}
link.addEvent('click',function(e){new Event(e).stop();if(field!=null&&field.type&&field.type=="password"){Browser.Engine.trident?ieswap(field,'text'):field.type="text";field=$(field.id);}else if(field!=null&&field.type&&field.type=="text"){Browser.Engine.trident?ieswap(field,'password'):field.type="password";field=$(field.id);}});},upload_edit_form:function(uuid,login_name,batch_name){var clazz=this;$('login').value=login_name;$('batch_name').value=batch_name;$('batch').value=batch_name;$('addy').value=login_name;clazz.define_batch('batch');clazz.disable_field('addy');clazz.disable_field('batch');clazz.hide_config_box_if_possible();clazz.upload_form(function(){return uuid;},function(){return login_name;},function(){return batch_name;},function(resp){});},upload_new_logged_in_form:function(uuid,login_name){var batch=$('batch');var login=$('addy');var clazz=this;batch.set('value',HashCode(7).toLowerCase());clazz.define_batch(batch);clazz.disable_field(login);clazz.upload_form(function(){return uuid;},function(){return login_name;},function(){return clazz.get_value(batch);},function(resp){clazz.disable_field(batch);clazz.hide_config_box_if_possible();});},upload_new_form:function(){var batch=$('batch');var login=$('addy');var clazz=this;batch.set('value',HashCode(7).toLowerCase());clazz.define_batch(batch);clazz.upload_form(function(){return UUID();},function(){return clazz.get_value(login);},function(){return clazz.get_value(batch);},function(resp){clazz.disable_field(batch);if(resp['type']=='notice'){if(clazz.get_value(login).length>3){clazz.disable_field(login);}
var passwd=$('passwd');if(passwd!=null){clazz.client_login(clazz.get_value(login),clazz.get_value('passwdf'));$('passwd').setStyle('display','none');}
if(clazz.has_files_uploaded()&&clazz.is_disabled(login)&&clazz.is_disabled(batch)){}
clazz.hide_config_box_if_possible();}});},upload_form:function(uuid_cb,login_cb,batch_cb,submitted_cb){new MFXToggle($('more-attach'),$('more-settings'));var emailUI=new MFXToggle($('email-more-attach'),$('email-more-settings'));var clazz=this;var link_preview=$('linkpreview');if(link_preview!=null){var update_preview=function(){link_preview.highlight();link_preview.getElements('span')[0].set('html',clazz.generate_url('<b>'+login_cb()+'</b>','<b>'+batch_cb()+'</b>'));link_preview.setStyle('display','block');};var batch=$('batch');var addy=$('addy');if(batch!=null){batch.addEvent('keyup',function(e){update_preview();});}
if(addy!=null){addy.addEvent('keyup',function(e){update_preview();var passwd=$('passwd');if(passwd!=null){if(passwd.getStyle('display')=="none"&&!clazz.is_disabled(addy)){$('passwd').setStyle('display','block');$('passwd').highlight();}}});}}
clazz.init_uploader(uuid_cb());$('upload_form').addEvent('submit',function(e){new Event(e).stop();var loginpic=$('yourlogin');if(loginpic!=null){loginpic.setStyle('display','none');}
$('login').set('value',login_cb());$('batch_name').set('value',batch_cb());var login_str=$('login').value;if(login_str.is_empty()){clazz.flash('error',i18n['js']['choose_login_first']);return;}
var passwd_div=$('passwd');if(passwd_div!=null&&passwd_div.getStyle('display')=='block'){var passwd=$('passwdf').value;var cpasswd=$('cpasswdf').value;if(passwd.length==0||cpasswd.length==0){clazz.flash('error',i18n['js']['choose_password']);return;}
if(passwd!=cpasswd){clazz.flash('error',i18n['js']['pass_not_match']);return;}}
this.set('send',{onComplete:function(response){var resp=JSON.decode(response);clazz.flash(resp['type'],resp['result']);if(resp['type']=='notice'){if(emailUI.is_open()){emailUI.toggle();}
['to','subject','body'].forEach(function(e,i){if($(e)!=null){$(e).value="";}});}
submitted_cb(resp);}});this.send();});},has_files_uploaded:function(){var ub_files=$('uploaded_files');if(ub_files!=null){return ub_files.get('value').length>1}else{return false;}},refresh_files:function(login,batch,opts){var clazz=this;opts=$merge({update:null,onComplete:null},opts);new Request({method:'GET',url:'/ajax/files_list/'+login+'/'+batch,onComplete:function(ret){dom=$(opts['update']);if(dom!=null){dom.innerHTML=ret;clazz.scan_files(dom);if(opts['onComplete']!=null){opts['onComplete']();}}}}).send();},scan_files:function(lst){var clazz=this;lst=$(lst);var extract_info=function(el,txt){if(el.get('info')!=null){return JSON.decode(el.get('info'));}else{el.set('info',el.get('title'));el.set('title',txt==null?'':txt);return extract_info(el,null);}}
clazz.quickview_cache={};lst.getElements('a.file-delete').forEach(function(el,i){extract_info(el,null);clazz.delete_item(el,i18n['site']['are_you_sure_delete']);});lst.getElements('a.file-rename').forEach(function(el,i){var info=extract_info(el,null);clazz.rename_file_popup(el,info['batch'],info['file']);});lst.getElements('a.file-no-quickview').forEach(function(el,i){new MFXPopUp({anchor:el,attach:'error-no-preview'});});lst.getElements('a.file-quickview').forEach(function(el,i){var info=extract_info(el,i18n['site']['show_quick_view']);clazz.quickview(el,info['login'],info['batch'],info['file']);});new MFXTips({body:lst,width:'300px'});clazz.quickview_keys(true);clazz.quickview_arrows(lst);clazz.quickview_onhash();},files_uploader:function(uuid,batch,opts){var clazz=this;opts=$merge({attach:'upload-attach',list:'upload-list',files:'files'},opts);var _nocache=Browser.Engine.trident?true:false;var up=new FancyUpload3.Attach($(opts['list']),$(opts['attach']),{path:'/javascripts/fancyupload/source/Swiff.Uploader.swf',url:'/file_upload?uuid='+uuid,nocache:_nocache,multiple:true,queued:1,fancyroot:'/javascripts/fancyupload',fileSizeMax:150*1024*1024,verbose:true,onSelectFail:function(files){files.each(function(file){new Element('li',{'class':'file-invalid',events:{click:function(){this.destroy();}}}).adopt(new Element('span',{html:file.validationErrorMessage||file.validationError})).inject(this.list,'bottom');},this);},onFileSuccess:function(file){new Element('input',{type:'checkbox','checked':true}).inject(file.ui.element,'top');file.ui.element.highlight('#e6efc2');clazz.refresh_files(clazz.login_info['login'],batch,{update:opts['files'],onComplete:function(){file.ui.element.destroy();}});},onFileError:function(file){file.ui.cancel.set('html','Retry').removeEvents().addEvent('click',function(){file.requeue();return false;});new Element('span',{html:file.errorMessage,'class':'file-error'}).inject(file.ui.cancel,'after');},onBrowse:function(file){var url='/file_upload?uuid='+uuid+'&batch='+batch;this.setOptions({url:url});},onFileRequeue:function(file){file.ui.element.getElement('.file-error').destroy();file.ui.cancel.set('html','Cancel').removeEvents().addEvent('click',function(){file.remove();return false;});this.start();}});},init_uploader:function(uuid){var upload_uuid=$('upload_uuid');if(upload_uuid!=null){upload_uuid.set('value',uuid);}
var clazz=this;var _nocache=Browser.Engine.trident?true:false;var up=new FancyUpload3.Attach('upload-list','#upload-attach',{path:'/javascripts/fancyupload/source/Swiff.Uploader.swf',url:'/file_upload?uuid='+uuid,nocache:_nocache,multiple:true,queued:1,fancyroot:'/javascripts/fancyupload',fileSizeMax:150*1024*1024,verbose:true,onSelectFail:function(files){files.each(function(file){new Element('li',{'class':'file-invalid',events:{click:function(){this.destroy();}}}).adopt(new Element('span',{html:file.validationErrorMessage||file.validationError})).inject(this.list,'bottom');},this);},onFileSuccess:function(file){new Element('input',{type:'checkbox','checked':true}).inject(file.ui.element,'top');file.ui.element.highlight('#e6efc2');var ub_files=$('uploaded_files');if(ub_files!=null){if(ub_files.value.indexOf(file.name)==0){var res=ub_files.value=ub_files.value+file.name+",";ub_files.set('value',res);}}},onFileError:function(file){file.ui.cancel.set('html','Retry').removeEvents().addEvent('click',function(){file.requeue();return false;});new Element('span',{html:file.errorMessage,'class':'file-error'}).inject(file.ui.cancel,'after');},onBrowse:function(file){clazz.define_batch('batch');clazz.disable_field('batch');clazz.hide_config_box_if_possible();var url='/file_upload?uuid='+uuid+'&batch='+clazz.get_value('batch');this.setOptions({url:url});},onFileRequeue:function(file){file.ui.element.getElement('.file-error').destroy();file.ui.cancel.set('html','Cancel').removeEvents().addEvent('click',function(){file.remove();return false;});this.start();}});}});var UBAsyncLoad=new Class({initialize:function(domel,fetch_url,cb){domel=$(domel);if(domel!=null){new Request({method:'get',url:fetch_url,onSuccess:function(resp){domel.set('html',resp);if(cb!=null){cb();}},onRequest:function(){domel.set('html','<img src="/images/loading.gif" alt="loading"/><br class="clear"/>');}}).send();}}});var UBMenu=new Class({initialize:function(menu){menu=$(menu);if(menu!=null){var menu_p=menu.getParent();menu_p.addEvent('mouseover',function(e){menu.getElements('img').forEach(function(el,i){if(el.get('src')==''||el.get('src')==null){el.setAttribute('src',el.get('alt'));}});menu.setStyle('display','block');});menu_p.addEvent('mouseout',function(e){menu.setStyle('display','none');});}}});soundManager.url='/javascripts/soundmanager2/swf/';soundManager.flashVersion=9;soundManager.useFlashBlock=false;soundManager.useHTML5Audio=false;soundManager.debugMode=false;soundManager.useConsole=false;soundManager.onload=function(){}
window.addEvent('domready',function(){new MFXSmoothScroll();new MFXClickField();new MFXFieldTips({bg:'#aa1a1a',color:'#fff',border:'1px solid #691010',zindex:99});new MFXFieldTopTips();UBInterface.init_ui();});