//	Copyright(C) 2006,2007 Pantacle, All Rights Reserved.

/*
 *	Set up.
 */
var g_focused_background_color = '#ffffcc';


/*
 *	Registering the events.
 */
Event.observe( window, 'load', initialize_controls, false );


/*
 *	Methods on loaded.
 */
function initialize_controls()
{
	var elements = new Array();

	$A( document.getElementsByTagName('form') ).each( function(elem){
		Event.observe( elem, 'submit', judge_form_submited.bindAsEventListener( elem ), false );

		Form.getElements(elem).each( function(form_elem){

			elem_type = form_elem.getAttribute('type');

			if ( form_elem.name != '' )
			{
				
				if ( ( elem_type != 'hidden' ) &&
					 ( elem_type != 'button' ) &&
					 ( elem_type != 'submit' ) &&
					 ( elem_type != 'reset'  ) )
				{
					elements.push( form_elem );
				}
			}

			if ( ( ! form_elem.readOnly ) && ( elem_type != 'hidden' ) )
			{
				Event.observe( form_elem, 'focus', set_control_focus.bindAsEventListener( form_elem ), false );
				Event.observe( form_elem, 'blur', set_control_blur.bindAsEventListener( form_elem ), false );
			}

		});
	});

	if ( elements.length > 0 )
	{
		var current_elem = null;
		var current_left = 99999999;
		var current_top  = 99999999;

		elements.each( function(elem){
			poff = Position.cumulativeOffset(elem);
			target_left = poff[0];
			target_top  = poff[1];

			if ( ( current_top >= target_top ) &&
				 ( current_left >= target_left ) )
			{
				current_elem = elem;
				current_left = target_left;
				current_top  = target_top;
			}
		});

		Field.activate( current_elem );
	}
}



/*
 *	Focus control
 */
var g_focused_backgroundcolor = null;

function set_control_focus()
{ 
	if ( this.style == null )
	{
		return;
	}

	g_focused_backgroundcolor = Element.getStyle(this, 'background-color');

	var styles = {};
	styles['background-color'] = g_focused_background_color;
	Element.setStyle(this,styles);
}

function set_control_blur()
{ 
	if ( g_focused_backgroundcolor != null )
	{
		this.style.backgroundColor = g_focused_backgroundcolor;
	}
	g_focused_backgroundcolor = null;
}


/*
 *	Control of Submit of forms.
 */
var g_is_form_submit = false;

function judge_form_submited()
{ 
	if ( g_is_form_submit )
	{
		return( false );
	}

	g_is_form_submit = true;
	return( true );
}


