//+--------------------------------------------------------------------------+
//| xtabs                                                                    |
//| כopyleft [jprado@layer51.com]    									     |
//| todo: remove redundant code					                             |
//| todo: add customizability					                             |
//+--------------------------------------------------------------------------+

function xTabs() {

	if ( !document.getElementById || !document.getElementsByTagName ) {
		return;
	}
	var tables = document.getElementsByClassName('xtabs');
	for (var i=0;i<tables.length;i++ ) {
		var tBody = tables[i].getElementsByTagName("TBODY")[0];
		var y=0;
		for (var j=0;j< tBody.childNodes.length;j++ ) {
			var row = tBody.childNodes[j];
			var x,y;
			x = 0;
			if( row.nodeName.toLowerCase() == 'tr' && row.className.indexOf('nohover') == -1) {
				row.onmouseover = xtOver;
				row.onmouseout = xtOut;
				for (var k=0;k<row.childNodes.length;k++ ) {
					if( row.childNodes[k].nodeName.toLowerCase() == 'td' ) {
						var cell = row.childNodes[k];
						cell.x = x;
						cell.y = y;
						cell.onmouseover = xtVertOver;
						cell.onmouseout = xtVertOut;
						x++;
					}
				}
				y++;
			}
		}
	}
}

function xtOver() {
	//this.style.backgroundColor = '#E0E0C9';
	//this.style.backgroundColor = (this.className == 'odd' ? '#DEDECC' : '#D0D0BE');
	//this.style.backgroundColor = (this.className == 'odd' ? '#D1EEB0' : '#B9D999');
	//this.style.backgroundColor = (this.className == 'odd' ? '#D4DCEC' : '#BBC8E0');
	this.style.backgroundColor = (this.className == 'odd' ? '#FFFFCC' : '#EEEEAA');
}

function xtOut() {
	this.style.backgroundColor = '';
}

function xtVertOver(){
	var tBody = this.parentNode.parentNode;
	
	var rowIndex = 0;
	for (var i=0;i<tBody.childNodes.length;i++) {
		var row = tBody.childNodes[i];
		if( row.nodeName.toLowerCase() == 'tr' && row.className.indexOf('nohover') == -1 ) {
			var columnIndex = 0;
			for (var j=0;j<row.childNodes.length;j++ ) {
				if( row.childNodes[j].nodeName.toLowerCase() == 'td' ) {
					var cell = row.childNodes[j];
					if( columnIndex == this.x && rowIndex != this.y ) {
						cell.style.backgroundColor = (rowIndex % 2 == 0 ? '#EEEEAA' : '#FFFFCC');
					}
					columnIndex++;
				}
			}
			rowIndex++;
		}
	}
}

function xtVertOut(){
	var tBody = this.parentNode.parentNode;
	var rowIndex = 0;
	for (var i=0;i<tBody.childNodes.length;i++) {
		var row = tBody.childNodes[i];
		if( row.nodeName.toLowerCase() == 'tr' && row.className.indexOf('nohover') == -1) {
			var columnIndex = 0;
			for (var j=0;j<row.childNodes.length;j++ ) {
				if( row.childNodes[j].nodeName.toLowerCase() == 'td' ) {
					var cell = row.childNodes[j];
					if( columnIndex == this.x ) {
						cell.style.backgroundColor = '';
						cell.style.color = '';
					}
					columnIndex++;
				}
			}
			rowIndex++;
		}
	}
}

Event.observe(window, 'load', xTabs, false);