// =============================== //
// Form Color Selector             //
// v1.0 - Feb 23, 2005             //
// ------------------------------- //
// Written by Lloyd Hassell        //
// Website: lloydhassell.com       //
// Email: lloydhassell@hotmail.com //
// =============================== //

// INITIALIZATION:

formColorSelector = new Object();

// CONFIGURATION:

formColorSelector.blankImgSrc = 'http://www.fuckinghate.com/blank.gif';

formColorSelector.cellWidth = 15;
formColorSelector.cellHeight = 15;

formColorSelector.outputColorFormat = 'hex';	// 'hex' or 'rgb'.

// MAIN:

formColorSelector.isLoaded = false;

formColorSelector.hexList = new Array('FF','CC','99','66','33','00');

var hexList = '0123456789ABCDEF';

function hexToRgb(HEX) {
   HEX = HEX.toUpperCase();
   var redValue = (hexList.indexOf(HEX.charAt(0)) * 16) + hexList.indexOf(HEX.charAt(1));
   var greenValue = (hexList.indexOf(HEX.charAt(2)) * 16) + hexList.indexOf(HEX.charAt(3));
   var blueValue = (hexList.indexOf(HEX.charAt(4)) * 16) + hexList.indexOf(HEX.charAt(5));
   return redValue + ',' + greenValue + ',' + blueValue;
   }

function loadFormformColorSelector() {
   captureCursor();
   formColorSelector.boxWidth = (formColorSelector.cellWidth * 36) + 37;
   formColorSelector.boxHeight = (formColorSelector.cellHeight * 6) + 25;
   formColorSelector.layerObj = addLayer('colorBoxLyr');
   var boxHtmlStr = '<div id="picker"><table border="0" cellpadding="0" cellspacing="0"><tr><td bgcolor="#000000">';
   boxHtmlStr += '<table border="0" cellpadding="0" cellspacing="3" width="100%"><tr><td><font color="#FFFFFF" face="verdana,arial" size="1">&nbsp;Select a Color</font></td>';
   boxHtmlStr += '<td align="right"><font color="#FFFFFF" face="verdana,arial" size="1"><a style="color:red;" href="javascript:closeFormformColorSelector();">Close</a>&nbsp;</font></td></tr></table>';
   boxHtmlStr += '</td></tr><tr><td bgcolor="#000000">';
   boxHtmlStr += '<table border="0" cellpadding="0" cellspacing="1">';
   for (var colorLoop = 0; colorLoop < 216; colorLoop++) {
      if (colorLoop % 36 == 0) boxHtmlStr += '<tr>';
      var colorValue = formColorSelector.hexList[Math.floor(colorLoop/36)] + '' + formColorSelector.hexList[Math.floor(colorLoop/6)%6] + '' + formColorSelector.hexList[colorLoop%6];
      var colorText = (formColorSelector.outputColorFormat == 'hex') ? colorValue : hexToRgb(colorValue);
      boxHtmlStr += '<td bgcolor="#' + colorValue + '">';
      boxHtmlStr += '<a href="javascript:setColor(\'' + colorText + '\')"';
      boxHtmlStr += 'onMouseOver="javascript:window.status = \'' + colorText + '\'; return true;" ';
      boxHtmlStr += 'onMouseOut="javascript:window.status = window.defaultStatus; return true;">';
      boxHtmlStr += '<img src="' + formColorSelector.blankImgSrc + '"';
      boxHtmlStr += ' width="' + formColorSelector.cellWidth + '" height="' + formColorSelector.cellHeight + '" border="0"></a></td>';
      if (colorLoop % 36 == 35) boxHtmlStr += '</tr>';
      }
   boxHtmlStr += '</table></td></tr></table></div>';
   setLayerHTML(formColorSelector.layerObj,boxHtmlStr);
   formColorSelector.isLoaded = true;
   }

function setColor(COLOR) {
   formColorSelector.outputObj.value = COLOR;
   hideLayer(formColorSelector.layerObj);
   }

function closeFormformColorSelector() {
   hideLayer(formColorSelector.layerObj);
   }

function openFormColorSelector(FORMNAME,ELEMENTNAME) {
   if (!formColorSelector.isLoaded) loadFormformColorSelector();
   formColorSelector.outputObj = document.forms[FORMNAME][ELEMENTNAME];
   var posX = (getWinWidth() - formColorSelector.boxWidth) / 2;
   var posY = (getWinHeight() - formColorSelector.boxHeight) / 2;
   moveLayerTo(formColorSelector.layerObj,getDocScrollLeft() + posX,getDocScrollTop() + posY);
   showLayer(formColorSelector.layerObj);
   }
