//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 glang = undefined;
var editmode = false;

function edit_token(token,align,lang){
    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;
        glang = lang;
        tokeneditdiv.innerHTML = "<img style=\"cursor: pointer;\" onclick=\"edit_this();\" src=\"" + domain + "data/pics/edit.png\" alt=\"Szerkesztés\" />";
        tokeneditdiv.style.display = "block";
    }
}

function token_delete(token,align,lang){
    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;
        glang = lang;
        tokeneditdiv.innerHTML = "<img style=\"cursor: pointer;\" onclick=\"delete_token('"+token+"');\" src=\"" + domain + "data/pics/delete.png\" alt=\"Törlé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",
            language : LANG,
            theme_advanced_toolbar_location: "top",
            theme_advanced_toolbar_align: "left",
            theme_advanced_buttons1: "save,cancel,bold,italic,forecolor,link,removeformat",
            theme_advanced_buttons2: "",
            save_oncancelcallback: "token_cancel_edit",
            save_onsavecallback: "token_save",
            valid_elements: "a[href],br,strong/b,em/i,span[style],p"
        });
        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 != '' && (/\S/.test(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;
}

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],['lang',glang]]));
    return result;
}

function token_for_admin(message,t){
    if(message.substr(0,8) == 'mcehelp_'){
        var span = 'div';
    }else{
        var span = 'span';
    }

    if(token_editor_mode) var tclass = 'token_indicator ';

    var ret = "";
    ret += "<"+span;

    if(tclass!=undefined) ret+=' class="'+tclass+'"';
    ret+=" title=\"TOKEN: "+t+"\" onmouseover=\"edit_token('token_"+t+"',this,'"+glang+"');\" onmouseout=\"hide_token_edit();\"><input type=\"hidden\" value=\"" + message + "\" /><"+span+">"+message+"</"+span+"></"+span+">";
    return ret;
}

function msg(message,parameters,smart){
    if(smart==undefined) smart = true;

    if(message.substr(0,9)=='admin_js_'){ //admin token
        var m = msga[admin_lang][message];
    }else{
        var m = msga[lang][message];
    }

    var ret='';

    if(m!=undefined){
        if(parameters!=undefined && parameters.length>0){
            for(var i=0; i<parameters.length;i++){
                m=m.replace('%'+(i+1),parameters[i]);
            }
        }

        if(smart && adminmode && user_level>=4){
            return token_for_admin(m,message);
        }else{
            return m;
        }
    }else{
        return fix_msg(message,parameters,smart);
    }
}

function fix_msg(message,parameters,smart){
    if(smart==undefined) smart = true;

    if(user_level>=3)
    {
        http_request(domain+"ajax_js_tokenfix.php",[['token',message]]);
    }

    if(smart && adminmode && user_level>=4){
        return token_for_admin('[FIXME: TRANSLATE] &lt;'+message+'&gt;',message);
    }else{
        return '[FIXME: TRANSLATE] &lt;'+message+'&gt;';
    }

}

