﻿function KeywordInfo(keyword, htmlcode, url)
{
    this.keyword = keyword;
    this.htmlcode = htmlcode;
    this.url = url;
}

var mouseFlag = 0;
var isover = false;

function setMouseFlag()
{
    //var divflag = document.getElementById("divflag");
    //divflag.innerHTML = isover + "," + mouseFlag;

    if(isover)
    {
        return;
    }

    var divCode = document.getElementById("divCode");

    if(mouseFlag >= 100)
    { divCode.style.display = "none"; }
    else
    { 
        mouseFlag += 20;
        //divCode.style.opacity = (100 - mouseFlag) / 100;
    }
}

function LinkInfo(divCode, keyLink)
{
    //var title = keyLink.title;
    //keyLink.title = "";
    var keyIndex = parseInt(keyLink.name);
    var htmlcode = arrKeyword[keyIndex].htmlcode;
        
    keyLink.onmouseover = function() {
        divCode.innerHTML = htmlcode;
        divCode.style.left = getObjLeft(this) + "px";
        divCode.style.top = getObjTop(this) + this.offsetHeight + "px";
        divCode.style.display = "";
        //divCode.style.opacity = 1;
        mouseFlag = 0;
        isover = true;
    }
    
    keyLink.onmouseout = function() {
        isover = false;
    }
}

function replace(node)
{
    var reg;

    //alert(node.childNodes.length);
    if(node.nodeType == 3)
    {
        for(var i=0;i<arrKeyword.length;i++)
        {
            reg = new RegExp(arrKeyword[i].keyword, "ig");
            node.nodeValue = node.nodeValue.replace(reg, "[[" + i + "," + arrKeyword[i].url + "," + arrKeyword[i].keyword + "]]");
        }
    }
    else
    {
        for(var j=0;j<node.childNodes.length;j++)
        {
            replace(node.childNodes[j]);
        }
    }
}

function replaceKeyword(arrKeyword)
{
    var divContent = document.getElementById("divContent");
     
    replace(divContent);
    divContent.innerHTML = divContent.innerHTML.replace(/\[\[(.[^\]]*),(.[^\]]*),(.[^\]]*)\]\]/ig, '<a name="$1" id="keylink" style="color:blue; border-bottom:1px dashed blue; text-decoration:none; font-size:14px; white-space:nowrap;" target="_blank" href="$2">$3</a>');

    setEvent();
    setInterval("setMouseFlag()", 200);
}

function setEvent()
{
    var divCode = getElem("divCode", "div", document.body);
    divCode.style.padding = "10px";
    divCode.style.position = "absolute";
    divCode.style.display = "none";
    divCode.onmouseover = function() { 
        this.style.display = "";
        //this.style.opacity = 1;
        mouseFlag = 0;
        isover = true;
    }
    divCode.onmouseout = function() {
        isover = false;
    }
    
    var divContent = document.getElementById("divContent");
    var keyLink = divContent.getElementsByTagName("a");
    
    for(var i=0;i<keyLink.length;i++)
    {
        if(keyLink[i].id == "keylink")
        {
            new LinkInfo(divCode, keyLink[i]);
        }
    }
}