/* This is the table generator, used to display the data describing the products.*/

function display_table (table_desc, data) {
	var columns = table_desc.columns;
	var num_col = columns.length;
	var num_li = data.length;
	var contenu;

	document.writeln('<table ' + table_desc.layout_table + '>\
			<tr ' + table_desc.layout_title + '>');

	for (var j = 0 ; j < num_col ; j++) {
		document.writeln ('<td ><b>' + columns[j].titre + '</b></td>');
	}

	document.writeln('</tr>');
	for (var i = 0 ; i < num_li ; i++) {
		document.writeln ('<tr ' + table_desc.layout_line[i % (table_desc.layout_line.length)]+'>');
		var datum = data[i];
		for (var j=0 ; j < num_col ; j++) {
			contenu = eval(columns[j].expr);
			if ( !eval(columns[j].test) ) contenu=table_desc.NoItem;
			document.writeln('<td ' + columns[j].format + '>' + contenu + '</td>');
		}
		document.writeln ('</tr>');
	}

	document.writeln('</table>');
}

function col_record(ti, ex, fo, te, sp) {
	this.titre = ti;
	this.expr = ex;
	if (typeof (fo) != "undefined")
		this.format = fo;
	else this.format = "";
	if (typeof (te) != "undefined") {
		this.test = te;
		if (te=="span")
			this.span=sp;
	}
	else this.test = "1";
}

//paramètres par défaut pour les tables :
table_default_param = new Array('NoItem="<center>-</center>"');
table_default_layout_tb = ' align="center" bgcolor="white" border="2" ';

function table_description (param, layout) {
	var col;
	var i,c;
	
	param = table_default_param.concat(param);
	
	for (i=0 ; i < param.length ; i++) eval("this." + param[i] + ";");

	this.layout_table = layout[0].concat(table_default_layout_tb);
	this.layout_title = layout[1];
	this.layout_line = layout[2];

	if (typeof(this.layout_line)=="string") {
		var temp=this.layout_line;				//on met cette valeur dans un tableau.
		this.layout_line = new Array();
		this.layout_line[0] = temp;
	}
	
	this.columns=new Array();
	
	for (i = 2 , c=0; i < table_description.arguments.length ; i++, c++) {
		col = table_description.arguments[i];
		if (typeof (col[0]) == "string")
			this.columns[c] = new col_record(col[0], col[1], col[2], col[3]);
		else
			for (var j=0 ; j < col[0].length ; j++, c++)
				this.columns[c] = new col_record(col[0][j], col[1], col[2], col[3]);
	}
}


