jmaki.namespace("jmaki.widgets.moa.moacommentwidget");jmaki.widgets.moa.moacommentwidget.Widget=function(wargs){var _widget=this;var uuid=wargs.uuid;var hashuuid="#"+wargs.uuid;var publish="/moa/moacommentwidget";var subscribe=["/moa/moacommentwidget"];var tasks=["/openCommentingWidget","/openCommentingWidgetForComponents"];if(wargs.publish){publish=wargs.publish;}if(wargs.subscribe){if(typeof wargs.subscribe=="string"){subscribe=[];subscribe.push(wargs.subscribe);}else{subscribe=wargs.subscribe;}}var initSubscribe=function(){_widget.subs=[];doSubscribe(subscribe+tasks[0],_widget.openCommentingWidget);doSubscribe(subscribe+tasks[1],_widget.openCommentingWidgetForComponents);};var doSubscribe=function(topic,handler){var i=jmaki.subscribe(topic,handler);_widget.subs.push(i);};var init=function(){initSubscribe();};this.postLoad=function(){init();};var entityId="";var componentType="";var entryId="";var idCommentEntryPanel="commentEntryPanel";var hashIdCommentEntryPanel="#commentEntryPanel";var commentDialogContainer;var activeToggleEle;this.openCommentingWidget=function(e,c){if(e.componentType){_widget.componentType=e.componentType;}if(e.entryId){_widget.entryId=e.entryId;}if(_widget.componentType!=""&&_widget.componentType.length>0&&_widget.entryId!=""&&_widget.entryId.length>0){commentEntryPanel();}};var trackTitle="";this.openCommentingWidgetForComponents=function(e,c){if(e.componentType){_widget.componentType=e.componentType;}if(e.entityId){_widget.entityId=e.entityId;}if(e.TrackTitle){trackTitle=e.TrackTitle;}if(_widget.componentType!=""&&_widget.componentType.length>0&&_widget.entityId!=null&&_widget.entityId!=""){commentEntryPanel();}};var commentEntryPanel=function(){load();};var load=function(){setDefaults();try{blogger.getCommentsForComponent(_widget.componentType,_widget.entityId,_widget.entryId,renderCommentsOnPanel);}catch(e){}};var renderCommentsOnPanel=function(entry){setDefaults();var dialogContainer=getDivEle();dialogContainer.attr("class","dialog_container");var entryDescriptionContainer=getDivEle();entryDescriptionContainer.attr("id",uuid);entryDescriptionContainer.attr("class","scroll-pane");entryDescriptionContainer.append(addDefaultEntryPanel());var _isEntryAvailable=false;var _isCommented=false;var entryCommentsHolder=getDivEle();if(entry!=null){var commentList=entry.blogCommentDTO;_isEntryAvailable=true;if(commentList!=null&&commentList.length>0){_isCommented=true;for(var i=0;i<commentList.length;i++){var styleClass="clsCommentEntry";entryCommentsHolder.append(showCommentHolder(entry.entryId,commentList[i].commentId,commentList[i].content,commentList[i].createdBy,commentList[i].posttime,commentList[i].time,commentList[i].replyToUserDetail));}}}if(_isCommented){entryDescriptionContainer.append(getStrapPanel("top",entryCommentsHolder));}if(_isEntryAvailable){entryDescriptionContainer.append(entryCommentsHolder);}if(_isCommented){entryDescriptionContainer.append(getStrapPanel("bottom",entryCommentsHolder));}loadDialog(entryDescriptionContainer);dialogContainer.html("");dialogContainer.append(entryDescriptionContainer);commentDialogContainer.html("");commentDialogContainer.append(dialogContainer);applyScroll(entryDescriptionContainer);};var loadDialog=function(entryDescriptionContainer){if(commentDialogContainer==null){commentDialogContainer=getDivEle();$(document).append(commentDialogContainer);commentDialogContainer.dialog({width:610,height:350,bgiframe:false,modal:true,closeOnEscape:true,maxHeight:false,maxWidth:false,resizable:false,title:"Comments",dialogClass:"commentdialog",close:function(event,ui){resetReferences();}});}else{commentDialogContainer.dialog("open");}if(navigator.userAgent.indexOf("Firefox")!=-1){$(".ui-widget-overlay").css("z-index","1000");}var localTrackTitle=jmaki.attributes.get("current_playing_track_title");var playlistTitle=jmaki.attributes.get("current_playlist_title");var albumTitle=jmaki.attributes.get("current_album_title");if(COMPONENT_TYPE_ALBUM==_widget.componentType){setTitle(" Comment on "+albumTitle+" "+capitalise(_widget.componentType));}else{if(NOTE_TYPE_PLAYLISTNOTES==_widget.componentType){setTitle(" Comment on "+playlistTitle+" "+capitalise(_widget.componentType));}else{if(COMPONENT_TYPE_TRACK==_widget.componentType){setTitle(" Comment on "+trackTitle+" "+capitalise(_widget.componentType));}else{if(COMPONENT_TYPE_PLAYLIST==_widget.componentType){setTitle(" Comment on "+playlistTitle+" "+capitalise(_widget.componentType));}else{if(NOTE_TYPE_LINERNOTES==_widget.componentType){setTitle(" Comment on "+albumTitle+" "+capitalise(_widget.componentType));}else{setTitle(" Comment on "+localTrackTitle+" "+capitalise(_widget.componentType));}}}}}};var setTitle=function(title){if($(".ui-dialog-title")){$(".ui-dialog-title").text(title);}};var capitalise=function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase();};var getStrapPanel=function(position,entryCommentsHolder){var strapPanel=getDivEle();strapPanel.attr("id",position);strapPanel.attr("class","dialog_divider_strap");var sortEleInfo=getDivEle();sortEleInfo.attr("class","dialog_divider_sorttext");sortEleInfo.text("Last Comment");var sortIconEle=getDivEle();sortIconEle.attr("class","dialog_divider_sorticon_up");addSortable(sortEleInfo,sortIconEle,entryCommentsHolder);strapPanel.append(sortEleInfo);strapPanel.append(sortIconEle);return strapPanel;};var addSortable=function(sortEleInfo,sortIconEle,entryCommentsHolder){sortEleInfo.bind("click",function(){setDefaults();$(".dialog_divider_sorticon_up").each(function(){$(this).toggleClass("dialog_divider_sorticon_down","fast");});$(".dialog_comment_container").tsort("."+wargs.uuid+"_dialog_sort_span",{order:((sortIconEle.attr("class").indexOf("dialog_divider_sorticon_down")==-1)?"desc":"asc")});});};var showCommentHolder=function(entryId,commentId,content,createdBy,posttime,time,replyToUserDetail){var entryCommentHolder=getDivEle();entryCommentHolder.attr("id",commentId);entryCommentHolder.attr("class","dialog_comment_container");var sortOn=getSpanEle();sortOn.attr("class",wargs.uuid+"_dialog_sort_span");sortOn.attr("style","display:none");sortOn.text(time);var commentHeaderHolder=getDivEle();commentHeaderHolder.attr("class","dialog_comment_container_header");var commentHeaderIcon=getDivEle();commentHeaderIcon.attr("class","dialog_comment_container_header_icon");commentHeaderHolder.append(commentHeaderIcon);var commentHeaderTitle=getDivEle();commentHeaderTitle.attr("class","dialog_comment_container_header_title");var text="";text=text+" Posted by "+createdBy+" ("+posttime+")";commentHeaderTitle.text(text);commentHeaderHolder.append(commentHeaderTitle);var commentAuthInfoHolder=getDivEle();commentAuthInfoHolder.attr("class","dialog_comment_container_authinfo");if(replyToUserDetail){commentAuthInfoHolder.text("@"+replyToUserDetail);}var commentDescHolder=getDivEle();commentDescHolder.attr("class","dialog_comment_container_desc");commentDescHolder.text(content);var comentReplyHolder=getDivEle();comentReplyHolder.attr("class","dialog_comment_reply_link_holder");var replyToCommentLink=getDivEle();replyToCommentLink.attr("class","dialog_comment_reply_link");var replyToCommentLinkText=getDivEle();replyToCommentLinkText.attr("class","dialog_comment_reply_link_text");replyToCommentLinkText.text("Reply");replyToCommentLinkText.click(function(){if(forceAuthenticate()){getCommentEntryPanel(entryId,commentId,escape(createdBy),escape(posttime),replyToCommentLinkText);}});replyToCommentLink.append(replyToCommentLinkText);comentReplyHolder.append(replyToCommentLink);entryCommentHolder.append(sortOn);entryCommentHolder.append(commentHeaderHolder);entryCommentHolder.append(commentAuthInfoHolder);entryCommentHolder.append(commentDescHolder);entryCommentHolder.append(comentReplyHolder);return entryCommentHolder;};var getCommentEntryPanel=function(entryId,parentCommentId,createdBy,posttime,relativeToggleEle){setDefaults();toggle(relativeToggleEle);var replyCommentEntryPanel=getDivEle();replyCommentEntryPanel.attr("id",idCommentEntryPanel);replyCommentEntryPanel.attr("class","dialog_comment_entry_container");var commentEntryHeader=getDivEle();commentEntryHeader.attr("class","dialog_comment_entry_header");var commentEntryHeaderTitle=getDivEle();commentEntryHeaderTitle.attr("class","dialog_comment_entry_header_title");commentEntryHeaderTitle.text("Reply To:"+unescape(createdBy)+" ("+unescape(posttime)+")");commentEntryHeader.append(commentEntryHeaderTitle);var commentEntryContent=getDivEle();commentEntryContent.attr("class","dialog_comment_entry_content");var commentEntryInfoContent=getDivEle();commentEntryInfoContent.attr("class","dialog_comment_entry_content_info");var commentEntryTextArea=getTextAreaEntryEle();commentEntryTextArea.attr("id","replyContent");commentEntryTextArea.attr("class","dialog_comment_entry_textarea");var commentEntryControls=getDivEle();commentEntryControls.attr("class","dialog_comment_entry_controls");var saveLinkEle=getDivEle();saveLinkEle.text("Submit");saveLinkEle.attr("id","idCtrl_sav");saveLinkEle.attr("class","dialog_comment_entry_controllink_save");saveLinkEle.click(function(){saveComment(parentCommentId,commentEntryTextArea.val(),"true");replyCommentEntryPanel.remove();toggle(null);});commentEntryControls.append(saveLinkEle);var cancelLinkEle=getDivEle();cancelLinkEle.text("Cancel");cancelLinkEle.attr("id","idCtrl_cancel");cancelLinkEle.attr("class","dialog_comment_entry_controllink_cancel");cancelLinkEle.click(function(){replyCommentEntryPanel.remove();toggle(null);});commentEntryContent.append(commentEntryInfoContent);commentEntryContent.append(commentEntryTextArea);commentEntryContent.append(commentEntryControls);replyCommentEntryPanel.append(commentEntryHeader);replyCommentEntryPanel.append(commentEntryContent);replyCommentEntryPanel.insertAfter("#"+parentCommentId);};var addDefaultEntryPanel=function(){var defaultRootEntryPanel=getDivEle();var defaultCommentEntryPanel=getDivEle();defaultCommentEntryPanel.attr("class","default_dialog_comment_entry_container");defaultCommentEntryPanel.attr("id","default_dialog_comment_entry_container");var commentEntryHeader=getDivEle();commentEntryHeader.attr("class","dialog_comment_entry_header");var commentEntryHeaderTitle=getDivEle();commentEntryHeaderTitle.attr("class","dialog_comment_entry_header_title");commentEntryHeaderTitle.text("Your Comment");commentEntryHeader.append(commentEntryHeaderTitle);var commentEntryContent=getDivEle();commentEntryContent.attr("class","dialog_comment_entry_content");var commentEntryInfoContent=getDivEle();commentEntryInfoContent.attr("class","dialog_comment_entry_content_info");var commentEntryTextArea=getTextAreaEntryEle();commentEntryTextArea.attr("id","replyContent");commentEntryTextArea.attr("class","dialog_comment_entry_textarea");var commentEntryControls=getDivEle();commentEntryControls.attr("class","dialog_comment_entry_controls");var saveLinkEle=getDivEle();saveLinkEle.text("Submit");saveLinkEle.attr("id","idDefCtrl_sav");saveLinkEle.attr("class","dialog_comment_entry_controllink_save");saveLinkEle.click(function(){saveComment("",commentEntryTextArea.val(),"false");commentEntryTextArea.val("");});commentEntryControls.append(saveLinkEle);var clearLinkEle=getDivEle();clearLinkEle.text("Clear");clearLinkEle.attr("id","idDefCtrl_clear");clearLinkEle.attr("class","dialog_comment_entry_controllink_cancel");clearLinkEle.click(function(){commentEntryTextArea.val("");});commentEntryContent.append(commentEntryInfoContent);commentEntryContent.append(commentEntryTextArea);commentEntryContent.append(commentEntryControls);defaultCommentEntryPanel.append(commentEntryHeader);defaultCommentEntryPanel.append(commentEntryContent);return defaultCommentEntryPanel;};var saveComment=function(parentCommentId,content,isReplyToComment){if(content!=null&&content.length>0){blogger.persistCommentForComponent(_widget.entryId,_widget.componentType,_widget.entityId,parentCommentId,content,isReplyToComment,renderCommentsOnPanel);}};var setDefaults=function(){$(hashIdCommentEntryPanel).remove();};var resetReferences=function(){_widget.entryId="";_widget.componentType="";_widget.entityId="";};var applyScroll=function(container){$(container).jScrollPane();$(container).bind("DOMNodeInserted",function(objEvent){$(container).jScrollPane();});$(container).bind("click",function(objEvent){var _currPos=$(container).data("jScrollPanePosition");$(container).jScrollPane();$(container)[0].scrollTo(_currPos);if($("#commentEntryPanel").is(":visible")){$(container)[0].scrollTo($("#commentEntryPanel").offset().top-$("#default_dialog_comment_entry_container").offset().top);}});};var toggle=function(element){if(this.activeToggleEle&&this.activeToggleEle!=element){this.activeToggleEle.toggle();}if(element){element.toggle();this.activeToggleEle=element;}if($(".dialog_comment_entry_container")==null||element==null){this.activeToggleEle=null;}};var getDivEle=function(){return $("<div></div>").clone();};var getSpanEle=function(){return $("<span></span>").clone();};var getHeader4Ele=function(){return $("<h4></h4>").clone();};var getHeader5Ele=function(){return $("<h5></h5>").clone();};var getParagraphsEle=function(){return $("<p></p>").clone();};var getBoldEle=function(){return $("<b></b>").clone();};var getTextAreaEntryEle=function(){return $("<textarea></textarea>").clone();};};
