function alertObj(obj)
{
	var j = obj + ":\n";
	for(i in obj)
	{
		j += i + "|" + obj[i] + "\n";
	}
	alert(j);/**/
}

String.prototype.trim = function()
{
	return this.replace( /^\s+|\s+$/, "" );
}

function toHex(v)
{
	// convert a byte to its hex value
	// assume v is from 0 to 255
	v = parseInt(v);
	v = Math.max(0,Math.min(255,v));
	var h = "0123456789ABCDEF";
	return h.substr(v>>4, 1) + h.substr(v % 16, 1);
}

function UpdateSwatch(i, r, g, b)
{
	document.getElementById("color" + i).style.backgroundColor = "#" + toHex(r) + toHex(g) + toHex(b);
}

function UpdateAllColors()
{
	for (var i = 0; i < numcolors; i++)
	{
		if (colors[i].isbase)
		{
			//UpdateSwatch(selected, r, g, b);
		}
		else
		{
			var formula = colors[i].formula;
			try
			{
				var e = eval(formula);
				if (typeof(e) == typeof(new Color))
				{
					document.getElementById("colorformula").className = "";
					colors[i].Update(e.r, e.g, e.b);
					UpdateSwatch(i, e.r, e.g, e.b);
				}
				else
				{
					document.getElementById("colorformula").className = "invalid";
				}
			}
			catch(e)
			{
				document.getElementById("colorformula").className = "invalid";
				colors[i].Update(0, 0, 0);
				UpdateSwatch(i, 0, 0, 0);
			}
		}
	}
}

function AddColorSwatch(c)
{
	var colorlist = document.getElementById("colorlist");
	if (colorlist)
	{
		var newswatchlink = document.createElement("a");
		newswatchlink.className = "swatchlink";
		newswatchlink.href = "javascript: SelectColor(" + c.id + ");";
		var newswatch = document.createElement("div");
		newswatch.id = "color" + c.id;
		newswatch.className = "colorswatch";
		newswatchlink.appendChild(newswatch);
		colorlist.appendChild(newswatchlink);
		UpdateSwatch(c.id, c.r, c.g, c.b);
	}
}

function BuildHeader()
{
	header = "/* Css Colorizer 1\n";
	for (var i = 0; i < numcolors; i++)
	{
		if (colors[i].isbase)
		{
			header = header + colors[i].name + "\t" + colors[i].r + "\t" + colors[i].g + "\t" + colors[i].b + "\n";
		}
		else
		{
			header = header + colors[i].name + "\t" + colors[i].formula + "\n";
		}
	}
	header = header + "*/\n";
	return header;
}

