
/* (c) CopySense.co.uk 2003 ~ Martin Latter */

function cg(ud_but, fno) {

	var hck = /[A-Fa-f0-9]{2}/;
	var sck = /[0-9]/;
	var formid = fno? 1 : 2;
	var rr, gg, bb, step, col, incdec, red, green, blue, rzeroflag, gzeroflag, bzeroflag;

	if (fno) {
		rr = document.getElementById("rr");
		gg = document.getElementById("gg");
		bb = document.getElementById("bb");
		step = document.getElementById("step");
		col = document.getElementById("col");
	}

	else {
		rr = document.getElementById("rr2");
		gg = document.getElementById("gg2");
		bb = document.getElementById("bb2");
		step = document.getElementById("step2");
		col = document.getElementById("col2");
	}

	if (!hck.test(rr.value) || !hck.test(gg.value) || !hck.test(bb.value)) {
		alert("Input error - (colour box "+formid+")\nTwo characters (0-9, A-F) must be present\nin each input field.");
		return;
	}

	if (!sck.test(step.value)) {
		alert("Step size (colour box " + formid + ")\n needs to be a number!");
		return;
	}

	incdec  =  parseInt(step.value, 10);
	
	if (incdec > 99 || incdec <= 0) {
		alert("Step size (colour box " + formid + ") needs to be 1 - 99.");
		return;
	}

	red = parseInt(rr.value, 16);
	green = parseInt(gg.value, 16);
	blue = parseInt(bb.value, 16);

	switch (ud_but) {
		case "ru" : red += incdec; break;
		case "rd" : red -= incdec; break;
		case "gu" : green += incdec; break;
		case "gd" : green -= incdec; break;
		case "bu" : blue += incdec; break;
		case "bd" : blue -= incdec; break;
	}

	if (red > 255 || red < 0 || green > 255 || green < 0 || blue > 255 || blue < 0) {
		alert("You can\"t exceed 0 or ff (255).");
		return;
	}

	rzeroflag = (red < 16)? 1 : 0;
	gzeroflag = (green < 16)? 1 : 0;
	bzeroflag = (blue < 16)? 1 : 0;

	red = red.toString(16);
	green = green.toString(16);
	blue = blue.toString(16);

	if (rzeroflag) {red = "0" + red;}
	if (gzeroflag) {green = "0" + green;}
	if (bzeroflag) {blue = "0" + blue;}

	/*if (op)
	{
		if (red =  = "0") red = "00";
		if (green =  = "0") green = "00";
		if (blue =  = "0") blue = "00";
	}*/

	rr.value = red;
	gg.value = green;
	bb.value = blue;

	col.style.background = "#" + (red + green + blue);
}


function harmonise() {

	var hArr = ["rr", "gg", "bb"];
	for (var i = 0; i<3; i++) {
		document.getElementById(hArr[i] + "2").value = document.getElementById(hArr[i]).value;
	}
	cg(null, 1);
	cg(null, 0);
}

