$(document).ready(function(){
	$.fn.addClassOnChecked=(function(){
		$(this).find('input:radio,input:checkbox').each(function(){
			$(this).parents('td:first').toggleClass('checked',$(this).is(':checked'));
		});
	});

	(function($) {
		var rCur,cCur;           
	
		$.fn.HLheadNcell = (function(className) {
			$('td.hvg', this).hover(function() {
				var row=$(this).parent();
	
				var rIndex=row.get(0).rowIndex;               
				var cIndex=row.children().index(this)+1;      
	
				var table=row.parent();
	
				rCur=table.find('tr:eq('+rIndex+') > td.rowheading');
				rCur.addClass(className);
	
				cCur=table.find('td.colheading:nth-child('+cIndex+')');
				cCur.addClass(className);
	
				$(this).addClass(className);
			}, function() {
				rCur.removeClass(className);
				cCur.removeClass(className);
				$(this).removeClass(className);
			});
			return this;
		});
	}(jQuery));

	var $cells=$('table.cc td.hvg');

	$cells.addClassOnChecked();

        $cells.find('input:not(:text)').click(function(e){
                e.stopPropagation();
		$cells.addClassOnChecked();
        }).each(function(){
		$(this).parents('td:first').hover(function() {
			$(this).addClass('hvcell');
        	},function() {
			$(this).removeClass('hvcell');
		});
		$(this).parents('tr:first').hover(function() {
			$(this).addClass('hvrow');
        	},function() {
			$(this).removeClass('hvrow');
		});
	});

        $cells.click(function(){
		var $this=$(this);

                var radio=$this.find('input:radio:not(:disabled,:checked)');
		if(radio.length>0) {
                	radio.attr('checked',true);
			radio.queue('onclick',radio.attr('onclick'));
			radio.dequeue('onclick');
		}

		var checkbox=$this.find('input:checkbox:not(:disabled)');
		if(checkbox.length>0) {
			checkbox.attr('checked',!checkbox.attr('checked'));
			checkbox.queue('onclick',checkbox.attr('onclick'));
			checkbox.dequeue('onclick');
		}

		$cells.addClassOnChecked();
        });

	$('label img').click(function(){ $(this).parent().click(); });
});
