function getObj(id) {
	switch (typeof(id)) {
		case 'string': return document.getElementById(id);
		case 'object': return id;
	}
}

function getBrowser(){
	this.ver=navigator.appVersion;
	this.dom=document.getElementById ? 1:0;
	this.ns4 = (document.layers && !this.dom) ? 1:0;
	this.ns6 = (this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.minIE4 = (document.all) ? 1 : 0;
}

function getMouse(e) {
	var scrOfY=0, scrOfX=0;
	if( typeof( window.pageYOffset ) == 'number' ) {
    	//Netscape compliant
	    scrOfY = window.pageYOffset;
	    scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
	    //DOM compliant
	    scrOfY = document.body.scrollTop;
	    scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	    //IE6 standards compliant mode
    	scrOfY = document.documentElement.scrollTop;
	    scrOfX = document.documentElement.scrollLeft;
  	}

  if (browser.ns4 | browser.ns6) {
    mouseX = e.pageX;
    mouseY = e.pageY;
  }
  if (browser.minIE4) {
    mouseX = event.clientX + scrOfX;
    mouseY = event.clientY + scrOfY;
  }
  if (document.all)
  return true;
}

function move(e) {
	if (dragged!=null) {
		obj = getObj(dragged);
		getMouse(e);
		X=mouseX+dX;
		Y=mouseY+dY;
		obj.style.top=Y+'px';
		obj.style.left=X+'px';
	}
}

function getBrowserWidth() {}

function refreshPosition() {
	if ((document.all)&&(dragged!=null)) {
    mouseX = event.clientX + document.body.scrollLeft;
    mouseY = event.clientY + document.body.scrollTop;
		obj = getObj(dragged);
		X=mouseX+dX;
		Y=mouseY+dY;
		obj.style.top=Y+'px';
		obj.style.left=X+'px';
	}
}

var dragged = null;
var mouseX = 0;
var mouseY = 0;
var dX = 0;
var dY = -10;
var brWidth = getBrowserWidth();
var hintCallObject=null;


browser = new getBrowser();

if (browser.ns4 | browser.ns6) document.captureEvents(Event.MOUSEMOVE);

document.onmousemove = move;
document.onresize = getBrowserWidth;

function hideHint() {
	cont = getObj('contextHint');
	cont.style.display='none';
	dragged = null;
}

function ShowHint(text) {
	cont = getObj('contextHint');
	cont.innerHTML = text;
	dragged = cont;
	dY = -10;
	dX = 15;
	refreshPosition();
	cont.style.display='block';
}


function contextHint(hint) {
	var hintType = typeof(hint);
	switch (hintType) {
		case 'string': ShowHint('<div style="text-align:left; z-index:100;">'+hint+'</div>'); break;
	}
	return false;
}


