var globalTooltipObj;

function formTooltip() {
	var tooltipDiv;
	var tooltipText;
	var tooltipContentDiv;
	var imagePath;
	var arrowImageFileRight;
	var arrowRightWidth;
	var arrowTopHeight;
	var tooltipWidth;
	var roundedCornerObj;
	var tooltipBgColor;
	var activeInput;
	var tooltipCornerSize;
	var displayArrow;
	var tooltipDisabled;
	var isMSIE;
	var tooltipIframeObj;
	var pageBgColor;
	var currentTooltipObj;
	this.currentTooltipObj = false,
	this.tooltipDiv = false,
	this.tooltipText = false;
	this.imagePath = 'img/';
	this.arrowImageFileRight = 'fleche-tooltip-right.gif';
	this.tooltipWidth = 150;
	this.tooltipBgColor = '#f6f8fa';
	this.activeInput = false;
	this.arrowRightWidth = 16;
	this.arrowTopHeight = 13;
	this.tooltipCornerSize = 10;
	this.displayArrow = true;
	this.tooltipDisabled = false;
	this.tooltipIframeObj = false;
	this.pageBgColor = '#FFFFFF';
	globalTooltipObj = this;
	if(navigator.userAgent.indexOf('MSIE')>=0)this.isMSIE = true; else this.isMSIE = false;
}

formTooltip.prototype = {
initFormFieldTooltip : function()
	{
		var formElements = new Array();
		var inputs = document.getElementsByTagName('li');
		for(var no=0;no<inputs.length;no++){
			var attr = inputs[no].getAttribute('info');
			if(!attr)attr = inputs[no].tooltipText;
			if(attr)formElements[formElements.length] = inputs[no];
		}
		window.refToFormTooltip = this;
		for(var no=0;no<formElements.length;no++){
			formElements[no].onmouseover = this.__displayTooltip;
		}
		this.addEvent(window,'resize',function(){ window.refToFormTooltip.__positionCurrentToolTipObj(); });
		
		this.addEvent(document.documentElement,'click',function(e){ window.refToFormTooltip.__autoHideTooltip(e); });
	}
	,
	setTooltipWidth : function(newWidth)
	{
		this.tooltipWidth = newWidth;
	}
	,		
	setArrowVisibility : function(displayArrow)
	{
		this.displayArrow = displayArrow;
	}
	,
	setTooltipBgColor : function(newBgColor)
	{
		this.tooltipBgColor = newBgColor;
	}
	,
	setTooltipCornerSize : function(tooltipCornerSize)
	{
		this.tooltipCornerSize = tooltipCornerSize;
	}
	,
	setTopArrowHeight : function(arrowTopHeight)
	{
		this.arrowTopHeight = arrowTopHeight;
	}
	,	
	setRightArrowWidth : function(arrowRightWidth)
	{
		this.arrowRightWidth = arrowRightWidth;
	}
	,	
	setPageBgColor : function(pageBgColor)
	{
		this.pageBgColor = pageBgColor;
	}
	,
	__displayTooltip : function()
	{
		if(globalTooltipObj.tooltipDisabled)return;
		var tooltipText = "<b>"+couper(this.innerHTML)+"</b><br><a onclick=\"alert('"+nettoyage(this.innerHTML)+"');\" title=\"Supprimer les espaces et la ponctuation\">A-Z</a> B C";//this.getAttribute('tooltipText');
		globalTooltipObj.activeInput = this;
		if(!tooltipText)tooltipText = this.tooltipText;
		globalTooltipObj.tooltipText = tooltipText;
		if(!globalTooltipObj.tooltipDiv)globalTooltipObj.__createTooltip();
		globalTooltipObj.__positionTooltip(this);
		globalTooltipObj.tooltipContentDiv.innerHTML = tooltipText;
		globalTooltipObj.tooltipDiv.style.display='block';
		if(globalTooltipObj.isMSIE){
			globalTooltipObj.tooltipIframeObj.style.height = (globalTooltipObj.tooltipDiv.clientHeight);
		}
	}
	,		
	__hideTooltip : function()
	{
		try{
			globalTooltipObj.tooltipDiv.style.display='none';
		}catch(e){
		}
	}
	,
 getSrcElement : function(e)
    {
    	var el;
		if (e.target) el = e.target;
			else if (e.srcElement) el = e.srcElement;
			if (el.nodeType == 3) // defeat Safari bug
				el = el.parentNode;
		return el;	
    }	
	,
	__autoHideTooltip : function(e)
	{
		if(document.all)e = event;
		var src = this.getSrcElement(e);
		if(src.tagName.toLowerCase().toLowerCase()!='li')this.__hideTooltip();

		var attr = src.getAttribute('info');
		if(!attr)attr = src.tooltipText;
		if(!attr){
			this.__hideTooltip();
		}	
	}
	,		
	__hideTooltipFromLink : function()
	{
		this.activeInput.focus();
		window.refToThis = this;
		setTimeout('window.refToThis.__hideTooltip()',10);
	}
	,
	disableTooltip : function()
	{
		this.__hideTooltipFromLink();
		this.tooltipDisabled = true;	
	}	
	,	
	__createTooltip : function()
	{
		this.tooltipDiv = document.createElement('div');
		this.tooltipDiv.style.position = 'absolute';
		if(this.displayArrow){
			var topDiv = document.createElement('div');
			topDiv.style.marginTop = '5px';
			var arrowDiv = document.createElement('img');
			arrowDiv.src = this.imagePath + this.arrowImageFileRight + '?rand='+ Math.random();	
			arrowDiv.style.display='block';
			topDiv.appendChild(arrowDiv);					
			topDiv.style.position = 'absolute';			
			this.tooltipDiv.appendChild(topDiv);	
		}
		var outerDiv = document.createElement('div');
		outerDiv.style.position = 'relative';
		outerDiv.style.zIndex = 1000;
		if(this.displayArrow){			
			outerDiv.style.left = this.arrowRightWidth + 'px';
		}
		outerDiv.id = 'formTooltipDiv';
		outerDiv.className = 'formTooltipDiv';
		outerDiv.style.backgroundColor = this.tooltipBgColor;
		this.tooltipDiv.appendChild(outerDiv);
		if(this.isMSIE){
			this.tooltipIframeObj = document.createElement('<iframe name="tooltipIframeObj" width="' + this.tooltipWidth + '" frameborder="no" src="about:blank"></iframe>');
			this.tooltipIframeObj.style.position = 'absolute';
			this.tooltipIframeObj.style.top = '0px';
			this.tooltipIframeObj.style.left = '0px';
			this.tooltipIframeObj.style.width = (this.tooltipWidth) + 'px';
			this.tooltipIframeObj.style.zIndex = 100;
			this.tooltipIframeObj.background = this.pageBgColor;
			this.tooltipIframeObj.style.backgroundColor= this.pageBgColor;
			this.tooltipDiv.appendChild(this.tooltipIframeObj);	
			if(this.displayArrow){
				this.tooltipIframeObj.style.left = (this.arrowRightWidth) +  'px';	
			}else{
				this.tooltipIframeObj.style.top = this.arrowTopHeight + 'px';	
			}
			setTimeout("self.frames['tooltipIframeObj'].document.documentElement.style.backgroundColor='" + this.pageBgColor + "'",500);
		}
		this.tooltipContentDiv = document.createElement('div');	
		this.tooltipContentDiv.style.position = 'relative';
		this.tooltipContentDiv.id = 'formTooltipContent';
		outerDiv.appendChild(this.tooltipContentDiv);
		document.body.appendChild(this.tooltipDiv);
		this.tooltipContentDiv = document.getElementById('formTooltipContent');
	}
	,
	addEvent : function(whichObject,eventType,functionName)
	{ 
	  if(whichObject.attachEvent){ 
	    whichObject['e'+eventType+functionName] = functionName; 
	    whichObject[eventType+functionName] = function(){whichObject['e'+eventType+functionName]( window.event );} 
	    whichObject.attachEvent( 'on'+eventType, whichObject[eventType+functionName] ); 
	  } else 
	    whichObject.addEventListener(eventType,functionName,false); 	    
	} 
	,
	__positionCurrentToolTipObj : function()
	{
		if(globalTooltipObj.activeInput)this.__positionTooltip(globalTooltipObj.activeInput);
	}
	,	
	__positionTooltip : function(inputObj)
	{	
		var offset = 0;
		if(!this.displayArrow)offset = 3;
		this.tooltipDiv.style.left = (this.getLeftPos(inputObj) + inputObj.offsetWidth + offset)+  'px';
		this.tooltipDiv.style.top = this.getTopPos(inputObj) + 'px';			
		this.tooltipDiv.style.width=this.tooltipWidth + 'px';
	}
	,
	getTopPos : function(inputObj)
	{		
	  var returnValue = inputObj.offsetTop;
	  while((inputObj = inputObj.offsetParent) != null){
	  	if(inputObj.tagName!='HTML'){
	  		returnValue += inputObj.offsetTop;
	  		if(document.all)returnValue+=inputObj.clientTop;
	  	}
	  } 
	  return returnValue;
	}	
	,
	getLeftPos : function(inputObj)
	{	  
	  var returnValue = inputObj.offsetLeft;
	  while((inputObj = inputObj.offsetParent) != null){
	  	if(inputObj.tagName!='HTML'){
	  		returnValue += inputObj.offsetLeft;
	  		if(document.all)returnValue+=inputObj.clientLeft;
	  	}
	  }
	  return returnValue;
	}
}
var tooltipObj = new formTooltip();