var s, c1, c2, r1, g1, b1, r2, g2, b2;
var fTimeout, fObj, fSteps = 25, fDelay = 5;

function Fade(obj, color1, color2) {
  if (fTimeout) {
    clearTimeout(fTimeout);
    if (fObj) fObj.style.backgroundColor = c2;
  }
  fObj = obj; c1 = color1; c2 = color2;
  r1 = eval('0x' + c1.substring(0,2));
  g1 = eval('0x' + c1.substring(2,4));
  b1 = eval('0x' + c1.substring(4,6));
  r2 = eval('0x' + c2.substring(0,2));
  g2 = eval('0x' + c2.substring(2,4));
  b2 = eval('0x' + c2.substring(4,6));
  //s = 0;
  DoFade();
}

function DoFade() {
  //var d = s/fSteps, m = 1 - d;
  fObj.style.backgroundColor = "#" +
    //Dec2Hex(r1 * m + r2 * d) +
    //Dec2Hex(g1 * m + g2 * d) +
    //Dec2Hex(b1 * m + b2 * d);
    Dec2Hex(r2) +
    Dec2Hex(g2) +
    Dec2Hex(b2);
  //if (s < fSteps) fTimeout = setTimeout('DoFade()', fDelay);
  //s++;
}

function Dec2Hex(Dec) {
  var hexChars = new Array("0", "1", "2", "3", "4", "5", "6", "7",
                           "8", "9", "a", "b", "c", "d", "e", "f");
  var a = parseInt(Dec) % 16, b = (parseInt(Dec) - a)/16;
  var hex = "" + hexChars[b] + hexChars[a];
  return hex;
}

function SetFadeState(fadeElement)
{
	var elementColor = checkItemColor(fadeElement);
	if (elementColor == '#04ffcc' || elementColor == '#ccffcc')
	{
		return;
	}
	fadeElement = document.getElementById(fadeElement);
	for (var i = 0; i < fadeElement.cells.length; i++)
	{
		Fade(fadeElement.cells[i], 'D8E5F2', 'ffffff');
	}
}

function UnsetFadeState(fadeElement, flag)
{
	var elementColor = checkItemColor(fadeElement);
	if ((elementColor == '#04ffcc' || elementColor == '#ccffcc') && flag != 1)
	{
		return;
	}
	fadeElement = document.getElementById(fadeElement);
	for (var i = 0; i < fadeElement.cells.length; i++)
	{
		Fade(fadeElement.cells[i], 'ffffff', 'D8E5F2');
	}
}

function SetCheckedState(fadeElement)
{
	var elementColor = checkItemColor(fadeElement);
	if (elementColor == '#04ffcc' || elementColor == '#ccffcc')
	{
		UnsetFadeState(fadeElement, 1);
		return;
	}
	fadeElement = document.getElementById(fadeElement);
	for (var i = 0; i < fadeElement.cells.length; i++)
	{
		Fade(fadeElement.cells[i], 'D8E5F2', 'CCFFCC');
	}
}


function UnsetCheckedState(fadeElement)
{
	fadeElement = document.getElementById(fadeElement);
	for (var i = 0; i < fadeElement.cells.length; i++)
	{
		Fade(fadeElement.cells[i], 'CCFFCC', 'D8E5F2');
	}
}

function setPointer(status, element)
{
	switch (status)
	{
		case 'click' : //alert(1);
		               SetCheckedState(element);
		               break;
		case 'over' :  //alert(2);
					   SetFadeState(element);
					   break;
		case 'out' :   //alert(3);
					   UnsetFadeState(element);
		 			   break;
	}
}

function checkItemColor(element)
{
	element = document.getElementById(element);
	strColor = new String(element.cells[0].style.backgroundColor);
	if (strColor.search('#') != -1)
	{
		return strColor;
	}
	if (strColor.length > 0)
	{
		strColorMod = strColor.substring(5, strColor.length-1);
		rgb = strColorMod.split(', ');
		return '#'+Dec2Hex(rgb[0])+Dec2Hex(rgb[1])+Dec2Hex(rgb[2]);
	}
		
	return 0;
}