var DynamicForm = Class.create({
	
	baseElement: null,
	
	inputElements: new Array(),
	
	allowedElements: new Array("input", "textarea"),
	
	_attachEffect: null,
	
	_onChangeFocus: null,
	
	initialize: function( id )
	{
		this.baseElement = $(id);
		
		if(this.baseElement)
		{
			for( i=0; i<this.allowedElements.length; i++)
			{
				var selector = this.allowedElements[i];
				
				var selection = this.baseElement.getElementsByTagName( selector );
				
				for( j=0; j<selection.length; j++)
				{
					var item = selection[j];
					
					this.inputElements.push( item );
				}
			}	
			
			this._attachEffect  = this.attachEffect.bind( this );
			this._onChangeFocus = this.onChangeFocus.bindAsEventListener( this );

			this.render();
			
		}
	},
	
	refresh: function()
	{
		this.initialize( this.baseElement.id );		
	},
	
	render: function()
	{
		this.inputElements.each( this._attachEffect );
	},
	
	onChangeFocus: function( event )
	{
		var elem = Event.element( event );
		
		if(elem)
		{
			elem.toggleClassName("focus");
		}
	},

	attachEffect: function( elem )
	{
		if(elem)
		{
			Event.observe( elem, 'focus', this._onChangeFocus);
			Event.observe( elem, 'blur',  this._onChangeFocus);
		}
	}
		
});

