/**
 * @author S0vNarK0m
 */
TTopicController = function(acontainer, aeditor, atopic_id)
{
    var FContainer = acontainer;
    var FEditor = aeditor;
    var FPosts = ByClass(FContainer, 'single_post');
    var FTopicId = atopic_id;
    var FCurrentEdited = null;
    var FCurentAttController = null;
    var FCurrentForm = null;
	
    var editor = null;
    
    var getId = function(apost_id)
    {
        return ByTag(FPosts[apost_id], 'input')[0].value;
    };
    
    this.applyEditing = function()
    {
        if (FCurrentForm.Submited) 
            return (false);
			
        if (editor.textarea.value == "") 
        {
            alert("Сообщение не может быть пустым!");
            return (false);
        }
		
        if (!confirm('Отредактировать сообщение?')) 
            return (false);
			
        FCurrentForm.action = '/forum/edit_comment';
		FCurrentForm.Submited = true;
        FCurrentForm.submit();
    };
    
    this.cancelEditing = function()
    {
        FCurrentEdited.innerHTML = FCurrentEdited.savedHTML;
    };
    
    this.editPost = function(aid)
    {
        if (FCurrentEdited) 
            this.cancelEditing();
        
        FCurrentEdited = FPosts[aid];
        FPosts[aid].savedHTML = FCurrentEdited.innerHTML;
        
        var lcontent = ByClass(FCurrentEdited, 'fcontent', true)[0];
        
        editor = new TSNKEditor(FEditor, ByClass(FEditor, 'editorh', true)[0]);
        
        var text = editor.convertToText(lcontent);
        
        var cid = document.createElement('input');
		cid.type = 'hidden';
		cid.name = 'comment[id]';
		cid.value = getId(aid);

        FCurrentEdited.innerHTML = FEditor.innerHTML;
        
        editor = new TSNKEditor(FCurrentEdited, ByClass(FCurrentEdited, 'editorh', true)[0]);

        editor.textarea.value = text;
        FCurentAttController = new TAttachmentController(ByClass(FCurrentEdited, 'filebar', true)[0], 10);
        FCurentPostControls = ByClass(FCurrentEdited, 'submit_controls', true)[0];
		FCurrentForm = ByClass(FCurrentEdited, 'editor_form', true)[0];
		
        var postButton = ByTag(FCurentPostControls, 'input')[1];
        
        postButton.value = 'Сохранить изменения';
        postButton.onclick = this.applyEditing;
        
        var inp = document.createElement('input');
        inp.type = 'button';
        inp.value = 'Отменить изменения';
        inp.onclick = this.cancelEditing;
        
		FCurrentForm.appendChild(cid);

        FCurentPostControls.appendChild(inp);
    };
    
    this.deletePost = function(aid)
    {
        var data = [];
        data['id'] = getId(aid);
        data['id_theme'] = FTopicId;
        FPosts[aid].id = 'delete_me';
        xajax_forum_delete_post(data);
    };
    
    this.delAttachment = function(asender, aid, acommid)
    {
        if (confirm("Вы действительно хотите удалить вложение?")) 
        {
            asender.parentNode.parentNode.id = "delete_me";
            xajax_del_att_forum(aid, acommid);
        }
    };
    
}

