
var IE = document.all ? true : false;		

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}


var colours=new Array([255,0,0],[255,255,0],[0,255,0],[0,255,255],[0,0,255],[255,0,255],[255,0,0]);	
var activeImg = null;


function clrSel(ev)
{
	if (!activeImg)
		return false;
		
	var x,y;	
	if (IE)
	{			
		x = event.x;
		y = event.y;		
	}else
	{
		x = ev.pageX;
		y = ev.pageY;
	}
	
	x -= findPosX(this);
	y -= findPosY(this);
	
	
	var t = (x/this.width * 6);
	var ix = Math.floor(t);
	
	t -= ix;
	
	var c1 = colours[ix];
	var c2 = colours[ix+1];

	
	col = lerp(c1,c2,t);
	

	if (y < 25)
		col = lerp(Array(255,255,255),col,y/25);
	else if (y > 50)
		col = lerp(Array(0,0,0),Array(255,255,255),x/this.width);
	else if (y > 25)
		col = lerp(col,Array(0,0,0),(y-25)/25);
	
	this.target("rgb("+col[0]+","+col[1]+","+col[2]+")");
	return false;
}

function lerp(c1,c2,t)
{
	var c = new Array();
	
	c[0] = Math.floor(((c2[0]-c1[0])*t) + c1[0]);
	c[1] = Math.floor(((c2[1]-c1[1])*t) + c1[1]);
	c[2] = Math.floor(((c2[2]-c1[2])*t) + c1[2]);
	
	return c;
}


function clrStart(ev)
{
	activeImg = this;
	if (IE)
		return this.onmousemove();
	else
		return this.onmousemove(ev);
}
function clrEnd()
{
	activeImg = null;
}	

function initClrPick(name,targ)
{
	document.ondragstart = function () {return false;}
	document.onmouseup = clrEnd;

	var img = document.getElementById(name);
	if (img)
	{
		img.onmousedown = clrStart;
		img.onmousemove = clrSel;		
		img.target = targ;
	}

}

