//初始化
function initToolTip()
{
	document.write("<div id=\"tkl_ToolTip\" onmouseout=\"Tkl_Tooltip_Mouseout()\" onmouseover=\"Tkl_Tooltip_MouseIn = true;\" style=\"Z-INDEX: 1000;visibility:hidden;POSITION: absolute;left: 0px; top: 0px;width:1px;\">");
	document.write("  <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"#000000\">");
	document.write("    <tr>");
	document.write("      <td bgcolor=\"#FFFFCC\" id=\"tkl_ToolTip_Content\" nowrap></td>");
	document.write("    </tr>");
	document.write("  </table>");
	document.write("</div>");
}
//函数：显示标注
//参数：内容,event.srcElement
var Tkl_Tooltip_EventObj=null;
var Tkl_Tooltip_Show=false;
var Tkl_Tooltip_MouseIn = false;
function showToolTip(str,obj,options)
{//alert(str);
	if(!str) return;
	Tkl_Tooltip_EventObj=obj;
	Tkl_Tooltip_Show=true;
	
	var tFun = function(){
		showToolTip2(str,options);
	}
	setTimeout(tFun,100);
}
function showToolTip2(str,options) 
{
	if(!Tkl_Tooltip_Show){return};
	if(!options) options = {};
	var obj=Tkl_Tooltip_EventObj;
	if(str==""){return};
	var t=obj.offsetTop;
	var l=obj.offsetLeft;
//	document.title = options.left
	var h=obj.offsetHeight;
	while(obj=obj.offsetParent){
		t+=obj.offsetTop;
		l+=obj.offsetLeft;
	}
	if(options.left) l = options.left;
	if(options.top) t = options.top;	
	$('tkl_ToolTip').style.top=t+h+5;
	$('tkl_ToolTip').style.left=l;
	$('tkl_ToolTip').style.visibility="visible";
	$('tkl_ToolTip_Content').innerHTML=str;
}

function Tkl_Tooltip_Mouseout()
{
	Tkl_Tooltip_MouseIn = false;
}
//函数：隐藏标注
function hiddenToolTip()
{
	
	if(Tkl_Tooltip_MouseIn)
	{
		setTimeout(hiddenToolTip,10);
		return false;
	}
	Tkl_Tooltip_Show=false;
	$('tkl_ToolTip').style.visibility="hidden";
	$('tkl_ToolTip_Content').innerHTML="";
}

initToolTip();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//帮助信息提示类
function TipClass(pTime,pCloseTime)
{
	
	this.time = (pTime || 100);
	this.closeTime = parseInt(pCloseTime,0) * 1000;	
	this.isOver = false;
	this.createTipWindow = function(pId,options)
	{
		options=options || {};
		var oDiv = $C('span');
		//oDiv.style.border = '1px red solid';
		if(pId){
			if($(pId)){
				$(pId).show();
				IndexClass.setMaxIndex($(pId));
				return false;
			}
			oDiv.id = pId;
			
		}
		
		oDiv.style.display = 'none';
		document.body.appendChild(oDiv);
		if(options.html){
			oDiv.innerHTML = options.html;
			if(typeof options.callback == 'function')
			{
				try{options.callback(oDiv);}catch(e){}
			}
		}else
		{
			if(!options.xslt){				
				try{options.callback(oDiv);}catch(e){}
				return null;
			} 
			var oXml = null,oXslt=null;
			if(!options.xml)  oXml = createXmlDoc();
			else if(typeof options.xml == 'string')
			{
				new Ajax.Request(options.xml,{method:'get',
					onSuccess:function(o){
						oXml = o.responseXML;	
						Success();
					}
				});
			}else
			{
				oXml = options.xml;	
				Success();
			}
			if(typeof options.xslt == 'string'){
				new Ajax.Request(options.xslt,{method:'get',  
					onSuccess:function(o){//alert(pReturn.responseText)
						oXslt = o.responseXML;	
						Success();
					}	
				});
			}else{
				oXslt = options.xslt;
				Success();
			}
			function Success()
			{
				if(!oXml || !oXslt) return false;				
				PubFun.insertBottom(oDiv,PubFun.transitionXslt(oXml,oXslt));//加入到页面中
				try{options.callback(oDiv);}catch(e){}
			}
		}		
	};
	this.closeWin = function(pObj)
	{
		if(!$(pObj)) return false;
		var _this = this;			
		var funBefor = pObj.BeforClose;
		var funAfter = pObj.afterClose;		
		try{
			if(typeof funBefor == 'function')funBefor(pObj);			
		}catch(e){}
		
		var oCloses = document.getElementsByClassName('jsTipClose',pObj);
				
		$A(oCloses).each(function(o){
			if(o._click)Event.stopObserving(o,'click',o._click);
		});	
		
		var tHeight = pObj.offsetHeight;
		var tFilter = 100;
	//	alert(_this.closeWin.caller)
		var tHandle = function(){
			if(_this.isOver){
				clearTimeout(tCloseWin);				
				tCloseWin = window.setTimeout(tHandle,100);	
				return;
				
			}
			if(tFilter <= 0){
				
				var obj = _this.obj;
				if(obj)var tOldHeight = obj.offsetHeight;
				clearTimeout(tCloseWin);				
				Element.remove(pObj);				
				if(obj)
				{
					try{
						obj.style.height = (tOldHeight - tHeight) + 'px';
						obj.style.top = (Position.cumulativeOffset(obj)[1] + tHeight) + 'px';		
						if(obj.childNodes && obj.childNodes.length == 0) Element.remove(obj);
					}catch(e){}
				}		
				try{
					if(typeof funAfter == 'function')funAfter();
				}catch(e){}
				return;
			}
			Element.setOpacity(pObj,tFilter/100);
			tFilter -= 10;
			tCloseWin = window.setTimeout(tHandle,100);	
		}
		var tCloseWin = window.setTimeout(tHandle,100);		
		
	};
	//指定位置显示
	this.showWinFollow = function(options)
	{	
		options = options || {};
		if(!options.obj) return false;
		var obj = $(options.obj);
		if(!obj) return false;
		var _this = this;
		var oCloses = document.getElementsByClassName('jsTipClose',obj);				
		$A(oCloses).each(function(o){
			Event.observe(o,'click',o._click=function(){_this.closeWin(obj);});
		});	
		var tLeft = options.left;
		var tTop = options.top;
		PubFun.absolutize(obj);
		obj.show();
		try{
			var tIframe = document.getElementsByClassName('overlayFrame',obj);
			$A(tIframe).each(function(x){
				x.hide();
				x.style.height  = (obj.offsetHeight -5) + 'px';	
				x.show();
			})
		}catch(E){}
		if(options.parentElement)
		{
			if(!tLeft || isNaN(tLeft))
			{
				tLeft = Position.cumulativeOffset(options.parentElement)[0] + options.parentElement.offsetWidth;
				
				if(tLeft +  obj.offsetWidth > PubFun.getPageSize()[2] )
				{
					tLeft -= obj.offsetWidth;
				}
			}
			if(!tTop || isNaN(tTop))
			{
				tTop = Position.cumulativeOffset(options.parentElement)[1] + options.parentElement.offsetHeight;
				
				if(tTop +  obj.offsetHeight > PubFun.getPageSize()[3] )
				{
					tTop -= (obj.offsetHeight + options.parentElement.offsetHeight);
				}
			}
		}else
		{
			if(!tLeft || isNaN(tLeft))
			{//alert(PubFun.getPageSize()[1])
				tTop = Math.round(PubFun.getPageSize()[3] /2 - obj.offsetHeight / 2 + PubFun.getPageScroll().Y);
				tLeft = Math.round(PubFun.getPageSize()[2] /2 - obj.offsetWidth / 2 + PubFun.getPageScroll().X);
				tTop = Math.max(tTop,0);
				tLeft = Math.max(tLeft,0);
			}
		}
		
		obj.style.left = tLeft + 'px';
		obj.style.top = tTop + 'px';
		IndexClass.setMaxIndex(obj);
		if(this.closeTime && this.closeTime > 0)
		setTimeout(function(){Element.remove(obj)},this.closeTime);
		
	};
	//在右下角显示
	this.showWin = function(pObj,pOpacity)
	{				
		if(!pObj) return false;
		var _this = this;
		this.obj = $C('span');
		var obj = this.obj;
		var initWidth = 0;
		var initHeight = 0;
		if(pObj instanceof Array){
			pObj.each(function(o){
				var oChild = $(o)
				if(!oChild) return false;
				var oCloses = document.getElementsByClassName('jsTipClose',oChild);
				
				$A(oCloses).each(function(o){
					Event.observe(o,'click',o._click=function(){_this.closeWin(oChild);});
				});				
				oChild.show();
			
				oChild.style.marginBottom = '3';
				oChild.style.width = oChild.offsetWidth;
				if(initWidth < oChild.offsetWidth) initWidth = oChild.offsetWidth;				
				initHeight += oChild.offsetHeight;	
				try{
					var tIframe = document.getElementsByClassName('overlayFrame',oChild);
					$A(tIframe).each(function(x){
						x.hide();
						x.style.height  = (oChild.offsetHeight -5) + 'px';		
						x.show();
					})
				}catch(E){}
				obj.appendChild(oChild);
			
				
			});
		}else
		{
			var tObj = $(pObj);
			if(!tObj) return false;
			var oCloses = document.getElementsByClassName('jsTipClose',tObj);
				
			$A(oCloses).each(function(o){
				Event.observe(o,'click',o._click = function(){_this.closeWin(tObj);});
			});			
			tObj.show();
			tObj.style.marginBottom = '1';			
			initWidth = tObj.offsetWidth;
			initHeight = tObj.offsetHeight;	
			tObj.style.width = initWidth;			
			try{
				var tIframe = document.getElementsByClassName('overlayFrame',tObj);
				$A(tIframe).each(function(x){
					x.hide();
					x.style.height  = (tObj.offsetHeight -5) + 'px';	
					x.show();
				})
			}catch(E){}
			
			obj.appendChild(tObj);
		}
		
		obj.style.display = 'none';
		obj.style.height = '1px';
		obj.style.width = initWidth + 'px';
		obj.style.overflow = 'hidden';
		IndexClass.setMaxIndex(obj);
		document.body.appendChild(obj);
		//透明滤镜
		if(pOpacity){
			try{
				Element.setOpacity(obj,pOpacity);
			}catch(e){}
		}		
		//绝对定位	
		PubFun.absolutize(obj);
		
		var clientW = (document.documentElement.clientWidth || document.body.clientWidth);
		var clientH = (document.documentElement.clientHeight || document.body.clientHeight);
		var scollLeft = (document.documentElement.scrollLeft || document.body.scrollLeft);
		var scollTop = (document.documentElement.scrollTop || document.body.scrollTop);
		
		
		var x = clientW + scollLeft - initWidth -10,y = clientH  + scollTop ,y1 = clientH + scollTop - initHeight -10;		
		this.moveTo(x,y);	
		
		obj.show();	
		
		var moveWindow = function()
		{
			if(y1 >= y){
				clearTimeout(moveTimer);
				if(_this.closeTime && _this.closeTime > 0){
					setTimeout(function(){_this.closeWin(obj);},_this.closeTime);
					obj.onmouseover = function(){_this.isOver = true};
					obj.onmouseout = function(){_this.isOver = false};
				}
				return;
			}else
			{
				y -= 10;				
				obj.style.height =  (parseInt(obj.style.height) + 10) + 'px';				
				_this.moveTo(x,y);				
			}
		}
		var moveTimer = window.setInterval(moveWindow,this.time);
	}
	this.moveTo = function(x, y)
	{	
		if(null != this.obj)
		{
			this.obj.style.left = x + "px";
			this.obj.style.top = y + "px";
		}
	};
}

