var ie=(window.ActiveXObject ? 1 : 0); 

function getEl(id)
{
    return document.getElementById(id);
}

function tOn(id)
{
    var elems = document.getElementsByTagName('*');
    for(var i = 0; i < elems.length; i++)
        if(elems[i].id == id)
            elems[i].style.display = '';
}

function tOff(id)
{
    var elems = document.getElementsByTagName('*');
    for(var i = 0; i < elems.length; i++)
        if(elems[i].id == id)
            elems[i].style.display = 'none';
}

function GetElementPostion(xElement)
{
    var selectedPosX = 0;
    var selectedPosY = 0;
    var theElement = xElement;

    while(theElement != null)
    {
        selectedPosX += theElement.offsetLeft;
        selectedPosY += theElement.offsetTop;
        theElement = theElement.offsetParent;
    }

    return selectedPosX + "," + selectedPosY
}

function getViewportSize()
{
    var viewportwidth;
    var viewportheight;

    // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

    if (typeof window.innerWidth != 'undefined')
    {
      viewportwidth = window.innerWidth,
      viewportheight = window.innerHeight
    }

    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

    else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0)
    {
       viewportwidth = document.documentElement.clientWidth,
       viewportheight = document.documentElement.clientHeight
    }

    // older versions of IE

    else
    {
       viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
       viewportheight = document.getElementsByTagName('body')[0].clientHeight
    }
    
    var viewport = new Array();
    viewport[0] = viewportwidth;
    viewport[1] = viewportheight;
    return viewport;
}

function xmlQuery(url,callback, el)
 {
	
	if(ie)
		{req=new ActiveXObject("Microsoft.XMLHTTP");}
	else
		{req=new XMLHttpRequest();}
		
	req.onreadystatechange = function (){
		if(req.readyState==4 && req.status==200)
			{callback(req,el);}
	};
	
	req.open("GET",url,true);
	
	if(ie)
		{req.send();}
	else
		{req.send(null);}
}


function showDefinition(evt, word)
{
	if (!evt)
	{  
		var evt = window.event;
		ie = false;
	}

	evt.cancelBubble = true;
	if (evt.stopPropagation) evt.stopPropagation();		
	
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
	//Netscape compliant
	scrOfY = window.pageYOffset;
	scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
	//DOM compliant
	scrOfY = document.body.scrollTop;
	scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	//IE6 standards compliant mode
	scrOfY = document.documentElement.scrollTop;
	scrOfX = document.documentElement.scrollLeft;
	}
	
	var helpDiv = document.getElementById("helpDiv");
	if (!helpDiv)
	{
		helpDiv = document.createElement('div');
		helpDiv.id = "helpDiv";
		document.body.appendChild(helpDiv);
	}

    // top position
	var winH;
	if (parseInt(navigator.appVersion)>3)
	{
	 if (ie)
	   winH = document.body.offsetHeight;
	 else
	   winH = window.innerHeight;
	}
	var top = evt.clientY + scrOfY + 5;
    
	helpDiv.style.top = top + "px";
	
	// left position
	var left = evt.clientX + scrOfX;
	if (left + 250 > 800)
		left -= 320;
	helpDiv.style.left = left + "px";
		
	// make sure the div will be visible
	helpDiv.style.display = "block";
		
	// now load the help content into it
	helpDiv.innerHTML = "Loading...";
	xmlQuery("Definition.ashx?Word=" + word, showDefinitionCallback, helpDiv);
    return false;
}

function showDefinitionCallback(req, el)
{
    el.innerHTML = req.responseText + "<div><br><a href='javascript:hideDefinition()'>Close</a></div>";
}

function hideDefinition()
{
    document.getElementById("helpDiv").style.display = "none";
}


