/************* CommentsDialog OBJECT ****************/
MySpace.Comments.CommentsDialog = (function() {

    var res = MySpaceRes.Comment;
    var output = {};
    var _captchaImage = new (Image)();
    var _captchaIteration = 1;
    var _captchaInput = document.createElement('input');
    var _captchaCallback;
    var _captchaAuthCheck;
	    
    output.ShowConfirm = function(content, title, callback_yes, callback_no) {
    
        var dialog = MySpace.UI.Popup.create( _proxy_jslib_handle(null, 'content', content, 0, 0), title);
        dialog.add_button(res.Yes);
        dialog.add_button(res.No, true).isCancel = true;
        dialog.set_state({
            'callback_yes': callback_yes,
            'callback_no': callback_no

 });
        dialog.show(ShowConfirm_callback);
        
    }

    output.ShowCaptcha = function(callback, authFunction) {
    
		if(callback != null) _captchaCallback = callback;
		if(authFunction != null) _captchaAuthCheck = authFunction;
		
        var CaptchaForm = document.createElement('div');
        var wrapper = document.createElement('div');
        wrapper.style.textAlign = 'center';
        CaptchaForm.appendChild(wrapper);
        
         _proxy_jslib_assign('', _captchaImage, 'src', '=', ( MySpace.Comments.Settings.CaptchaUrl));
        _captchaImage.className = 'captchaImage'

 _captchaImage.id = 'CelebCaptchaImage'

 wrapper.appendChild(_captchaImage);
        
        var refreshLink = document.createElement('a');
        refreshLink.className = 'refreshLink';
         _proxy_jslib_assign('', refreshLink, 'href', '=', ( 'javascript:MySpace.Comments.CommentsDialog.RefreshCaptchaImage();'));
         _proxy_jslib_assign('', refreshLink, 'innerHTML', '=', ( res.RefreshImage));
        wrapper.appendChild(refreshLink);
        
        
        _captchaInput.type = 'text';
         _proxy_jslib_assign('', _captchaInput, 'value', '=', ( ''));
        _captchaInput.id = 'CelebCaptchaInput';
        _captchaInput.className = 'captchaInput';
        wrapper.appendChild(_captchaInput);
        
        
        var dialog = MySpace.UI.Popup.create( _proxy_jslib_handle(CaptchaForm, 'innerHTML', '', 0, 0), res.EnterTextValidate);
        dialog.add_button(res.Ok);
        dialog.add_button(res.Cancel, true).isCancel = true;
        dialog.show(ShowCaptcha_callback);
        
        
    }

    output.RefreshCaptchaImage = function() {
    
        var img =  _proxy_jslib_handle(document, 'getElementById', '', 1, 0)('CelebCaptchaImage');
         _proxy_jslib_assign('', img, 'src', '=', ( MySpace.Comments.Settings.CaptchaUrl + '&r=' + _captchaIteration));
        _captchaIteration++;
        
    }
    function ShowCaptcha_callback(sender, args) {
    
    	if (!args.target.isCancel){
            var val =  _proxy_jslib_handle( _proxy_jslib_handle(document, 'getElementById', '', 1, 0)('CelebCaptchaInput'), 'value', '', 0, 0);
            _captchaAuthCheck(val, captchaComplete_callback, null);
		}else if (_captchaCallback) {
            _captchaCallback(false);
        }
        
    }
    function captchaComplete_callback(results) {
        if(!results){
			
			output.ShowMessage(res.TryAgainValidate,res.UnableValidate,function() {
				output.ShowCaptcha(_captchaCallback,_captchaAuthCheck);
			});

			
		}else if (_captchaCallback) {
            _captchaCallback(true);
        }
        
    }
    
    output.ShowMessage = function(content, title, callback) {
    
        var dialog = MySpace.UI.Popup.create( _proxy_jslib_handle(null, 'content', content, 0, 0), title);
        dialog.add_button(res.Ok);
        dialog.show(callback);
        
    }
    
    output.ShowAddComment = function(callback, allowAnonymous) {
        //check if logged in.
        
        if (MySpace.ClientContext.IsLoggedIn) {
            var commentForm = document.createElement('div');
            
            var newCommentText = document.createElement('textarea');
            newCommentText.className = 'newCommentText';
            newCommentText.name = 'newCommentText';
            newCommentText.id = 'newCommentText';
            commentForm.appendChild(newCommentText);
            
            if (allowAnonymous) {
                var anonymousDiv = document.createElement('div');
                anonymousDiv.className = 'addCommentLabel';
                commentForm.appendChild(anonymousDiv);
                
                var anonymousCheckbox = document.createElement('input');
                anonymousCheckbox.type = 'checkbox';
                anonymousCheckbox.name = 'anonymousCheckbox';
                anonymousCheckbox.id = 'anonymousCheckbox';
                anonymousCheckbox.className = 'anonymousCheckbox';
                anonymousDiv.appendChild(anonymousCheckbox);
                
                var anonymousLabel = document.createElement('b');
                 _proxy_jslib_assign('', anonymousLabel, 'innerHTML', '=', ( res.PostAsAnonymous));
                anonymousLabel.className = 'anonymousLabel';
                anonymousDiv.appendChild(anonymousLabel);
            }
            
            var content =  _proxy_jslib_handle(commentForm, 'innerHTML', '', 0, 0);
            
            var dialog = MySpace.UI.Popup.create( _proxy_jslib_handle(null, 'content', content, 0, 0), res.AddAComment);
            dialog.add_button(res.Ok);
            dialog.add_button(res.Cancel, true).isCancel = true;
            dialog.set_state({
                'callback': callback

 });
            dialog.show(ShowAddComment_callback);
        }
        else {
            var dialog = MySpace.UI.Popup.create(res.YouHaveToBeSignedIn, res.PleaseLogIn);
            dialog.add_button(res.Ok);
            dialog.add_button(res.Cancel, true).isCancel = true;
            dialog.show(LogInComment_callback);
            
        }
        
    }
    
    function LogInComment_callback(sender, args) {
        if (!args.target.isCancel) 
            __doPostBack('make', 'login');
    }
    
    function ShowAddComment_callback(sender, args) {
        var state = sender.get_state();
        var anon =  _proxy_jslib_handle(document, 'getElementById', '', 1, 0)('anonymousCheckbox');
        var tb =  _proxy_jslib_handle(document, 'getElementById', '', 1, 0)('newCommentText');
        var text =  _proxy_jslib_handle(tb, 'value', '', 0, 0);
        if (!args.target.isCancel && anon != null) {
            state.callback(text, anon.checked);
        }
        else 
            if (!args.target.isCancel && anon == null) {
                state.callback(text, false);
            }
        
        tb.parentNode.removeChild(tb);
        tb == null;
        
        if (anon != null) {
            anon.parentNode.removeChild(anon);
            anon == null;
        }
        
    }
    
    function ShowConfirm_callback(sender, args) {
        var state = sender.get_state();
        if (args.target.isCancel) {
            state.callback_no();
        }
        else {
            state.callback_yes();
        }
    }
    
    return output;
    
})();



/************* CommentsAjaxPanel OBJECT ****************/
MySpace.Comments.CommentsAjaxPanel = (function() {

    var output = {};
    
    function _get(o) {
        var fixBrowserQuirks = false;
        
        var left = 0;
        var top = 0;
        var width = 0;
        var height = 0;
        var parentNode = null;
        var offsetParent = null;
        offsetParent = o.offsetParent;
        var originalObject = o;
        var el = o;
        while (el.parentNode != null) {
            el = el.parentNode;
            if (el.offsetParent == null) {
            }
            else {
                var considerScroll = true;
                if (fixBrowserQuirks && window.opera) {
                    if (el == originalObject.parentNode || el.nodeName == "TR") {
                        considerScroll = false;
                    }
                }
                if (considerScroll) {
                    if (el.scrollTop && el.scrollTop > 0) {
                         top= _proxy_jslib_assign_rval('', 'top', '-=', ( el.scrollTop), top);
                    }
                    if (el.scrollLeft && el.scrollLeft > 0) {
                        left -= el.scrollLeft;
                    }
                }
            }
            if (el == offsetParent) {
                left += o.offsetLeft;
                if (el.clientLeft && el.nodeName != "TABLE") {
                    left += el.clientLeft;
                }
                 top= _proxy_jslib_assign_rval('', 'top', '+=', ( o.offsetTop), top);
                if (el.clientTop && el.nodeName != "TABLE") {
                     top= _proxy_jslib_assign_rval('', 'top', '+=', ( el.clientTop), top);
                }
                o = el;
                if (o.offsetParent == null) {
                    if (o.offsetLeft) {
                        left += o.offsetLeft;
                    }
                    if (o.offsetTop) {
                         top= _proxy_jslib_assign_rval('', 'top', '+=', ( o.offsetTop), top);
                    }
                }
                offsetParent = o.offsetParent;
            }
        }
        if (originalObject.offsetWidth) {
            width = originalObject.offsetWidth;
        }
        if (originalObject.offsetHeight) {
            height = originalObject.offsetHeight;
        }
        
        //padding and border comp...
        var vert = (originalObject.style.borderBottomWidth.length > 0 ? parseInt( _proxy_jslib_handle(originalObject.style.borderBottomWidth, 'replace', '', 1, 0)(/px/, '')) : 0) +
        (originalObject.style.borderTopWidth.length > 0 ? parseInt( _proxy_jslib_handle(originalObject.style.borderTopWidth, 'replace', '', 1, 0)(/px/, '')) : 0) +
        (originalObject.style.paddingBottom.length > 0 ? parseInt( _proxy_jslib_handle(originalObject.style.paddingBottom, 'replace', '', 1, 0)(/px/, '')) : 0) +
        (originalObject.style.paddingTop.length > 0 ? parseInt( _proxy_jslib_handle(originalObject.style.paddingTop, 'replace', '', 1, 0)(/px/, '')) : 0);
        
        
        var horiz = (originalObject.style.borderBottomWidth.length > 0 ? parseInt( _proxy_jslib_handle(originalObject.style.borderLeftWidth, 'replace', '', 1, 0)(/px/, '')) : 0) +
        (originalObject.style.borderRightWidth.length > 0 ? parseInt( _proxy_jslib_handle(originalObject.style.borderRightWidth, 'replace', '', 1, 0)(/px/, '')) : 0) +
        (originalObject.style.paddingLeft.length > 0 ? parseInt( _proxy_jslib_handle(originalObject.style.paddingLeft, 'replace', '', 1, 0)(/px/, '')) : 0) +
        (originalObject.style.paddingRight.length > 0 ? parseInt( _proxy_jslib_handle(originalObject.style.paddingRight, 'replace', '', 1, 0)(/px/, '')) : 0);
        
        var isIE = navigator.userAgent.indexOf('MSIE') >= 0;
        
        return {
            'left': isIE ? left - 2 : left,
            'top': isIE ?  _proxy_jslib_handle(null, 'top', top, 0, 0) - 2 :  _proxy_jslib_handle(null, 'top', top, 0, 0),
            'width': width - horiz,
            'height': height - vert

 };
    };
    
    var _timer = null;
    
    output.Show = function(panel, toCover) {
    
        _timer =  _proxy_jslib_handle(null, 'setTimeout', setTimeout, 1, 0)(function() {
            _showit(panel, toCover);
        }, 500);
        
    }
    
    function _showit(panel, toCover) {
    
        var pos = _get(toCover)
        
        panel.style.position = 'absolute';
         _proxy_jslib_assign('', panel.style, 'top', '=', (  _proxy_jslib_handle(pos, 'top', '', 0, 0) + 'px'));
        panel.style.left = pos.left + 'px';
        panel.style.width = pos.width + 'px';
        panel.style.height = pos.height + 'px';
        panel.style.display = 'block';
        
        toCover.scrollIntoView(true);
        _timer = null;
        
    }
    
    output.Hide = function(panel) {
    
        if (_timer) 
            clearTimeout(_timer);
        panel.style.display = 'none';
        
    }
    
    return output;
})();

/************* CommentsPanel OBJECT ****************/
MySpace.Comments.CommentsPanel = (function() {

    var output = {};
    var service = MySpace.Web.Modules.Celebrity.Services.CommentService;
    var resourceInfo = null;
    var res = MySpaceRes.Comment;
    
    output.DeleteComment = function(index) {
        MySpace.Comments.CommentsDialog.ShowConfirm(res.AreYouSureDelete, res.ConfirmDelete, function() {
            DeleteComment_Callback(index);
        }, function() {
            return;
        } /*do nothing on cancel*/);
        
    }
    
    function DeleteComment_Callback(index) {
    
        service.DeleteComment(MySpace.Comments.Settings.Token, MySpace.Comments.Settings.Provider, MySpace.Comments.Settings.ResourceID, index, DeleteComment_Success, Failed);
    }
    
    function DeleteComment_Success(result) {
        var callResults =  _proxy_jslib_handle(MySpace.Comments.CallResults, (result), 0, 0);
        if (callResults == 'Success') {
            MySpace.Comments.CommentsDialog.ShowMessage(res.CommentDeleted, res.Success);
            GetComments();
        }
        else {
            MySpace.Comments.CommentsDialog.ShowMessage(res.CommentNotDeleted, res.Failed);
        }
    }
    
    output.MarkCommentAsSpam = function(index) {
        MySpace.Comments.CommentsDialog.ShowConfirm(res.AreYouSureSpam, res.ConfirmSpam, function() {
            MarkCommentAsSpam_Callback(index);
        }, function() {
            return;
        } /*do nothing on cancel*/);
        
    }
    
    function MarkCommentAsSpam_Callback(index) {
        service.MarkCommentAsSpam(MySpace.Comments.Settings.Token, MySpace.Comments.Settings.Provider, MySpace.Comments.Settings.ResourceID, index, MarkCommentAsSpam_Success, Failed);
    }
    
    function MarkCommentAsSpam_Success(result) {
        var callResults =  _proxy_jslib_handle(MySpace.Comments.CallResults, (result), 0, 0);
        if (callResults == 'Success') {
            MySpace.Comments.CommentsDialog.ShowMessage(res.CommentReported, res.Success);
            GetComments();
        }
        else {
            MySpace.Comments.CommentsDialog.ShowMessage(res.CommentNotReported, res.Failed);
        }
    }
    
    
    function AddTitle(commentWrapper) {
        var titleDiv = document.createElement('div');
        titleDiv.className = 'commentsTitle';
        commentWrapper.appendChild(titleDiv);
        
        var leftDiv = document.createElement('div');
        leftDiv.className = 'left';
         _proxy_jslib_assign('', leftDiv, 'innerHTML', '=', ( res.Comments));
        titleDiv.appendChild(leftDiv);
        
        var rightDiv = document.createElement('div');
        rightDiv.className = 'right';
        titleDiv.appendChild(rightDiv);
        
        var addComment = document.createElement('a');
         _proxy_jslib_assign('', addComment, 'href', '=', ( 'javascript:MySpace.Comments.CommentsPanel.AddComment();'));
         _proxy_jslib_assign('', addComment, 'innerHTML', '=', ( res.AddComment));
        rightDiv.appendChild(addComment);
    }
    
    output.AddComment = function() {
        MySpace.Comments.CommentsDialog.ShowAddComment(AddComment_Success, resourceInfo.AllowAnonymous);
    }
   
   	var _text = '';
   	var _isAnonymous = '';
    function AddComment_Success(text, isAnonymous) {
    
		_text = text;
		_isAnonymous = isAnonymous;
        service.PostNewComment(
			MySpace.Comments.Settings.Token, 
			MySpace.Comments.Settings.Provider, 
			MySpace.Comments.Settings.ResourceID, 
			_text, false, _isAnonymous, CommentAdded, Failed);
        
        
    }
        
    function CommentAdded(result) {
 
        if( _proxy_jslib_handle(MySpace.Comments.CallResults, (result.CommentCallResults), 0, 0) == 'CaptchaRequired')
		{
	        MySpace.Comments.CommentsDialog.ShowCaptcha(CaptchaReturned, service.CaptchaIsValid);
		}
		else if( _proxy_jslib_handle(MySpace.Comments.CallResults, (result.CommentCallResults), 0, 0) == 'Success')
		{
		    MySpace.Comments.Settings.PageIndex = 0;
            GetComments();
        }
        else
        {
            MySpace.Comments.CommentsDialog.ShowMessage(result.Message, res.CommentNotAdded);
        }
        
    }
    
    output.GoToPage = function(index) {
        MySpace.Comments.Settings.PageIndex = index;
        GetComments();
    }
    
    function AddComment(table, comment) {
        var mainRow = document.createElement('tr');
        table.appendChild(mainRow);
        
        var profileUrl =  _proxy_jslib_handle(MySpace.Comments.Settings.ProfileUrl, 'replace', '', 1, 0)(/\{0\}/, comment.UserId);
        var commentUrl =  _proxy_jslib_handle(MySpace.Comments.Settings.CommentUrl, 'replace', '', 1, 0)(/\{0\}/, comment.UserId);
        var messageUrl =  _proxy_jslib_handle(MySpace.Comments.Settings.MessageUrl, 'replace', '', 1, 0)(/\{0\}/, comment.UserId);
        
        if(comment.UserId <= 0)
        {
            profileUrl = "#";
            commentUrl = "#";
            messageUrl = "#";
        }
        
        var profileCell = document.createElement('td');
        profileCell.className = 'profileCell';
        mainRow.appendChild(profileCell);
        
        var profileTextLink = document.createElement('a');
        profileTextLink.className = 'profileTextLink';
         _proxy_jslib_assign('', profileTextLink, 'innerHTML', '=', ( comment.UserName));
         _proxy_jslib_assign('', profileTextLink, 'href', '=', ( profileUrl));
        profileTextLink.title = res.ViewProfile;
        profileCell.appendChild(profileTextLink);
        
        var profileImageLink = document.createElement('a');
        profileImageLink.className = 'profileImageLink';
         _proxy_jslib_assign('', profileImageLink, 'href', '=', ( profileUrl));
        profileImageLink.title = res.ViewProfile;
        profileCell.appendChild(profileImageLink);
        
        var profileImage = document.createElement('img');
        profileImage.className = 'profileImage';
         _proxy_jslib_assign('', profileImage, 'src', '=', ( comment.ProfilePicUrl));
        profileImage.alt = comment.UserName;
        profileImageLink.appendChild(profileImage);
        
        
        var textCell = document.createElement('td');
        textCell.className = 'textCell';
        mainRow.appendChild(textCell);
        
        var dateDiv = document.createElement('div');
        dateDiv.className = 'date';
         _proxy_jslib_assign('', dateDiv, 'innerHTML', '=', ( comment.CommentDate));
        textCell.appendChild(dateDiv);
        
        var textDiv = document.createElement('div');
        textDiv.className = 'text';
        wordBreaker.isPreserveBreaks = true;
        wordBreaker.isRewriteLinks = true;
        wordBreaker.setMaxLength(10);
         _proxy_jslib_assign('', textDiv, 'innerHTML', '=', ( wordBreaker.fix(comment.CommentText)));
        textCell.appendChild(textDiv);
        
        
        var commandDiv = document.createElement('div');
        commandDiv.className = 'command';
        textCell.appendChild(commandDiv);
        
        if (!comment.ResourceOwner && !comment.CommentOwner && MySpace.ClientContext.IsLoggedIn && resourceInfo.RenderMarkAsSpam) {
            commandDiv.appendChild(document.createTextNode(' '));
            var markAsSpam = document.createElement('a');
            markAsSpam.className = 'spam';
             _proxy_jslib_assign('', markAsSpam, 'href', '=', ( 'javascript:MySpace.Comments.CommentsPanel.MarkCommentAsSpam(' + comment.CommentId + ');'));
             _proxy_jslib_assign('', markAsSpam, 'innerHTML', '=', ( res.MarkAsSpam));
            commandDiv.appendChild(markAsSpam);
        }
        
        if ((!comment.ResourceOwner && comment.CommentOwner) || comment.ResourceOwner) {
            commandDiv.appendChild(document.createTextNode(' '));
            var deleteComment = document.createElement('a');
            deleteComment.className = 'delete';
             _proxy_jslib_assign('', deleteComment, 'href', '=', ( 'javascript:MySpace.Comments.CommentsPanel.DeleteComment(' + comment.CommentId + ');'));
             _proxy_jslib_assign('', deleteComment, 'innerHTML', '=', ( res.DeleteComment));
            commandDiv.appendChild(deleteComment);
        }
        
        if (comment.ResourceOwner) {
            commandDiv.appendChild(document.createTextNode(' '));
            var comment = document.createElement('a');
            comment.className = 'comment';
             _proxy_jslib_assign('', comment, 'href', '=', ( commentUrl));
             _proxy_jslib_assign('', comment, 'innerHTML', '=', ( res.PostComment));
            commandDiv.appendChild(comment);
            
            commandDiv.appendChild(document.createTextNode(' '));
            var message = document.createElement('a');
            message.className = 'message';
             _proxy_jslib_assign('', message, 'href', '=', ( messageUrl));
             _proxy_jslib_assign('', message, 'innerHTML', '=', ( res.SendMessage));
            commandDiv.appendChild(message);
        }
        
        
    }
	
    function CaptchaReturned(isValid) {
    
		if(isValid){
			        service.PostNewComment(
				MySpace.Comments.Settings.Token, 
				MySpace.Comments.Settings.Provider, 
				MySpace.Comments.Settings.ResourceID, 
				_text, true, _isAnonymous, GetComments,Failed);
		}else
		{
			MySpace.Comments.CommentsDialog.ShowMessage(res.CommentNotAdded,res.Cancled,GetComments);
		}

        
    }
    function GetComments() {
    
        
        var id = MySpace.Comments.Settings.ResourceID + '_commentsAjaxPanel';
        var panel =  _proxy_jslib_handle(document, 'getElementById', '', 1, 0)(id);
        id = MySpace.Comments.Settings.ResourceID + '_commentsPanel';
        var toCover =  _proxy_jslib_handle(document, 'getElementById', '', 1, 0)(id);
        
        MySpace.Comments.CommentsAjaxPanel.Show(GetCommentsAjaxPanel(), GetCommentsPanel());
        
        service.GetResourceInfo(MySpace.Comments.Settings.Provider, MySpace.Comments.Settings.ResourceID, GetResourceInfo_Success, Failed);
    };
    
    function GetResourceInfo_Success(output) {
        
		resourceInfo = output;
		
		if (!resourceInfo.CommentsDisplayAllowed) {
		    MySpace.Comments.CommentsAjaxPanel.Hide(GetCommentsAjaxPanel());
			return; // no commments.
		}
		
        var start = MySpace.Comments.Settings.PageSize * MySpace.Comments.Settings.PageIndex;
        service.GetComments(MySpace.Comments.Settings.Token, MySpace.Comments.Settings.Provider, MySpace.Comments.Settings.ResourceID, start, MySpace.Comments.Settings.PageSize, GetComments_Success, Failed); //Get From Stuff;
    }
    
    function GetCommentsPanel() {
        var id = MySpace.Comments.Settings.ResourceID + '_commentsPanel';
        return  _proxy_jslib_handle(document, 'getElementById', '', 1, 0)(id);
    }
    
    function GetCommentsAjaxPanel() {
        var id = MySpace.Comments.Settings.ResourceID + '_commentsAjaxPanel';
        return  _proxy_jslib_handle(document, 'getElementById', '', 1, 0)(id);
    }
    function AddComments(wrapper, comments) {
        var table = document.createElement('table');
        wrapper.appendChild(table);
        
        var tbody = document.createElement('tbody');
        table.appendChild(tbody);
        
        for (var i = 0; i < comments.length; i++) {
            AddComment(tbody,  _proxy_jslib_handle(comments, (i), 0, 0));
        }
    }
    function GetComments_Success(comments) {
        MySpace.Comments.CommentsAjaxPanel.Hide(GetCommentsAjaxPanel());
        
        var wrapper = GetCommentsPanel();
        
        //remove old children
         _proxy_jslib_assign('', wrapper, 'innerHTML', '=', ( ''));
        
        AddTitle(wrapper);
        
        if (comments.length > 0) {
        
            MySpace.UI.AddPager(wrapper, 'pagerTop', 'javascript:MySpace.Comments.CommentsPanel.GoToPage({0});', MySpace.Comments.Settings.PageIndex, MySpace.Comments.Settings.PageSize, resourceInfo.TotalComments);
            
            AddComments(wrapper, comments);
            
            MySpace.UI.AddPager(wrapper, 'pagerBottom', 'javascript:MySpace.Comments.CommentsPanel.GoToPage({0});', MySpace.Comments.Settings.PageIndex, MySpace.Comments.Settings.PageSize, resourceInfo.TotalComments);
        }
        else {
            //no comments
            var message = document.createElement('div');
            message.className = 'noComments';
             _proxy_jslib_assign('', message, 'innerHTML', '=', ( MySpace.ClientContext.IsLoggedIn ? res.NoComments : res.LogInNoComments));
            wrapper.appendChild(message);
        }
        
    }
    
    function Failed(result) {
    
        MySpace.Comments.CommentsAjaxPanel.Hide(GetCommentsAjaxPanel());
        var wrapper = GetCommentsPanel();
         _proxy_jslib_assign('', wrapper, 'innerHTML', '=', ( ''));
        
        var errorMessage = document.createElement('div');
        errorMessage.className = 'errorMessage';
        
        if (MySpace.Comments.Settings.ShowVerboseErrors) {
             _proxy_jslib_assign('', errorMessage, 'innerHTML', '=', ( result.get_message() + '<br><br>' + result.get_stackTrace()));
        }
        else {
             _proxy_jslib_assign('', errorMessage, 'innerHTML', '=', ( res.ErrorMessage + '<br>' + res.TryAgain + '<br><a href="' +  _proxy_jslib_handle(window, 'location', '', 0, 0) + '">' + res.Refresh + '</a>'));
        }
        wrapper.appendChild(errorMessage);
        
    }
    
    
    output.Init = function() {
        GetComments()

 };
    
    return output;
    
})();
 ;
_proxy_jslib_flush_write_buffers() ;