// <!--
// track position of the cursor
var cX = 0; 
var cY = 0;

function UpdateCursorPosition(e)
{
    cX = e.pageX;
    cY = e.pageY;
}
function UpdateCursorPositionDocAll(e)
{ 
    cX = event.clientX; 
    cY = event.clientY;
}
if(document.all) 
{ 
    document.onmousemove = UpdateCursorPositionDocAll;
}
else 
{ 
    document.onmousemove = UpdateCursorPosition;
}

function showDef(strTerm, intCategoryID)
{
    // get tooltip div
    var tooltip = document.getElementById('tooltip');
    
    // update link location
    var intDestX = cX;
    var intDestY = cY;
    
    // reposition tooltip
    tooltip.style.left = (intDestX + 10) + "px"; 
    tooltip.style.top  = (intDestY + 10) + "px";

    // show reset tooltip and show (hide the read more link)
    var tooltipTitle = document.getElementById('tooltip_title');
    tooltipTitle.innerHTML = 'Loading...';

    var tooltipContent = document.getElementById('tooltip_content');
    tooltipContent.innerHTML = 'Loading...';

    var tooltip = document.getElementById('tooltip');
    tooltip.className = "tooltipShow";

    var objMore = document.getElementById('tooltip_more');
    if (objMore)
    {
		objMore.className = 'readMoreHide';
	}

    // load content and show
    var strNewContent = getContent(strTerm, intCategoryID);
}

function hideDef()
{
    var tooltip = document.getElementById('tooltip');
    tooltip.className = "tooltipHide";
}

function getContent(strTerm, intCategoryID)
{
	// update the form if found
	GlossarySetTerm(strTerm, intCategoryID);

	// make request for definition
    var strURL = "/_system/packages/custom/knowledge_base/glossary/tooltip_details.php?strTerm=" + strTerm + "&intGlossaryCategoryID=" + intCategoryID;

    // Create the XML request
    xmlReq = null;
    if(window.XMLHttpRequest) xmlReq = new XMLHttpRequest();
    else if(window.ActiveXObject) xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
    if(xmlReq == null) return; // Failed to create the request
    
    // Anonymous function to handle changed request states
    xmlReq.onreadystatechange = function()
    {
	    var tooltipTitle = document.getElementById('tooltip_title');
        var tooltipContent = document.getElementById('tooltip_content');

        switch(xmlReq.readyState)
        {
            case 0: // Uninitialized
                break;
            case 1: // Loading
                break;
            case 2: // Loaded
                break;
            case 3: // Interactive
                break;
            case 4: 
                // Done!
                // check the server response
                if (xmlReq.responseXML == null)
                {
                    tooltipTitle.innerHTML = 'Error loading term';
                    tooltipContent.innerHTML = 'Error loading definition';
                	break;
                }
                
                // get glossary item returned
                var objGlossaryItem = xmlReq.responseXML.getElementsByTagName('glossary');
                var objTerm = objGlossaryItem.item(0).childNodes[0];
                var strTerm = getNodeContent(objTerm);
                if (!strTerm)
                {
                    strTerm = 'Error loading term';
                }
                // get the definition returned
                var objDefinition = objGlossaryItem.item(0).childNodes[1];
                var strDefinition = getNodeContent(objDefinition);
                if (!objDefinition)
                {
                    strDefinition = 'Error loading definition';
                }
                
                // set content
                tooltipContent.innerHTML = strDefinition;
			    // set tooltip title (if included)
			    if (tooltipTitle != null)
			    {
			    	tooltipTitle.innerHTML = strTerm;
			    }
			    
			    // turn on the read more link
			    var objMore = document.getElementById('tooltip_more');
			    if (objMore)
			    {
			    	objMore.className = 'readMoreShow';
			    }
                break;
            default:
                break;
        }
    }

    // Make the request
    xmlReq.open('GET', strURL, true);
    xmlReq.send(null);
}

function getNodeContent(objNode)
{
    strReturn = '';
    
    if (objNode)
    {   
        var intLength = objNode.childNodes.length;
        for (intPos = 0; intPos < intLength; intPos++)
        {
            var objCurValue = objNode.childNodes[intPos];
            //alert(objCurValue + ' => ' + objCurValue.nodeType)
            switch(objCurValue.nodeType)
            {
                case 1: // element
                    break;
                case 2: // unknown
                    break;
                case 3: // text
    	            strReturn += objCurValue.nodeValue;
                    break;
                default:
    	    }
    	}
    }
    
    return strReturn;
}

function GlossaryReadMore()
{
	// submit form
	document.GlossaryForm.submit();
}

function GlossarySetTerm(strTerm, intGlossaryCategoryID)
{
	document.GlossaryForm.strTerm.value = strTerm;
	document.GlossaryForm.intGlossaryCategoryID.value = intGlossaryCategoryID;
}
// -->