(function(){CNB.Talkback=new Class({Implements:Options,options:{url:null,regSrc:null,replyBtnClass:'reply',sideA:null,sideB:null},initialize:function(a,b){this.setOptions(b);this.container=$(a);this.buttons=this.container.getElements('.'+this.options.replyBtnClass);this.getIds(this.buttons)},getIds:function(b){b.each(function(a,i){a.addEvent('click',CNB.Reg.gatedEvent.bindWithEvent(CNB.Reg,[this.reqForm.bind(this,a),this.options.regSrc,'Please Log In to Reply.']))}.bind(this))},reqForm:function(e){var f=e.get('id').split('_'),forumid=f[1],threadid=f[2],messageid=f[3],requrl=this.options.url+'/'+forumid+'-'+threadid+'-'+messageid,parentid=forumid+'_'+threadid+'_'+messageid,reqData={sideA:this.options.sideA,sideB:this.options.sideB};var g=new Request.HTML({url:requrl,data:reqData,onSuccess:function(a,b,c,d){this.hideContent(e.getParent('ul'));this.addForm(e,parentid,c)}.bind(this),onFailure:function(a){CNB.log('Request Failed: '.xhr)}}).get()},addForm:function(a,b,c){var d=$(b);if($type(c)=='string'){var e=new Element('div',{'html':c});var f=e.getChildren();d.adopt(f);var g=$$('input[placeholder]');if(g.length>0){new CNB.Placeholder(g)}this.submitForm(a,d)}},submitForm:function(h,i){var j=i.getElement('form');if(j.hasClass('prepend-2')){j.removeClass('prepend-2')}$('cmnt-reset-btn').addEvent('click',function(e){e.stop();j.destroy();this.revealContent(h.getParent('ul'))}.bind(this));this.validateForm(j);j.addEvent('submit',function(e){e.stop();var f=j.getProperty('action'),query=$merge(j.toJSON(),{sideA:this.options.sideA,sideB:this.options.sideB});var g=new Request.HTML({url:f,onSuccess:function(a,b,c,d){this.updateList(i,c);j.destroy();this.revealContent(h.getParent('ul'))}.bind(this),onFailure:function(a){CNB.log('Request Failed: '.xhr);var b='<li>Oops, looks like we have an error! Gurus notified!</li>';this.updateList(i,b)},noCache:true}).get(query)}.bind(this))},validateForm:function(a){var b=new CNB.Validator(a)},updateList:function(a,b){var c=new Element('div',{'id':'temp'}).set('html',b);var d=c.getElement('li');d.inject(a,'after');var e=new CNB.Talkback(d,{sideA:this.options.sideA,sideB:this.options.sideB,url:this.options.url});var f=new CNB.Edit(d,{sideA:this.options.sideA,sideB:this.options.sideB,url:'/tb/async/edit'});var g=new CNB.reportSpam(d);if($chk($$('a.delete'))){var h=new CNB.deleteMsg(d)}},revealContent:function(a){a.removeClass('hide');a.fade('in')},hideContent:function(a){a.fade('out');a.addClass('hide')}});CNB.Edit=new Class({Implements:Options,options:{url:null,editBtnClass:'edit',sideA:null,sideB:null},initialize:function(a,b){this.setOptions(b);this.container=$(a);this.buttons=this.container.getElements('.'+this.options.editBtnClass);this.getIds(this.buttons)},getIds:function(b){b.each(function(a,i){a.addEvent('click',CNB.Reg.gatedEvent.bindWithEvent(CNB.Reg,[this.reqForm.bind(this,a),'zdtb-edit','Please Log In to Edit.']))}.bind(this))},reqForm:function(e){var f=e.get('id').split('_'),forumid=f[1],threadid=f[2],messageid=f[3],requrl=this.options.url+'/'+forumid+'-'+threadid+'-'+messageid,parentid=forumid+'_'+threadid+'_'+messageid,reqData={sideA:this.options.sideA,sideB:this.options.sideB};var g=new Request.HTML({url:requrl,data:reqData,onSuccess:function(a,b,c,d){this.hideContent(e.getParent('ul'));this.addForm(e,parentid,c)}.bind(this),onFailure:function(a){CNB.log('Request Failed: '.xhr)}}).get()},addForm:function(a,b,c){var d=$(b);this.hideContent(d.getElement('div.content'));if($type(c)=='string'){var e=new Element('div',{'html':c});var f=e.getChildren();f.inject(d,'top');var g=$$('input[placeholder]');if(g.length>0){new CNB.Placeholder(g)}if($('revRating')){new CNB.reviewRating('revRating')}this.submitForm(a,d)}},submitForm:function(h,i){var j=i.getElement('form');if(j.hasClass('prepend-2')){j.removeClass('prepend-2')}$('cmnt-reset-btn').addEvent('click',function(e){e.stop();j.destroy();this.revealContent(h.getParent('ul'));this.revealContent(i.getElement('div.content'))}.bind(this));this.validateForm(j);j.addEvent('submit',function(e){e.stop();var f=j.getProperty('action'),query=$merge(j.toJSON(),{sideA:this.options.sideA,sideB:this.options.sideB});var g=new Request.HTML({url:f,onSuccess:function(a,b,c,d){i.getElement('div.content').destroy();this.updateList(i,c);j.destroy();this.revealContent(h.getParent('ul'))}.bind(this),onFailure:function(a){CNB.log('Request Failed: '.xhr);var b='<li>Oops, looks like we have an error! Gurus notified!</li>';this.updateList(i,b)},noCache:true}).get(query)}.bind(this))},validateForm:function(a){var b=new CNB.Validator(a)},updateList:function(a,b){var c=new Element('div',{'id':'temp'}).set('html',b),mystuff=c.getElement('li div.content'),cmntClasses=c.getElement('.cmnt').get('class'),cmntUser=c.getElement('.cmnt-user');a.set('class',cmntClasses);cmntUser.replaces(a.getElement('.cmnt-user'));mystuff.inject(a,'top')},revealContent:function(a){a.removeClass('hide');a.fade('in')},hideContent:function(a){a.fade('out');a.addClass('hide')}});CNB.reportSpam=new Class({Implements:Options,options:{spamBtnClass:'spam'},initialize:function(b,c){this.setOptions(c);this.container=$(b);this.container.getElements('.'+this.options.spamBtnClass).each(function(a,i){a.addEvent('click',CNB.Reg.gatedEvent.bindWithEvent(CNB.Reg,[this.loadOverlay.bind(this,a),'tbk-spam','Please Log In to Report Spam.']))},this)},loadOverlay:function(b){this.activeButton=b;this.overlay=new CNB.Overlay.Async({containerClass:'contain-overlay-12',url:b.getProperty('href')});this.overlay.addOneEvent('onContentReady',function(a){this.validate=new CNB.Validator(a.getElement('form'),{onValidateSuccess:this.handleFormSubmit.bind(this)})}.bind(this));this.overlay.open()},handleFormSubmit:function(e,f){e.stop();var g=new Request.HTML({url:f.getProperty('action'),data:f.toJSON(),onSuccess:function(a,b,c,d){this.handleResponse(c)}.bind(this),onFailure:this.overlay.notify.pass('Oops, looks like we have an error! Gurus notified!',this),noCache:true}).get()},handleResponse:function(a){if(a.contains('Message has been flagged')){this.overlay.notify('Message has been reported as spam');var b=this.activeButton.getParent('li').set('html','Flagged')}else{this.overlay.notify('Oops, looks like we have an error! Gurus notified!')}}});CNB.deleteMsg=new Class({Implements:Options,options:{delBtnClass:'delete'},initialize:function(a,b){this.setOptions(b);this.container=$(a);this.buttons=this.container.getElements('.'+this.options.delBtnClass);this.clickr()},clickr:function(){this.buttons.each(function(a){a.addEvent('click',CNB.Reg.gatedEvent.bindWithEvent(CNB.Reg,[this.overlay.bind(this,a),'zdtb-del','Are You a Moderator?']))}.bind(this))},overlay:function(a){this.delButton=a;var b=new CNB.Overlay.Async({containerClass:'contain-overlay-12',url:this.delButton.href,onContentReady:this.getForm.bind(this)}).open()},getForm:function(a){var b=a.getElement('form');if($chk(b)){var c=b.getElement('button#reset-btn');c.addEvent('click',function(e){e.stop();$('overlay').fade('out')}.bind(this));this.submitForm(b)}},submitForm:function(j){j.addEvent('submit',function(e){var f=j.getParent('div');e.stop();var g=j.getProperty('action');var h=j.toJSON();var i=new Request.HTML({url:g,onSuccess:function(a,b,c,d){j.destroy();this.updateDisplay(f,c);j.destroy()}.bind(this),onFailure:function(a){CNB.log('Request Failed: '.xhr);var b='<p>Oops, looks like we have an error! Gurus notified!</p>';this.updateDisplay(f,b);j.destroy()}.bind(this),noCache:true}).get(h)}.bind(this))},updateDisplay:function(a,b){var c=new Element('div',{'id':'temp'}).set('html',b);a.adopt(c);(function(){$('overlay').fade('out')}).delay(1500);var d=this.delButton.getParent('.cmnt');d.getChildren('.content').destroy();var e=new Element('div',{'class':'content'}).set('html','<h6 class="h s-5">Message has been deleted</h6>');e.inject(d,'top')}});CNB.Talkback.LoadMore=new Class({Implements:Options,options:{url:null,total:0,data:{max:10,start:0,asset:null,sideA:null,sideB:null},completeText:'There are no more posts'},initialize:function(a,b,c){this.setOptions(c);this.container=$(a);this.btn=$(b);this.currentPostCount=this.options.data.start;if($chk(this.btn)){this.loadAction()}},loadAction:function(){this.loader=new CNB.Loading(this.btn);this.btn.addEvent('click',this.makeRequest.bind(this))},makeRequest:function(){this.loader.add();var e=new Request.HTML({url:this.options.url,data:$merge(this.options.data,{'start':this.currentPostCount}),onSuccess:function(a,b,c,d){if(typeof postcount=='undefined'){this.setComplete('Oops. Something went wrong.')}else{this.currentPostCount=this.currentPostCount+postcount}this.setContent(c);if(this.currentPostCount>=this.options.total){this.setComplete()}}.bind(this),onComplete:this.loader.remove.bind(this.loader),onFailure:function(a){this.setComplete('Oops. Something went wrong.');CNB.log('Request Failed: '.xhr)}.bind(this)}).get()},setContent:function(a){var b=new Element('div',{'html':a});this.addFunctions(b);var c=b.getChildren();this.container.adopt(c)},setComplete:function(a){a=a||this.options.completeText;this.btn.removeEvents('click');this.btn.set('text',a);this.btn.addClass('load-done')},addFunctions:function(a){var b=new CNB.Talkback(a,{url:'/tb/async/reply',sideA:this.options.data.sideA,sideB:this.options.data.sideB});var c=new CNB.Edit(a,{url:'/tb/async/edit',sideA:this.options.data.sideA,sideB:this.options.data.sideB});var d=new CNB.reportSpam(a);if($chk($$('a.delete'))){var e=new CNB.deleteMsg(a)}}});CNB.reviewRating=new Class({Implements:Options,options:{scoreBoard:'showRating'},initialize:function(a,b){this.setOptions(b);this.container=$(a);this.ratings=this.container.getElements('li');this.scoreBoard=this.container.getElements('#'+this.options.scoreBoard+' span');var c=this.scoreBoard.get('class').toString();this.editScore=c.trim().split('_').getLast().toInt();this.start()},start:function(){var c=false;var d=false;if($chk(this.editScore)&&this.editScore!=0){this.ratings[this.editScore-1].getElement('input').set('checked',true);c=true;if($('rateNull')){$('rateNull').erase('html')}}var e=this.ratings[0].getParent('ul');if(!d){var f=function(){var a=(this.editScore==0)?false:this.ratings[this.editScore-1];this.updateScore(a,this.editScore,c)}.bind(this).delay(300)}this.ratings.each(function(a){var b=a.getElement('input');if(b.get('checked')){this.editScore=b.get('value');c=true;this.updateScore(a,this.editScore,true)}a.addEvents({'mouseenter':function(){if(!d){b.set('checked',true);if($('rateNull')){$('rateNull').erase('html')}this.updateScore(a,b.get('value'),false)}}.bind(this),'click':function(){d=true;b.set('checked',true);if($('rateNull')){$('rateNull').erase('html')}this.updateScore(a,b.get('value'),false)}.bind(this)})}.bind(this))},updateScore:function(b,c,d){this.ratings.each(function(a){a.removeClass('on');a.removeClass('orig')});if(b){var e=b.getAllPrevious();e.combine([b]);e.each(function(a){if(d){a.addClass('orig');a.getElement('input').set('checked',true);if($('rateNull')){$('rateNull').erase('html')}}else{a.addClass('on')}})}this.scoreBoard.set('text',c)}})})();CNB.initTalkbackPostForm=function(b,c){var d=new CNB.Validator(b,{onValidateSuccess:function(e,a){e.stop();CNB.Reg.gatedEvent(null,function(){a.submit()},c,'Please Login to post your message')},validateOnBlur:false})};
