var sHEX="0123456789ABCDEF";

function dec_hex(dec) {
	var hex = sHEX.substr(dec&15,1);
	while(dec > 15) {
		dec = dec >> 4;
		hex = sHEX.substr(dec&15,1) + hex;
	}
	return hex;
}

function hex_dec(hex) {
	return parseInt(hex,16);
}

function padZero(str) {
	if(str.length == 1){
		str = "0" + str;
	}
	return str;

}

function toHEX(frm) {

	if(isNaN(frm.R.value) || frm.R.value > 255 || frm.R.value < 0) {
		alert("Please enter integer number between 0 and 255 for R");
		return false;
	}
	if(isNaN(frm.G.value) || frm.G.value > 255 || frm.G.value < 0) {
		alert("Please enter integer number between 0 and 255 for G");
		return false;
	}
	if(isNaN(frm.B.value) || frm.B.value > 255 || frm.B.value < 0) {
		alert("Please enter integer number between 0 and 255 for B");
		return false;
	}
	
	frm.HEX.value = padZero(dec_hex(frm.R.value)) + padZero(dec_hex(frm.G.value)) + padZero(dec_hex(frm.B.value));
	changeDivColor("ColorBackground", frm.HEX.value);
}

function toRGB(frm) {
	
	if(frm.HEX.value.length < 6) {
		alert("Please enter 6 digit HEX number.");
		return false;
	}
	
	if(!frm.HEX.value.match(/^[0-9A-Fa-f]+$/)) {
		
		alert("Please enter correct 6 digit HEX number.")
		return false;
	
	}
	
	frm.R.value = hex_dec(frm.HEX.value.substr(0,2));
	frm.G.value = hex_dec(frm.HEX.value.substr(2,2));
	frm.B.value = hex_dec(frm.HEX.value.substr(4,2));
	
	changeDivColor("ColorBackground", frm.HEX.value);
	
}

function changeDivColor(sDiv, sColor) {
	if(document.getElementById) {
		document.getElementById(sDiv).style.backgroundColor = sColor; 
		return;
	}
	if(document.layers) {
		document.layers[sDiv].bgColor = sColor;
		return;
	}         
	if(document.all){
		eval("document.all." + sDiv + ".style.backgroundColor = sColor;");  
		return;
	}       
}