var oTranslator = new CTranslator();
var oXmlHttpRequest = new XmlHttpRequest();
var sWord = "";
var tempX = 0;
var tempY = 0;

function getMouseXY(e)
{
	if ( !e )
		var e = window.event;
	if (e.pageX || e.pageY)
	{
		tempX = e.pageX;
		tempY = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		tempX = e.clientX + document.body.scrollLeft;
		tempY = e.clientY + document.body.scrollTop;
	}
}

function translate(word, e)
{
	//need to know where the mouse is:
	getMouseXY(e);
	sWord = word;
	oTranslator.Translate();
}
function hideTranslation()
{
	var oLayer = MM_findObj('TranslationLayer');
	var oTranslation = MM_findObj('Translation');
	oLayer.className = "Hidden";
	oTranslation.iinerHTML = "";
}

//Translator class:....................................
function CTranslator()
{
	this.Translate = CTranslator_Translate;
	this.XmlHttpChange = CTranslator_XmlHttpChange;
}

function CTranslator_Translate( word )
{
	//get the translations:
	oXmlHttpRequest.GetHtmlRequest();
	oXmlHttpRequest.xmlHttp.onreadystatechange = this.XmlHttpChange;
	oXmlHttpRequest.SendRequest( gsServerAddress + "XmlHttpRequest/Translate.aspx?word=" + escape( sWord ) + "&u=" + escape( gsUserLoginId ) );
}

function CTranslator_XmlHttpChange()
{
	var oLayer = MM_findObj('TranslationLayer');
	var oTranslation = MM_findObj('Translation');
	var oTranslationWord = MM_findObj('TranslationWord');
	
	if ( oXmlHttpRequest.xmlHttp.readyState == 1 )
	{
		//need to creat a new div:
		//getMouseXY();
		oLayer.style.left = tempX + 10;
		oLayer.style.top = tempY + 10;
		oTranslationWord.innerHTML = sWord;
		oTranslation.innerHTML = "<i>retrieving translation</i>";
		oLayer.className = "TranslationPanel";
	}
	else if ( oXmlHttpRequest.xmlHttp.readyState == 4 )
	{
		oTranslation.innerHTML = "";
		
		//get the xml:
		var xml = oXmlHttpRequest.xmlHttp.responseXML.documentElement;
		
		if ( xml != null )
		{
			var mainElement = xml.getElementsByTagName('Table1')[0];
			
			//go through the children of the main Element
			var finalText = "";
			
			var language = xml.getElementsByTagName('Language')[0].childNodes[0].nodeValue;
			var translation = xml.getElementsByTagName('Translation')[0].childNodes[0].nodeValue;
			var definition = xml.getElementsByTagName('Definition')[0].childNodes[0].nodeValue;
			finalText += "<strong>" + translation + "</strong><br>" +
				definition;
			
			oTranslation.innerHTML = finalText;
		}
		else
		{
			oTranslation.innerHTML = "No translation";
		}
		oXmlHttpRequest.xmlHttp = null;
	}
}