var GlossaryText_posx = 0;
var GlossaryText_posy = 0;

var GlossaryText_onlink = 0;
var GlossaryText_ondiv  = 0;
var GlossaryText_t;

var GlossaryText_content;
var GlossaryText_pWord = 0;
var GlossaryText_pLink = 1;
var GlossaryText_pBody = 2;

// GlossaryText replace function
function GlossaryText_replace(nr) {
	var GlossaryText_kw_re = '' + GlossaryText_data[nr][GlossaryText_pWord].replace(' ', '[\\s]+') + '';
//	eval('var p=/(' + GlossaryText_kw_re + ')/i;');
	eval('var p=/([\\s,.>()]+)(' + GlossaryText_kw_re + ')([\\s,.<()]+)/i;');
	GlossaryText_content = GlossaryText_content.replace(p, '$1<a class="GlossaryText-link" href="'+ GlossaryText_data[nr][GlossaryText_pLink] +'" target="_blank" onmouseover="GlossaryText_onover('+ nr +');" onmouseout="GlossaryText_onout('+ nr +');">$2</a>$3');
}

// GlossaryText generate
function GlossaryText_gener(nr) {

//alert('aaaa');

	var GlossaryText_word_count  = GlossaryText_data.length -1;
	GlossaryText_content = document.getElementById('GlossaryText_content').innerHTML;
	for (var i = 0; i <= GlossaryText_word_count; i++){
		GlossaryText_replace(i);
	}
  document.getElementById('GlossaryText_content').innerHTML = GlossaryText_content;

}

function GlossaryText_onover(idd)
{
    clearTimeout(GlossaryText_t);

    GlossaryText_timedCount(idd);
    GlossaryText_onlink = 1;

}
function GlossaryText_onout(idd)
{
    clearTimeout(GlossaryText_t);
    GlossaryText_timedCount(-1);
    GlossaryText_onlink = 0;

}

function GlossaryText_pw() {
    if (window.innerWidth != null) return window.innerWidth;
    if (document.body.clientWidth != null) return document.body.clientWidth; 
    return (null);
}    

function GlossaryText_show_div(idd) {

    el = document.getElementById('GlossaryText');
    if (el.style.visibility != 'hidden')
        el.style.visibility = 'hidden';

    el.innerHTML = GlossaryText_data[idd][GlossaryText_pBody];

    var wp = GlossaryText_pw(); 

    st = el.style.visibility;
    tv = 0;
           
     if (el.offsetWidth) ew = el.offsetWidth; 
     else if (el.clip.width) ew = el.clip.width; 
     
     if (st != "visible" && st != "show") { 
        tv = GlossaryText_posy + 12 + document.body.scrollTop + 10; // 208 - pridane koli pozicii objektu ....
        lv = GlossaryText_posx - (ew/4) + document.body.scrollLeft + 70; // 40 - pridane koli pozicii objektu ....

        if (lv < 2) lv = 2; 
        else if (lv + ew > wp) lv -= ew/2;
            
        lv += 'px';
        tv += 'px';
            
        el.style.left = lv; //lv; 
        el.style.top = tv; //tv;
        el.style.visibility = "visible";

    }
    
}

function GlossaryText_hide_div() {
    if (GlossaryText_onlink == 0 && GlossaryText_ondiv == 0) 
        document.getElementById('GlossaryText').style.visibility = 'hidden';
}


function GlossaryText_timedCount(idd) {

    if (idd == -1)
        GlossaryText_t = setTimeout("GlossaryText_hide_div()", 400);

    else
        GlossaryText_t = setTimeout("GlossaryText_show_div('"+idd+"')", 400);
}

function GlossaryText_getMousePos(e) {
    if (document.all) 
        e = event;
    GlossaryText_posx = e.clientX-280;
    GlossaryText_posy = e.clientY-210;
}

function GlossaryText_over_div(obj) {
    clearTimeout(GlossaryText_t);
    obj.className = 'GlossaryText-overtip';
    GlossaryText_ondiv = 1;
}

function out_div(obj) {
    GlossaryText_ondiv = 0;
    obj.className = 'GlossaryText-tip';
    GlossaryText_timedCount(-1);
}

document.onmousemove = GlossaryText_getMousePos;