//tokenedit.js előbbre helyezve, ez a token_edit_div létrehozása után
//var tokeneditdiv = document.getElementById('token_edit_div');
var active_token = undefined;
var ttt = undefined;
var gtoken = undefined;
var galign = undefined;
var editmode = false;

function edit_token(token,align){
    if(!editmode){
        clearTimeout(ttt);
        active_token = token;
        var x = align.offsetLeft - 12;
        var y = align.offsetTop;
        var tag = align;
        while(tag = tag.offsetParent){
            x += tag.offsetLeft;
            y += tag.offsetTop;
        }
        tokeneditdiv.style.left = x + "px";
        tokeneditdiv.style.top = y + "px";
        gtoken = token;
        galign = align;
        tokeneditdiv.innerHTML = "<img style=\"cursor: pointer;\" onclick=\"edit_this();\" src=\"" + domain + "data/pics/edit.png\" alt=\"Szerkesztés\" />";
        tokeneditdiv.style.display = "block";
    }
}

function hide_token_edit(){
    if(!editmode){
        clearTimeout(ttt);
        active_token = undefined;
        ttt = setTimeout("do_hide();",3000);
    }
}

function do_hide(){
    if(active_token == undefined && !editmode){
        tokeneditdiv.style.display = "none";
    }
}

function edit_this(){
    clearTimeout(ttt);
    editmode = true;
    if(gtoken.substr(0,14) == 'token_mcehelp_'){
        tokeneditdiv.innerHTML = "<textarea rows=\"25\" cols=\"80\" id=\"teta\">" + htmlspecialchars(galign.firstChild.value) + "</textarea>";
        tinyMCE.init({
            mode: "none",
            theme: "advanced",
            plugins: "save,paste",
            theme_advanced_toolbar_location: "top",
            theme_advanced_toolbar_align: "left",
            theme_advanced_buttons1: "save,cancel,bold,italic,forecolor,link,unlink,bullist,numlist,removeformat,code,pastetext",
            theme_advanced_buttons2: "",
            save_oncancelcallback: "token_cancel_edit",
            save_onsavecallback: "token_save",
            valid_elements: "a[href|target],br,strong/b,em/i,span[style],p,img[src|alt|title],ul,li"
        });
        tinyMCE.execCommand('mceAddControl',false,'teta');
        
        if ( !document.getElementById ( 'overlay' ) ) {    
            $('<div id="overlay"/>').css({
                position: 'fixed',
                top: 0,
                left: 0,
                width: '100%',
                height: $(window).height() + 'px',
                background: 'black url(img/loading.gif) no-repeat center',
                opacity: 0.7
            }).hide().appendTo('body');
        }
        $('#overlay').show();        
    }else{
        tokeneditdiv.innerHTML = "<input value=\"" + htmlspecialchars(galign.firstChild.value) + "\" onkeyup=\"process_edit(event.keyCode);\" onblur=\"process_edit(27);\" />";
        var inp = tokeneditdiv.getElementsByTagName('INPUT')[0];
        inp.select();
        inp.focus();
    }
}

function token_cancel_edit(){
    if(document.getElementById('teta') != undefined) tinyMCE.execCommand('mceRemoveControl',false,'teta');
    editmode = false;
    tokeneditdiv.style.display = "none";
    
    if ( document.getElementById ( 'overlay' ) ) $('#overlay').hide ();
}

function token_save(v){
        var mce = (document.getElementById('teta') != undefined);
        var v;
        if(mce){
            v = tinyMCE.get('teta').getContent();
        }else{
            v = tokeneditdiv.firstChild.value;
        }
        if(v != '' && set_token(gtoken,v)){
                galign.firstChild.value = v;
                galign.firstChild.nextSibling.innerHTML = v;
        }
        token_cancel_edit();
        
}

function escapequot(s){
    var o = '';
    var c = undefined;
    for(i = 0; i < s.length; ++i){
        c = s[i];
        if(c == '"') o += '&quot;';
        else o += c;
    }
    return o;
}

function htmlspecialchars(s){
    var o = '';
    var c = undefined;
    for(i = 0; i < s.length; ++i){
        c = s.charAt(i);
        if(c == '<') o += '&lt;';
        else if(c == '>') o += '&gt;';
        else if(c == '&') o += '&amp;';
        else if(c == '"') o += '&quot;';
        else if(c == '\'') o += '&#039;';
        else o += c;
    }
    return o;
}

var html = htmlspecialchars;

function process_edit(c){
    if(c == 27){
        token_cancel_edit();
    }else if(c == 13){
        token_save();
    }
}

function set_token(token,value){
    //ez állítja be a result értékét, és esetleg feldob egy alertet
    eval(http_request(domain+"token_save.php",[],[['token',token],['value',value]]));
    return result;
}

function msg(message, parameters, smart){
    if(smart === undefined) smart = true;
    
    if(message == '') return '[EMPTY_TOKEN]';

    if(message.substr(0,6)=='admin_' || message.substr(0,9)=='js_admin_'){ //admin token
        var origretstr = msga[admin_lang][message];
    }else{
        var origretstr = msga[lang][message];
    }
    
    var t = html(message);
    
    if(origretstr !== undefined){
        var retstr = origretstr;
        if(parameters !== undefined){
            for(var i = 0; i < parameters.length; i++){
                retstr = retstr.replace('%'+(i+1),parameters[i]);
            }
        }
    }else{
        if(user_level >= 3){
            http_request(domain+"ajax_js_tokenfix.php",[['token',message]]);
        }
        
        var retstr = '[FIXME: TRANSLATE] &lt;'+t+'&gt;';
        origretstr = message;
    }
    
    if(smart){
        if(message.substr(0,8) == 'mcehelp_'){
            var span = 'div';
        }else{
            var span = 'span';
        }
        retstr = '<'+span+' title="TOKEN: '+t+'">'+retstr+'</'+span+'>';
    }
    
    return retstr;
}

