var dida_offX = 15;
var dida_offY = 15;
var dida_follow = true;

/*
	###############################################################################################################################
	###############################################################################################################################
	######################################################################################################################## PUBLIC
	###############################################################################################################################
	###############################################################################################################################
*/

function didaShow (objID, content, event) {
	
	writeObject (objID,content);
	moveObject(objID, event);
	if (dida_follow) {
		document.onmousemove = follow;
	}
	
}

function didaHide (objID) {
	displayObject(objID,false);
	if (dida_follow) {
		document.onmousemove = null;
	}
}

/*
	###############################################################################################################################
	###############################################################################################################################
	####################################################################################################################### PRIVATE
	###############################################################################################################################
	###############################################################################################################################
*/

function moveObject (obj, e) {

	// step 1
	var tempX = 0;
	var tempY = 0;
	var objHolder = obj;
	
	// step 2
	obj = getObject(obj);
	
	if (obj==null) return;
	
	// step 3
	if (document.all) {
		tempX = event.clientX + document.body.scrollLeft;
		tempY = event.clientY + document.body.scrollTop;
	} else {
		tempX = e.pageX;
		tempY = e.pageY;
	}
	
	// step 4
	if (tempX < 0){tempX = 0}
	if (tempY < 0){tempY = 0}
	
	// step 5
	obj.style.top  = (tempY + dida_offY) + 'px';
	obj.style.left = (tempX + dida_offX) + 'px';
	
	// step 6
	displayObject(objHolder, true);

}

/*
	###############################################################################################################################
	###############################################################################################################################
	####################################################################################################################### DISPLAY
*/

function displayObject (obj, show) {
	obj = getObject( obj );
	if (obj==null) return;
	obj.style.display = show ? 'block' : 'none';
	obj.style.visibility = show ? 'visible' : 'hidden';
}

/*
	###############################################################################################################################
	###############################################################################################################################
	###################################################################################################################### CONTENTS
*/

function writeObject (obj,content) {	
	obj = getObject(obj);
	if (document.getElementById||document.all)
		obj.innerHTML = content
	else if (document.layers){
		obj.document.write(content)
		obj.document.close()
	}
}

/*
	###############################################################################################################################
	###############################################################################################################################
	######################################################################################################################### UTILS
*/

function getObject (obj) {
	if ( document.getElementById ) {
		obj = document.getElementById( obj );	
	} else if ( document.all ) {
		obj = document.all.item( obj );	
	} else {
		obj = null;
	}
	return obj;
}

/*
	###############################################################################################################################
	###############################################################################################################################
	######################################################################################################################## FOLLOW
*/

function follow (evt) {
	if (document.getElementById) {
		var obj = document.getElementById("imagedida").style;
		obj.left = (parseInt(mouseX(evt)) + dida_offX) + 'px';
		obj.top = (parseInt(mouseY(evt)) + dida_offY) + 'px';
	}
}

function mouseX (evt) {
	if (!evt) evt = window.event;
	if (evt.pageX) {
		return evt.pageX;
	} else if (evt.clientX) {
		return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft);
	} else {
		return 0;
	}
}

function mouseY (evt) {
	if (!evt) evt = window.event;
	if (evt.pageY) {
		return evt.pageY;
	} else if (evt.clientY) {
		return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	} else {
		return 0;
	}
}
