$(document).ready(function() {
    $('#addCommentsForm').submit(function() {

        postman.drop(
            'addComment',
            {
                'commentUserID'         : $('#commentUserID', this).val(),
                'commentMagazineID'     : $('#commentMagazineID', this).val(),
                'commentParentID'       : $('#commentParentID', this).val(),
                'commentRequestUrl'     : $('#commentRequestUrl', this).val(),
                'commentBody'           : $('#commentBody', this).val()
            },
            function() {
                if (this.error) {
                    alert('Ошибка')
                } else if (this.commentData) {
                    var comments    = new OspComments();
                    comments.addCommentBlock(this.commentData);
                    comments.resetForm();
                }
            }
        );

        return false;
    });
});

function OspComments (userID, magazineID, requestUrl) {
    this.userID     = userID;
    this.magazineID = magazineID;
    this.requestUrl = requestUrl;
}

OspComments.prototype = {
    addComment : function() {
        $('#commentUserID').val(this.userID);
        $('#commentMagazineID').val(this.magazineID);
        $('#commentRequestUrl').val(this.requestUrl);
        $('#commentParentID').val(0);
        $('#commentBody').val('');
        $('#addCommentBlock').show();
    },
    reComments : function(parentCommentID, toName) {
        $('#commentUserID').val(this.userID);
        $('#commentMagazineID').val(this.magazineID);
        $('#commentRequestUrl').val(this.requestUrl);
        $('#commentParentID').val(parentCommentID);
        $('#commentBody').val('RE: ' + toName);
        $('#addCommentBlock').show();
    },
    resetForm : function() {
        $('#commentUserID').val(this.userID);
        $('#commentMagazineID').val(this.magazineID);
        $('#commentRequestUrl').val(this.requestUrl);
        $('#commentParentID').val(0);
        $('#commentBody').val('');
        $('#addCommentBlock').hide();
    },
    addCommentBlock : function(commentData) {
        var comment = '<div class="comment">' +
            '<dl>' +
                '<dt><img src="' + (commentData.avatar ? commentData.avatar : '/sites/osp/images/bgr/comment/avatar.jpg') + '" alt="" /></dt>' +
                '<dd>' +
                    '<h3>' + commentData.Login + '  <span>[' + commentData.created + ']</span></h3>' +
                    '<p>' + commentData.content + '</p>' +
                '</dd>' +
            '</dl>' +
        '</div>';
        if (commentData.parentID != 0) {
            $('#commentID_' + commentData.parentID).append(comment);
        } else {
            $('#commentsBlock').append(comment);
        }  
    },
    insertBB : function (textareaID, type) {
        var startTag, endTag;
        var textarea = document.getElementById(textareaID);
        switch(type) {
            case 'b':
                startTag = '[b]';
                endTag   = '[/b]';
                break;
            case 'u':
                startTag = '[u]';
                endTag   = '[/u]';
                break;
            case 'i':
                startTag = '[i]';
                endTag   = '[/i]';
                break;
            case 'center':
                startTag = '[center]';
                endTag   = '[/center]';
                break;
            case 'quote':
                startTag = '[quote]';
                endTag   = '[/quote]';
                break;
            case 's':
                startTag = '[s]';
                endTag   = '[/s]';
                break;
        }
        if (textarea.setSelectionRange) {
            var textBegin    = textarea.value.substring(0, textarea.selectionStart);
            var textSelected = textarea.value.substring(textarea.selectionStart, textarea.selectionEnd);
            var textEnd      = textarea.value.substring(textarea.selectionEnd, textarea.textLength);
            textarea.value   = textBegin + startTag + textSelected + endTag + textEnd;
            textarea.focus();
            textarea.setSelectionRange(textBegin.length + startTag.length, textBegin.length + endTag.length + textSelected.length);
        } else if (document.selection ) {
            textarea.focus();
            var textSelected      = document.selection.createRange();
            if (textSelected.text.length > 0) {
                textSelected.text = startTag + textSelected.text + endTag;
            } else {
                if (textarea.createTextRange && textarea.caretPos) {
                    var caretPos  = textarea.caretPos;
                    caretPos.text = caretPos.text + startTag + endTag;
                } else {
                    textarea.value += startTag + endTag;
                }
            }
            textarea.focus();
        } else {
            textarea.value = textarea.value + startTag + endTag;
            textarea.focus();
        }
    }
};




