//Show/Hide Dictionary and Flash Tags
var dictionary = new Array();
var dicOffset = 500; //for bug fix in Mac FF, put the default dic position to the far left
var yoffset=-520;
var xoffset=-190;
var RIGHT_PANEL_POS = null;
var flashTimer = null;
var shadowLayers = 8;
var gapSize = 20;

var dicObj = document.getElementById('dic');
var dicObjParent = document.getElementById('dicWrapper');

function findPos(obj) {
	var pos = Element.positionedOffset(obj);
	return {'x' : pos.left, 'y' : pos.top, 'height' : obj.offsetHeight, 'width' : obj.offsetWidth};
}

function takeMeasures() {
	var panel = document.getElementById('right');
	RIGHT_PANEL_POS = findPos(panel);
	
}

function showflash(event) {
	if (flashtags.style.visibility !='visible') {
		var finalPos = trackMousePos(event);
		finalPos.x += xoffset;
		finalPos.y += yoffset;
		flashtags.style.left = finalPos.x + 'px';
		flashtags.style.top = finalPos.y + 'px';
		flashtags.style.visibility='visible';
	}
}

function hideflash(event){
	flashtags.style.visibility='hidden';
}

function showdic(obj){
	dicObjParent.style.visibility = 'hidden';
	dicObjParent.style.display = 'block';  
	  
	var word = obj.innerHTML;
	var wordPos = findPos(obj);
	
	//update the dic data
	document.getElementById('dic_word').innerHTML = word;
	document.getElementById('dic_def').innerHTML = dictionary[word];
	
	var dicInfos = findPos(dicObj);
	dicInfos.width += shadowLayers;
	var x = dicOffset;
	if (wordPos.x + dicInfos.width > RIGHT_PANEL_POS.x) {
		x += RIGHT_PANEL_POS.x - dicInfos.width;
	} else {
		x += wordPos.x;
	}
	var y = 0;
	var displayTopY = document.body.scrollTop+document.documentElement.scrollTop;
	if (wordPos.y - (gapSize + dicInfos.height) < displayTopY ) {
		y = wordPos.y + wordPos.height + gapSize;
	} else {
		y = wordPos.y - (dicInfos.height + gapSize);
	}
	
    dicObj.style.left = x + 'px';
	dicObj.style.top = y + 'px';
	dicObjParent.style.visibility = 'visible';
	Shadower.shadow('dic')
}

function hidedic(){
	dicObj.style.left = '0px';
	dicObj.style.top = '0px';
	Shadower.shadow('dic');
	dicObjParent.style.visibility = 'hidden';
	dicObjParent.style.display = 'none';
	
}

function trackMousePos(e) {
	var posx = 0;
	var posy = 0;
   
	if(!e) {
		e = window.event;
	}
	posx = (e.pageX) ? e.pageX : window.event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
	posy = (e.pageY) ? e.pageY : window.event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	return {'x' : posx, 'y' : posy};
}

//Toggle Visisbilty of Divs in What we do
function toggleLayer( whichLayer )
{
	var elem, vis;
	elem = document.getElementById( whichLayer );
	elem.style.display = elem.style.display == "block"?"none":"block";
}
