//Author: kingthy
//Date: 2008/12/29

if(typeof(jslib) == 'undefined')var jslib = {};

if(typeof(jslib.tooltip) == 'undefined'){
	jslib.tooltip = function(){
		var self = this;
		var div = null;
		var offX = 10;
		var offY = -20;
		this.init = function(){
			initToolTipLayer();
			initToolTipEvent();
		}

		function initToolTipLayer(){
			var div_id = '_jslib_tooltip';
			div = document.getElementById(div_id);
			if(div == null){
				div = document.createElement('div');
				div.id = div_id;
				div.style.display = 'none';
				div.style.position = "absolute";
				div.className = 'jslib_tooltip';
				document.body.appendChild(div);
			}
		}
		
		this.attach = function(o){
			if(o.getAttribute("title") || o.getAttribute("alt")){
				o.setAttribute("tooltip",o.getAttribute("title") || o.getAttribute("alt"));
				o.removeAttribute("title");
				o.removeAttribute("alt");
				if(o.attachEvent){
					o.attachEvent("onmouseover", on_mouseover);
					o.attachEvent("onmouseout", on_mouseout);
					//o.attachEvent("onmousemove", on_mousemove);
				}else if(o.addEventListener){
					o.addEventListener("mouseover", on_mouseover, false);
					o.addEventListener("mouseout", on_mouseout, false);
					//o.addEventListener("mousemove", on_mousemove, false);

				}else{
					o.onmouseover = on_mouseover;
					o.onmouseout = on_mouseout;
					//o.onmousemove = on_mousemove;
				}
			}
		}

		function initToolTipEvent(){
			var items = document.all ? document.all : document.getElementsByTagName("*");
			for(var i=0; i<items.length; i++){
				self.attach(items[i]);
			}
		}

		function getTop3Position(){
			return jslib.dom.position("top3");
		}

		function getPosition(event){
			var p ={};
			
			if(window.innerWidth){
				p.width = window.innerWidth - 18;
			}else if(document.documentElement){
				p.width = document.documentElement.clientWidth;
			}else{
				p.width = document.body.clientWidth;
			}

			if(window.innerHeight){
				p.height = window.innerHeight - 18;
			}else if(document.documentElement){
				p.height = document.documentElement.clientHeight;
			}else{
				p.height = document.body.clientHeight;
			}

			if(typeof(window.pageXOffset) == "number"){
				p.scrollX = window.pageXOffset;
			}else if(document.documentElement){
				p.scrollX = document.documentElement.scrollLeft;
			}else if(document.body){
				p.scrollX = document.body.scrollLeft;
			}else if(window.scrollX){
				p.scrollX = window.scrollX;
			}

			if(typeof(window.pageYOffset) == "number"){
				p.scrollY = window.pageYOffset;
			}else if(document.documentElement){
				p.scrollY = document.documentElement.scrollTop;
			}else if(document.body){
				p.scrollY = document.body.scrollTop;
			}else if(window.scrollY){
				p.scrollY = window.scrollY;
			}

			if(event.pageX || event.pageY){
				p.x = event.pageX;
				p.y = event.pageY;
			}else if(event.clientX || event.clientY){
				p.x = event.clientX + p.scrollX;
				p.y = event.clientY + p.scrollY;
			}

			if((p.x + div.offsetWidth + offX) > (p.width + p.scrollX)){
				p.x = p.x - div.offsetWidth - offX;
			}else{
				p.x = p.x + offX;
			}

			if((p.y + div.offsetHeight + offY) > (p.height + p.scrollY)){
				p.y = p.y - div.offsetHeight - (offY * 2);
				if(p.y < p.scrollY)p.y = p.height + p.scrollY - div.offsetHeight;
			}else{
				p.y = p.y + offY;
			}
			
			return p;
		}

		function on_mouseover(event){
			var e = event || window.event;
			var o = e.srcElement || e.target;
			if(o){
				var title = o.getAttribute("tooltip");
				if(title){
					div.innerHTML = title;
				}
				/*var p = getPosition(e);			

				div.style.left = p.x + 'px';
				div.style.top = p.y + 'px';

				*/

				var p = getTop3Position();
				div.style.left = p.left + p.width + offX + 'px';
				div.style.top = p.top + offY + 'px';

				div.style.display = '';
			}

		}
		function on_mousemove(event){
			var e = event || window.event;
			var p = getPosition(e);
			div.style.left = p.x + 'px';
			div.style.top = p.y + 'px';
			div.style.display = '';
		}
		function on_mouseout(event){
			div.style.display = 'none';
		}
	};

	var jslib_tooltip = new jslib.tooltip();

	if(window.attachEvent){
		window.attachEvent("onload",jslib_tooltip.init);
	}else{
		window.addEventListener("load",jslib_tooltip.init,false);
	}
}