/**
 * Copyright (C) 2003, CodeHouse.com. All rights reserved.
 * CodeHouse(TM) is a registered trademark.
 *
 * THIS SOURCE CODE MAY NOT BE MODIFIED, DISTRIBUTED, OR EXECUTED
 * FROM OUTSIDE THE CONTEXT OF CODEHOUSE.COM
 */ 
function createPalette(srcId,
                       palData,
					   cbCellClicked,
					   cbCellMouseOver,
					   cbCellMouseOut,
					   cols)
{
   var srcElem = document.getElementById(srcId);
   
   var t = document.createElement("table");


   t.className = "ch-pal";
   
   t.cellPadding = t.cellSpacing = 0;   
      
   srcElem.appendChild(t);
   
   var tbody = t.appendChild(document.createElement("tbody"));   
   
   var colCount = 0;

   var tr;
   
   
   var td;
   
   for(var i = 0; i < palData.length; ++i)
   {
      if( ! colCount )
	  {
	     tr = tbody.appendChild(document.createElement("tr"));		 
	  }
	  
	  td = tr.appendChild(document.createElement("td"));	  	  	  	        
	  td.data = palData[i];	  	  
	  td.className = "ch-pal-cell";
	  
      var cell = document.createElement("div");	  
	  cell.style.background = td.data[0];
	  
	  cell.innerHTML = "&nbsp;"
	  td.appendChild(cell);
			
	  if( cbCellClicked )
	  {
	     td.onclick = function(ev)
		 {
		    cbCellClicked(this, this.data);
		 }
	  }
	  
	  if( cbCellMouseOver )
	  {
	     td.onmouseover = function(ev)
		 {
		    cbCellMouseOver(this, this.data);
		 }	  
	  }
	  
	  if( cbCellMouseOut )
	  {
	     td.onmouseout = function(ev)
		 {
		    cbCellMouseOut(this, this.data);
		 }	  
	  }
	  		 	  
	  if( colCount++ == cols )
	  {
	     colCount = 0;
	  }
   }   
}