﻿function insert(el,text) {
    if (el.setSelectionRange){                                  // All browsers
        var endsel = el.selectionStart + text.length;
        el.value = el.value.substring(0,el.selectionStart) + 
            text + 
            el.value.substring(el.selectionStart,el.selectionEnd) + 
            el.value.substring(el.selectionEnd,el.value.length);
        el.selectionStart = endsel;
        el.selectionEnd = endsel;
        el.focus();
        return;
    }
    if (document.selection && document.selection.createRange) { // IE
        el.focus();
        var range = document.selection.createRange();
        range.text = text + range.text;
    }
}

function wrap(el,open, close) {
    if (el.setSelectionRange) {                                 // All browswers
        var type = 0;
        var endsel;
        if (el.selectionStart == el.selectionEnd ) {            // Insert
            endsel = el.selectionStart + open.length;
            el.value = el.value.substring(0,el.selectionStart) + 
                open + 
                el.value.substring(el.selectionStart,el.value.length);
        }else{                                                  // Wrap
            endsel = el.selectionEnd + open.length + close.length;
            el.value = el.value.substring(0,el.selectionStart) + 
                open + 
                el.value.substring(el.selectionStart,el.selectionEnd) + 
                close +
                el.value.substring(el.selectionEnd,el.value.length);
            type=1;
        }
        el.selectionStart = endsel;
        el.selectionEnd = endsel;
        el.focus();
        return type;
    }
    if (document.selection && document.selection.createRange) { // IE
        el.focus();
        var range = document.selection.createRange();
        if (range.text.length>0){                               // Insert
            range.text = open + range.text + close;
            return 1;
        }else{                                                  // Wrap
            range.text = open;
            return 0;
        }
    }
}

function add_quote (t) {
    $.get("/forum/quote/"+t, 
        function(data){
            insert(document.post.txt,'[quote]'+data+'[/quote]');
    });
}

function onoff(e,cmd){
    var open = '['+cmd+']';
    var close= cmd;
    if (close.indexOf('=')>0){
        close=close.substring(0,close.indexOf('='));
    }
    close = '[/'+close+']';
    if ($(e).hasClass('act')){
        $(e).removeClass('act');
        insert (document.post.txt, close);
    }else{
        if ( wrap ( document.post.txt, open, close) == 0){
            $(e).addClass('act');
        }
    }
}

function close_tags(){
    $(".act").each(
        function (){
            onoff($(this),$(this).attr('alt'))
        }
    );
}

function smile(s){
    insert(document.post.txt,':'+s+':');
    $('#txt').focus();
}

$(window).load(
    function(){
        $('#right_thumbs').load(
            "/index/right/"+$('#cont').height());
        });


