//functions to manipulate table
//using jquery
//bs oct 2008
//12/13/2008 update
//cell index base is 1

function addtable(table_id,row,col)
{	//example addtable('t1',7,3);
	$('#'+table_id).remove();	//remove table if exists
	$('body').append('<table border=1 id='+table_id+'></table>');
	$('#'+table_id).append('<caption>table id = '+table_id+'</caption>')
	for(var i=0;i<row;i++)
		{$('#'+table_id).append('<tr></tr>');}
		$('#'+table_id+' tr').each(function(x){
			for(var c=0;c<col;c++) {$(this).append('<td width="100px">'+x+'</td>')}
})

}

function countRow(table_id)
{return $('#'+table_id+ ' tr').length;}

function countCol(table_id)
{return $('#'+table_id+' td').length/countRow(table_id);}

function cell(table_id,row,col)
{	//RETURNS CELL 
	//IF NOT EXISTING, ADDS THE CELL

	//check if the row exists
	var ccount=countCol(table_id);
	var rcount=countRow(table_id);

	if(row>rcount)
	{
		//add extra rows
		for(var k=0;k<(row-rcount);k++)
			{
				$('#'+table_id).append('<tr height=20px></tr>')
				$('#'+table_id+' tr:last').each(function(x){for(var c=0;c<countCol(table_id);c++){$(this).append('<td>'+x+'</td>')}});
			}
	}

	//check if column exists
	if(col>ccount){
		$('#'+table_id+' tr').each(function(x){for(var c=0;c<(col-ccount);c++){$(this).append('<td>'+x+'</td>')}});
	}

	var c=$('#'+(table_id)+' tr:eq('+eval(row-1)+') td:eq('+eval(col-1)+')');
	return c;
}

function datawrite(t,r,c,data)
{if(data){
	cell(t,r,c).attr('value',data);
	}
}
function datashow(t,r,c)
{
    var x=cell(t,r,c).attr('value');
    if(x){
    cell(t,r,c).html(x);}
}
function dataprint(t,r,c,decimal)
{
	var x=cell(t,r,c).attr('value');
	var y=(x*1.0).toFixed(decimal);
	if(x){cell(t,r,c).html(y)}
}