
/* (c) CopySense 2004-2005 ~ Martin Latter */

var highfld = 0;
var base = "dec";
var basebutid;


function initcb() {

	cbsElemTxt("title");
	fldlight(0);
	basebutid = document.getElementById("rgbbut");
	fwsc();
}


function colorParse(colcode) {

	var ccArr = [];
	var i = 0, j = 0, k = 0;

	if (colcode.indexOf("%") > -1) {
		colcode = colcode.replace(/[%()rgb]/g, "");
		ccArr = colcode.split(",");
		for (; i < 3; i++) {
			ccArr[i] = Math.ceil(parseInt(ccArr[i], 10) * 2.55);
		}
	}
	else if (colcode.indexOf(",") > -1) {
		colcode = colcode.replace(/[()rgb]/g, "");
		ccArr = colcode.split(",");
		for (; i < 3; i++) {
			ccArr[i] = parseInt(ccArr[i], 10);
		}
	}
	else {
		colcode = colcode.replace("#", "");
		if (colcode.length == 3) {colcode = colcode.charAt(0) + colcode.charAt(0) + colcode.charAt(1) + colcode.charAt(1) + colcode.charAt(2) + colcode.charAt(2);}
		for (i = 0, j = 0, k = 2; i < 3; i++, j+=2, k+=2) {
			ccArr[i] = parseInt(colcode.slice(j, k), 16);
		}
	}

	this.valid = verifycolour(ccArr);
	this.r = ccArr[0];
	this.g = ccArr[1];
	this.b = ccArr[2];
}


function verifycolour(colArr) {

	var valid = true;
	for (var i = 0; i < 3; i++) {
		if (isNaN(colArr[i])) {
			valid = false;
		}
	}
	return valid;
}


function hexify(n) {

	var hs = "0123456789abcdef";
	var hnum = hs.charAt((n>>4) & 0xf) + hs.charAt(n & 0xf);
	return hnum;
}


function pcify(n) {

	var pcnum = Math.round(n / 2.55);
	pcnum = pcnum + "%";
	return pcnum;
}


function createColorObj() {

	this.r = this.g = this.b = 0;
	this.rgb = this.hex = this.pc = "";
}


function basechg(n) {

	var bid = "";

	switch (n) {
		case 1:
			base = "hex";
			bid = "hexbut";
			break;
		case 2:
			base = "dec%";
			bid = "rgbpbut";
			break;
		case 3:
			base = "dec";
			bid = "rgbbut";
	}

	basebutid.className = "basebut";
	basebutid = document.getElementById(bid);
	basebutid.className = "basebutsel";
	colourise();
}


function fldlight(n) {

	highfld = n;
	var scolfld = document.getElementById("scol");
	var fcolfld = document.getElementById("fcol");
	scolfld.style.backgroundColor = "";
	fcolfld.style.backgroundColor = "";
	(!highfld)? scolfld.style.backgroundColor = "#ff9" : fcolfld.style.backgroundColor = "#ff9";
}


function fwsc() {

	var pArr = [];
	var i = 0;
	var wsc = ["fff","ccc","999","666","333","000","fc0","f90","f60","f30","9c0","c90","fc3","fc6","f96","f63","c30","c03","cf0","cf3","330","660","990","cc0","ff0","c93","c63","300","600","900","c00","f00","f36","f03","9f0","cf6","9c3","663","993","cc3",
"ff3","960","930","633","933","c33","f33","c36","f69","f06","6f0","9f6","6c3","690","996","cc6","ff6","963","630","966","c66","f66","903","c39","f6c","f09","3f0","6f3","390","6c0","9f3","cc9","ff9","c96","c60","c99","f99","f39","c06","906","f3c",
"f0c","0c0","3c0","360","693","9c6","cf9","ffc","fc9","f93","fcc","f9c","c69","936","603","c09","303","3c3","6c6","0f0","3f3","6f6","9f9","cfc","c9c","969","939","909","636","606","060","363","090","393","696","9c9","fcf","f9f","f6f","f3f","f0f",
"c6c","c3c","030","0c3","063","396","6c9","9fc","cff","39f","9cf","ccf","c9f","96c","639","306","90c","c0c","0f3","3f6","093","0c6","3f9","9ff","9cc","06c","69c","99f","99c","93f","60c","609","c3f","c0f","0f6","6f9","3c6","096","6ff","6cc","699",
"036","369","66f","66c","669","309","93c","c6f","90f","0f9","6fc","3c9","3ff","3cc","399","366","069","039","33f","33c","339","336","63c","96f","60f","0fc","3fc","0ff","0cc","099","066","033","39c","36c","00f","00c","009","006","003","63f","30f",
"0c9","09c","3cf","6cf","69f","36f","03c","30c","0cf","09f","06f","03f"];

	pArr.push('<table cellspacing="1" id="wsct"><tr>');

	for (i = 0; i <216; i++) {
		pArr.push('<td style="background:#' + wsc[i] + '"><a href="javascript://" onclick="impwsc(\'' + wsc[i] + '\')\" onmouseover="window.status=\'\';return true;"></a></td>');
		if (i == 9) {pArr.push('<td colspan="6"></td></tr><tr>');}
		if (i == 10 || i == 16 || i == 204 || i == 210) {pArr.push('<td colspan="4"></td>');}
		if (i == 17 || i == 33 || i == 49 || i == 65 || i == 81 || i == 97 || i == 110 || i == 123 || i == 139 || i == 155 || i == 171 || i == 187 || i == 203) {pArr.push("</tr><tr>");}
		if (i == 104 || i == 116) {pArr.push('<td colspan="3"></td>');}
		if (i == 211) {pArr.push('</tr><tr><td colspan="6"></td>');}
	}

	pArr.push('<td colspan = "6"></td></tr></table>');
	document.getElementById("wscdiv").innerHTML = pArr.join("");
}


function impwsc(hc) {

	var d1 = hc.charAt(0) + hc.charAt(0);
	var d2 = hc.charAt(1) + hc.charAt(1);
	var d3 = hc.charAt(2) + hc.charAt(2);
	var d4 = parseInt(d1, 16);
	var d5 = parseInt(d2, 16);
	var d6 = parseInt(d3, 16);
	var field = (!highfld)?document.getElementById("scol"):document.getElementById("fcol");
	var bkg = (!highfld)?document.getElementById("scolbox"):document.getElementById("fcolbox");
	var outCol = d4 + "," + d5 + "," + d6;
	var fldval = "";

	switch(base) {
		case "dec":
			fldval = outCol;
			break;
		case "hex":
			fldval = d1 + d2 + d3;
			break;
		case "dec%":
			fldval = pcify(d4) + "," + pcify(d5) + "," + pcify(d6);
			break;
	}

	field.value = fldval;
	bkg.style.background = "rgb(" + outCol + ")";
}


function res() {

	fldlight(0);
	basechg(3);
	document.getElementById("output").value = "";
	document.getElementById("scolbox").style.background = "rgb(128,0,128)";
	document.getElementById("fcolbox").style.background = "rgb(255,140,255)";

	if (cb) {
		document.getElementById("band").innerHTML = "";
	}
	else {
		document.getElementById("title").innerHTML = "Colourband Text";
		cbsElemTxt("title");
	}
}


window.onload = initcb;