function getEl( id )
{
	var el = document.getElementById( id );
	if( !el )
	{
		eval( 'el = document.' + id );
	}
	
	return ( !el ) ? false : el;
}

function getCurrentRadioValue( cell_name )
{
	try
	{
		eval( 'var id = current_' + cell_name );
	}
	catch( e )
	{
		return 0;
	}

	return id;
}

function setCurrentRadioValue( cell_name, id )
{
	eval( 'current_' + cell_name + ' = ' + id + ';' )
}

function markList( cell_name, state )
{
	var rb = document.getElementsByTagName( 'input' );

	if( !rb )
	{
		return;
	}
	
	for( var r = 0; r < rb.length; r++ )
	{
		if( rb[r].id.substr( 0, cell_name.length + 9 ) == 'checkbox_' + cell_name )
		{
			rb[r].checked = state;
			
			checkCell( rb[r].value, cell_name, rb[r] );
		}
	}
}

function checkCell( cell_id, cell_name, check_el )
{
	check_el.blur();

	var cell_el = getEl( 'check_cell_' + cell_name + '_' + cell_id );

	if( !cell_el || !check_el )
	{
		return;
	}

	cell_el.className = ( check_el.checked ) ? 'td-mark-active' : 'td-mark';
}

function onloadCheckCells( cell_name, is_radio )
{
	var parent = getEl( 'listing' );

	if( !parent )
	{
		return;
	}

	var rb = parent.getElementsByTagName( 'input' );

	var prefix = ( is_radio ) ? 'radio_' : 'checkbox_';
	var prefix_len = prefix.length;

	for( var r = 0; r < rb.length; r++ )
	{
		if( rb[r].id.substr( 0, cell_name.length + prefix_len ) == prefix + cell_name )
		{
			checkCell( rb[r].value, cell_name, rb[r] );
			
			if( is_radio && rb[r].checked )
			{
				if( !getCurrentRadioValue( cell_name ) )
				{
					setCurrentRadioValue( cell_name, rb[r].value );
				}
				else
				{
					rb[r].checked = false;
				}
			}
		}
	}
}

function toggleCheckbox( cell_name, cell_id )
{
	var check_el = getEl( 'checkbox_' + cell_name + '_' + cell_id );

	if( !check_el )
	{
		return;
	}

	check_el.checked = !check_el.checked;
	checkCell( check_el.value, cell_name, check_el );
}

function toggleRadio( cell_name, cell_id )
{
	var check_el = getEl( 'radio_' + cell_name + '_' + cell_id );
	check_el.checked = true;

	if( !check_el )
	{
		return;
	}

	var old_id = getCurrentRadioValue( cell_name );
	if( old_id && old_id != check_el.value )
	{
		var old_check_el = getEl( 'radio_' + cell_name + '_' + old_id );
		if( old_check_el )
		{
			old_check_el.checked = false;
			checkCell( old_id, cell_name, old_check_el );
		}
	}
	
	checkCell( check_el.value, cell_name, check_el );
	setCurrentRadioValue( cell_name, check_el.value );
}

function toggleEl( checkbox_id, toggle_id )
{
	var checkbox_el = getEl( checkbox_id );
	var toggle_el = getEl( toggle_id );
	
	if( checkbox_el && toggle_el )
	{
		if( checkbox_el.checked )
		{
			toggle_el.style.display = 'none';
		}
		else
		{
			toggle_el.style.display = 'block';
		}
	}
}

function toggleFieldsets()
{
	for( var i = 0; i < arguments.length; i++ )
	{
		if( arguments[i] == false )
		{
			continue;
		}
		
		var state = ( i == 0 ) ? 'block' : 'none';
		var toggle_el = getEl( arguments[i] );
		
		if( !toggle_el )
		{
			continue;
		}
		
		toggle_el.style.display = state; 
	}
}

function buttonHover( button_el )
{
	if( button_el.className )
	{
		switch( button_el.className )
		{
			case 'large':
				button_el.className = 'large-hover';
				break;
			case 'small':
				button_el.className = 'small-hover';
				break;
		}
	}
}

function buttonHoverRestore( button_el )
{
	if( button_el.className )
	{
		switch( button_el.className )
		{
			case 'large-hover':
				button_el.className = 'large';
				break;
			case 'small-hover':
				button_el.className = 'small';
				break;
		}
	}
}