var toggleLayer=function(d){var layer=$(d);var display=layer.getStyle('display')=='none';if(display){showLayer(layer);}else{hideLayer(layer);}
return display;}
var showLayer=function(d,as){if($defined(as)){d.setStyle('display',as);}else{d.setStyle('display','block');}}
var hideLayer=function(d){d.setStyle('display','none');}
var toggleLayers=function(show,hide){if($type(hide)=='array')
var layerHide=$$(hide);else
var layerHide=$(hide);if($type(show)=='array')
var layerShow=$$(show);else
var layerShow=$(show);if(layerHide!==null)
layerHide.setStyle('display','none');if(layerShow!==null)
layerShow.setStyle('display','block');}
var remember=function(field){var confirmText="By ticking this box you will no longer need to log in"+"to Zeadoo from this computer.\n\n"+"You can turn this feature off by logging out any time\n\n"+"Please don't use this option unless you are the only person "+"who has access to this computer."
if($(field).checked)
if(!confirm(confirmText))
$(field).checked=false;return true;}
var urlencode=function(str){str=escape(str);str=str.replace('+','%2B');str=str.replace('%20','+');str=str.replace('*','%2A');str=str.replace('/','%2F');str=str.replace('@','%40');return str;}
var keyPress=function(ele,e,fire,key){var k=$defined(key)?key:fire;if(e.key==k){ele.fireEvent(fire);return false;}else{return true;}}
var enterSubmitForm=function(ele,formEl){if($type(ele)=='array'){ele.each(function(el){enterSubmitForm(el,formEl);});return;}
ele.addEvents({'enter':function(){$(formEl).submit();},'keypress':function(event){keyPress(this,event,'enter');}});}
var setHome=function(el){if(Browser.Engine.trident==true){el.style.behavior='url(#default#homepage)';el.setHomePage('http://www.zeadoo.com');return false;}
return true;}
var install=function(aEvent){var fflink=document.getElementById('install-ff');var params={"Zeadoo Bookmark Extension":{URL:fflink.href,IconURL:fflink.getAttribute("iconURL"),Hash:fflink.getAttribute("hash"),toString:function(){return this.URL;}}};InstallTrigger.install(params);return false;}
window.addEvent('domready',function(){var flashMessages=$$('#authMessage','#flashMessage','.fadeMessage');if(flashMessages.length>0){var out=function(flashMessages){flashMessages.fade('out');}
out.delay(3000,null,flashMessages);flashMessages.destroy.delay(3500,flashMessages);}});var ZeadooTabs=new Class({Implements:[Events,Options],activated:[],state:{},options:{},initialize:function(tabs,show,options){this.setOptions(options);this.tabs=$$(tabs);if(this.tabs.length>0){var elements=[];this.tabs.each(function(item,index){elements[index]=item.id.replace('tab-','#sec-');});this.elements=$$(elements);for(var i=0,l=this.tabs.length;i<l;i++){this.tabs[i].addEvent('click',$lambda(false));this.tabs[i].addEvent('click',this.display.bind(this,i));}
this.tabState='z'+window.location.pathname.replace('/','-');this.state=new Hash.Cookie('z-tab',{duration:6000,path:'/'});var state=this.state.get(this.tabState);var anc=window.location.hash;if(anc){var start=0;explode=anc.split('-');if(explode.length>1)anc=explode[0];this.tabs.each(function(tab,index){if(tab.href.contains(anc))start=index;});this.previous=start.toInt();}else if(state){this.previous=state;}else{this.previous=show;}
if($type(this.previous)=='number')this.display(this.previous);}},display:function(index){this.previous=index;this.state.set(this.tabState,index);this.tabs.each(function(t,i){if(i==index){t.addClass('on');}
else{if(t.hasClass('on')){t.removeClass('on');}}});toggleLayers(this.elements[index],this.elements);this.change();},change:function(){this.onChange(this.previous);},onChange:function(){this.fireEvent('change',arguments);}});var BookmarkTracker={init:function(){return new Hash.Cookie('z-bookmark',{duration:6000});},setup:function(eles){var cookie=BookmarkTracker.init();$$(eles).each(function(ele){var c=cookie.get(ele.id);if(c===1){showLayer(ele);}else if(c===0){hideLayer(ele);}});},open:function(id){var cookie=BookmarkTracker.init();cookie.set(id,1);},close:function(id){var cookie=BookmarkTracker.init();cookie.set(id,0);},toggle:function(id,open){if(open)
BookmarkTracker.open(id);else
BookmarkTracker.close(id);},fetch:function(){return BookmarkTracker.init();},remove:function(id){var cookie=BookmarkTracker.init();cookie.empty();}};var toggleList=function(list){var t=toggleLayer(list);BookmarkTracker.toggle(list,t);}
var BookmarksForm={init:function(){if($('BookmarkForm')){ActionTracker.clear('bookmarks-form');BookmarksForm.setup();}else if($('UserBookmarkLogin')){BookmarksForm.login();}},login:function(){var frm=$('UserBookmarkLogin');var wrapper=frm.getParent();frm.set('zend',{url:frm.action,method:'post',onRequest:function(){ActionTracker.prompt('bookmarks-form','Checking details...','loading');},onSuccess:function(responseText,responseXML){var resp=Response.testr(responseText,true);if(resp[0]==true){wrapper.set('html',resp[1]);BookmarksForm.init();}else{this.fireEvent('onFailure');}},onFailure:function(){ActionTracker.prompt('bookmarks-form','Login failed. Invalid username or password.','auth');}});frm.getElement('a#submit').addEvent('click',function(){frm.zend();});},setup:function(){var lists=$('lists');var privates=$('BookmarkPrivate');lists.set('slide');if(privates.checked!=true){lists.slide('hide');}
privates.addEvent('click',function(){if(this.checked==true)lists.slide('in');else lists.slide('out');});var friends=$('acFriends');var share=$('BookmarkShare');if(friends){friends.set('slide',{onComplete:function(){if(this.open)
this.element.retrieve('wrapper').setStyle('height','auto');}});if(share.checked!=true){friends.slide('hide');}else{showLayer($('subj'));}
share.addEvent('click',function(){if(this.checked==true){showLayer($('subj'));friends.slide('in');}else{hideLayer($('subj'));friends.slide('out');}});}
var newList=$('BookmarkNewList');$('ListList').addEvent('change',function(){if(this.selectedIndex>0){hideLayer(newList);}else{showLayer(newList,'inline');}});$('BookmarkForm').addEvent('submit',function(e){e.preventDefault();});$('BookmarkForm').getElements('div.submit a').addEvent('click',function(e){e.stop();var action=this.href.split('#');BookmarksForm.submit(action[1]);});var tagField=$('BookmarkTags');var taggers=$$('a.tag');taggers.addEvent('click',function(event){event.stop();var tag=this.get('text');if(tagField.value.trim()==''){tagField.value=tag;}else if(tagField.value.contains(tag,',')==false){tagField.value=tagField.value+','+this.get('text');}});},submit:function(act){var process=true;if(act=='delete'){process=confirm('Are you sure you wish to delete this bookmark?');}
if(process){$('BookmarkAction').value=act;var bookmarkForm=$('BookmarkForm');var action=bookmarkForm.action;bookmarkForm.set('zend',{url:action,salt:true,method:'put',evalScripts:true,onRequest:function(){ActionTracker.prompt('bookmarks-form','Processing bookmark.','loading');},onSuccess:function(responseText,responseXML){var resp=Response.test(responseText,true);switch(act){case'create':case'update':if(resp[0]==true){ActionTracker.prompt('bookmarks-form','Bookmark saved.','success',null,1000);BookmarksForm.close.delay(1000,null,[act,resp[1]]);}else{ActionTracker.prompt('bookmarks-form','Bookmark could not be saved.','error');CakeForm.errors('BookmarkForm',resp[1]);}
break;case'delete':if(resp[0]==true){ActionTracker.prompt('bookmarks-form','Bookmark deleted.','success',null,1000);BookmarksForm.close.delay(1000,null,[act,resp[1]]);}else{ActionTracker.prompt('bookmarks-form','Bookmark could not be deleted.','error');CakeForm.errors('BookmarkForm',resp[1]);}
break;}},onFailure:function(){ActionTracker.prompt('bookmarks-form','Bookmark could not be updated.','error');}});bookmarkForm.zend();}},close:function(action,resp){if(window.name=='ZeadooBookmarkWindow'){window.close();}else if(Registry.get('MultiBox')){switch(action){case'create':case'update':case'delete':default:Registry.get('MultiBox').close();}
if($defined(resp)&&resp!=''&&Registry.get('BookmarkManager')){var callbacks=JSON.decode(resp);$each(callbacks,function(callback){eval("Registry.get('BookmarkManager')."+callback.method+"("+callback.pass+");");});}}else{window.location='/#bookmarks';}}};var FriendsForm={init:function(){var frm=$('UserFriendAddForm');if(!frm)return;var submit=this.submit.bind(this,frm);var wrapper=frm.getParent('div');Registry.get('FMultiBox').addEvent('close',function(){ActionTracker.clear('friends-form',true);})
frm.set('zend',{url:frm.action,salt:true,method:'put',onRequest:function(){ActionTracker.prompt('friends-form','Processing request...','loading');},onSuccess:function(responseText,responseXML){var resp=Response.test(responseText,true);if(resp[0]==true){ActionTracker.prompt('friends-form','Your friend request was sent!','success',null,1000);Registry.get('FMultiBox').close.delay(1000,Registry.get('FMultiBox'))}else{wrapper.set('html',resp[1]);FriendsForm.init();this.fireEvent('failure');}},onFailure:function(){ActionTracker.prompt('friends-form','Your request could not be completed, <strong><u>click here to try again.</u></strong>','error',{'click':function(){submit();}});}});frm.getElement('div.submit a').addEvent('click',function(e){e.stop();submit();});},submit:function(frm){frm.zend();},clearStatus:function(){ActionTracker.remove('friends-form');}};var SubscriptionsHandler={init:function(){Registry.set('SubPager',new Request.Pager('shares',{salt:true,timestamp:true,onLoaded:function(){SubscriptionsHandler.multiboxLinksAttatch();SubscriptionsHandler.up();}}));Registry.set('SubLoader',new Request.RepeatLoader('shares',{salt:true,timestamp:true,url:'/subscriptions/index',degrade:[0,1],frequency:[false,600000],onLoaded:function(){SubscriptionsHandler.pagerLinksAttatch();SubscriptionsHandler.multiboxLinksAttatch();SubscriptionsHandler.up();}}));},remove:function(id){new Request.Zeadoo({salt:true,timestamp:true,url:Registry.get('SubPager').options.url||Registry.get('SubLoader').options.url,method:'put',onRequest:function(){Request.Overlay.load($('shares'));},onSuccess:function(responseText,responseXML){$('shares').set('html',responseText);SubscriptionsHandler.pagerLinksAttatch();SubscriptionsHandler.multiboxLinksAttatch();},onFailure:function(){Request.Overlay.remove($('shares'));},onException:function(headerName,value){this.fireEvent('failure');}}).send("data[Subscription][remove]="+id);},removeItem:function(ele){ele},pagerLinksAttatch:function(){var pager=Registry.get('SubPager');var links=$('shares').getElements(pager.options.pagingLinks);if(links.length>0){pager.linksAttatch(links);}},multiboxLinksAttatch:function(){var links=$('shares').getElements('a.mb');if(links.length>0){Registry.get('MultiBox').attatch(links);}},up:function(){if($('_newShares').value>0){$('newShares').set('text','('+$('_newShares').value+')');}},zero:function(){if($('newShares').get('text')!=''){$('newShares').set('text','');OptionUpdater.go('new_shares',0);}}}
var OptionUpdater={requestOptions:{url:'/options',salt:true,method:'put',onRequest:function(){},onSuccess:function(responseText,responseXML){},onFailure:function(){},onException:function(headerName,value){}},go:function(option,data,req){var dat=['data[Option][key]='+option];var name='data[Option]['+option+']';if($type(data)=='array'){data.each(function(item,index,arr){if($type(item)=='array'){if(item.length>0){dat.push(name+'['+index.toString()+']='+item.join(','));}else{dat.push(name+'['+index.toString()+']=');}}else{dat.push(name+'['+index.toString()+']='+item);}});}else{dat.push(name+'='+data);}
var requestOptions=OptionUpdater.requestOptions;if($type(req)=='object'){requestOptions=$merge(requestOptions,req);}
var zRequest=new Request.Zeadoo(requestOptions);zRequest.send(dat.join('&'))}};var ActionTracker={notices:'notices-',prompt:function(target,text,clss,event,time){Registry.object('_ActionTracker').prompt(ActionTracker.notices+target,text,clss,event,time);},clear:function(target,remove){if($defined(remove)){Registry.object('_ActionTracker').remove(ActionTracker.notices+target);}else{Registry.object('_ActionTracker').clear(ActionTracker.notices+target);}}};var _ActionTracker=new Class({out:[],initialize:function(){},createDeleletIcon:function(target){var click=this.clear.pass(target,this);var d=new Element('a',{'class':'action-icon del','title':'Hide this message','events':{'click':function(e){e.stopPropagation();click();}}});return d;},prompt:function(target,text,clss,event,time){if($type(this.out[target])=='element'){if(this.out[target].timer)$clear(this.out[target].timer);var mt=false;}else{this.out[target]=$(target);showLayer(this.out[target]);this.out[target].set('slide',{duration:400,onComplete:function(){if(!this.open){this.element.empty();}}});this.out[target].timer=null;this.out[target].slide('hide');var mt=true;}
if(!clss)clss='notice';if(mt){var flash=new Element('div',{'html':text,'class':clss});this.out[target].empty();this.out[target].grab(flash);}else{var currentFlash=this.out[target].getFirst('div');var flash=new Element('div',{'class':clss});if(event==true){flash.cloneEvents(currentFlash);}
if($type(text)!='string')text=currentFlash.get('html');flash.set('html',text);if(this.out[target].getFirst('div'))
flash.replaces(currentFlash);else
this.out[target].grab(flash);}
var deleteIcon=this.createDeleletIcon(target);flash.grab(deleteIcon,'top');if($type(event)=='object'){flash.removeEvents();flash.addEvents(event);}else if(event==false){flash.removeEvents();}
if(!this.out[target].get('slide').open){this.out[target].slide('in');}
if($type(time)=='number')
this.out[target].timer=this.clear.delay(time,this,target);else
this.out[target].timer=null;},clear:function(target){if($type(this.out[target])=='element'){this.out[target].slide('out');this.out[target].empty.delay(500,this.out[target]);this.out[target]=null;}},remove:function(target){if($type(this.out[target])=='element'){if(this.out[target].timer)$clear(this.out[target].timer);this.out[target].empty();this.out[target]=null;}}});var Response={test:function(responseText,returnText){var cleanResponse=responseText.clean();var auth=Response.auth(cleanResponse);if(auth){var resp=cleanResponse.test('^OK');}else{var resp=false;}
if(resp){if(returnText)
return[true,cleanResponse.replace('OK','').trim()];else
return true;}else{if(returnText)
return[false,cleanResponse.replace('FAIL','').trim()];else
return false;}},testr:function(responseText,returnText){var cleanResponse=responseText.clean()
var auth=Response.auth(cleanResponse);if(auth){var resp=cleanResponse.test('^FAIL');}else{var resp=true;}
if(resp){if(returnText)
return[false,cleanResponse.replace('FAIL','').trim()];else
return false;}else{if(returnText)
return[true,cleanResponse.replace('OK','').trim()];else
return true;}},auth:function(cleanResponse){var fail=cleanResponse.test('^AUTH');if(fail){alert('Your request could not be completed, you need to login again to confirm your identity.');return false;}else{return true;}}};var Registry={set:function(key,value){var inst='__reg'+key;window[inst]=value;},get:function(key,type){var inst='__reg'+key;return window[inst]||(type||false);},value:function(key,value){if(value){Registry.set(key,value);return Registry.get(key);}else{return Registry.get(key);}},object:function(){if($type(arguments[0])=='array'&&arguments[0].length==2){var obj=arguments[0][0];var inst=arguments[0][1];}else{var obj=arguments[0];var inst='';}
var _obj=Registry.get(obj);if(_obj){return _obj;}else{properties=[];if(arguments.length>1){$each(arguments,function(item,index){if(index>1)properties.push(item);});}
if($defined(obj)){eval("Registry.set('"+obj+inst+"', new "+obj+"("+properties+"))");return Registry.get(obj);}}}};var CakeForm={options:{errorElement:'div',errorClass:'error-message'},errors:function(form,jsonResponse){formObj=$(form);if(!formObj){return;}
CakeForm.clearErrors(formObj);var validation=JSON.decode(jsonResponse);$each(validation,function(errors,model){$each(errors,function(message,field){var fieldEle=$(CakeForm.fieldId(model,field));if(fieldEle){fieldEle.getParent().grab(CakeForm.createError(message));}});});},clearErrors:function(form){formObj=$(form);if(!formObj){return;}
var e=formObj.getElements(CakeForm.options.errorElement+'.'+CakeForm.options.errorClass);if(e){e.destroy();}},clearError:function(model,field){var fieldEle=$(CakeForm.fieldId(model,field));if(fieldEle){var e=fieldEle.getParent().getElement(CakeForm.options.errorElement+'.'+CakeForm.options.errorClass);if(e){e.destroy();}}},createError:function(message){var e=new Element(CakeForm.options.errorElement,{'class':CakeForm.options.errorClass,'html':message});return e;},formReset:function(form){formObj=$(form);if(!formObj){return;}},fieldId:function(model,field){return model+field.replace('_','-').camelCase().capitalize();;}};
/* Fri, 20 Aug 2010 05:19:28 GMT js/zeadoo.js */