$(document).ready(function() {
	$('tbody tr:first-child td, tbody tr:first-child th').each(function(i) {
		$(this).addClass('jsFirstRow');
	});

	$('abbr, acronym').each(function(i) {
		if( this.innerHTML.match(/^[A-Z0-9]+$/) ) {
			$(this).addClass('jsAllCaps');
		}
	});


	$('tbody').each(function(a) {
		var tb = this;
		$(this).find('tr').each(function(b) {
			var tr = this;
			
			$(this).find('th,td').each(function(c) {
				this.memberOf = new Array();
			
				if( !this.getAttribute('rowspan') ) {
					this.setAttribute('rowspan',1);
				}
				
				for( var i = 0; i < this.getAttribute('rowspan'); i++ ) {
					var ctr = $(tb).find('tr').get(b+i);

					if( !ctr.members )
						ctr.members = new Array();
					
					ctr.members.push( this );
					this.memberOf.push( ctr );
				}


				$(this).hover(function() {
					for( var i = 0; i < this.memberOf.length; i++ ) {
						for( var j = 0; j < this.memberOf[i].members.length; j++ )
							$(this.memberOf[i].members[j]).addClass('jsHover');
					}
				}, function() {
					for( var i = 0; i < this.memberOf.length; i++ ) {
						for( var j = 0; j < this.memberOf[i].members.length; j++ )
							$(this.memberOf[i].members[j]).removeClass('jsHover');
					}
				});
			});
		});
	});
});
