// Title: tigra tables
// Description: See the demo at url
// URL: http://www.softcomplex.com/products/tigra_tables/
// Version: 1.0
// Date: 03-04-2002 (mm-dd-yyyy)
// Author: Denis Gritcyuk <denis@softcomplex.com>
// Notes: Permission given to use this script in any kind of applications if
//    header lines are left unchanged. Feel free to contact the author
//    for feature requests and/or donations

function hilite_table (table_id, start_row, end_rows_offset, odd_color, even_color, hover_color, select_color) {
// id name of the table to do row highlighting on
// number of rows to skip from start of table
// end_rows_offset = number of rows to miss at end of table
// odd_color = background color for odd rows
// even_color = background color for even rows
// hover_color = background color for rows with mouse over
// select_color = background color for marked rows

	 // browser DOM check
	//if (typeof(document.all) != 'object' ) return;

	// check vital params
	if (!table_id) return;
	var table_objs = (document.all ? document.all[table_id] : document.getElementById(table_id));
	if (!table_objs) return;

	// set defaults for optional parameters
	var col_config = [];
	col_config.start_row = (start_row ? start_row : 0);
	col_config.end_offset = (end_rows_offset ? end_rows_offset : 0);
	col_config.odd_color = (odd_color ? odd_color : '#FFFFFF');
	col_config.even_color = (even_color ? even_color : '#F2F5F7');
	col_config.hover_color = (hover_color ?hover_color : '#DADADA');
	col_config.select_color = (select_color ? select_color : '#FFFF33');
	
	// init multiple tables with same ID
	if (table_objs.length)
		for (var i = 0; i < table_objs.length; i++)
			hi_table_init(table_objs[i], col_config);
	// init single table
	else
		hi_table_init(table_objs, col_config);
}

function hi_table_init (table_obj, col_config) {
	var col_lconfig = [];
	var rows = table_obj.rows;
	for (var i = col_config.start_row; i < rows.length - col_config.end_offset; i++) {
		rows[i].config = col_config;
		rows[i].lconfig = col_lconfig;
		rows[i].set_color = tr_set_color;
		rows[i].onmouseover = tr_hover; 
		rows[i].onmouseout = tr_mout;
		// rows[i].onmousedown = tr_onclick;
		rows[i].order = (i - col_config.start_row) % 2;
		rows[i].onmouseout();
	}
}
function tr_set_color(color) {
	this.style.backgroundColor = color;
}

// event handlers
function tr_hover () {
	if (this.lconfig.clicked != this)
	{	this.set_color(this.config.hover_color);
	}
}
function tr_mout () {
	if (this.lconfig.clicked != this)
		this.set_color(this.order ? this.config.odd_color : this.config.even_color);
}
function tr_onclick () {
	if (this.lconfig.clicked == this) {
		this.lconfig.clicked = null;
		this.onmouseover();
	} else {
		var last_clicked = this.lconfig.clicked;
		this.lconfig.clicked = this;
		if (last_clicked) last_clicked.onmouseout();
		this.set_color(this.config.select_color);
	}
}
