var timHide;
var mouseX;
var mouseY;

var req;

function Initialize()
{
        req = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            req = new XMLHttpRequest();
            if (req.overrideMimeType) {
                req.overrideMimeType('text/xml');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                req = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!req) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
}


function ShowLink(linkstr, categoryID)
{
	Initialize();
	var url="../Home/GetRequest.aspx?Command=Link&Parameter=" + linkstr + "&CategoryID=" + categoryID;

	if(req)
	{
		req.onreadystatechange = Process;
		req.open('GET', url, true);
		req.send(null);
	}
}

function Process()
{
    if (req.readyState == 4)
    {
        //if (req.status == 200)
        {
            if(req.responseText!="")
            {
                GoLink();
            }
        }
    }
}

function GoLink()
{
	var nodes;
	var menustr = "";
	if (window.XMLHttpRequest)
	{
		//Mozilla
		var xmldoc = req.responseXML;
		var root_node = xmldoc.getElementsByTagName('url').item(0);
		url = root_node.firstChild.data;	
			if (url.indexOf("javascript") >= 0)
				eval(url);
			else
			{
				//window.open (url, "_self", "", true);
				window.location.href = url;
			}
			return;
	}
	else
	{
		//IE
		nodes = req.responseXML.selectNodes("/links/link");
	
		if (nodes.length == 0)
		{
			return;
		}
		if (nodes.length == 1)
		{
			var node = nodes(0);
			var url = node.selectSingleNode("./url").text;
			if (url.indexOf("javascript") >= 0)
				eval(url);
			else
				window.open (url, "_self", "", true);
			return;
		}
		for (var i=0; i<nodes.length; i++)
		{
			var node = nodes(i);
			var url, title;
			url = node.selectSingleNode("./url").text;
			title = node.selectSingleNode("./title").text
			menustr += title + "##" + url + "$$";
		}
	}
	ShowLinkMenu(menustr);
}

function nothing()
{

}

function ShowLinkMenu(menustr)
{
	var menuItems = menustr.split('$$');
	var menu = "";
	menu += startMenu();
	for (i=0; i<menuItems.length-1; i++)
	{
		menu += addMenuRow(menuItems[i]);
	}
	menu += endMenu();
	
	var panelLink = document.getElementById("panelLink")
	document.getElementById("lblLink").innerHTML = menu;
	showMenu();
	PanelLink_Show(true);
	if(window.event)
    {
        panelLink.style.left = (window.event.clientX - 200) + "px";
        panelLink.style.top = (window.event.clientY + document.body.scrollTop) + "px";
    }
    
    //var fp = FindPos(panelLink);
    //panelLink.style.left = (fp.left - 200) + "px";
    //panelLink.style.top = (fp.top + document.body.scrollTop) + "px";

    PanelLink_SetWindow();
    startHideMenu(3000);
}

function addMenuRow(menuItemStr)
{
	var menuItem = menuItemStr.split('##');
	title = menuItem[0];
	url = menuItem[1];
	var menuScript = '<a class="LinkMenuItem" href="' + url + '">' + title + '</a><br>';
	return menuScript;
}

function startMenu()
{
	return "<div class='LinkMenu' onmouseout='startHideMenu(1500);' onmouseover='stopHideMenu();'>";
}

function endMenu()
{
	return "</div>";
}

function startHideMenu(sec)
{
	//timHide = window.setTimeout(hideMenu, sec);
}

function stopHideMenu()
{
	window.clearTimeout(timHide);
}

function hideMenu()
{
	var linkMenu = window.document.all("linkMenu");
	linkMenu.style.display = "none";
	PanelLink_Show(false);
}

function showMenu()
{
	var linkMenu = window.document.all("linkMenu");
	linkMenu.style.display = "block";
}

function setBodyMouseMoveHandler()
{
	var body = window.document.getElementsByTagName("body");
	body.onmousemove = getMousePosition();
}

function getMousePosition()
{
	//mouseX = event.clientX;
	//mouseY = event.clientY;
}

function writeMenu()
{
	var menudiv;
	menudiv = "<div id='linkMenu' style='position:absolute;' ></div>";
	window.document.write(menudiv);
}

function PanelLink_Show(isShow)
{
    if(isShow)
    {
        document.getElementById('panelLink').style.display = 'block';
    }
    else
    {
        document.getElementById('panelLink').style.display = 'none';
    }
}

function PanelLink_SetWindow()
{
    var left = (document.body.offsetWidth - 287)/2; //+ document.body.scrollLeft;
    var top = (document.body.offsetHeight - 167)/2 + document.body.scrollTop;
    document.getElementById("panelLink").style.left = left + "px";
    document.getElementById("panelLink").style.top = top + "px";
}

function FindPos(obj)
{
    var curleft = 0;
    var curtop = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
	        curleft += obj.offsetLeft;
	        curtop += obj.offsetTop;
	        obj = obj.offsetParent;
        }
    }
    else if (obj.x)
    {
        curleft += obj.x;
        curtop += obj.y;
    }
    return {left: curleft,top: curleft};
}    

writeMenu();
