var preview = '';
var gobj = '';

function attachEvent_(obj, evt, fuc, useCapture) {

	if(!useCapture) 
		useCapture=false;

	if(obj.addEventListener) { // W3C DOM
		return obj.addEventListener(evt,fuc,useCapture);
	} 
	else if(obj.attachEvent) { // IE
		return obj.attachEvent("on"+evt, fuc);
	} 
	else { // NN4 & IE5mac
		MyAttachEvent(obj, evt, fuc);
		obj['on'+evt]=function() { MyFireEvent(obj,evt) };
	}
}

function detachEvent_(obj, evt, fuc, useCapture) {
	if(!useCapture)
		useCapture=false;

	if(obj.removeEventListener) {
		return obj.removeEventListener(evt,fuc,useCapture);
	} else if(obj.detachEvent) {
		return obj.detachEvent("on"+evt, fuc);
	} else {
		MyDetachEvent(obj, evt, fuc);
		obj['on'+evt]=function() { MyFireEvent(obj,evt) };
	}
}

function MyAttachEvent(obj, evt, fuc) {
	if(!obj.myEvents)
		obj.myEvents= {};

	if(!obj.myEvents[evt])
		obj.myEvents[evt]=[];

	var evts = obj.myEvents[evt];
	evts[evts.length]=fuc;
}

function MyFireEvent(obj, evt) {
	if(!obj.myEvents || !obj.myEvents[evt]) 
		return;
		
	var evts = obj.myEvents[evt];

	for (var i=0;i<len;i++) {
		len = evts.length;
		evts[i]();
	}
}

function previewShow(e, obj, divId) {
	preview = divId;
	gobj = obj;
	attachEvent_(obj, "mousemove", previewMove, false);
	attachEvent_(obj, "mouseout", previewHide, false);
}

function previewMove(e) {
	var hb = document.getElementById(preview);
	
	if(hb.parentElement)
		hb.parentElement.style.display="";
	else
		hb.parentNode.style.display="";

	var evt = e ? e : window.event;
	var posx=0;
	var posy=0;

	if (evt.pageX || evt.pageY) {
		posx = evt.pageX +8;
		posy = evt.pageY +16;
	} else if (evt.clientX || evt.clientY) {
		posx = evt.clientX +10;
		posy = evt.clientY +20;
	
		if (window.event) {
		    posx += document.body.scrollLeft;
			posy += document.body.scrollTop;
		}
	}

	var xOffset = -20;
	var yOffset = 0;

	hb.style.left = posx + xOffset + "px";
	hb.style.top = posy + yOffset + "px";
}

function previewHide() {
	var hb = document.getElementById(preview);

	if(hb.parentElement)
		hb.parentElement.style.display="none";
	else
		hb.parentNode.style.display="none";

	detachEvent_(gobj,"mousemove", previewMove, false);
}
