// Cell grid handlers
// (C) 2003, R&D center ScanEx
//

// notes : document must contain cellon and celloff styles

//--------------grid parameters
var cell_W = 40;
var cell_H = 40;
var cell_Rows = 15;
var cell_Cows = 15;

//---------------------------------------------------------
var cell_fDrag = 0;//drag flag

function cell_Create() 
{
	var cellhtm = '';
	for (r=0; r<cell_Rows ;r++)
	{
	 for (c=0;c<cell_Cows;c++)
	 {
		var cid = (r+1)+"x"+(c+1);
		var l = c*cell_W-1;
		var t = r*cell_H-1;
		cellhtm = "<div id=\""+cid+"\" class=\"celloff\" style=\"left:"+l+"px;top:"+t+"px;width:"+cell_W+"px;height:"+cell_H+"px\" ></div>";		
		document.write(cellhtm);
	 }
	}
}
function cell_AtPoint00(xrel,yrel,onoff)
{
   
   var framex = document.getElementById('CellFrame');
   var x = xrel - framex.style.pixelLeft;
   var y = yrel - framex.style.pixelTop;
   var c = Math.floor(x/cell_W)+1;
   var r = Math.floor(y/cell_H)+1; 
   var cid =  r+"x"+c;alert(xrel+"x"+yrel+"x"+cell_W+"x"+cell_H);
   var cell = document.getElementById(cid);
   if (cell != null)
   {
     cell.className = (onoff)? 'cellon':'celloff';
     
   }
}

function cell_AtPoint(evt) {
	
	var selectedObj = document.getElementById('CellFrame');
    //var evt = window.event;
    
    if (selectedObj) {

        if (evt.pageX) { //mozilla
            offsetX = evt.pageX - ((selectedObj.offsetLeft) ? 
                      selectedObj.offsetLeft : selectedObj.left);
            offsetY = evt.pageY - ((selectedObj.offsetTop) ? 
                      selectedObj.offsetTop : selectedObj.top);
        } else if (typeof evt.offsetX != "undefined") { //I.E
            offsetX = event.x - selectedObj.style.pixelLeft;       
            offsetY = event.y - selectedObj.style.pixelTop ;
           
        } else if (typeof evt.clientX != "undefined") {
            offsetX = evt.clientX - ((selectedObj.offsetLeft) ? 
                      selectedObj.offsetLeft : 0);
            offsetY = evt.clientY - ((selectedObj.offsetTop) ? 
                      selectedObj.offsetTop : 0);
        } else  { alert("Sorry, your browser do not support required functions!"); return; }
       
        //-----figure out the cell id
   		var c = Math.floor(offsetX/cell_W)+1;
   		var r = Math.floor(offsetY/cell_H)+1; 
   		var cid =  r+"x"+c;
   		var cell = document.getElementById(cid);
   		if (typeof cell != "undefined")
   		{			
     		cell.className = (evt.altKey)? 'celloff':'cellon';      
   		}
    }
    evt.cancelBubble = true;
}

function cell_GetSelection()
{
	var selstring = '';
	for (r=0; r<cell_Rows ;r++)
	{
	 for (c=0;c<cell_Cows;c++)
	 {
		var cid = (r+1)+"x"+(c+1);
		var cell;
		if ((null != (cell = document.getElementById(cid))) && (cell.className == 'cellon'))
		{
		   selstring += "_"+cid;  
		}
	 }
	}
	return selstring;
}
function cell_ClearSelection()
{
	for (r=0; r<cell_Rows ;r++)
	{
	 for (c=0;c<cell_Cows;c++)
	 {
		var cid = (r+1)+"x"+(c+1);
		var cell;
		if ((null != (cell = document.getElementById(cid))) && (cell.className == 'cellon'))
		{cell.className = 'celloff';}
	 }
	}	
}