var gTooltips = {
	element: null,
	init: function() {
		gTooltips.element = getById('gift_tooltip_box');
		if (this.element) {
			var elements = getByClassName('gift');
			for (var n = 0, count = elements.length; n < count; n++) {
				if (elements[n].getAttribute('title')) {
					elements[n].setAttribute('tooltip', elements[n].getAttribute('title'));
					elements[n].removeAttribute('title');
					elements[n].onmousemove = gTooltips.move;
					elements[n].onmouseover = gTooltips.show;
					elements[n].onmouseout = gTooltips.hide;
				}
			}
		}
	},
	show: function(_event) {
		var element = window.event ? window.event.srcElement : _event.target;
		gTooltips.element.innerHTML = element.getAttribute('tooltip');
		gTooltips.element.style.visibility = 'visible';
	},
	hide: function(_event) {
		gTooltips.element.style.visibility = 'hidden';
		gTooltips.element.innerHTML = '';
	},
	move: function(_event) {
		var cursor = {x : 0, y : 0};
		cursor.x = (document.all ? (window.event.clientX + document.documentElement.scrollLeft) : _event.pageX);
        cursor.y = (document.all ? (window.event.clientY + document.documentElement.scrollTop) : _event.pageY);
        var tooltipWidth = 0, tooltipHeight = 0, windowWidth = 0, windowHeight = 0;
     
        tooltipWidth = gTooltips.element.offsetWidth;
        tooltipHeight = gTooltips.element.offsetHeight;
      
        windowWidth = (document.all ? (document.documentElement.clientWidth + document.documentElement.scrollLeft) : (window.innerWidth + window.pageXOffset));
        windowHeight = (document.all ? (document.documentElement.clientHeight + document.documentElement.scrollTop) : (window.innerHeight + window.pageYOffset));

        gTooltips.element.style.top =  (((cursor.y + tooltipHeight + 16) > windowHeight) ? (cursor.y - tooltipHeight - 4) : (cursor.y + 16)) + 'px';
        gTooltips.element.style.left = (((cursor.x + tooltipWidth + 8) > windowWidth) ? (cursor.x - tooltipWidth - 2) : (cursor.x + 8)) + 'px';
	}
};

window.onload = function() {
	gTooltips.init();
};
