// 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 ssg(t,s,e) { return t.substring(s,e); }// (shorthand)
function update_selectboxes() {
	var m = document.mixer;
	var c1,c2,c3,c4,c5,c6; c1=m.c1.value; c2=m.c2.value; c3=m.c3.value; c4=m.c4.value; c5=m.c5.value; c6=m.c6.value;
	var c1_1,c1_2,c1_3, c2_1,c2_2,c2_3, c3_1,c3_2,c3_3, c4_1,c4_2,c4_3, c5_1,c5_2,c5_3, c6_1,c6_2,c6_3;
	var c1_1=ssg(c1,0,1); var c1_2=ssg(c1,2,3); var c1_3=ssg(c1,4,5);
	var c2_1=ssg(c2,0,1); var c2_2=ssg(c2,2,3); var c2_3=ssg(c2,4,5);
	var c3_1=ssg(c3,0,1); var c3_2=ssg(c3,2,3); var c3_3=ssg(c3,4,5);
	var c4_1=ssg(c4,0,1); var c4_2=ssg(c4,2,3); var c4_3=ssg(c4,4,5);
	var c5_1=ssg(c5,0,1); var c5_2=ssg(c5,2,3); var c5_3=ssg(c5,4,5);
	var c6_1=ssg(c6,0,1); var c6_2=ssg(c6,2,3); var c6_3=ssg(c6,4,5);
	set_selectbox(m.c1_1,c1_1); set_selectbox(m.c1_2,c1_2); set_selectbox(m.c1_3,c1_3);
	set_selectbox(m.c2_1,c2_1); set_selectbox(m.c2_2,c2_2); set_selectbox(m.c2_3,c2_3);
	set_selectbox(m.c3_1,c3_1); set_selectbox(m.c3_2,c3_2); set_selectbox(m.c3_3,c3_3);
	set_selectbox(m.c4_1,c4_1); set_selectbox(m.c4_2,c4_2); set_selectbox(m.c4_3,c4_3);
	set_selectbox(m.c5_1,c5_1); set_selectbox(m.c5_2,c5_2); set_selectbox(m.c5_3,c5_3);
	set_selectbox(m.c6_1,c6_1); set_selectbox(m.c6_2,c6_2); set_selectbox(m.c6_3,c6_3);
}
// PROCESS INPUT:
function enter_color(source,sample) {
	if(valid_color(source.value)) { set_uppercase(source); update_sample(sample,source.value); update_selectboxes(); }
	else if(source.value.length==6) { source.value=sample.style.backgroundColor.substring(1); }
}
function enter_color_set(n) {
	var mixer = document.mixer;
	var field,sample;
	if(n==1) { field=mixer.c1; sample=mixer.s1; color = mixer.c1_1.value + mixer.c1_2.value + mixer.c1_3.value; }
	else if(n==2) { field=mixer.c2; sample=mixer.s2; color = mixer.c2_1.value + mixer.c2_2.value + mixer.c2_3.value; }
	else if(n==3) { field=mixer.c3; sample=mixer.s3; color = mixer.c3_1.value + mixer.c3_2.value + mixer.c3_3.value; }
	else if(n==4) { field=mixer.c4; sample=mixer.s4; color = mixer.c4_1.value + mixer.c4_2.value + mixer.c4_3.value; }
	else if(n==5) { field=mixer.c5; sample=mixer.s5; color = mixer.c5_1.value + mixer.c5_2.value + mixer.c5_3.value; }
	else if(n==6) { field=mixer.c6; sample=mixer.s6; color = mixer.c6_1.value + mixer.c6_2.value + mixer.c6_3.value; }
	field.value = color;
	enter_color(field,sample);
}
// INIT:
function init_comparison() {
	var m = document.mixer;
	var def_col = 'FFFFFF';
	m.c1.value=def_col; m.c2.value=def_col; m.c3.value=def_col; m.c4.value=def_col; m.c5.value=def_col; m.c6.value=def_col;
	enter_color(m.c1,m.s1); enter_color(m.c2,m.s2); enter_color(m.c2,m.s3); enter_color(m.c4,m.s4); enter_color(m.c5,m.s5); enter_color(m.c6,m.s6);
}
