// UPDATE DISPLAY:
function update_sample(sample, color) {
	sample.style.backgroundColor = '#'+color;
}
// UPDATE SELECT BOXES:
function set_selectbox(box, first_char) {
	for(var i=0; i<box.options.length; i++) {
		if(box.options[i].value.substring(0,1)==first_char) { box.options[i].selected=true; break; }
	}
}
function update_selectboxes() {
	var mixer = document.mixer;
	var c = mixer.r1.value;
	var c_1 = c.substring(0,1); var c_2 = c.substring(2,3); var c_3 = c.substring(4,5);
	set_selectbox(mixer.c_1,c_1); set_selectbox(mixer.c_2,c_2); set_selectbox(mixer.c_3,c_3);
}
// PROCESS INPUT:
function enter_color(source) {
	sample = document.mixer.sample;
	if(valid_color(source.value)) { set_uppercase(source); update_selectboxes(); submit_action(true); }
	else if(source.value.length==6) { source.value=sample.style.backgroundColor.substring(1); }
}
function submit_action(from_textfield) {
	var mixer = document.mixer;
	var r,g,b;
	if(from_textfield) { var tmp=mixer.r1.value; r=tmp.substring(0,2); g=tmp.substring(2,4); b=tmp.substring(4,6); }
	else { r=mixer.c_1.value; g=mixer.c_2.value; b=mixer.c_3.value; }
	var c1,c2,c3,c4,c5,c6;
	c1 = r + g + b;
	c2 = r + b + g;
	c3 = g + r + b;
	c4 = g + b + r;
	c5 = b + r + g;
	c6 = b + g + r;
	update_sample(mixer.s1,c1); mixer.r1.value=c1;
	update_sample(mixer.s2,c2); mixer.r2.value=c2;
	update_sample(mixer.s3,c3); mixer.r3.value=c3;
	update_sample(mixer.s4,c4); mixer.r4.value=c4;
	update_sample(mixer.s5,c5); mixer.r5.value=c5;
	update_sample(mixer.s6,c6); mixer.r6.value=c6;
}
