var positionaaaaaaaabbbcbccc = new Array();
var dictStrings=new Array();
var showableDictStrings=new Array();
var visible=0;
var regi = document.onmousemove;
document.onmousemove=getMouseXY;
if (!document.all) {
	document.captureEvents(Event.MOUSEMOVE);
}

function getUrlPrefix(url){
	if(url.indexOf("?")!=-1){
		return url.substring(0,url.indexOf("?"));
	}else{
		return url;
	}
}

var glossaryUrl=getUrlPrefix(document.URL);

function switchGlossary(){
	req=portal.Services.AjaxService.createRequest(glossaryUrl+'?ajaxrequest=GlossaryAction&changePref=change',reloadPage,null,'GET',null);
	req.makeRequest();
}

function reloadPage(a){
	window.location.reload();
}

function getDictString(dictWord) {
	return dictStrings[dictWord];
}

function queryAjaxGet(dictWord){
	req=portal.Services.AjaxService.createRequest(glossaryUrl+"?ajaxrequest=GlossaryAction&word="+dictWord,glossaryAnswerCall,null,"GET",null);
	req.makeRequest(dictWord);
}
function showDictString(dictWord,magyarazo){
	if(visible==1){
				var myWidth = 0, myHeight = 0;
				  if( typeof( window.innerWidth ) == 'number' ) {
				    //Non-IE
				    myWidth = window.innerWidth;
				    myHeight = window.innerHeight;
				  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
				    //IE 6+ in 'standards compliant mode'
				    myWidth = document.documentElement.clientWidth;
				    myHeight = document.documentElement.clientHeight;
				  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
				    //IE 4 compatible
				    myWidth = document.body.clientWidth;
				    myHeight = document.body.clientHeight;
  				}
  		
		var dictPopupElement = document.getElementById('dictPopup');
		if(dictPopupElement==null || dictPopupElement=='undefined'){
			dictPopupElement=document.createElement("div");
			dictPopupElement.setAttribute('id', 'dictPopup');
			dictPopupElement.setAttribute('position','absolute');
			document.body.appendChild(dictPopupElement);
		}
		var dictPopupBorderElement = document.getElementById('dictPopupBorder');
		if(dictPopupBorderElement==null || dictPopupBorderElement=='undefined'){
			dictPopupBorderElement=document.createElement("div");
			dictPopupBorderElement.setAttribute('id', 'dictPopupBorder');
			dictPopupBorderElement.setAttribute('position','absolute');
			document.body.appendChild(dictPopupBorderElement);
		}
		dictPopupElement.innerHTML = '<h1>'+dictWord+'</h1><p>'+magyarazo+'</p></div>';
		dictPopupElement.style.left = positionaaaaaaaabbbcbccc['x']+'px';
		dictPopupElement.style.top = (positionaaaaaaaabbbcbccc['y']+5)+'px';
		dictPopupElement.style.visibility = 'visible';
		
		dictPopupBorderElement.style.left = positionaaaaaaaabbbcbccc['x']-((screen.availWidth-990)/2)-10+'px';
		dictPopupBorderElement.style.top = (positionaaaaaaaabbbcbccc['y']+5)-10+'px';
		dictPopupBorderElement.style.width = dictPopupElement.style.width+20+'px';
		dictPopupBorderElement.style.height = dictPopupElement.style.height+20+'px';
		dictPopupBorderElement.style.visibility = 'hidden';
		dictPopupBorderElement.setAttribute('onmouseout','javascript:hideDictInfo();');
		
		
	}
}
function showDictInfo(dictWord,showableDictWord) {
	addShowableDictString(dictWord,showableDictWord);
	visible=1;
	if(dictStrings[dictWord]==null) queryAjaxGet(dictWord);
	else showDictString(getShowableDictString(dictWord),getDictString(dictWord));
}
function hideDictInfo() {
	visible=0;
	if(document.getElementById('dictPopup')==null || document.getElementById('dictPopup')=='undefined'){
		return;
	}
	document.getElementById('dictPopup').style.visibility = 'hidden';
}
function getMouseXY(e) {

	if (document.all) {
		positionaaaaaaaabbbcbccc['x'] = event.clientX + document.documentElement.scrollLeft;
		positionaaaaaaaabbbcbccc['y'] = event.clientY + document.documentElement.scrollTop;
	}else
	{
		positionaaaaaaaabbbcbccc['x'] = e.pageX;
		positionaaaaaaaabbbcbccc['y'] = e.pageY;
	}
	//console.log('x:'+positionaaaaaaaabbbcbccc['x']+' y:'+positionaaaaaaaabbbcbccc['y']);
	//console.log(regi);
	var dictPopupElement = document.getElementById('dictPopup');
	if(dictPopupElement!=null && dictPopupElement!='undefined'){
		var cursorX=positionaaaaaaaabbbcbccc['x'];
		var cursorY=positionaaaaaaaabbbcbccc['y'];
		var dictX=dictPopupElement.style.left.substring(0,dictPopupElement.style.left.indexOf('px'));
		var dictY=dictPopupElement.style.top.substring(0,dictPopupElement.style.top.indexOf('px'));
		if(dictX-20>cursorX || parseInt(dictX)+parseInt(dictPopupElement.clientWidth)+20<cursorX){
			hideDictInfo();
		}
		if(dictY-20>cursorY || parseInt(dictY)+parseInt(dictPopupElement.clientHeight)+20<cursorY){
			hideDictInfo();
		}
		
	}
	if(regi!=undefined) regi(e);

}
function switchOffDictWordService() {
	var date = new Date();
	date.setTime(date.getTime()+(365*24*60*60*1000));
	alert('dictWordService=off; expires= '+date.toGMTString()+'; path=/');
}

function glossaryAnswerCall(httpRequest,dictWord)
{
	dictStrings[dictWord]=httpRequest.responseXML.getElementsByTagName('dictWord')[0].firstChild.nodeValue;
	showDictString(getShowableDictString(dictWord),dictStrings[dictWord]);
}

function getShowableDictString(dictWord){
	return showableDictStrings[dictWord];
}

function addShowableDictString(dictWord,showableDictWord){
	showableDictStrings[dictWord]=showableDictWord;
}

