/**
 * Tips
 * 提示栏类
 * 
 * 作者：李永强
 * 创建时间：2007-12-10
 * 
 * 构造函数参数：
 * 		id : 要绑定的HTML元素的唯一ID
 * 		text : 要提示的内容，支持HTML
 * 		div_id : 已经存在，并要做为提示框的DIV的 id
 * 
 * 使用方法：
 * 		HTML部分：
 * 		<a href="#" id='link1'>roll over</a>
 * 		或 <input type="text" id="edt3" value="" tips="让暴风雨来的更猛烈些吧！" />
 * 		或 <div id="div1">钢铁是这样炼成的</div>
 * 
 * 		JS部分：
 * 		var tips = new Tips('link1', '这是个连接');  <-- 普通形式
 * 		或 var tips2 = new Tips('edt3');  <-- 使用绑定元素的 tips 属性值
 * 		或 var tips3 = new Tips('link1', null, 'div1');  <-- 使用 div1 作为提示框
 * 
 * 		CSS部分：
 * 		.tips_box {
 * 			border:#999 solid 1px;
 * 			background-color:#e5e5e5;
 * 			position:absolute;
 * 			display:none;
 * 			opacity:.8;
 * 			filter:Alpha(opacity=80);
 * 			padding:5px;
 * 			font-size:13px;
 * 		}
 * 		
 * 依赖；
 * 		无
 * 
 * 注：
 * 		Tips对象的生成必须在HTML文档加载完毕后进行（如在document.onload）
 * 
 */

function Tips (id, text, div_id)
{
	this.id = id;
	this.div_id = div_id;
	this.target;
	this.box;
	this.txt;
	this.iframe;
	this.content = text;
	
	this.on_target = false;
	this.on_box = false;
	
	(function (ob)
	{
		if (!document.getElementById(ob.id))
		{
			//alert('指定弹出框的目标不存在！');
			return;
		}
		
		ob.target = document.getElementById(ob.id);
		
		ob.target.onmouseover = function (e)
		{
			ob.on_target = true;
			e = window.event || e;
			var parm = {};
			parm.mx = e.pageX || (e.clientX + (window.scrollX || document.documentElement.scrollLeft));
			parm.my = e.pageY || (e.clientY + (window.scrollY || document.documentElement.scrollTop));
			parm.target = e.currentTarget || e.srcElement;
			ob.show_tips(parm);
		}
		
		ob.target.onmousemove = function (e)
		{
			e = window.event || e;
			var parm = {};
			parm.mx = e.pageX || (e.clientX + (window.scrollX || document.documentElement.scrollLeft));
			parm.my = e.pageY || (e.clientY + (window.scrollY || document.documentElement.scrollTop));
			parm.target = e.currentTarget || e.srcElement;
			ob.show_tips(parm);
		}
		
		ob.target.onmouseout = function (e)
		{
			ob.hide_tips();
		}
		
		var exist_div = document.getElementById(ob.div_id);
		
			//为 IE 增加一个 IFRAME
		if (document.all)
		{
			ob.box = document.createElement('div');
			ob.box.className = 'tips_box';
			ob.box.style.position = 'absolute';
			ob.box.style.filter = 'Alpha(Opacity=95)';
			ob.box.style.display = 'none';
			var ifr = document.createElement('iframe');
			ifr.frameBorder = '0';
			ifr.allowtransparency = 'yes';
			ifr.scrolling = 'no';
			if (exist_div)
			{
				ifr.width = exist_div.offsetWidth;
				ifr.height = exist_div.offsetHeight;
			}
			ob.iframe = ifr;
			ob.box.appendChild(ifr);
			
			if (exist_div)
			{
				ob.txt = exist_div;
			}
			else
			{
				ob.txt = document.createElement('div');
				ob.txt.className = 'tips_txt';
				
				if (ob.content) 
					ob.txt.innerHTML = ob.content;
				else 
					if (ob.target.getAttribute('tips')) 
						ob.txt.innerHTML = ob.target.getAttribute('tips');
			}
			ob.txt.style.top = '0px';
			ob.txt.style.left = '0px';
			ob.txt.style.right = '0px';
			ob.txt.style.bottom = '0px';
			//ob.txt.style.width = '90%';

			ob.box.appendChild(ob.txt);
		}
		else
		{
			if (exist_div)
				ob.box = exist_div;
			else
			{
				ob.box = document.createElement('div');
				ob.box.className = 'tips_txt';
				if (ob.content) 
					ob.box.innerHTML = ob.content;
				else 
					if (ob.target.getAttribute('tips')) 
						ob.box.innerHTML = ob.target.getAttribute('tips');
			}
			
			ob.box.style.display = 'none';
		}
		
		document.body.appendChild(ob.box);
	})(this);
}

Tips.prototype.show_tips = function (postition_parm)
{
	var scroll_top = window.scrollY || document.documentElement.scrollTop;
	var scroll_left = window.scrollX || document.documentElement.scrollLeft;
	
		//超过屏幕高的修正部分
	var overflow_offset_h = 0;
	var doc_h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
	if ((postition_parm.my - 5 + this.box.offsetHeight) > (doc_h + scroll_top))
		overflow_offset_h = (doc_h + scroll_top) - (postition_parm.my - 5 + this.box.offsetHeight) - 5;
			
		//超过屏幕宽的修正部分
	var overflow_offset_w = 0;
	var doc_w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
	if ( (postition_parm.mx - 30 + scroll_left +this.box.offsetWidth) > (doc_w + scroll_left))
		overflow_offset_w = (doc_w + scroll_left) - (postition_parm.mx - 5 + this.box.offsetWidth) - 10;
	
	//alert(overflow_offset_h);
	this.box.style.top = postition_parm.my - 30 + overflow_offset_h+ 'px';
	this.box.style.left = postition_parm.mx + 5 + overflow_offset_w +  'px';
	
		//调整内嵌iframe
		/*
	if (document.all) 
	{
		this.iframe.width = 0;
		this.iframe.width = this.box.offsetWidth;
		this.iframe.height = 0;
		this.iframe.height = this.txt.offsetHeight;
	}
	*/
	
	this.box.style.display = 'block';
}

Tips.prototype.hide_tips = function ()
{
	this.box.style.display = 'none';
}