/*	forms.js
	A collection of generic methods for making life with forms easier.
	May (and will often) include methods that exist because of browser bugs,
	and we will eventually want to better organize those.
*/

// IE-style only, since FireFox doesnt need "help" and just ignores this. gleaned from: http://www.thefutureoftheweb.com/blog/submit-a-form-in-ie-with-enter
// note: we USED to have the OPPOSITE problem - IE worked fine, NN needed help.  Now we dont and no one was using this method, so it has changed.
function FormSubmitOnEnter( event, form )
{
	// note: this is IE style, but FF doesnt complain so..
	if( event && event.keyCode == 13 )
	{
		form.submit();
		return false;
	}
	else
	{
		return true;
	}
}

// typically used in <body onload=> for page auto-focusing
function FormSetFocus( fieldID )
{
	element = document.getElementById( fieldID );
	if( element )
		element.focus();
}

// function to process our hover action for button_new
function buttonHover( button_id,  mode )
{
	var button_left = document.getElementById( button_id + "_left" );
	var button_input = document.getElementById( button_id + "_input" );
	var button_right = document.getElementById( button_id + "_right" );
	if( mode == "out" )
	{
		button_left.className = 'button_outer button_left_up';
		button_input.className = 'button_inner button_center_up';
		button_right.className = 'button_outer button_right_up';
	}
	else if( mode == "hover" )
	{
		button_left.className = 'button_outer button_left_hi';
		button_input.className = 'button_inner button_center_hi';
		button_right.className = 'button_outer button_right_hi';
	}
	else if( mode == "down" )
	{
		button_left.className = 'button_outer button_left_down';
		button_input.className = 'button_inner button_center_down';
		button_right.className = 'button_outer button_right_down';
	}
}

// limit the text in an input - like textarea, which lacks a simple length limiter
function FormLimitLength( field, maxlimit )
{
	if( field.value.length > maxlimit ) // if too long...trim it!
		field.value = field.value.substring( 0, maxlimit );
}

// function to (de)select all checkboxes in a form
function FormToggleAll( form, state )
{
	// if passed in a string, get the element
	if( typeof(form) == "string" )
		form = document.getElementById( form );
	
	// if form is a form element (eg it was called like FormToggleAll(this)), get the form
	if( form.form )
		form = form.form;

	// make sure we have a form
	if( !form || !form.elements )
		return;
	
	for( var e = 0; e < form.length; e++ )
	{
		var element = form.elements[e];
		if( element.type == "checkbox" )
		{
			if( state == null )	// just toggle
				element.checked = !element.checked;
			else				// otherwise set it explicitedly
				element.checked = state;
		}
	}
}
