// Simple follow the mouse script
var timeouts;

function alertSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  var theDimensions = [];
  theDimensions['width'] = myWidth;
  theDimensions['height'] = myHeight;
  return theDimensions;
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  var scrolls = [];
  scrolls['x'] = scrOfX;
  scrolls['y'] = scrOfY;
  return scrolls;
}


function followDiv(divName)
{

var dimensions = alertSize();
var scrolls = getScrollXY();
var theHeight = dimensions['height'] + scrolls['y'];
var theDiv = document.getElementById(divName);
var divHeight = theDiv.offsetHeight;
//alert("The div height = " + divHeight);
	
// (must be position:absolute)
var offX = 15;          // X offset from mouse position
var offY = 0;
var padding = 10;          // Y offset from mouse position

function mouseX(evt) 
	{
	if (!evt) evt = window.event; 
	if (evt.pageX) return evt.pageX; 
	else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return 0;
	}
function mouseY(evt) 
	{
	if (!evt) evt = window.event; 
	if (evt.pageY) return evt.pageY; 
	else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return 0;
	}

function follow(evt) 
	{
	if (document.getElementById) 
		{
		var obj = document.getElementById(divName).style; ;
		var newLeft = parseInt(mouseX(evt))+offX;
		
		var bottom = parseInt(mouseY(evt)) + offY + divHeight + padding;
		if(bottom > theHeight)
			{
			var newTop = parseInt(mouseY(evt)) - (bottom - theHeight);
			}
		else
			{
			var newTop = parseInt(mouseY(evt))+offY;
			}
		obj.left = newLeft + 'px';
		obj.top = newTop + 'px';
		}

	}
document.onmousemove = follow;
}

function toggleIt(divName)
{
if(document.getElementById(divName).style.visibility == "visible")
	{
	hideIt(divName);
	}
else
	{
	showIt(divName);
	}
}

function showIt(divName,imgId)
{
//alert("the div name is: " + document.getElementById(divName));
followDiv(divName);
changeOpac(0,divName);
document.getElementById(divName).style.visibility = "visible";
imgId.onload = opacity(divName, 0, 100,500);
}

function hideIt(divName)
{
clearTimeout(timeouts);
changeOpac(0,divName);
document.getElementById(divName).style.visibility = "hidden";
document.getElementById(divName).style.left=0;
document.onmousemove = null;

}



function loadIt()
{
var ld=(document.all);
var ns4=document.layers;
var ns6=document.getElementById&&!document.all;
var ie4=document.all;
if (ns4)
	{
 	ld=document.loading;
	}
else if (ns6)
	{
 	ld=document.getElementById("loading").style;
	}
else if (ie4)
	{
 	ld=document.all.loading.style;
	}
function init()
	 {
	 if(ns4)
		{
		ld.visibility="hidden";
		}
	 else if (ns6||ie4) 
		{
		ld.display="none";
		}
	 }
}

//fade in and out
function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 
	var i;
    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            timeouts = setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            timeouts = setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
} 
