var x_offset_tooltip = 100;
var y_offset_tooltip = 50;

var ajax_tooltipObj = false;
var ajax_tooltipObj_iframe = false;

var ajax_tooltip_MSIE = false;
if(navigator.userAgent.indexOf('MSIE')>=0)ajax_tooltip_MSIE=true;


function ajax_showTooltip(externalFile,inputObj)
{
	if(!ajax_tooltipObj)
	{
		ajax_tooltipObj = document.createElement('DIV');
		ajax_tooltipObj.style.position = 'absolute';
		ajax_tooltipObj.id = 'ajax_tooltipObj';		
		document.body.appendChild(ajax_tooltipObj);

		var leftDiv = document.createElement('DIV');
		leftDiv.className='ajax_tooltip_arrow';
		leftDiv.id = 'ajax_tooltip_arrow';
		ajax_tooltipObj.appendChild(leftDiv);
		
		var contentDiv = document.createElement('DIV');
		contentDiv.className = 'ajax_tooltip_box';
		ajax_tooltipObj.appendChild(contentDiv);
		contentDiv.id = 'ajax_tooltip_box';
		
		if(ajax_tooltip_MSIE){	/* Create iframe object for MSIE in order to make the tooltip cover select boxes */
			ajax_tooltipObj_iframe = document.createElement('IFRAME');
			ajax_tooltipObj_iframe.style.position = 'absolute';
			ajax_tooltipObj_iframe.border='0';
			ajax_tooltipObj_iframe.frameborder=0;
			ajax_tooltipObj_iframe.style.backgroundColor='#FFF';
			ajax_tooltipObj_iframe.src = 'about:blank';
			contentDiv.appendChild(ajax_tooltipObj_iframe);
			ajax_tooltipObj_iframe.style.left = '0px';
			ajax_tooltipObj_iframe.style.top = '0px';
		}	
	}

	ajax_tooltipObj.style.display='block';
	ajax_loadContent('ajax_tooltip_box',externalFile);
	if(ajax_tooltip_MSIE){
		ajax_tooltipObj_iframe.style.width = ajax_tooltipObj.clientWidth + 'px';
		ajax_tooltipObj_iframe.style.height = ajax_tooltipObj.clientHeight + 'px';
	}

	ajax_positionTooltip(inputObj);
}

function ajax_positionTooltip(inputObj)
{
	var leftPos = (ajaxTooltip_getLeftPos(inputObj) + inputObj.offsetWidth);
		
	var topPos = ajaxTooltip_getTopPos(inputObj);
//	var tooltipWidth = document.getElementById('ajax_tooltip_box').offsetWidth +  document.getElementById('ajax_tooltip_arrow').offsetWidth; 
//	ajax_tooltipObj.style.left = leftPos + 'px';
//	ajax_tooltipObj.style.top = topPos + 'px';
	
	leftPos -= 400;
	
	ajaxTooltip_calcTop(leftPos, topPos);
}

function ajax_hideTooltip()
{
	if(ajax_tooltipObj) {
		ajax_tooltipObj.style.display='none';
		return true;
	}
	return false;
}

function ajaxTooltip_getTopPos(inputObj)
{		
  var returnValue = inputObj.offsetTop;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop;
  }
  return returnValue;
}

function ajaxTooltip_getLeftPos(inputObj)
{
  var returnValue = inputObj.offsetLeft;
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
  }
  return returnValue;
}


function ajaxTooltip_calcTop(x, y)
{
    oCanvas = document.getElementsByTagName(
          (document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY")[0];

    w_width = window.innerWidth ? window.innerWidth + window.pageXOffset : oCanvas.clientWidth + oCanvas.scrollLeft;
    w_height = window.innerHeight ? window.innerHeight + window.pageYOffset : oCanvas.clientHeight + oCanvas.scrollTop;

    t_width = window.event ? ajax_tooltipObj.clientWidth : ajax_tooltipObj.offsetWidth;
    t_height = window.event ? ajax_tooltipObj.clientHeight : ajax_tooltipObj.offsetHeight;

	var tooltipWidth = document.getElementById('ajax_tooltip_box').offsetWidth +  document.getElementById('ajax_tooltip_arrow').offsetWidth;
	var tooltipHeight = document.getElementById('ajax_tooltip_box').offsetHeight;
	
	//alert(tooltipHeight + " : " + t_height);
   /* if ((tooltipWidth) && (t_width > tooltipWidth)){
      ajax_tooltipObj.style.width = tooltipWidth + "px";
      t_width = window.event ? ajax_tooltipObj.clientWidth : ajax_tooltipObj.offsetWidth;
    }*/

    t_extra_width = 7;
    t_extra_height = 5;

    if (x+t_width+t_extra_width > w_width) ajax_tooltipObj.style.left = x - t_width - 5 + "px";
        else ajax_tooltipObj.style.left = x + 10 + "px";
    ajax_tooltipObj.style.top = y + 10 + "px";

    if (w_width>x+tooltipWidth)
      x = window.pageXOffset;
    else
      y=window.pageYOffset;
    while (x + t_width + t_extra_width > w_width)
    {
      x -= x + t_width + t_extra_width - w_width;
      ajax_tooltipObj.style.left = x + "px";
      t_width = window.event ? ajax_tooltipObj.clientWidth : ajax_tooltipObj.offsetWidth;
    }

    while (y + t_height + t_extra_height > w_height)
    {
      y -= y + t_height + t_extra_height - w_height;
      ajax_tooltipObj.style.top = y + "px";
      t_height = window.event ? ajax_tooltipObj.clientHeight : ajax_tooltipObj.offsetHeight;
	}
}
