// Detect if the browser is IE or not.
// If it is not IE, we assume that the browser is NS.
var IE = document.all?true:false
var backColor = new Array();


// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE)


// Set-up to use getMouseXY function onMouseMove
document.onmousemove = getMouseXY;


var gradient = 255
var gradientDir = 1
var gradientInc = 4

var red = 0xFF
var green = 0xCC
var blue = 0

var redA = 0xFF
var greenA = 0xCC
var blueA = 0

var redB = 0
var greenB = 0x33
var blueB = 0x99

var redS = 'FF'
var greenS = 'CC'
var blueS = '00'

function setBGcolorEndpoints (rA,gA,bA, rB,gB,bB) {
	redA = rA; greenA = gA; blueA = bA;
	redB = rB; greenB = gB; blueB = bB;
}

// Main function to handle mouse movements
//	we actually don't look at the coordinates, but use each call to inc/decrement the gradient index
function getMouseXY(e) {
	// compute RGB values from gradient index
/*	red   = red1	//gradient
	green = (gradient / 255) * (204 - 51) + 51
	blue  = ((255 - gradient) / 255) * 153
 */
	red 	= (gradient / 0xFF) * (redA 	 	- redB) 		+ redB
	green	= (gradient / 0xFF) * (greenA 	- greenB) 	+ greenB
	blue 	= (gradient / 0xFF) * (blueA  	- blueB) 		+ blueB
  
  with (Math) {
    red   = floor (red)
    green = floor (green)
    blue  = floor (blue)
  }
  
	
	// convert RGB values to strings
  with (String) {
		redS   = red.toString(16)
		greenS = green.toString(16)
		blueS  = blue.toString(16)
		if (redS.length == 1)
		{
      redS = '0' + redS
		}
		if (greenS.length == 1)
		{
      greenS = '0' + greenS
		}
		if (blueS.length == 1)
		{
      blueS = '0' + blueS
		}
  }
    
  
  // change background color depending on mouse position
  document.bgColor = '#' + redS + greenS + blueS;
	
	
	// compute new gradient index (post-mod to avoid initial change
  if (gradientDir == 0)
	{
		gradient += gradientInc
		if (gradient > 255)
		{
			gradient = 255
			gradientDir = 1
		}
	}
	else
	{
		gradient -= gradientInc
		if (gradient < 0)
		{
			gradient = 0
			gradientDir = 0
		}
	}
		

  return true
}
