function FocusOnField(Field)
{
	// 1. Put the cursor there
	// 2. Make the background pink
	// 3. Fade the background to normal in 2 seconds
	
	// 1. 
	Field.focus();
	Field.style.backgroundColor = "#FFD1D1";
	
	setTimeout("colorFade('"+Field.id+"', 'background', 'FFD1D1', 'FFFFFF', 25, 40)",5000);
}

function FocusOnDiv(IDForBorder, ElementToFocus)
{
	if (ElementToFocus)
		ElementToFocus.focus();
		
	document.getElementById(IDForBorder).style.border = "2px solid #FFD1D1";
	setTimeout("colorFade('"+IDForBorder+"', 'border', 'FFD1D1', 'FFFFFF', 25, 40)",5000);
}


//http://www.leigeber.com/2008/05/javascript-color-fading-script/

// main function to process the fade request //
function colorFade(id,element,start,end,steps,speed)
{
	var startrgb,endrgb,er,eg,eb,step,rint,gint,bint,step;
	var target = document.getElementById(id);
	
	steps = steps || 20;
	speed = speed || 20;
	
	clearInterval(target.timer);
	endrgb = colorConv(end);
	er = endrgb[0];
	eg = endrgb[1];
	eb = endrgb[2];
	
	//Jamie removed - a field wont fade out after the first time if this is here, it just flashes off.
	//if(!target.r)
	{
		startrgb = colorConv(start);
		r = startrgb[0];
		g = startrgb[1];
		b = startrgb[2];
		target.r = r;
		target.g = g;
		target.b = b;
	}
	
	rint = Math.round(Math.abs(target.r-er)/steps);
	gint = Math.round(Math.abs(target.g-eg)/steps);
	bint = Math.round(Math.abs(target.b-eb)/steps);
	if(rint == 0) { rint = 1 }
	if(gint == 0) { gint = 1 }
	if(bint == 0) { bint = 1 }
	target.step = 1;
	target.timer = setInterval( function() { animateColor(id,element,steps,er,eg,eb,rint,gint,bint) }, speed);
}

// incrementally close the gap between the two colors //
function animateColor(id,element,steps,er,eg,eb,rint,gint,bint)
{
	var target = document.getElementById(id);
	var color;
	
	if(target.step <= steps)
	{
		var r = target.r;
		var g = target.g;
		var b = target.b;
		
		if(r >= er)
			r = r - rint;
		else
			r = parseInt(r) + parseInt(rint);

		if(g >= eg)
			g = g - gint;
		else
			g = parseInt(g) + parseInt(gint);

		if(b >= eb)
			b = b - bint;
		else
			b = parseInt(b) + parseInt(bint);

		color = 'rgb(' + r + ',' + g + ',' + b + ')';
		
		if(element == 'background')
			target.style.backgroundColor = color;
		else if(element == 'border')
			target.style.borderColor = color;
		else 
			target.style.color = color;

		target.r = r;
		target.g = g;
		target.b = b;
		target.step = target.step + 1;
	}
	else
	{
		clearInterval(target.timer);
		color = 'rgb(' + er + ',' + eg + ',' + eb + ')';

		if(element == 'background')
			target.style.backgroundColor = color;
		else if(element == 'border')
			target.style.borderColor = color;
		else
			target.style.color = color;
	}
}

// convert the color to rgb from hex //
function colorConv(color)
{
	var rgb = [parseInt(color.substring(0,2),16), 
	parseInt(color.substring(2,4),16), 
	parseInt(color.substring(4,6),16)];
	return rgb;
}
