// (C) 2009 - The end of time ; Times Publishing Company

function TPCComment(d){this.objectId=d.objectId;this.objectType=d.objectType;this.objectSource=d.objectSource;this.sort='';this.sliceSize=0;this.sliceFloor=0;this.commentTotal=0;this.commentPosition=0;this.user=undefined;this.initialized=false;this.loading=false;this.reset=false;this.ajaxUrl='/components/content/comment/list';this.init=function(){var s=this;$('#c-container').show();var _optionDescending=$('<option/>').attr('id','c-sort-desc').attr('selected','selected').attr('value','desc').html('Newest First');var _optionAscending=$('<option/>').attr('id','c-sort-asc').attr('value','asc').html('Oldest First');var _optionScore=$('<option/>').attr('id','c-sort-score').attr('value','score').html('Top Rated');var _sorter=$('<select/>').attr('id','c-sort').append(_optionDescending).append(_optionAscending).append(_optionScore).hide();_sorter.change(function(){s.sort=$(this).val();s.resetWidgets();s.loadComments();});var _totalComments=$('<span/>').attr('id','c-live').html('');$('#c-info-panel').append(_totalComments).append(_sorter).append($('<br />').attr('clear','all'));this.initCommentForm();this.reset=true;this.initialized=true;this.loadComments();};this.initCommentForm=function(){var s=this;$.getJSON('/components/account/user/jsonProfile',function(data){if(data.id>0){$('#c-create-form').append($('<input type="hidden"/>').attr('name','objectId').attr('value',s.objectId)).append($('<input type="hidden"/>').attr('name','objectType').attr('value',s.objectType)).append($('<input type="hidden"/>').attr('name','source').attr('value',s.objectSource));s.user=data;$('#c-chars').html('You have <span id="c-char-count" style="color: #0000cc">1000 characters</span> remaining.');$('#c-text').keyup(function(evt){var _comment=$('#c-text').val();var _len=_comment.length;if(_len>=1000){$('#c-text').val(_comment.substring(0,1000));$('#c-char-count').html('no more characters').css('color','#c00');}else{var _charsLeft=1000-_len;var _color='#00c';if(_charsLeft<200)
_color='#c00';else if(_charsLeft<400)
_color='#903';else if(_charsLeft<600)
_color='#606';else if(_charsLeft<800)
_color='#309';$('#c-char-count').html(_charsLeft+' character'+((_charsLeft!=1)?'s':'')).css('color',_color);}});}else{$('#c-create-text').html('You must ').append($('<a/>').attr('href','/components/account/login').html('Login')).append(' or ').append($('<a/>').attr('href','/components/account/registration').html('Register')).append(' to publish a comment.');$('#c-create-form-container').remove();}
$('#c-create').show();});};this.loadComments=function(){$('#c-load-more-comments').html('<img src="/universal/images/bc-loading-video.gif" alt="Loading..." border="0" />');var s=this;$.getJSON(this.buildCommentRequestUrl(),function(data){s.commentTotal=data.meta.totalComments;s.sliceSize=data.meta.realSliceSize;s.sliceFloor=data.meta.start;$('#c-live').html((data.meta.totalComments==1)?"There is 1 comment":"There are "+data.meta.totalComments+' comments');if(s.reset){$('#c-view').html($('<div/>').attr('id','c-list'));$('#c-info-panel').show();s.reset=false;}
if(data.result.length>=1){var _cc=data.result;var df=new TPCDateFormat();$.each(_cc,function(i,item){df.setTime(item.date.time);_icon=s.createCommentIcon(item);_body=s.createCommentBody(item);$('#c-list').append($('<div/>').attr('id','c-'+item.id).addClass('tb-comment').append($('<a/>').attr('name','c-'+item.id)).append(_icon).append(_body));s.commentPosition++;});if((s.sliceSize+s.sliceFloor)<s.commentTotal){$('#c-list').append(s.createLoadMoreCommentsAnchor());}
$('#c-sort').show();}});};this.resetWidgets=function(){this.reset=true;this.commentPosition=0;$('#c-view').html($('<div/>').attr('id','c-list').html($('<div />').addClass('comments-loading').attr('align','center').append($('<strong/>').html("Loading comments...")).append($('<br />')).append($('<img />').attr('src','/universal/images/bc-loading-video.gif').attr('alt','Loading...').attr('border','0'))));};this.buildCommentRequestUrl=function(){var _url=this.ajaxUrl+"?objectId="+this.objectId+"&type="+this.objectType+"&key="+this.objectSource+"&start="+this.commentPosition+"&sort="+this.sort;if(this.sliceSize>0)
_url+="&slice="+this.sliceSize;return _url;};this.createLoadMoreCommentsAnchor=function(){var s=this;var _floor=this.sliceFloor+this.sliceSize+1;var _ceiling=(_floor+this.sliceSize)-1;if(_ceiling>this.commentTotal)
_ceiling=this.commentTotal;var _loadMessage="Click here to load comments "+_floor+"-"+_ceiling+" of "+this.commentTotal;return $('<a/>').attr('id','c-load-more-comments').attr('href','javascript:;').bind('click',function(){s.loadComments();$(this).fadeOut('slow');}).html(_loadMessage);};this.createCommentIcon=function(){var _iconContainer=$('<div />').addClass('comment-icon').append($('<img/>').attr('src','/universal/images/woo/comment_user_32-rev.png').attr('alt','').attr('border','0'));return _iconContainer;};this.createCommentBody=function(item){var s=this;var _c=$('<div/>').addClass('site-comment');var _nameContainer=$('<div />').addClass('comment-name');_nameContainer.append($('<span/>').addClass((!item.user)?'comment-anonymous':'comment-user').html((item.user)?item.user.loginName:(item.legacyName)?item.legacyName:'Anonymous')).append(" wrote:");var _bodyContainer=$('<div/>').addClass('comment-body').html(item.body);var _footerContainer=$('<div/>').addClass('comment-footer');var df=new TPCDateFormat();df.setTime(item.date.time);var _dateContainer=$('<div/>').addClass('comment-date').html(df.format('MMM dx, yyyy h:ii a'));var _abuseContainer=$('<div/>').addClass('comment-abuse');if(s.user){_abuseContainer.append($('<a class="c-thumb-vote c-thumb-up-1" />').attr('id','c-thumb-up-'+item.id).attr('href','javascript:void(0);').html(""+item.scoreUp).bind('click',function(){var _currentVote=$(this).html();$(this).html('<img src="/universal/images/loading-12.gif" alt="Loading" border="0" />');s.vote(item.id,1,_currentVote);}));_abuseContainer.append($('<a class="c-thumb-vote c-thumb-down-1" />').attr('id','c-thumb-down-'+item.id).attr('href','javascript:void(0);').html(""+item.scoreDown).bind('click',function(){var _currentVote=$(this).html();$(this).html('<img src="/universal/images/loading-12.gif" alt="Loading" border="0" />');s.vote(item.id,-1,_currentVote);}));}else{_abuseContainer.append($('<span class="c-thumb-vote c-thumb-up-0" />').html(""+item.scoreUp).hover(function(){$(this).html('<a href="/components/account/login">Log in to vote</a>');},function(){$(this).html(""+item.scoreUp);}));_abuseContainer.append($('<span class="c-thumb-vote c-thumb-down-0" />').html(""+item.scoreDown).hover(function(){$(this).html('<a href="/components/account/login">Log in to vote</a>');},function(){$(this).html(""+item.scoreDown);}));}
_abuseContainer.append($('<a/>').addClass('comment-report-abuse').html('Report Abuse').attr('href','javascript:void(0)').attr('id','c-abuse-'+item.id).bind('click',function(){$(this).html('Sending report...');s.reportAbuse(item.id);}));if(s.user&&s.user.admin==1){_abuseContainer.append($('<a/>').addClass('comment-admin').html('Delete').attr('href','javascript:;').attr('id','c-abuse-'+item.id).bind('click',function(){s.admrm(item.id);}));}
_footerContainer.append(_dateContainer);_footerContainer.append(_abuseContainer);_footerContainer.append($('<br />').attr('clear','all'));_c.append(_nameContainer);_c.append(_bodyContainer);_c.append(_footerContainer);return _c;};this.admrm=function(cid){$.getJSON('/components/content/comment/admrm?cid='+cid,function(res){var _msg=(res.message)?res.message:"No response from server. Please try again";$('#c-'+cid).after($('<div/>').addClass('c-reported-message').attr('id','c-report-msg-'+cid).html(_msg));if(res.message){$('#c-'+cid).hide('slow');}
setTimeout("tpcc_hideReportedMessage("+cid+")",5000);});}
this.reportAbuse=function(cid){$.getJSON('/components/content/comment/report?cid='+cid,function(res){if(!res.data){var _msg=(res.message=='We have already accepted your abuse report. Thanks for helping make tampabay.com a better and safer place to visit.')?'We have already accepted your abuse report. Thanks for helping make tampabay.com a better place to visit.':res.message;$('#c-'+cid).after($('<div/>').addClass('c-reported-message').attr('id','c-report-msg-'+cid).html(_msg));$('#c-'+cid).hide('slow');setTimeout("tpcc_hideReportedMessage("+cid+")",5000);}else{$('#c-'+cid).after($('<div/>').addClass('c-reported-message').attr('id','c-report-msg-'+cid).html("Thank you for reporting this comment."));$('#c-'+cid).hide('slow');setTimeout("tpcc_hideReportedMessage("+cid+")",5000);}
$('#c-abuse-'+cid).html('Report Abuse');});}
this.vote=function(cid,score,currentScore){$.getJSON('/components/content/comment/vote?cid='+cid+'&score='+score,function(res){var _elem=(score>0)?'#c-thumb-up-'+cid:'#c-thumb-down-'+cid;$(_elem).html((res.data)?++currentScore:currentScore);$('#c-report-msg-'+cid).hide();$('#c-'+cid).after($('<div/>').addClass('c-reported-message').attr('id','c-report-msg-'+cid).html(res.message));setTimeout("tpcc_hideReportedMessage("+cid+")",5000);});}}
function tpcc_hideReportedMessage(cid){$('#c-report-msg-'+cid).fadeOut('slow');}