// JavaScript Document

function cpObj(ref) {

     var colorpickerPerline = 9;
     var colorpickerDivSet = false;
     var colorpickerCurId;
     var colorpickerColorLevels = Array('A', 'B', 'C', 'D', 'E', 'F');
     var colorpickerColorArray = Array();
     var colorpickerNocolor = 'none';
	 
	 if (document.all) {
		colorpickerNocolor = ''; 
	}
	 
	 function getObj(id) {
		return getEl(id);
	 }

     function addColor(r, g, b) {
     	var red = colorpickerColorLevels[r];
     	var green = colorpickerColorLevels[g];
     	var blue = colorpickerColorLevels[b];
     	addColorValue(red, green, blue);
     }

     function addColorValue(r, g, b) {
     	colorpickerColorArray[colorpickerColorArray.length] = '#' + r + r + g + g + b + b;
     }
     
     function setColor(color) {
     	var link = getEl(colorpickerCurId);
     	var field = getEl(colorpickerCurId+'field');
     	var picker = getEl(ref);
     	field.value = color;
     	if (color == '') {
	     	link.style.background = colorpickerNocolor;
	     	//link.style.color = colorpickerNocolor;
	     	color = colorpickerNocolor;
     	} else {
	     	link.style.background = color;
	     	//link.style.color = color;
	    }
     	picker.style.display = 'none';
	    eval(getEl(colorpickerCurId + 'field').title);
     }
        
     function setDiv() {     
     	if (!document.createElement) { return; }
        var elemDiv = document.createElement('div');
        if (typeof(elemDiv.innerHTML) != 'string') { return; }
        genColors();
        elemDiv.id = ref;
	    elemDiv.style.position = 'absolute';
        elemDiv.style.display = 'none';
        elemDiv.style.border = '#000000 1px solid';
        elemDiv.style.background = '#FFFFFF';
        elemDiv.innerHTML = '<span style="font-family:Verdana; font-size:11px;">V&auml;lj en f&auml;rg: ' 
          	+ '(<a href="javascript:'+ref+'.setColor(\'\');">Ingen f&auml;rg</a>)<br>' 
        	+ getColorTable() 
        	+ '</span>';

        document.body.appendChild(elemDiv);
        colorpickerDivSet = true;
		
     }
     
     function pickColor(id) {
		 //alert("test");
     	if (!colorpickerDivSet) { setDiv(); }
     	var picker = getEl(ref);     	
		if (id == colorpickerCurId && picker.style.display == 'block') {
			picker.style.display = 'none';
			return;
		}
     	colorpickerCurId = id;
     	var thelink = getEl(id);
     	var left = findPosX(thelink);
     	var top = findPosY(thelink);    
		picker.style.left = left+"px";
		picker.style.top = top+"px";
		picker.style.display = 'block';
     }
     
     function genColors() {
        addColorValue('A','A','A');                
        addColorValue('B','B','B');
        addColorValue('C','C','C');
        addColorValue('E','E','E');
        addColorValue('F','F','F');                                
			
        for (a = 1; a < colorpickerColorLevels.length; a++)
			addColor(0,0,a);
        for (a = 1; a < colorpickerColorLevels.length - 1; a++)
			addColor(a,a,5);

        for (a = 1; a < colorpickerColorLevels.length; a++)
			addColor(0,a,0);
        for (a = 1; a < colorpickerColorLevels.length - 1; a++)
			addColor(a,5,a);
			
        for (a = 1; a < colorpickerColorLevels.length; a++)
			addColor(a,0,0);
        for (a = 1; a < colorpickerColorLevels.length - 1; a++)
			addColor(5,a,a);
			
			
        for (a = 1; a < colorpickerColorLevels.length; a++)
			addColor(a,a,0);
        for (a = 1; a < colorpickerColorLevels.length - 1; a++)
			addColor(5,5,a);
			
        for (a = 1; a < colorpickerColorLevels.length; a++)
			addColor(0,a,a);
        for (a = 1; a < colorpickerColorLevels.length - 1; a++)
			addColor(a,5,5);

        for (a = 1; a < colorpickerColorLevels.length; a++)
			addColor(a,0,a);			
        for (a = 1; a < colorpickerColorLevels.length - 1; a++)
			addColor(5,a,5);
			
       	return colorpickerColorArray;
     }
	 
     function getColorTable() {
         var colors = colorpickerColorArray;
      	 var tableCode = '';
         tableCode += '<table border="0" cellspacing="1" cellpadding="1">';
         for (i = 0; i < colors.length; i++) {
              if (i % colorpickerPerline == 0) { tableCode += '<tr>'; }
              tableCode += '<td bgcolor="#000000" ';
			  tableCode += 'style="height:10px; width:10px; border: 1px solid #000000; color: ' + colors[i] + '; background: ' + colors[i] + ';" ';
			  tableCode += 'title="'+colors[i]+'" onclick="' + ref + '.setColor(\'' + colors[i] + '\');"></td>';
              if (i % colorpickerPerline == colorpickerPerline - 1) { tableCode += '</tr>'; }
         }
         if (i % colorpickerPerline != 0) { tableCode += '</tr>'; }
         tableCode += '</table>';
      	 return tableCode;
     }
	 
     function relateColor(id, color) {
		 
     	var link = getEl(id);
     	if (color == '') {
	     	link.style.background = colorpickerNocolor;
	     	link.style.color = colorpickerNocolor;
	     	color = colorpickerNocolor;
     	} else {
	     	link.style.background = color;
	     	link.style.color = color;
	    }
	    eval(getEl(id + 'field').title);
		
     }
	 
	 this.relateColor = relateColor;
	 this.pickColor = pickColor;
	 this.setColor = setColor;
}