window.getCheckGroup = function( check )
{
  var index = check.name().lastIndexOf( '__' );
  if( index != -1 )
  {
    return check.name().substr( index + 2 );
  }
  else
  {
    return false;
  }
}

window.onGroupCheckClick = function( check )
{
  if( !check.checked() )
  {
    return;
  }
  var group = getCheckGroup( check );
  jQuery( ':checkbox' ).each( function()
  {
    var curCheck = $( this );
    var curGroup = getCheckGroup( curCheck );
    if( curCheck != check && curGroup != false && curGroup == group )
    {
      $( this ).setChecked( false );
    }
  } );
}

jQuery( ':checkbox' ).each( function()
{
	var check = $( this );
	if( getCheckGroup( check ) != false )
	{
		jQuery( this ).click( function() { onGroupCheckClick( $( this ) ) } );
	}
} );
