var ss, so, startOpacity = 0, finalOpacity = 95, opacitySpeed = 10, boxOnSpeed = 0, boxOffSpeed = 500, turnedOff = 0;
var currentOpacity = startOpacity;
var boxwidth = 250;
var cancelTimeout = 0;

function getScreenDimensions() 
{
	var frameWidth,frameHeight;

	if (self.innerHeight) 
	{
		frameWidth = self.innerWidth;
		frameHeight = self.innerHeight;
	} 
	else if (document.documentElement && document.documentElement.clientHeight) 
	{
		frameWidth = document.documentElement.clientWidth;
		frameHeight = document.documentElement.clientHeight;
	} 
	else if (document.body) 
	{
		frameWidth = document.body.clientWidth;
		frameHeight = document.body.clientHeight;
	}
	
	dims = new Array();
	
	dims[0] = frameWidth;
	dims[1] = frameHeight;
	
	return dims;
}

function stoptimeout() 
{
	if (ss) 
	{
		sy = clearTimeout(ss);
		ss = null;
	}
}

function showBox( e ) 
{
	boxToFloat = 'floatBox';

	if (this.id.length == 4) 
	{
		elementStart = this.id.charAt( this.id.length - 1 );
	} 
	else if (this.id.length == 5) 
	{
		elementStart = this.id.charAt( this.id.length - 2 ) + this.id.charAt( this.id.length - 1 );
	} 
	else 
	{
		elementStart = this.id.charAt( this.id.length - 3 ) + this.id.charAt( this.id.length - 2 ) + this.id.charAt( this.id.length - 1 );
	}
	
	
	if (elementStart != 'Box') 
	{
		cancelTimeout = 1;
	
		try 
		{
			ss = clearTimeout( ss );		
		}
		catch(err) 
		{
		}
		
		if (tips[elementStart].length > 0) 
		{
			document.getElementById( 'tooltip' ).innerHTML = tips[elementStart][0];	

			boxDisplay( boxToFloat, 1, tips[elementStart][1], tips[elementStart][2], tips[elementStart][3] );	
		} 
		else 
		{
			boxDisplay(boxToFloat, 0, 0, 0);
		}
	}
	
	if (!e) 
		var e = window.event;
		
	var posx = 0;
	var posy = 0;
	
	if (!e) 
		var e = window.event;
		
	if (e.pageX || e.pageY) 
	{
		posx = e.pageX;
		posy = e.pageY;
	} 
	else if (e.clientX || e.clientY) 
	{
		if( document.documentElement.scrollTop )
		{
			posx = e.clientX + document.documentElement.scrollLeft;
			posy = e.clientY + document.documentElement.scrollTop;
		}
		else
		{
			posx = e.clientX + document.body.scrollLeft;
			posy = e.clientY + document.body.scrollTop;
		}
	}	
	
	screenDims = getScreenDimensions();			
	posx = posx;
	posy = posy + 15; 
	
	if (posx + boxwidth + 20 > screenDims[0]) 
		posx = posx - ( ( posx + boxwidth ) - screenDims[0] ) - 25;	
		
	//alert( posx + ", " + posy + " " + document.documentElement.scrollTop );
		
	document.getElementById('myiframe').style.top = posy+'px';
	document.getElementById('myiframe').style.left = posx+'px';
	document.getElementById('myiframe').style.height = document.getElementById(boxToFloat).offsetHeight;
	document.getElementById(boxToFloat).style.left = posx+'px';
	document.getElementById(boxToFloat).style.top = posy+'px';
}		

function boxDisplay(boxToFloat, status, maxx, maxy, animate) 
{
	if( document.getElementById(boxToFloat).style.display == "block" )
		maxy = document.getElementById( 'tooltip' ).offsetHeight;
		
	if( currentOpacity != startOpacity ) 
	   currentOpacity = finalOpacity;

	if (status==1) 
	{
		turnedOff = 0;

		if (animate==1) 
		{
			so = setTimeout( "xpand( 0, 0, "+maxx+", "+maxy+" )", boxOnSpeed);	
		} 
		else 
		{
			document.getElementById( boxToFloat ).style.width = maxx+'px';
			document.getElementById( boxToFloat ).style.height = maxy+'px';
		}
		
		document.getElementById( boxToFloat ).style.width = maxx+'px';
		document.getElementById( boxToFloat ).style.height = maxy+'px';
		
		so = setTimeout("changeOpacity()", boxOnSpeed);
	} 
	else if (cancelTimeout==0) 
	{
		document.getElementById(boxToFloat).style.opacity = 0;
		document.getElementById(boxToFloat).style.display = 'none';
		document.getElementById('myiframe').style.display = 'none';	
		
		if (maxx > 0 && maxy > 0) 
		{
			document.getElementById(boxToFloat).style.width = 0;
			document.getElementById(boxToFloat).style.height = 0;
		}
		
		currentOpacity = startOpacity;
	}
	
	if (cancelTimeout==1) 
		cancelTimeout = 0;
}

function xpand(x,y,maxx,maxy) 
{	
	if (turnedOff == 0) 
	{
		speed = 10;
		xtoy = maxx/maxy;
		document.getElementById(boxToFloat).style.width = x+'px';
		document.getElementById(boxToFloat).style.height = y+'px';
		
		if (x < maxx) 
		{
			x = x + Math.round(speed * xtoy);
		}
		
		if (y < maxy) 
		{
			y = y + speed;
		}
		
		setTimeout("xpand("+x+","+y+","+maxx+","+maxy+")",1);
	}
}

function changeOpacity() 
{
	if (turnedOff == 0) 
	{
		document.getElementById('myiframe').style.display = 'block';
		document.getElementById(boxToFloat).style.display = 'block';

		//document.getElementById( boxToFloat ).style.height = document.getElementById( 'tooltip' ).offsetHeight + "px";

		if (document.getElementById) 
		{
			if (finalOpacity != startOpacity) 
			{
				currentOpacity = currentOpacity + opacitySpeed;	
			
				if (document.all) //IE
				{
					document.getElementById(boxToFloat).style.filter = "alpha(opacity=" + currentOpacity + ")"; 
				} 
				else //mozilla
				{
					document.getElementById(boxToFloat).style.opacity = currentOpacity / 100;
				}
				
				if (currentOpacity < finalOpacity) 
				{
					so = setTimeout("changeOpacity()", 100);
				} 
				else 
				{
					if (document.all) //IE
					{
						document.getElementById(boxToFloat).style.filter = "alpha(opacity=" + finalOpacity + ")"; 
					} 
					else //mozilla
					{
						document.getElementById(boxToFloat).style.opacity = finalOpacity / 100;
					}
					
					so = clearTimeout(so);
					
					currentOpacity = finalOpacity;
				}
			} 
			else 
			{
				if (document.all) //IE
				{
					document.getElementById(boxToFloat).style.filter = "alpha(opacity=" + finalOpacity + ")"; 
				} 
				else //mozilla
				{
					document.getElementById(boxToFloat).style.opacity = finalOpacity / 100;
				}				
				
				currentOpacity = finalOpacity;				
			}
		}
	}
}

function initTips() 
{	
	for ( i=0; i < tips.length; i++ ) 
	{
		try
		{
			document.getElementById( 'box' + i ).onmousemove = showBox;
			document.getElementById( 'box' + i ).onmouseout = starttimeout;
		}
		catch( err )
		{
			// There is a gap in the number of displayed tooltips.
			// Ignore and continue.
		}
	}
	
	/*if (navigator.appName == 'Microsoft Internet Explorer') //IE frame thingy
	{
		//document.getElementById('myiframe').style.width = boxwidth+'px';
	}*/
	
	document.getElementById( 'floatBox' ).onmousemove = showBox;
	document.getElementById( 'floatBox' ).onmouseout = starttimeout;	
}

function starttimeout() 
{
	turnedOff = 1;
	
	if( currentOpacity != finalOpacity ) 
		currentOpacity = startOpacity;

	ss = setTimeout("boxDisplay('floatBox',0)",boxOffSpeed);
}

function checkMessage() 
{
	cStatus = document.getElementById('addMessage').checked;
	
	if (cStatus == false) 
	{
		document.getElementById('message').disabled = true;
		document.getElementById('message').style.backgroundColor = '#F0F0F0';
		document.getElementById('message').style.border = '1px solid #999999';
	} 
	else 
	{
		document.getElementById('message').disabled = false;
		document.getElementById('message').style.backgroundColor = '#FFFFFF';
	}
}

