// CHANGE TEXTFIELD VALUES:
function set_rgb(field,r,g,b) {
	field.value = r+', '+g+', '+b;
}
// UPDATE DISPLAY:
function update_sample(sample, color) {
	sample.style.backgroundColor = '#'+color;
}
// 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); make_web_safe(); }
	else if(source.value.length==6) { source.value=sample.style.backgroundColor.substring(1); }
}
// CONVERSIONS:
function get_dec(hex) {
	if(hex=='F')return 15; if(hex=='E')return 14; if(hex=='D')return 13; if(hex=='C')return 12;
	if(hex=='B')return 11; if(hex=='A')return 10; return hex;
}
function get_hex(dec) {
	if(dec==15)return 'F'; if(dec==14)return 'E'; if(dec==13)return 'D'; if(dec==12)return 'C';
	if(dec==11)return 'B'; if(dec==10)return 'A'; return ''+dec;
}
function dec_to_hex(r,g,b) {
	var c1 = get_hex(Math.floor(r/16));
	var c2 = get_hex(Math.floor(r%16));
	var c3 = get_hex(Math.floor(g/16));
	var c4 = get_hex(Math.floor(g%16));
	var c5 = get_hex(Math.floor(b/16));
	var c6 = get_hex(Math.floor(b%16));
	return c1+c2+c3+c4+c5+c6;
}
function hex_to_dec(c,start) {
	var c1 = get_dec(c.substring(start,start+1));
	var c2 = get_dec(c.substring(start+1,start+2));
	return (c1*16)+c2*1;
}
function web_safe(r,g,b) {
	var tmp;//(holds remainder of modulus)
	tmp=r%51; if(tmp>25){tmp=r+51-tmp;} else {tmp=r-tmp;}
	var c1 = get_hex( rounded(tmp/17) );
	tmp=g%51; if(tmp>25){tmp=g+51-tmp;} else {tmp=g-tmp;}
	var c2 = get_hex( rounded(tmp/17) );
	tmp=b%51; if(tmp>25){tmp=b+51-tmp;} else {tmp=b-tmp;}
	var c3 = get_hex( rounded(tmp/17) );
	return c1+c1+c2+c2+c3+c3;
}
// CALCULATE OUTPUT:
function make_web_safe() {
	var mixer = document.mixer;
	var c = mixer.enter.value;
	var r1,g1,b1;
	r1=hex_to_dec(c,0); g1=hex_to_dec(c,2); b1=hex_to_dec(c,4);
	var r2,g2,b2;
	var result = web_safe(r1,g1,b1);
	r2=hex_to_dec(result,0); g2=hex_to_dec(result,2); b2=hex_to_dec(result,4);
	
	mixer.result.value = result;
	update_sample(mixer.sample1, c);
	update_sample(mixer.sample2, result);
	set_rgb(mixer.rgb1, r1, g1, b1);
	set_rgb(mixer.rgb2, r2, g2, b2);
}
