// JavaScript Document
	 var color_picker_callback = null;
	 var perline = 18;
     var divSet = false;
     var curId;
     var colorLevels = Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
     var colorArray = Array("000000","000033","000066","000099","0000CC","0000FF","330000","330033","330066","330099","3300CC",
							"3300FF","660000","660033","660066","660099","6600CC","6600FF","990000","990033","990066","990099",
							"9900CC","9900FF","CC0000","CC0033","CC0066","CC0099","CC00CC","CC00FF","FF0000","FF0033","FF0066",
							"FF0099","FF00CC","FF00FF","003300","003333","003366","003399","0033CC","0033FF","333300","333333",
							"333366","333399","3333CC","3333FF","663300","663333","663366","663399","6633CC","6633FF","993300",
							"993333","993366","993399","9933CC","9933FF","CC3300","CC3333","CC3366","CC3399","CC33CC","CC33FF",
							"FF3300","FF3333","FF3366","FF3399","FF33CC","FF33FF","006600","006633","006666","006699","0066CC",
							"0066FF","336600","336633","336666","336699","3366CC","3366FF","666600","666633","666666","666699",
							"6666CC","6666FF","996600","996633","996666","996699","9966CC","9966FF","CC6600","CC6633","CC6666",
							"CC6699","CC66CC","CC66FF","FF6600","FF6633","FF6666","FF6699","FF66CC","FF66FF","009900","009933",
							"009966","009999","0099CC","0099FF","339900","339933","339966","339999","3399CC","3399FF","669900",
							"669933","669966","669999","6699CC","6699FF","999900","999933","999966","999999","9999CC","9999FF",
							"CC9900","CC9933","CC9966","CC9999","CC99CC","CC99FF","FF9900","FF9933","FF9966","FF9999","FF99CC",
							"FF99FF","00CC00","00CC33","00CC66","00CC99","00CCCC","00CCFF","33CC00","33CC33","33CC66","33CC99",
							"33CCCC","33CCFF","66CC00","66CC33","66CC66","66CC99","66CCCC","66CCFF","99CC00","99CC33","99CC66",
							"99CC99","99CCCC","99CCFF","CCCC00","CCCC33","CCCC66","CCCC99","CCCCCC","CCCCFF","FFCC00","FFCC33",
							"FFCC66","FFCC99","FFCCCC","FFCCFF","00FF00","00FF33","00FF66","00FF99","00FFCC","00FFFF","33FF00",
							"33FF33","33FF66","33FF99","33FFCC","33FFFF","66FF00","66FF33","66FF66","66FF99","66FFCC","66FFFF",
							"99FF00","99FF33","99FF66","99FF99","99FFCC","99FFFF","CCFF00","CCFF33","CCFF66","CCFF99","CCFFCC",
							"CCFFFF","FFFF00","FFFF33","FFFF66","FFFF99","FFFFCC","FFFFFF");
     var ie = false;
     var nocolor = '';
	 //if (document.all) { ie = true; nocolor = ''; }
	 function getObj(id) {
		/*if (ie) { return document.all[id]; } 
		else {*/	return document.getElementById(id);	//}
	 }
	 function getObj_tmp(id) {
		/*if (ie) { return document.all[id]; } 
		else {*/	return window.opener.document.getElementById(id);	//}
	 }

     
     function setColor(color) {
     	var link = getObj(curId);
     	var field = getObj(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';
	    eval(getObj(curId ).title);
	    if(color_picker_callback!=null) color_picker_callback();
	   
     }
        
     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	=9999;
        elemDiv.innerHTML = '<span style="font-family:Verdana; font-size:11px;z-index:9999">Pick a color: ' 
          	+ '(<a href="javascript:setColor(\'\');">No color</a>)<br>' 
        	+ getColorTable();
        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';
			if(color_picker_callback!=null) color_picker_callback();
			return;
		}
     	curId = id;
     	var thelink = getObj(id);
     	picker.style.top = (getAbsoluteOffsetTop(thelink) + 20) +'px';
     	picker.style.left = getAbsoluteOffsetLeft(thelink) + 'px';     
		picker.style.display = 'block';
     }
     
     function getColorTable() {
         var colors = colorArray;
      	 var tableCode = '';
         tableCode += '<table background-color: #000; border="0" cellspacing="0" cellpadding="0" style="z-index:9999;">';
         for (i=0; i<colors.length; i++) {
              if (i % perline == 0) { tableCode += '<tr>'; }
              tableCode += '<td><a style="border: 0px; padding: 0px; margin: 0px; color: ' 
              	  + colors[i] + '; background: #' + colors[i] + ';font: 10px Verdana;" 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;
			
	    }
	    if(getObj(id + 'field')) eval(getObj(id + 'field').title);
     }
     function relateColor_tmp(id, color) {
     	var link = getObj_tmp(id);
     	if (color == '') {
	     	link.style.background = nocolor;
	     	link.style.color = nocolor;
	     	color = nocolor;
     	} else {
	     	link.style.background = '#' + color;
	     	link.style.color = '#' + color;
			
	    }
	    if(getObj_tmp(id + 'field')) eval(getObj_tmp(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;
     }
