// Color Picker Script from Flooble.com
// For more information, visit 
//	http://www.flooble.com/scripts/colorpicker.php
// Copyright 2003 Animus Pactum Consulting inc.
// You may use and distribute this code freely, as long as
// you keep this copyright notice and the link to flooble.com
// if you chose to remove them, you must link to the page
// listed above from every web page where you use the color
// picker code.
//---------------------------------------------------------
 var perline = 9;
 var divSet = false;
 var curId;
 var pp = false;
 var colorLevels = Array('0', '3', '6', '9', 'C', 'F');
 var colorArray = Array();
 var ie = false;
 var nocolor = 'none';
 if (document.all) { ie = true; nocolor = ''; }
 function getObj(id) {
	if (ie) { return document.all[id]; } 
	else {	return document.getElementById(id);	}
 }

 function addColor(r, g, b) {
	var red = colorLevels[r];
	var green = colorLevels[g];
	var blue = colorLevels[b];
	addColorValue(red, green, blue);
 }

 function addColorValue(r, g, b) {
	colorArray[colorArray.length] = '#' + r + r + g + g + b + b;
 }
 
 function setColor(color) {
	changes_flag=true;
	var link = getObj(curId);
	var field = getObj('field_' + curId);
	var picker = getObj('colorpicker');
	field.value = color;
	if (color == '') {
		link.style.background = nocolor;
		link.style.color = nocolor;
		color = nocolor;
	} else {
		link.style.background = color;
		link.style.color = color;
	}
	picker.style.display = 'none';
	restore_selects();
	eval(getObj('field_' + curId).title);
	if(pp) eval(pp);
 }
	
 function setDiv() {
	if (!document.createElement) { return; }
	var elemDiv = document.createElement('div');
	if (typeof(elemDiv.innerHTML) != 'string') { return; }
	elemDiv.id = 'colorpicker';
	elemDiv.style.position = 'absolute';
	elemDiv.style.display = 'none';
	elemDiv.style.border = '#000000 1px solid';
	elemDiv.style.background = '#FFFFFF';
	elemDiv.style.zIndex = '10';
	elemDiv.innerHTML = getColorTable();
	document.body.appendChild(elemDiv);
	divSet = true;
 }
 
 function pickColor(id, post_process) {
	if (!divSet) { setDiv(); }
	var picker = getObj('colorpicker');     	
	if (id == curId && picker.style.display == 'block') {
		picker.style.display = 'none';
		restore_selects();
		return false;
	}
	curId = id;
	var thelink = getObj(id);
	//picker.style.top = (getAbsoluteOffsetTop(thelink) - 210) + 'px';
	picker.style.top = (getAbsoluteOffsetTop(thelink) + 15) + 'px';
	picker.style.left = (getAbsoluteOffsetLeft(thelink) - 80) + 'px';
	hide_selects();
picker.style.display = 'block';
if(typeof post_process != 'undefined') {
		pp = post_process;
} else {
		pp = false;
}
return false;
 }
 
 function getColorTable() {
var defColors = "000000,000000,003300,006600,009900,00CC00,00FF00,330000,333300,336600,339900,33CC00,33FF00,660000,663300,666600,669900,66CC00,66FF00,333333,000033,003333,006633,009933,00CC33,00FF33,330033,333333,336633,339933,33CC33,33FF33,660033,663333,666633,669933,66CC33,66FF33,666666,000066,003366,006666,009966,00CC66,00FF66,330066,333366,336666,339966,33CC66,33FF66,660066,663366,666666,669966,66CC66,66FF66,999999,000099,003399,006699,009999,00CC99,00FF99,330099,333399,336699,339999,33CC99,33FF99,660099,663399,666699,669999,66CC99,66FF99,CCCCCC,0000CC,0033CC,0066CC,0099CC,00CCCC,00FFCC,3300CC,3333CC,3366CC,3399CC,33CCCC,33FFCC,6600CC,6633CC,6666CC,6699CC,66CCCC,66FFCC,FFFFFF,0000FF,0033FF,0066FF,0099FF,00CCFF,00FFFF,3300FF,3333FF,3366FF,3399FF,33CCFF,33FFFF,6600FF,6633FF,6666FF,6699FF,66CCFF,66FFFF,";
defColors = defColors + "FF0000,990000,993300,996600,999900,99CC00,99FF00,CC0000,CC3300,CC6600,CC9900,CCCC00,CCFF00,FF0000,FF3300,FF6600,FF9900,FFCC00,FFFF00,00FF00,990033,993333,996633,999933,99CC33,99FF33,CC0033,CC3333,CC6633,CC9933,CCCC33,CCFF33,FF0033,FF3333,FF6633,FF9933,FFCC33,FFFF33,0000FF,990066,993366,996666,999966,99CC66,99FF66,CC0066,CC3366,CC6666,CC9966,CCCC66,CCFF66,FF0066,FF3366,FF6666,FF9966,FFCC66,FFFF66,FFFF00,990099,993399,996699,999999,99CC99,99FF99,CC0099,CC3399,CC6699,CC9999,CCCC99,CCFF99,FF0099,FF3399,FF6699,FF9999,FFCC99,FFFF99,00FFFF,9900CC,9933CC,9966CC,9999CC,99CCCC,99FFCC,CC00CC,CC33CC,CC66CC,CC99CC,CCCCCC,CCFFCC,FF00CC,FF33CC,FF66CC,FF99CC,FFCCCC,FFFFCC,FF00FF,9900FF,9933FF,9966FF,9999FF,99CCFF,99FFFF,CC00FF,CC33FF,CC66FF,CC99FF,CCCCFF,CCFFFF,FF00FF,FF33FF,FF66FF,FF99FF,FFCCFF,FFFFFF";
var cl = defColors.split(',');

var h = '<table class="color_picker_table"><tr>';
var l = cl.length;
for (i=0; i<l; i++) {
c = 'setColor(\'#' + cl[i] + '\')';
m = 'document.getElementById(\'colValue\').value=\'' + cl[i] + "'";
h += '<td><a href="javascript:' + c + '" style="background-color: #' + cl[i] + '" onclick="' + c + ';return false;" onmouseover="'+m+'">&nbsp;</a></td>';
	if ((i+1) % 19 == 0)
	h += '</tr><tr>';
}
h += '</tr></table>';
h += '<p style="font-size:10px;margin:0;text-align:center">Enter your own color value:<br />#<input style="font-size:10px" type="text" id="colValue" size="7" maxlength="6" /> <input style="font-size:10px" type="button" value="Set" onclick="setColor(\'#\'+document.getElementById(\'colValue\').value)" /></p>';
	 return h;
 }
 function relateColor(id, color) {
	var link = getObj(id);
	if (color == '') {
		link.style.background = nocolor;
		link.style.color = nocolor;
		color = nocolor;
	} else {
		link.style.background = color;
		link.style.color = color;
	}
	eval(getObj('field_' + id).title);
 }
 function getAbsoluteOffsetTop(obj) {
	var top = obj.offsetTop;
	var parent = obj.offsetParent;
	while (parent != document.body && parent != null) {
		top += parent.offsetTop;
		parent = parent.offsetParent;
	}
	return top;
 }
 
 function getAbsoluteOffsetLeft(obj) {
	var left = obj.offsetLeft;
	var parent = obj.offsetParent;
	while (parent != document.body && parent != null) {
		left += parent.offsetLeft;
		parent = parent.offsetParent;
	}
	return left;
 }
 
 var color_picker_selects = new Array();
 var color_picker_display = new Array();
 
 function hide_selects() {
	 color_picker_selects = document.getElementsByTagName('select');
	 l = color_picker_selects.length;
	 for(i=0; i<l; i++) {
		 color_picker_display[i] = color_picker_selects[i].style.display;
		 color_picker_selects[i].style.visibility = 'hidden';
	 }
 }
 
 function restore_selects() {
	 l = color_picker_selects.length;
	 for(i=0; i<l; i++) {
		 color_picker_selects[i].style.visibility = color_picker_display[i];
	 }
 }
 
 
