/* Main functions including setup and links */

function Init()
{
	document.getElementById("colorname").onkeyup = ChangeColorName;
	document.getElementById("red").onkeyup = ChangeColorValue;
	document.getElementById("green").onkeyup = ChangeColorValue;
	document.getElementById("blue").onkeyup = ChangeColorValue;
	document.getElementById("colorformula").onkeyup = ChangeColorValue;
	document.getElementById("derivedcolorcontrols").style.display = "none";
	document.getElementById("coloreditor").style.display = "none";
	for (var i = 0; i < 6; i++)
	{
		var paneicon = document.getElementById("paneicon" + i);
		paneicon.style.left = (20 * i) + "px";
		paneicon.href = "javascript: MoveTo(" + i + ");";
	}
}


function ParseCSS()
{
	// get css from textbox
	var css = document.getElementById("oldcss").value
	// look for header
	var lines = css.split("\n");
	if (lines[0].trim() != "/* Css Colorizer 1")
	{
		alert(lines[0] + "Could not parse CSS");
		return;
	}
	// clear colors
	ClearColors();
	// read color values and create colors
	var i = 1;
	while (lines[i].trim() != "*/")
	{
		var line = lines[i].split("\t");
		if (line.length > 2)
		{
			var colorname = line[0];
			var r = line[1];
			var g = line[2];
			var b = line[3];
			var c = CreateColor();
			UpdateColor(c, colorname, r, g, b);
		}
		else
		{
			var colorname = line[0];
			var formula = line[1];
			var c = CreateColor();
			c.SetDerived();
			UpdateDerivedColor(c, colorname, formula);
		}
		i++;
	}
	i++;
	document.getElementById("internalcss").value = "";
	// replace css
	while (i < lines.length)
	{
		if (lines[i].indexOf("#") > -1)
		{
			// this line has a color code so try to find a match
			for (var c in colors)
			{
				lines[i] = lines[i].replace(colors[c].HexValue(), "$$" + colors[c].name);
			}
		}
		document.getElementById("internalcss").value += lines[i];
		i++;
	}
}


function ApplyHTML()
{
	InjectCSS();
	document.getElementById("csscolorizerpreview").innerHTML = document.getElementById("previewhtml").value;
}


function GenerateCSS()
{
	BuildCSS();
}


window.onload = Init;

