// ***************************************************************************
// fade.js
// by i am jack's design (http://www.iamjacksdesign.com)
// last modified: 2/20/05
// ***************************************************************************

// FADE.JS WORKS OFF OF RGB VALUES FOR IT'S BASE COLOR. 
// SET THE THREE VARIABLES BELOW TO THE RED, GREEN AND BLUE VALUES FOR YOUR 
// DESIRED BASE COLOR.

var FADE_RED = 150;
var FADE_GREEN = 239;
var FADE_BLUE = 131;

// THE THREE VARIABLES BELOW DEFINE THE MOVEMENT OF THE FADE:
//
// 		FADE_HOLD 	= Time (in milliseconds) that your base color lasts
//					  before the fade begins.
//		FADE_SPEED 	= Time (in milliseconds) that each color of the fade lasts
//		FADE_STEP	= Increase in the RGB value per color change

var FADE_HOLD = .5 * 1000;
var FADE_SPEED = .15 * 1000;
var FADE_STEP = 5;
var FADE_PERCENT = .1;


// Enhancements by Dana Adams - www.studiowerks.com
// Target RGB color values

var TARGET_RED = 255;
var TARGET_GREEN = 255;
var TARGET_BLUE = 255;


// Determine if the fade step is up or down, and morph the step into a percentage change...

if (TARGET_RED>=FADE_RED) {
	FADE_RED_STEP = (TARGET_RED - FADE_RED) * FADE_PERCENT;
	RED_DIRECTION = 'up';
} else {
	FADE_RED_STEP = (FADE_RED - TARGET_RED) * FADE_PERCENT * -1;
	RED_DIRECTION = 'down';
}

if (TARGET_BLUE>=FADE_BLUE) {
	FADE_BLUE_STEP = (TARGET_BLUE - FADE_BLUE) * FADE_PERCENT;
	BLUE_DIRECTION = 'up';
} else {
	FADE_BLUE_STEP = (FADE_BLUE - TARGET_BLUE) * FADE_PERCENT * -1;
	BLUE_DIRECTION = 'down';
}

if (TARGET_GREEN>=FADE_GREEN) {
	FADE_GREEN_STEP = (TARGET_GREEN - FADE_GREEN) * FADE_PERCENT;
	GREEN_DIRECTION = 'up';
} else {
	FADE_GREEN_STEP = (FADE_GREEN - TARGET_GREEN) * FADE_PERCENT * -1;
	GREEN_DIRECTION = 'down';
}


// FOR BASIC FUNCTIONALITY, LEAVE EVERYTHING BELOW THIS POINT AS IS.
var fade_r = FADE_RED
var fade_g = FADE_GREEN
var fade_b = FADE_BLUE

function fade(container)
{
	if (fade_r == 0) fade_r == FADE_RED;
	if (fade_g == 0) fade_g == FADE_GREEN;
	if (fade_b == 0) fade_b == FADE_BLUE;
		
	if (fade_r != TARGET_RED || fade_g != TARGET_GREEN || fade_b != TARGET_BLUE)
	{	
		document.getElementById(container).style.background = "rgb(" + fade_r + "," + fade_g + "," + fade_b + ")";
		
		if ((fade_r == FADE_RED) && (fade_g == FADE_GREEN) && (fade_b == FADE_BLUE))
		{
			setTimeout('fade("' + container + '")', FADE_HOLD)
		}
		else
		{	
			setTimeout('fade("' + container + '")', FADE_SPEED)
		}
	
		if (((RED_DIRECTION=='up')&&((fade_r >= TARGET_RED) || (fade_r + FADE_RED_STEP > TARGET_RED)))||((RED_DIRECTION=='down')&&((fade_r <= TARGET_RED) || (fade_r + FADE_RED_STEP < TARGET_RED)))) fade_r = TARGET_RED; else fade_r = fade_r + FADE_RED_STEP;
		if (((GREEN_DIRECTION=='up')&&((fade_g >= TARGET_GREEN) || (fade_g + FADE_GREEN_STEP > TARGET_GREEN)))||((GREEN_DIRECTION=='down')&&((fade_g <= TARGET_GREEN) || (fade_g + FADE_GREEN_STEP < TARGET_GREEN)))) fade_g = TARGET_GREEN; else fade_g = fade_g + FADE_GREEN_STEP;
		if (((BLUE_DIRECTION=='up')&&((fade_b >= TARGET_BLUE) || (fade_b + FADE_BLUE_STEP > TARGET_BLUE)))||((BLUE_DIRECTION=='down')&&((fade_b <= TARGET_BLUE) || (fade_b + FADE_BLUE_STEP < TARGET_BLUE)))) fade_b = TARGET_BLUE; else fade_b = fade_b + FADE_BLUE_STEP;

		fade_r = Math.ceil(fade_r);
		fade_g = Math.ceil(fade_g);
		fade_b = Math.ceil(fade_b);

	} else {	
		document.getElementById(container).style.background = "rgb(" + fade_r + "," + fade_g + "," + fade_b + ")";
		fade_r = FADE_RED;
		fade_g = FADE_GREEN;
		fade_b = FADE_BLUE;
	}
}
