// UPDATE DISPLAY:
function update_samples() {
	var mixer = document.mixer;
	var color = mixer.enter.value; var result = opposite(color);
	mixer.sample1.style.backgroundColor = '#'+color;
	mixer.sample2.style.backgroundColor = '#'+result; mixer.result.value = result;
}
function update_field() {
	var mixer = document.mixer;
	var color = mixer.c_1.value + mixer.c_2.value + mixer.c_3.value;
	mixer.enter.value = color;
	enter_color(mixer.enter);
}
// 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_selectbox() {
	var mixer = document.mixer;
	var enter = mixer.enter.value;
	var e1 = enter.substring(0,1); var e2 = enter.substring(2,3); var e3 = enter.substring(4,5);
	set_selectbox(mixer.c_1,e1); set_selectbox(mixer.c_2,e2); set_selectbox(mixer.c_3,e3);
}
// CALCULATE OPPOSITE:
function opposite(c) {
	var result=''; var ch=''; var list1='0123456789ABCDEF'; var list2='FEDCBA9876543210';
	for(var i=0;i<c.length;i++) { ch=c.charAt(i); for(var n=0;n<list1.length;n++){ if(ch==list1.charAt(n)) result += list2.charAt(n); } }
	return result;
}
// PROCESS INPUT:
function submit_action() {
	var field = document.mixer.enter;
	if(!valid_color(field.value) || field.value.length<6) field.value='000000';
	enter_color(field);
}
function enter_color(source) {
	sample = document.mixer.sample1;
	if(valid_color(source.value)) { set_uppercase(source); update_samples(); update_selectbox(); }
	else if(source.value.length==6) { source.value = sample.style.backgroundColor.substring(1); }
}