﻿/*
Watson's HintScript - скрипт всплывающих подсказок на языке JavaScript
Copyright © VACion, 2009

Автор скрипта - VACion, ICQ#: 6-343-207, e-mail: vacion(at)li.ru.

Подробная информация: http://vacionlib.org.ru/forum/18-168-1
*/

var wHint=function()
{
	this.wHI="";this.wST=0;this.wHT=0;this.wHE=[],this.aIE=false;var wHI,wST,wTMT,wHT,wHE,wLT,pX,pY,wHC=document.createElement("div"),html=document.documentElement,body=document.body,aw,ah,iCh=function(n,p){
		var a=p.getElementsByTagName('*'),i;for(i=0;i<a.length;i++){if(a[i]==n){return true;}}return false;
	},pu=function(){
		wHC.style.left=gr(wHC.clientWidth,0);
		wHC.style.top=gr(wHC.clientHeight,1);
	},ey=function(){wHC.style.display="";pu();if(wHT>-1){wTMT=setTimeout(function(){er(1);},wHT);}
	},GFT=function(t){var ct=t;while(ct){if(ct.wHTitle){return(ct);}ct=ct.parentNode;}},GWH=function(){
		aw=html.clientWidth||body.clientWidth||window.innerWidth||aw||0;ah=html.clientHeight||body.clientHeight||ah||0;
	},fE=function(e){
		if(e.pageX==null&&e.clientX!=null){e.pageX=e.clientX+(html.scrollLeft||body.scrollLeft||0)-(html.clientLeft||0);e.pageY=e.clientY+(html.scrollTop||body.scrollTop||0)-(html.clientTop||0);}pX=e.pageX;pY=e.pageY;
	},er=function(n){if(!n){wLT=null};if(wTMT){clearTimeout(wTMT);}wHC.style.display="none";
	},gr=function(a,b){
		GWH();u=pX;l=pY;cw=aw+(html.scrollLeft||body.scrollLeft||0);ch=ah+(isie?(html.scrollTop||body.scrollTop||0):0);if(b==0){return((u+a)>cw?(cw-a):u);}if(b==1){return((l+a+16)>ch?(ch-a):(l+16));}
	},agent=navigator.userAgent.toLowerCase(),isie=((agent.indexOf("msie")!=-1)&&(agent.indexOf("opera")==-1)),oldselection="";
	this.startWH=function(){
		wHI=this.wHI;wHE=this.wHE;GWH();wST=this.wST;wHT=this.wHT;
		wHC.style.backgroundColor="#ffffff";
		wHC.style.border="0px";
		wHC.style.padding="0px";
		wHC.style.display="none";
		wHC.style.position="absolute";
		wHC.style.zindex="1500";
		if(isie){document.body.onload=function(o){o=o?o:function(){};return(function(e){o(e);document.body.appendChild(wHC);});}(document.body.onload);}else{document.body.appendChild(wHC);}
		for(i=0;i<wHE.length;i++){m=document.getElementsByTagName(wHE[i]);for(j=0;j<m.length;j++){if(!m[j].title){continue;}m[j].wHTitle=m[j].title;m[j].title="";}}
		document.onmousemove=function(o){o=o?o:function(){};return(function(e){
			o(e);e=e||window.event;fE(e);
			var target=GFT(e.target||e.srcElement);
			if(target&&wLT!=target){
				target.wHMember=0;
				if(target.wHTitle){
					wLT=target;
					if(!wLT.wHMember){
						er(1);wHC.innerHTML=wHI.replace("$H$",wLT.wHTitle);
						if(wST==0){ey();}else{wTMT=setTimeout(ey,wST);}
						wLT.wHMember=1;}}
				if(wLT&&wLT!=target){er();}
			}else if(target&&wLT==target&&wLT.wHTitle){pu();
			}else if(wLT){er();}});}(document.onmousemove);
		document.onclick=function(o){o=o?o:function(){};return(function(e){o(e);e=e||event;var target=GFT(e.target||e.srcElement);if(target){er(1);}});}(document.onclick);
	};
}
//Инициализация
var wHint1=new wHint;

//Настройки
 //Элементы, к которым необходимо применять скрипт
wHint1.wHE=['div','span','input','img','a'];
 //HTML-код всплывающей подсказки ($H$ - текст подсказки)
wHint1.wHI='<div class="wHint">$H$</div>';
 //Задержка подсказки перед появлением в миллисекундах(1/1000 секунды), при 0 появляется сразу
wHint1.wST=100;
 //Задержка подсказки перед исчезновением в миллисекундах, при -1 не будет исчезать до убирания курсора мыши
wHint1.wHT=10000;

//Запуск скрипта
wHint1.startWH();