/*******************************************************************************

	バルーンヘルプ生成 クラス var1.0 (20080217)

	powered  by  http://www.ishinotec.com 
	scripted by KKK


	仕様
	
	1.任意の指定したリンクにバルーンヘルプを表示する。
	2.バルーンヘルプはcssにより設定する。サンプルを参考に。
	3.ヘルプ表示用のリンクはクリックを無効化します。
	
	設置方法
	
	balloon_help.onload(バルーンヘルプ用ID, バルーンヘルプテキスト表示用ID", "バルーンヘルプ表示用リンククラス名", 10, 10);


*******************************************************************************/

var balloon_help = {

	balloonName : null,
	textName    : null,
	className   : null,
	balloonId   : null,
	textNameId  : null,
	offsetX     : null,
	offsetY     : null,

	init       : function(){
		balloon_help.balloonId  = document.getElementById(balloon_help.balloonName);
		balloon_help.textNameId = document.getElementById(balloon_help.textName);
		if(!balloon_help.balloonId || !balloon_help.textNameId){
			alert("ID for ballonHelp is not found.");
			return;
		}
		var elms = balloon_help.classCheck();
		var len  = elms.length;
		for(var i = 0 ; i < len ; i++){
			var elm = elms[i];

			elm.href    = "javascript:void(0)";
			elm.caption = elm.title;
			elm.title   = "";

			elm.onmouseover = balloon_help.mouseover;
			elm.onmouseout  = balloon_help.mouseout;
		}

	},
	
	mouseover: function(e){
		var elm,e;

		if (!e) e = window.event;
		if (e.target){
			elm = e.target;
		}else if (e.srcElement){
			elm = e.srcElement;
		}

		if(!elm) return;

		balloon_help.textNameId.innerHTML = this.caption;
		balloon_help.balloonId.style.display = 'block';
		var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		if(navigator.userAgent.toLowerCase().indexOf('safari')>=0)st=0; 
		var leftPos = e.clientX - balloon_help.offsetX;
		if(leftPos<0)leftPos = 0;
		balloon_help.balloonId.style.left = leftPos + 'px';
		balloon_help.balloonId.style.top = e.clientY - balloon_help.balloonId.offsetHeight -balloon_help.offsetY + st + 'px';
	
	},

	mouseout :function(e){
		balloon_help.balloonId.style.display = 'none';
	},

	classCheck : function(){
		var reg, ret, elm, len, i;
		reg = new RegExp("\\b" + balloon_help.className + "\\d*" + "\\b"),
		ret = new Array();
		elm = document.links;
		len = elm.length;
		for(i = 0 ; i < len ; i++){
			if(elm[i].className.match(reg)){
				ret.push(elm[i]);
			}
		}
		return ret;
	},

	onload     : function(balloonName, textName, className, offsetX, offsetY){

		balloon_help.balloonName = balloonName;
		balloon_help.textName    = textName;
		balloon_help.className   = className;
		balloon_help.offsetX     = offsetX || 10;
		balloon_help.offsetY     = offsetY || 10;

		if(window.attachEvent){
			window.attachEvent("onload", balloon_help.init);
		}else if(window.addEventListener){
			window.addEventListener("load", balloon_help.init, true);
		}else {
			return;
		}
	}

}

balloon_help.onload("balloon", "balloon_text", "help", 10, 10);

