var cbword = {
	init : function() {
		if (!document.getElementById || !document.createElement || !document.appendChild) return false;
		var oElement, oCBword, oCBwordP, oQuoteContent, i, j;
		var arrElements = document.getElementsByTagName('span');
		var oRegExp = new RegExp("(^|\\s)cbword(\\s|$)");
		for (i=0; i<arrElements.length; i++) {
			oElement = arrElements[i];
			if (oRegExp.test(oElement.className)) {	
cleanWord = oElement.innerHTML;
oElement.innerHTML = '<a href="#" class="cbWordLink" onmouseover="cbWordPop(\'' + cleanWord + '\');" onmouseout="cbWordPopDestroy();" >' + oElement.innerHTML + '</a>';
			}
		}
	}
};
var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var tempX = 0;
var tempY = 0;

function getMouseXY(e) {
if (IE) { 
tempX = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;
}
else { 
tempX = e.pageX;
tempY = e.pageY;
}  
if (tempX < 0){tempX = 0;}
if (tempY < 0){tempY = 0;}  
mouseX = tempX;
mouseY= tempY;
return true;
}
function getRefToDivMod( divID, oDoc ) {
  if( !oDoc ) { oDoc = document; }
  if( document.layers ) {
    if( oDoc.layers[divID] ) { return oDoc.layers[divID]; } else {
      for( var x = 0, y; !y && x < oDoc.layers.length; x++ ) {
        y = getRefToDivMod(divID,oDoc.layers[x].document); }
      return y; } }
  if( document.getElementById ) { return oDoc.getElementById(divID); }
  if( document.all ) { return oDoc.all[divID]; }
  return document[divID];
}
String.prototype.trim = function() {
a = this.replace(/^\s+/, '');
return a.replace(/\s+$/, '');
};

function cbFindWord(myWord){
cbDefReturn = "Definition not found.";
for(i=0; i < wordList.length; i++ ){
myWord = myWord.trim();
myWord = myWord.toLowerCase();
targetWord = wordList[i].trim();
targetWord = targetWord.toLowerCase();
if (targetWord == myWord ){
cbDefReturn = wordDef[i];
}
} 
return cbDefReturn;
}
function cbWordHide(){
clearInterval(cbWordTimer);
cbPopObj.style.visibility = "hidden";
}
function cbWordPopDestroy(){
if (typeof(window["cbWordTimer"]) != "undefined"){ 
clearInterval(cbWordTimer);
}
cbWordTimer = setTimeout("cbWordHide()", 200);
}
function cbWordPop(myWord,myX,myY){
document.getElementById("BL").style.display = 'none';
document.getElementById("BR").style.display = 'none';
document.getElementById("TL").style.display = 'none';
document.getElementById("TR").style.display = 'none';
document.getElementById("BOT").style.display = 'none';
myHeader = document.getElementById("cbWordHeader");
myContent = document.getElementById("cbWordContent");
myHeader.innerHTML = myWord;
myContent.innerHTML = cbFindWord(myWord);
if (typeof(window["cbWordTimer"]) != "undefined"){ 
clearInterval(cbWordTimer);
}
var oH = getRefToDivMod( 'cbWordBox' ); if( !oH ) { return; }
var oH = oH.clip ? oH.clip.height : oH.offsetHeight;
if( !oH ) { return; }
cbPopObj = document.getElementById("cbWordBox");
cbPopHeight =oH + 39;
cbPopWidth = cbPopObj.offsetWidth;
topPos = mouseY-cbPopHeight;
leftPos = mouseX;
cbPopDirection = "B";
if (topPos < 0 ){
topPos = mouseY;
cbPopDirection = "T";
document.getElementById("BOT").style.display = 'block';
}
if ( (leftPos+cbPopWidth) > document.body.clientWidth  ){
leftPos = leftPos - cbPopWidth;
cbPopDirection = cbPopDirection + "R";
}else{
cbPopDirection = cbPopDirection + "L";
}
var ScrollTop = document.body.scrollTop;
if (ScrollTop == 0)
{
    if (window.pageYOffset)
        ScrollTop = 0;
    else
        ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
}
document.getElementById(cbPopDirection).style.display = 'block';
cbPopObj.style.top = (topPos+ScrollTop)+ "px";
cbPopObj.style.left = leftPos  + "px";
cbPopObj.style.visibility = "visible";
}
function addEvent(obj, type, fn) {
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}
addEvent(window, 'load', cbword.init);