function hex2num(hex) {
	// Adapted from http://binnyva.blogspot.com/2006/02/color-fade-effect-using-javascript.html
	if(hex.charAt(0) == "#") { 
	hex = hex.slice(1);
	}
	hex = hex.toUpperCase();
	var hex_alphabets = "0123456789ABCDEF";
	var value = new Array(3);
	var k = 0;
	var int1,int2;
	for(var i=0;i<6;i+=2) {
	int1 = hex_alphabets.indexOf(hex.charAt(i));
	int2 = hex_alphabets.indexOf(hex.charAt(i+1));
	value[k] = (int1 * 16) + int2;
	k++;
	}
	return(value);
}

function num2hex(triplet) {
	var hex_alphabets = "0123456789ABCDEF";
	var hex = "#";
	var int1,int2;
	for(var i=0;i<3;i++) {
	int1 = triplet[i] / 16;
	int2 = triplet[i] % 16;

	hex += hex_alphabets.charAt(int1) + hex_alphabets.charAt(int2);
	}
	return(hex);
}

function fadeInAthForm(start_hex, stop_hex) {
 difference = 8;
 delay = 10;
 if (!start_hex) start_hex = "#ffff00";
 if (!stop_hex) stop_hex = "#ffffdd";
 id="athens-form";
 
 var ele = document.getElementById(id);
 if(!ele) return;
 var start= hex2num(start_hex);
 var stop = hex2num(stop_hex);
 
 for(var i=0;i<3;i++) {
  start[i] = Number(start[i]);
  stop[i] = Number(stop[i]);
 }

 for(var i=0;i<3;i++) {
  if (start[i] < stop[i]) {
   start[i] += difference;
   if(start[i] > stop[i]) start[i] = stop[i];//If we have overshot our target, make it equal - or it won't stop.
  }
  else if(start[i] > stop[i]) {
   start[i] -= difference;
   if(start[i] < stop[i]) start[i] = stop[i];
  }
 }

 var color = "rgb("+start[0]+","+start[1]+","+start[2]+")";
  ele.style.backgroundColor = color;
  ele.style.color = color;

 if((start[0] == stop[0]) && (start[1] == stop[1]) && (start[2] == stop[2])) return;

 start_hex = num2hex(start);

 window.setTimeout("fadeInAthForm('"+start_hex+"','"+stop_hex+"')",delay);
 
 }