<!-- Copyright (C) 1999, Eric L Cochran, a.k.a. Sigma. Enter Sigma's Realm @ http://skyscraper.fortunecity.com/binary/0/index.html  Color Validator, ver. 1.0.-->
var error;
var digits = "0123456789ABCDEF";
window.onerror = recoverError;

function recoverError() {
	document.form.rgb.value=" - ERROR -";
	return true;
}

function getValueOf(digit) {
	if ((digits.indexOf(digit) < 1) && (!((digit + 0) == 0))) {
		error = true;
		return true;
	}
	else return digits.indexOf(digit);
}

function hexToDec(hex) {
	hex = hex.toUpperCase();
	return ((16*(getValueOf(hex.charAt(0))))+(getValueOf(hex.charAt(1))));
}

function decToHex(dec) {
	return (digits.charAt(parseInt(dec/16))+""+digits.charAt(dec-(parseInt(dec/16)*16)));
}

function validateComponent(value) {
	if (!(parseInt(value/51)==(value/51))) {
		if (value>25) {
			if (value>76) {
				if (value>127) {
					if (value>178) {
							if (value>229) value = 255;
							else value = 204;
					}
					else value = 153;
				}
				else value = 102;
			}
			else value = 51;
		}
		else value = 0;
	}
	return value;
}

function validate() {
	error = false;
	var rgb = document.form.rgb.value;
	if (!(rgb.charAt(0)=="#")) rgb = "#" + rgb;
	var r = rgb.charAt(1) + "" + rgb.charAt(2);
	var g = rgb.charAt(3) + "" + rgb.charAt(4);
	var b = rgb.charAt(5) + "" + rgb.charAt(6);
	r = decToHex(validateComponent(hexToDec(r)));
	g = decToHex(validateComponent(hexToDec(g)));
	b = decToHex(validateComponent(hexToDec(b)));
	if (error) recoverError();
	else document.form.rgb.value="#"+r+g+b;
}