var	hexziffern	= new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F")

function dezhex(x)
{
	var	dwert	= parseInt(x)
	if(isNaN(dwert))
	{
		alert("Dezimalzahlen bestehen nur aus den Ziffern 0 bis 9!")
		return x
	}

	var	wert	= ""

	while(dwert > 0)
	{
		zf	= dwert % 16
		wert	= hexziffern[zf] + wert
		dwert	-= zf
		dwert	/= 16
	}

	return wert
}

function pruefung(form)
{
	form.RGBFarbwert.value = ""
	if(form.R.value == "")
		form.R.value = "0"
	if(form.G.value == "")
		form.G.value = "0"
	if(form.B.value == "")
		form.B.value = "0"

	var r = parseInt(form.R.value)
	var g = parseInt(form.G.value)
	var b = parseInt(form.B.value)

	if(isNaN(r) || isNaN(g) || isNaN(b))
	{
		alert("Bei mindestens einem der Werte handelt es sich nicht um eine Zahl!")
		return false
	}
	if(r < 0 || g < 0 || b < 0 || r > 255 || g > 255 || b > 255)
	{
		alert("Bei mindestens einem der Werte ist der Wertebereich zwischen 0 und 255 ueberschritten!")
		return false
	}

	return true
}

function berechnen(form)
{
	function doublehex(x)
	{
		var	tmp	= "00" + dezhex(x)
		tmp	= tmp.substring(tmp.length - 2, tmp.length)
		return tmp
	}
	if(!pruefung(form))
		return

	form.RGBFarbwert.value	= doublehex(parseInt(form.R.value)) +
					doublehex(parseInt(form.G.value)) +
					doublehex(parseInt(form.B.value))
	document.bgColor	= "#" + form.RGBFarbwert.value
}

function ideal(form)
{
	function iround(val)
	{
		var	r	= val % 51
		var	n	= (val - r) / 51
		return ((r <= 25) ? n : (n+ 1)) * 51
	}

	if(!pruefung(form))
		return

	form.R.value	= iround(parseInt(form.R.value))
	form.G.value	= iround(parseInt(form.G.value))
	form.B.value	= iround(parseInt(form.B.value))

	berechnen(form)
}

function add(form, feld, inc)
{
	var	twert	= parseInt(form[feld].value)
	if(isNaN(twert))
	{
		alert("Bei dem Wert handelt es sich nicht um eine Zahl!")
		return
	}
	twert	+= inc
	if(twert > 255)
		twert	= 255

	form[feld].value	= twert

	berechnen(form)
}

function sub(form, feld, dec)
{
	var	twert	= parseInt(form[feld].value)
	if(isNaN(twert))
	{
		alert("Bei dem Wert handelt es sich nicht um eine Zahl!")
		return
	}
	twert	-= dec
	if(twert < 0)
		twert	= 0

	form[feld].value	= twert

	berechnen(form)
}