BR.Pager=function(config){this.cursor=0;this.pageSize=config.pageSize||10;this.store=config.store;this.tpl=config.tpl;this.renderTo=Ext.get(config.renderTo);this.autoId=config.id||BR.getIdSeed();this.store.on("load",this.onLoad,this);this.spinnerId=config.spinnerId||(this.autoId+'-spinner');this.store.on("beforeload",function(){var el=Ext.get(this.spinnerId);if(el){el.show();}},this);this.store.on("load",function(){var el=Ext.get(this.spinnerId);if(el){el.hide();}},this);this.renderTo.on('click',this.previous,this);this.renderTo.on('click',this.forward,this);if(this.renderTo){this.draw();}};BR.Pager.prototype={onLoad:function(s,r,o){this.cursor=o.params?o.params['start']:0;this.draw();},previous:function(e,t){if(t.tagName=="A"&&t.className=="prev"){this.cursor-=this.pageSize;var params=this.getPageParams();this.store.load({params:params});e.stopEvent();}},forward:function(e,t){if(t.tagName=="A"&&t.className=="next"){this.cursor+=this.pageSize;var params=this.getPageParams();this.store.load({params:params});e.stopEvent();}},getPageParams:function(){var start=this.cursor.constrain(0,this.store.getTotalCount());return{start:start,limit:this.pageSize};},getPageData:function(){var total=this.store.getTotalCount();return{total:total,activePage:Math.ceil((this.cursor+this.pageSize)/this.pageSize),pages:total<this.pageSize?1:Math.ceil(total/this.pageSize)};},draw:function(){if(this.store.getCount()>0){var pd=this.getPageData();if(pd.pages==1){return;}
var prevText='&laquo; previous',nextText='next &raquo;';var data={};data.prev=(pd.activePage<=1)?prevText:'<a class="prev">'+prevText+'</a>';data.next=(pd.activePage>=pd.pages)?nextText:'<a class="next">'+nextText+'</a>';data.spinner='<img id="'+this.spinnerId+'" src="/images/ajax_spinner.gif" style="display:none" />';this.tpl.overwrite(this.renderTo,data);}}};BR.FansGallery=Class.create({initialize:function(config){this.userId=config.userId;this.page=1;this.dom={};this.dom.container=$('users-fans');this.dom.results=$('users-fans-results');this.dom.spinner=$('js-users-fans-spinner');this.initListeners();this.initCallbacks(config);},initListeners:function(){var that=this;this.dom.container.observe('click',function(e){if(that.ajaxActive()){return;}
var target=e.element();if(target.hasClassName("prev")){that.page-=1;that.loadResults(that.page);}else if(target.hasClassName("next")){that.page+=1;that.loadResults(that.page);}});},initCallbacks:function(config){this.onResults=config.onResults;},loadResults:function(page){this.dom.spinner.show();var url="/users/"+this.userId+"/fans_gallery";var that=this;new Ajax.Request(url,{method:"post",parameters:{page:page},onSuccess:function(result){that.dom.results.update(result.responseText);if(that.onResults){that.onResults();}},onComplete:function(result){that.dom.spinner.hide();},onFailure:function(result){alert("We're sorry there was an error");}});},ajaxActive:function(){return this.dom.spinner.visible();}});BR.NotesBoard=Class.create({initialize:function(config){this.userId=config.userId;this.page=1;this._ajaxActive=false;this.dom={};this.dom.container=$('comments');this.dom.results=$('comments-results');this.dom.spinnersSelector='.comments-spinner';this.initListeners();this.initCallbacks(config);},initListeners:function(){var that=this;this.dom.container.observe('click',function(e){if(that.ajaxActive()){return;}
var target=e.element();if(target.hasClassName("prev")){that.page-=1;that.loadResults(that.page);}else if(target.hasClassName("next")){that.page+=1;that.loadResults(that.page);}
if(target.tagName=="A"&&target.className=="delete"){that.deleteComment(target);}
if(target.tagName=="A"&&target.className=="block"){that.blockPoster(target);}});},initCallbacks:function(config){this.onResults=config.onResults;},loadResults:function(page){this.showSpinners();this._ajaxActive=true;var url="/users/"+this.userId+"/notes_board";var that=this;new Ajax.Request(url,{method:"post",parameters:{page:page},onSuccess:function(result){that.dom.results.update(result.responseText);that.showBozos();if(that.onResults){that.onResults();}},onComplete:function(result){that.hideSpinners();that._ajaxActive=false;},onFailure:function(result){alert("We're sorry there was an error");}});},showBozos:function(){if(BR.currentUser&&BR.currentUser.is_a_bozo){$$('.bozo-note').each(function(el){el.setStyle("display:inline");});}},deleteComment:function(target){var recordId=target.getAttribute("rel");var url='/users/'+this.userId+'/notes/'+recordId;target.update("Deleting...");this._ajaxActive=true;var that=this;new Ajax.Request(url,{method:'delete',onSuccess:function(result){var json=eval('('+result.responseText+')');if(json.success){target.up("li.comments").fade();}else{alert("There was an error deleting the comment");}},onComplete:function(result){that._ajaxActive=false;},onFailure:function(result){alert("We're sorry there was an error");}});},blockPoster:function(target){this.lightbox=this.lightbox||{};var recordId=target.getAttribute("rel");if(this.lightbox[recordId])
this.lightbox[recordId].reopen();else
this.lightbox[recordId]=new BR.Lightbox({title:'Block user',class_name:'block_user'+recordId,parent_element:$(document.body),box_type:'narrow',content:function(){return'Are you sure you want to block this user?<br/><br/>You will no longer receive posts or messages from them in the future.<br/><br/><div style="float:right;font-size:14px"><a href="#" id="block_user_yes">Yes</a>&nbsp;&nbsp;<a href="#" id="block_user_no">No</a></div>';},on_open:function(){$$('#block_user'+recordId+' #block_user_no')[0].observe('click',function(e){Event.stop(e);this.lightbox[recordId].close();}.bind(this));$$('#block_user'+recordId+' #block_user_yes')[0].observe('click',function(e){Event.stop(e);var url='/users/'+this.userId+'/notes/'+recordId+'/block_poster';this.lightbox[recordId].close();target.update("Blocking user...");this._ajaxActive=true;var that=this;new Ajax.Request(url,{onSuccess:function(result){var json=eval('('+result.responseText+')');if(json.success){$$('.poster'+json.poster_id).each(function(item){item.fade();});}else{alert("There was an error blocking the user");}}.bind(this),onComplete:function(result){that._ajaxActive=false;},onFailure:function(result){alert("We're sorry there was an error");}});}.bind(this));}.bind(this)});},showSpinners:function(){$$(this.dom.spinnersSelector).each(function(el){el.show();});},hideSpinners:function(){$$(this.dom.spinnersSelector).each(function(el){el.hide();});},ajaxActive:function(){return this._ajaxActive;}});BR.FavTags=Class.create({initialize:function(config){this.userId=config.userId;this.page=1;this._ajaxActive=false;this.dom={};this.dom.container=$('fav-tags-results');this.dom.results=$('fav-tags-results');this.initListeners();this.initCallbacks(config);},initListeners:function(){var that=this;this.dom.container.observe('click',function(e){if(that.ajaxActive()){return;}
var target=e.element();if(target.hasClassName("prev")){that.page-=1;that.loadResults(that.page);console.log("previous clicked");}else if(target.hasClassName("next")){that.page+=1;that.loadResults(that.page);console.log("next clicked");}});},initCallbacks:function(config){this.onResults=config.onResults;},loadResults:function(page){this._ajaxActive=true;var url="/users/"+this.userId+"/fav_tags.js";var that=this;new Ajax.Request(url,{method:"post",parameters:{page:page},onSuccess:function(result){that.dom.results.update(result.responseText);if(that.onResults){that.onResults();}},onComplete:function(result){that._ajaxActive=false;},onFailure:function(result){alert("We're sorry there was an error");}});},ajaxActive:function(){return this._ajaxActive;}});BR.FavWriters=Class.create({initialize:function(config){this.userId=config.userId;this.page=1;this._ajaxActive=false;this.dom={};this.dom.container=$('fav-writers-results');this.dom.results=$('fav-writers-results');this.initListeners();this.initCallbacks(config);},initListeners:function(){var that=this;this.dom.container.observe('click',function(e){if(that.ajaxActive()){return;}
var target=e.element();if(target.hasClassName("prev")){that.page-=1;that.loadResults(that.page);console.log("previous clicked");}else if(target.hasClassName("next")){that.page+=1;that.loadResults(that.page);console.log("next clicked");}});},initCallbacks:function(config){this.onResults=config.onResults;},loadResults:function(page){this._ajaxActive=true;var url="/users/"+this.userId+"/fav_writers.js";var that=this;new Ajax.Request(url,{method:"post",parameters:{page:page},onSuccess:function(result){that.dom.results.update(result.responseText);if(that.onResults){that.onResults();}},onComplete:function(result){that._ajaxActive=false;},onFailure:function(result){alert("We're sorry there was an error");}});},ajaxActive:function(){return this._ajaxActive;}});