function show_entry(src_lang, dst_lang, dict_id, headword_str, headword_id, entry_id, entry, dest_module, dest_element){
    var result_mode = 1;
    if (dest_module.m_mode != undefined)
        result_mode = dest_module.m_mode;
    log_info(2, "show_entry", src_lang + " " + dst_lang + dict_id + headword_str + headword_id);

    //convert entry into html

    entry = entry.replace(/&lt;/g,"<");
    entry = entry.replace(/&gt;/g,">");
    entry = entry.replace(/&amp;/g,"&");
    entry = entry.replace(/&quot;/g,"\"");
    
    //server gives now intname instead of dict_id
    var dict_intname = dict_id;//dict_man.get_dict_by_id(dict_id, "intname");
    dict_id = dict_man.get_index_by_intname(dict_id);
    if (dict_intname == "posta"){
        //hack!!!
        entry = entry.replace(/\\u([0-9A-Za-z]+) /g,"&#$1;");
        entry = entry.replace(/src="flags_path\//g,"src=\""+flags_path+"/");
    }else if (dict_intname == "eujog"){
        entry = entry.replace(/src="vex:ENG"/g,"src=\""+flags_path+"/"+get_flag('en')+"\"");
        entry = entry.replace(/src="vex:HNG"/g,"src=\""+flags_path+"/"+get_flag('hu')+"\"");
        entry = entry.replace(/src="vex:FRN"/g,"src=\""+flags_path+"/"+get_flag('fr')+"\"");
        entry = entry.replace(/src="vex:GER"/g,"src=\""+flags_path+"/"+get_flag('de')+"\"");
    }
    
    //fixme
    entry = entry.replace(/<img *src="vex:_XX" height="80%"\/>/i,""); // !!!
    entry = entry.replace(/<span(.+?)(?:font-)?color="(.+?)".*?>/ig,"<span $1 style=\"color:$2\">"); // !!!
    entry = entry.replace(/<span(.+?)font-name="(.+?)".*?>/ig,"<span $1 style=\"font-family:$2\">"); // !!!
    
    //<span font-bold="true">...</span> => <b>
    entry = entry.replace(/<span font-bold="true">([^<]*)<\/span>/ig,"<b>$1</b>"); // !!!
    
    
     
    entry = entry.replace(/\\u([0-9A-Za-z]+)/g,"&#$1;");
    
    //highlight :)
/*    
    headword_str = headword_str.trim();
    headword_str = headword_str.replace(/\//g,"\\/");
    //entry = entry.replace(eval("/("+headword_str+")/g"),"<span class='highlight'>$1</span>");
    entry = entry.replace(eval('/('+headword_str+')([ ,<\.;\t])/g'),"<span class='highlight'>$1</span>$2");
    var re = new RegExp('(<[^>]*)<span class=\'highlight\'>([^<>]*)<\/span>', 'g');
    entry = entry.replace(re, "$1$2");
    //this does not work...
    //entry = entry.replace('/(<[^>]*)<span class=\'highlight\'>([^<>]*)<\/span>/g',"$1$2");
*/    
    /*
    entry = entry.replace(/<tr>([^<]+)<\/tr>/g," $1 ");
    entry = entry.replace(/<lblBr>([^<]+)<\/lblBr>/g," <i>$1</i>");
    entry = entry.replace(/<pron>([^<]+)<\/pron>/g," [$1]");
    entry = entry.replace(/<FONT FACE=\"[a-zA-Z ]+\">([^<]+)<\/FONT>/g,"$1");
    entry = entry.replace(/<FONT SIZE=\"11\">([^<]+)<\/FONT>/g,"$1");
    */
    //entry = entry.replace(/<synline>/g,"<br>");
    
    
    var original_headword_str = headword_str;
    headword_str = headword_str.replace(/'/g,"\\'");
    original_headword_str = original_headword_str.replace(/~/g," <- "); //&#x2190;
    //headword_str = "Adam\\'s pie";
    
    var flag_text = '';
    if (src_lang != '' && dst_lang != '') flag_text = show_flags_of_dictionary(src_lang, dst_lang, dict_id); 
    var dict_longname = dict_man.get_longname_by_id(dict_id);
    var dict_shortname = dict_man.get_shortname_by_id(dict_id);
    //var flag_n_dict_name = flag_text + dict_shortname;
    var dest_module_name = dest_module.obj.getModuleName();
    /*if (dest_module_name == "expressions_module"){
        //expression module must have the same style as context:
        return new Array(show_context(original_headword_str, entry_id, 0, dest_element, false), -1);
    }*/

    var div_id = entry_id+"_"+headword_id + Math.floor(Math.random()*100000);
    
    //var row = "<div id=\""+div_id+"\"  ";
    var row = document.createElement("DIV");
    row.setAttribute( "id", div_id );
/*
    if (ie){
        //row += " onmouseover='setstyle2(\"over\", this)' onmouseout='setstyle2(\"out\",this)' ";
        row.onmouseover =  function() { setstyle2("over", this); }
        row.onmouseout = function() { setstyle2("out", this) ;}
    }else
        //row += "class=\"list_item\"";
        row.setAttribute( "class", "list_item");
*/
/*   
    if (false && dest_module_name == "expressions_module"){
            //row += " onclick=\"start_query('"+headword_str+"',"+entry_id+")\">";
            row.onclick = function() { start_query(headword_str,entry_id); }
    }else{

        var func_str = "show_related('"+src_lang+"','"+dst_lang+"','"+dict_intname+"','"+headword_str+"',"+headword_id+","+entry_id+");";
        func_str += "highlight_entry('"+div_id+"');";
        func_str  += "show_related_info('"+dict_shortname.replace(/'/g,"\\'")+"', '"+headword_str+"', document.getElementById('entry_"+div_id+"').innerHTML);";
        row.onclick = function() { eval(func_str) };
    }
*/    
    // if display is not with tree:    row += flag_text;
    
    var entry_state = 'display:none';
    var headword_state = 'display:block';
    if (result_mode == 0) {
        entry_state = 'display:block';
        headword_state = 'display:none';
    }

/*    var headword_div = "<div id='headword_"+div_id+"' style='"+headword_state+"'>"+original_headword_str+"</div>";  //without escape characters
    var entry_div = "<div id='entry_"+div_id+"' style='"+entry_state+"'>"+entry+"</div>"; // <br>
    row += headword_div;
    row += entry_div;
*/

//new style
	dict_shortname = dict_man.get_domain_by_intname(dict_intname);
    var helpnode = document.createElement("div");
    //helpnode.style.display="inline-block";
    //helpnode.innerHTML = "<table><tr><td>"+flag_text + "</td><td>" + "<i>" + dict_shortname + "</i> " + "</td><td>" + entry + "</td></tr></table>";
    
    entry = entry.replace(/^<div(.+?)font-name="(.+?)"/i,"<div style=\"display:inline;font-family:$2\""); 
/*    helpnode.innerHTML = flag_text + dict_man.get_logo_by_intname(dict_intname);
    if (dict_shortname != "")
        helpnode.innerHTML += "<i>(" + dict_shortname + ")</i>";
    helpnode.innerHTML += "  " + entry;

    var entry_div = document.createElement("DIV");
    entry_div.appendChild(helpnode);
    row.appendChild(entry_div);
    dest_element.appendChild(row);
    return new Array(0, -1);
*/    
    //table style
    if (dest_element.childNodes.length == 0){
        //create table
        var table = document.createElement("table");
        //table1.className = "top table_window";
        dest_element.appendChild(table);
    } 
    var table = dest_element.childNodes[0];
        
        
    var row = document.createElement("tr");
    var cell1 = document.createElement("td");
    //cell1.className = boxclass + "box_nw";
    if (flag_text != "")
        cell1.style.width = "74px";
    cell1.style.verticalAlign = "text-top";
    var cell2 = document.createElement("td");
    //cell2.style.width = "40px";
    var cell3 = document.createElement("td");
    //cell2.className = boxclass + "box_n";
    
    if (dict_intname != "")
        cell1.innerHTML =  flag_text + dict_man.get_logo_by_intname(dict_intname);
    if (dict_shortname != "")
        cell3.innerHTML = "<i> (" + dict_shortname + ") </i> ";
    cell3.innerHTML += entry;

    if (dict_intname != ""){
        row.appendChild(cell1);
        //row.appendChild(cell2);
    }else{
        cell3.colSpan="2";
    }
    row.appendChild(cell3);
    var tbody = document.createElement("tbody"); //ie... thanks: http://www.codingforums.com/showthread.php?t=17321
    tbody.appendChild(row);
    table.appendChild(tbody);
    
    return new Array(0, -1);

//older style
    var headword_div = document.createElement("DIV");
    headword_div.setAttribute("id", "headword_"+div_id);
    //headword_div.setAttribute("style", headword_state);
    setvisible(headword_div, result_mode != 0);
    var textnode = document.createTextNode(original_headword_str);
    headword_div.appendChild(textnode);
    var entry_div = document.createElement("DIV");
    entry_div.setAttribute("id", "entry_"+div_id);
    //entry_div.setAttribute("style", entry_state);
    setvisible(entry_div, result_mode == 0);
    var helpnode = document.createElement("div");
    helpnode.innerHTML = entry;
    entry_div.appendChild(helpnode);
    row.appendChild(headword_div);
    
    /*if (dest_module_name == "expressions_module"){
        dest_element.appendChild(row);
        return new Array(div_id, -1);
    }*/

    row.appendChild(entry_div);
    
    //dest_element.appendChild(row);
    
    dest_module.push_entry_id("entry_"+div_id);
    
//    row += "</div>";
    //log_info(4, "entry", row);
    
    //not tree
    //dest_element.innerHTML += row;

    //tree
    //insert_into_tree(dict_id, flag_text, row); //add new parameter: headword_str
    //it can be entries module only
    var pos_in_viewer = dest_module.viewer.insert_item(dict_id, flag_text, dict_longname, dict_shortname, row); 
    return new Array(div_id, pos_in_viewer);
}


function show_message(message, dest_obj){
    //dest_obj.innerHTML +=  message;
    var text = document.createTextNode(message);
    dest_obj.appendChild(text);
}

function show_context(headword_str, entry_id, selected, dest_obj, scroll_middle){
    
    var original_headword_str = headword_str;
    headword_str = headword_str.replace(/'/g,"\\'");

    //fixme ~ replace: ennek a helye a szerverben lesz
    //original_headword_str = original_headword_str.replace(/([^~]+)~.*/g,"$1");
    //headword_str = headword_str.replace(/([^~]+)~.*/g,"$1");

    var id = entry_id+"_"+ Math.floor(Math.random()*100000);
    var html = "<div id=\""+id+"\" ";
    if (ie){
        //html += " onmouseover='setstyle(\"over\", \""+id+"\")' onmouseout='setstyle(\"out\",\""+id+"\")' ";
        html += " onmouseover='setstyle2(\"over\", this)' onmouseout='setstyle2(\"out\",this)' ";
    }
    
    if (selected)
        html += "class=\"selected_item\"";
    else
        html += "class=\"list_item\"";
    html += ">";
    html += "<a href=\"javascript:start_query('"+headword_str+"', "+entry_id+")\">";

	//html += get_image("placeholder.gif", ""); //ie error: if this line is missing, only the first context line is shown... :(
    if (selected)
        html += '<b>'+original_headword_str+'</b></a>';
    else
        html += original_headword_str+'</a>';
    html += '</div>'; 

    dest_obj.innerHTML += html;
    if (scroll_middle && dest_obj.offsetHeight < dest_obj.scrollHeight){
        var s = Math.round((dest_obj.scrollHeight - dest_obj.offsetHeight)/2);
        dest_obj.scrollTop = s ;
    }
    return id;
}


function show_dictionary(dict_id, status, src_langs, dst_langs, logo, dict_name, dict_details, n, max, show_ordercell, dest_obj){
    var flag_text = show_flags_of_dictionary_array(src_langs, dst_langs); 
    var html = "<tr><td valign='top'>"; //<table class='settingtable'>
    html += "<input type='checkbox' id='dict_id_"+dict_id+"' value='open' ";
    if (status == "open")
        html += "checked";
    html += " onClick='dictionaries_module.set_state("+n+", this.checked)'";
    html += ">";
    html += "</td><td valign='left'>";
    if (font_size != "")
        html += "<font style='font-size:"+font_size+"'>";
    html += flag_text + logo + " " + dict_name;
    html += "<br><i>" + dict_details + "</i>";
    if (font_size != "")
        html += "</font>";
    html += "</td><td>";

    if (n != 0){
        html += '<a href="javascript: dictionaries_module.orderItem(\''+dict_id+'\',\'orderup\')" title="'+get_text('Move Up')+'">';
        html += '<img src="'+images_path+'/uparrow.png"  border="0" alt="'+get_text('Move Up')+'"></a>'; //width="12" height="12"
    }
    if (n != max){
        html += '<a href="javascript: dictionaries_module.orderItem(\''+dict_id+'\',\'orderdown\')" title="'+get_text('Move Down')+'">';
        html += '<img src="'+images_path+'/downarrow.png" border="0" alt="'+get_text('Move Down')+'"></a>';//width="12" height="12"
    }
    var n_str = n + "";
    html += "</td><td id='ordercell_td_"+n_str+"' "; 
    if (!show_ordercell)
        html += "style='visibility:hidden'"; 
    html += ">"; 
    html +=  "<input type='text' id='ordercell_"+n_str+"' value='"+n_str+"' size='2'>"; //fixme: +n+ == 400milisec overhead
    html += "</td>";

    html += "</tr>"; //</table>
    return html;
    
/*

    //dom version
    var table = document.createElement("table");
    table.className = "settingtable";
    table.setAttribute("id", "table_"+dict_id); //ez alapjan lehet cserelni a sorokat
    var row = document.createElement("tr");
    var cell1 = document.createElement("td");
    var checkbox = document.createElement("input");
    checkbox.type="checkbox";
    checkbox.id = "dict_id_"+dict_id;
    cell1.appendChild(checkbox);
    var cell2 = document.createElement("td");
    var text = document.createTextNode(dict_name + "<br><i>" + dict_details + "</i>");
    cell2.appendChild(text);
    var cell3 = document.createElement("td");
    
    if (n != 0){
        var imageup = document.createElement("img");
        imageup.width = "12";
        imageup.height = "12";
        imageup.border = "0";
        imageup.alt = get_text('Move Up');
        imageup.src = "images/uparrow.png";
        var linkup = document.createElement("a");
        linkup.href = "javascript: dictionaries_module.orderItem('"+dict_id+"','orderup')";
        linkup.title = get_text('Move Up');
        linkup.appendChild(imageup);
        cell3.appendChild(linkup);
    }
    if (n != max){
        var imagedown = document.createElement("img");
        imagedown.width = "12";
        imagedown.height = "12";
        imagedown.border = "0";
        imagedown.alt = get_text('Move Up');
        imagedown.src = "images/downarrow.png";
        imagedown.onclick = "dictionaries_module.orderItem(\''+dict_id+'\',\'orderdown\')";
        cell3.appendChild(imagedown);
    }
    
    row.appendChild(cell1);
    row.appendChild(cell2);
    row.appendChild(cell3);
    var tbody = document.createElement("tbody"); //ie... http://www.codingforums.com/showthread.php?t=17321
    tbody.appendChild(row);
    table.appendChild(tbody);
    dest_obj.appendChild(table);
    //return table;
*/
}
