     var perline = 18;
     var divSet = false;
     var curId;
     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) {
     	var link = getObj(curId);
     	var field = getObj(curId + 'field');
     	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';
	    eval(getObj(curId + 'field').title);
     }
        
     function setDiv() {     
     	if (!document.createElement) { return; }
        var elemDiv = document.createElement('div');
        if (typeof(elemDiv.innerHTML) != 'string') { return; }
        genColors();
        elemDiv.id = 'colorpicker';
	    elemDiv.style.position = 'absolute';
        elemDiv.style.display = 'none';
        elemDiv.style.border = '#000000 1px solid';
        elemDiv.style.background = '#FFFFFF';
        elemDiv.innerHTML = '<span class=txt;>&nbsp;&nbsp;<b>カラーパレット</b><br>' 
        	+ getColorTable() 
        	+ '<a href="javascript:setColor(\'\');">&nbsp;&nbsp;閉じる</a></span>';

        document.body.appendChild(elemDiv);
        divSet = true;
     }
     
     function pickColor(id) {
     	if (!divSet) { setDiv(); }
     	var picker = getObj('colorpicker');     	
		if (id == curId && picker.style.display == 'block') {
			picker.style.display = 'none';
			return;
		}
     	curId = id;
     	var thelink = getObj(id);
     	picker.style.top = getAbsoluteOffsetTop(thelink) + 20;
     	picker.style.left = getAbsoluteOffsetLeft(thelink);     
	picker.style.display = 'block';
     }
     
     function genColors() {
			 
<!-- 2-1 --> 
			 
        addColorValue('F','F','F');
				addColorValue('F','F','C');
				addColorValue('F','F','9');
				addColorValue('F','F','6');
				addColorValue('F','F','3');
				addColorValue('F','F','0');
				
				addColorValue('C','F','F');
				addColorValue('C','F','C');
				addColorValue('C','F','9');
				addColorValue('C','F','6');
				addColorValue('C','F','3');
				addColorValue('C','F','0');
				
				addColorValue('9','F','F');
				addColorValue('9','F','C');
				addColorValue('9','F','9');
				addColorValue('9','F','6');
				addColorValue('9','F','3');
				addColorValue('9','F','0');
				
<!-- 2-2 --> 

				addColorValue('F','C','F');
				addColorValue('F','C','C');
				addColorValue('F','C','9');
				addColorValue('F','C','6');
				addColorValue('F','C','3');
				addColorValue('F','C','0');
				
				addColorValue('C','C','F');
				addColorValue('C','C','C');
				addColorValue('C','C','9');
				addColorValue('C','C','6');
				addColorValue('C','C','3');
				addColorValue('C','C','0');
				
				addColorValue('9','C','F');
				addColorValue('9','C','C');
				addColorValue('9','C','9');
				addColorValue('9','C','6');
				addColorValue('9','C','3');
				addColorValue('9','C','0');
				
<!-- 2-3 -->

				addColorValue('F','9','F');
				addColorValue('F','9','C');
				addColorValue('F','9','9');
				addColorValue('F','9','6');
				addColorValue('F','9','3');
				addColorValue('F','9','0');
				
				addColorValue('C','9','F');
				addColorValue('C','9','C');
				addColorValue('C','9','9');
				addColorValue('C','9','6');
				addColorValue('C','9','3');
				addColorValue('C','9','0');
				
				addColorValue('9','9','F');
				addColorValue('9','9','C');
				addColorValue('9','9','9');
				addColorValue('9','9','6');
				addColorValue('9','9','3');
				addColorValue('9','9','0');
				
<!-- 3-1 -->

				addColorValue('F','6','F');
				addColorValue('F','6','C');
				addColorValue('F','6','9');
				addColorValue('F','6','6');
				addColorValue('F','6','3');
				addColorValue('F','6','0');
				
				addColorValue('C','6','F');
				addColorValue('C','6','C');
				addColorValue('C','6','9');
				addColorValue('C','6','6');
				addColorValue('C','6','3');
				addColorValue('C','6','0');
				
				addColorValue('9','6','F');
				addColorValue('9','6','C');
				addColorValue('9','6','9');
				addColorValue('9','6','6');
				addColorValue('9','6','3');
				addColorValue('9','6','0');
				
<!-- 3-2 -->

				addColorValue('F','3','F');
				addColorValue('F','3','C');
				addColorValue('F','3','9');
				addColorValue('F','3','6');
				addColorValue('F','3','3');
				addColorValue('F','3','0');
				
				addColorValue('C','3','F');
				addColorValue('C','3','C');
				addColorValue('C','3','9');
				addColorValue('C','3','6');
				addColorValue('C','3','3');
				addColorValue('C','3','0');
				
				addColorValue('9','3','F');
				addColorValue('9','3','C');
				addColorValue('9','3','9');
				addColorValue('9','3','6');
				addColorValue('9','3','3');
				addColorValue('9','3','0');
				
<!-- 3-3 -->

				addColorValue('F','0','F');
				addColorValue('F','0','C');
				addColorValue('F','0','9');
				addColorValue('F','0','6');
				addColorValue('F','0','3');
				addColorValue('F','0','0');
				
				addColorValue('C','0','F');
				addColorValue('C','0','C');
				addColorValue('C','0','9');
				addColorValue('C','0','6');
				addColorValue('C','0','3');
				addColorValue('C','0','0');
				
				addColorValue('9','0','F');
				addColorValue('9','0','C');
				addColorValue('9','0','9');
				addColorValue('9','0','6');
				addColorValue('9','0','3');
				addColorValue('9','0','0');
				
<!-- 4-1 -->

				addColorValue('6','F','F');
				addColorValue('6','F','C');
				addColorValue('6','F','9');
				addColorValue('6','F','6');
				addColorValue('6','F','3');
				addColorValue('6','F','0');
				
				addColorValue('3','F','F');
				addColorValue('3','F','C');
				addColorValue('3','F','9');

				addColorValue('3','F','6');
				addColorValue('3','F','3');
				addColorValue('3','F','0');
				
				addColorValue('0','F','F');
				addColorValue('0','F','C');
				addColorValue('0','F','9');
				addColorValue('0','F','6');
				addColorValue('0','F','3');
				addColorValue('0','F','0');

<!-- 4-2 -->

				addColorValue('6','C','F');
				addColorValue('6','C','C');
				addColorValue('6','C','9');
				addColorValue('6','C','6');
				addColorValue('6','C','3');
				addColorValue('6','C','0');
				
				addColorValue('3','C','F');
				addColorValue('3','C','C');
				addColorValue('3','C','9');
				addColorValue('3','C','6');
				addColorValue('3','C','3');
				addColorValue('3','C','0');
				
				addColorValue('0','C','F');
				addColorValue('0','C','C');
				addColorValue('0','C','9');
				addColorValue('0','C','6');
				addColorValue('0','C','3');
				addColorValue('0','C','0');

<!-- 4-3 -->

				addColorValue('6','9','F');
				addColorValue('6','9','C');
				addColorValue('6','9','9');
				addColorValue('6','9','6');
				addColorValue('6','9','3');
				addColorValue('6','9','0');
				
				addColorValue('3','9','F');
				addColorValue('3','9','C');
				addColorValue('3','9','9');
				addColorValue('3','9','6');
				addColorValue('3','9','3');
				addColorValue('3','9','0');
				
				addColorValue('0','9','F');
				addColorValue('0','9','C');
				addColorValue('0','9','9');
				addColorValue('0','9','6');
				addColorValue('0','9','3');
				addColorValue('0','9','0');

<!-- 5-1 -->

				addColorValue('6','6','F');
				addColorValue('6','6','C');
				addColorValue('6','6','9');

				addColorValue('6','6','6');
				addColorValue('6','6','3');
				addColorValue('6','6','0');
				
				addColorValue('3','6','F');
				addColorValue('3','6','C');
				addColorValue('3','6','9');
				addColorValue('3','6','6');
				addColorValue('3','6','3');
				addColorValue('3','6','0');
				
				addColorValue('0','6','F');
				addColorValue('0','6','C');
				addColorValue('0','6','9');
				addColorValue('0','6','6');
				addColorValue('0','6','3');
				addColorValue('0','6','0');

<!-- 5-2 -->

				addColorValue('6','3','F');
				addColorValue('6','3','C');
				addColorValue('6','3','9');
				addColorValue('6','3','6');
				addColorValue('6','3','3');
				addColorValue('6','3','0');
				
				addColorValue('3','3','F');
				addColorValue('3','3','C');
				addColorValue('3','3','9');
				addColorValue('3','3','6');
				addColorValue('3','3','3');
				addColorValue('3','3','0');
				
				addColorValue('0','3','F');
				addColorValue('0','3','C');
				addColorValue('0','3','9');
				addColorValue('0','3','6');
				addColorValue('0','3','3');
				addColorValue('0','3','0');

<!-- 5-3 -->

				addColorValue('6','0','F');
				addColorValue('6','0','C');
				addColorValue('6','0','9');
				addColorValue('6','0','6');
				addColorValue('6','0','3');
				addColorValue('6','0','0');
				
				addColorValue('3','0','F');
				addColorValue('3','0','C');
				addColorValue('3','0','9');
				addColorValue('3','0','6');
				addColorValue('3','0','3');
				addColorValue('3','0','0');
				
				addColorValue('0','0','F');
				addColorValue('0','0','C');
				addColorValue('0','0','9');
				addColorValue('0','0','6');
				addColorValue('0','0','3');
				addColorValue('0','0','0');

<!-- 1-1 --> 

				addColorValue('F','F','F');
				addColorValue('C','C','C');
				addColorValue('9','9','9');
				addColorValue('6','6','6');
				addColorValue('3','3','3');
				addColorValue('0','0','0');

				addColorValue('F','0','0');
				addColorValue('F','F','0');
				addColorValue('0','F','0');
				addColorValue('0','F','F');
				addColorValue('0','0','F');
				addColorValue('F','0','F');

				addColorValue('F','F','F');
				addColorValue('F','F','F');
				addColorValue('F','F','F');
				addColorValue('F','F','F');
				addColorValue('F','F','F');
				addColorValue('F','F','F');                              
			
       	return colorArray;
     }
     function getColorTable() {
         var colors = colorArray;
      	 var tableCode = '';
         tableCode += '<table border="0" cellspacing="1" cellpadding="1">';
         for (i = 0; i < colors.length; i++) {
              if (i % perline == 0) { tableCode += '<tr>'; }
              tableCode += '<td bgcolor="#000000"><a style="outline: 1px solid #000000; color: ' 
              	  + colors[i] + '; background: ' + colors[i] + ';font-size: 9px;" title="' 
              	  + colors[i] + '" href="javascript:setColor(\'' + colors[i] + '\');">&nbsp;&nbsp;&nbsp;</a></td>';
              if (i % perline == perline - 1) { tableCode += '</tr>'; }
         }
         if (i % perline != 0) { tableCode += '</tr>'; }
         tableCode += '</table>';
      	 return tableCode;
     }
     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(id + 'field').title);
     }
     function getAbsoluteOffsetTop(obj) {
     	var top = obj.offsetTop;
     	var parent = obj.offsetParent;
     	while (parent != document.body) {
     		top += parent.offsetTop;
     		parent = parent.offsetParent;
     	}
     	return top;
     }
     
     function getAbsoluteOffsetLeft(obj) {
     	var left = obj.offsetLeft;
     	var parent = obj.offsetParent;
     	while (parent != document.body) {
     		left += parent.offsetLeft;
     		parent = parent.offsetParent;
     	}
     	return left;
     }