/*
poptitle.js (c)2009-03-03 M&A Bank http://ma-bank.com/item/989
*/
var pop = function() {
	var css_width = 150;
	var css_border = "solid 1px #aaa";
	var title_tag = "h3";
	var speed = 100;
	var timer = 0;
	var timer_end = 0;
	var alpha_start = 60;
	var alpha_end = 93;
	var h_offset = 0;
	var v_offset = 0;
	var popobj, popbox, ie = document.all;
	return {
		cssSet:function(ps) {
			ps.color = "#FFF";
			ps.background = "#111";
			ps.fontSize = "12px";
			ps.lineHeight = "180%";
			ps.width = css_width + "px";
			ps.padding = "5px";
			ps.border = css_border;
			ps.textAlign = "left";
			ps.zIndex = "100";
			ps.position = "absolute";
		},
		creatPopbox:function() {
			pop.setPopobj("a");
			pop.setPopobj("img");
		},
		setPopobj:function(id) {
			var alt = "", ary = document.getElementsByTagName(id);
			for(var i=0, len=ary.length; i<len; i++) {
				popobj = ary[i];
				if(popobj.title) {
					popbox = document.createElement("div");
					popbox.setAttribute("id", "popbox");
					document.body.appendChild(popbox);
//Œ³‚Í‚±‚ê			alt = (popobj.alt) ? "<" + title_tag + ">" + popobj.alt + "</" + title_tag + ">" : "";
					alt = (popobj.alt) ? "<" + title_tag + ">" + popobj.alt + "</" + title_tag + ">" : "";
					popobj.setAttribute("poptitle", alt + popobj.title);
					popobj.removeAttribute("title");
					popobj.removeAttribute("alt");
					if(popobj.popimg) {
						popobj.setAttribute("popimg", popobj.popimg);
					}
					pop.addEvent(popobj, "mouseover", pop.showTitle);
					pop.addEvent(popobj, "focus", pop.showTitle);
					pop.addEvent(popobj, "mouseout", pop.fadeOut);
					pop.addEvent(popobj, "blur", pop.fadeOut);
				}
			}
		},
		showTitle:function(e) {
			if(window.event && window.event.srcElement) {
				popobj = window.event.srcElement;
			}else if (e && e.target) {
				popobj = e.target;
			}
			var title = popobj.getAttribute("poptitle");
			if(title && (ie || (document.getElementById && !ie))) {
				var ps = popbox.style;
				pop.cssSet(ps);
				popbox.innerHTML = title + pop.addImg();
				popbox.x = pop.getOffset("left");
				popbox.y = pop.getOffset("top");
				ps.left = popbox.x - pop.EdgeRight() + popobj.offsetWidth + "px";
				ps.top = popbox.y - pop.EdgeBottom() + "px";
				ps.visibility = "visible";
				pop.fadeStart(e, 1);
			}
		},
		addImg:function() {
			var imgs = popobj.getAttribute("popimg");
			return (!imgs) ? "" : "<p style=\"text-align:center;\"><img src=\"" + imgs + "\" alt=\"popimg\" style=\"border:" + css_border + ";\" /></p>";
		},
		fadeStart:function(e, sx) {
			sx = (sx) ? sx : -1;
			if(timer_end>0) {
				clearInterval(popbox.timer_end);
			}
			clearInterval(popbox.timer);
			popbox.timer = setInterval(function() {
				var ps = popbox.style;
				if((alpha_start!=alpha_end && sx==1) || (alpha_start!=0 && sx==-1)) {
					var i = (sx==-1) ? speed : speed*3;
					if(alpha_end - alpha_start < i && sx==1) {
						i = alpha_end - alpha_start;
					}else if(alpha_start < i && sx==-1) {
						i = alpha_start;
					}
					alpha_start = alpha_start + (i * sx);
					ps.opacity = alpha_start * 0.01;
					ps.filter = 'alpha(opacity=' + alpha_start + ')';
				}else if(sx==-1) {
					ps.visibility = "hidden";
				}
			}, timer);
		},
		fadeOut:function(e) {
			if(timer_end>0) {
				popbox.timer_end = setTimeout('pop.fadeStart()', timer_end)
			}else {
				pop.fadeStart();
			}
		},
		getOffset:function(type) {
			var totaloffset = (type=="left") ? popobj.offsetLeft : popobj.offsetTop;
			var parentEl = popobj.offsetParent;
			while(parentEl!=null) {
				totaloffset = (type=="left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
				parentEl = parentEl.offsetParent;
			}
			return totaloffset;
		},
		EdgeRight:function() {
			var edge = (ie && !window.opera) ? pop.ieTest().scrollLeft + pop.ieTest().clientWidth - 20 : window.pageXOffset + window.innerWidth - 10;
			if(edge - popbox.x < popobj.offsetWidth + css_width) {
				return popbox.offsetWidth + popobj.offsetWidth + parseInt(v_offset);
			}else {
				return parseInt(v_offset) * -1
			}
		},
		EdgeBottom:function() {
			var edge = (ie && !window.opera) ? pop.ieTest().scrollTop + pop.ieTest().clientHeight : window.pageYOffset + window.innerHeight;
			if(edge - popbox.y < popbox.offsetHeight) {
				return popbox.offsetHeight - popobj.offsetHeight;
			}else {
				return parseInt(h_offset) * -1;
			}
		},
		ieTest:function() {
			return (document.compatMode && document.compatMode!="BackCompat") ? document.documentElement : document.body;
		},
		addEvent:function(obj, evType, fn) {
			if(obj.addEventListener) {
				obj.addEventListener(evType, fn, false);
				return true;
			}else if(obj.attachEvent) {
				return obj.attachEvent("on" + evType, fn);
			}else {
				return false;
			}
		}
	};
}();

pop.addEvent(window, "load", pop.creatPopbox);

/* Thanks to 
http://jsajax.com/ShowHelpArticle681.aspx
http://www.leigeber.com/2008/06/javascript-tooltip/
http://www.kryogenix.org/code/browser/nicetitle/
*/
