// Set-up to use getMouseXY function onMouseMove

var appliedClass 	= 'toolTip';
var searchedClass	= 'helpIcon';
var searchedTag		= 'img';

function hideHint(){

	var hintBox	= document.getElementById('hintBox');
	if (hintBox) {
		document.body.removeChild(hintBox);
		document.onmousemove = null;
	}
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}
 

function initToolTip(pSearchedClass,pSearchedTag,pAppliedClass){
	if (pSearchedClass 	!==	undefined) searchedClass = pSearchedClass;
	if (pAppliedClass 	!== undefined) appliedClass  = pAppliedClass;
	if (pSearchedTag	!== undefined) searchedTag	 = pSearchedTag;
	
	
	var testClass = new RegExp("(^|\\s)" + searchedClass + "(\\s|$)");
	
	var elm = document;
	var elements = (searchedTag == "*" && elm.all)? elm.all : elm.getElementsByTagName(searchedTag);
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		
		if(testClass.test(current.className)){
			current.onmouseout = hideHint;
		}
	}
//	getElementsByClassName('helpIcon', 'img', document);
}

function getX( oElement ){
	var iReturnValue = 0;
	while( oElement != null ) {
		iReturnValue += oElement.offsetLeft;
		oElement = oElement.offsetParent;
	}

	return iReturnValue;
}


function moveHintBox(e) {
	if (!document.getElementById('hintBox')) return true;else{
	var currentX;
	var currentY;
	if (document.all) { 
		currentX = event.clientX + document.body.scrollLeft
		currentY = event.clientY + document.body.scrollTop
	} else {  
		currentX = e.pageX
		currentY = e.pageY
	}  

	if (currentX < 0){currentX = 0}
	if (currentY < 0){currentY = 0}  

	document.getElementById('hintBox').style.left = currentX+'px';
	document.getElementById('hintBox').style.top = currentY+'px';
	document.getElementById('hintBox').style.visibility = 'visible';
}	
	return true
}



function getY( oElement ){
	var iReturnValue = 0;
	iReturnValue+=oElement.offsetHeight;
	while( oElement != null ) {
		iReturnValue += oElement.offsetTop;
		oElement = oElement.offsetParent;
	}
	
	return iReturnValue;
}

function showHint(tip,pAppliedClass){

	var hintBox = document.createElement("div");
	hintBox.setAttribute('id','hintBox');
	if (pAppliedClass !== undefined)
		hintBox.className	= pAppliedClass;
	else
		hintBox.className	= appliedClass;

		//	hintBox.style.left 	= getX(element)+'px';
//	hintBox.style.top	= getY(element)+'px';
	hintBox.innerHTML 	= tip;
	document.body.appendChild(hintBox);
	document.onmousemove = moveHintBox;
	
}


