$.fn.extend({'SuggestEmptyInput': SuggestEmptyInput});

function SuggestEmptyInput( textToDisplay, className )
{
	var self = this;
	var m_className = (className !== undefined) ? className : 'empty';
	var m_textToDisplay = (textToDisplay !== undefined) ? textToDisplay : 'Введите значение';
	
	initSuggestEmptyInput();
	
	function initSuggestEmptyInput()
	{
		assignOnFocusChange();
	}
	
	function assignOnFocusChange()
	{
		switch(self.attr('tagName'))
		{
		case 'INPUT':
		case 'TEXTAREA':
			{
				self.blur(onBlur);
				self.focus(onFocus);
				self.blur();
				initOwnerFormSubmit();
			}
			break;
		}
	}

	function onBlur(e)
	{
		var blurred = $(e.target);
		if( !blurred.val() )
		{
			blurred.val(m_textToDisplay);
			blurred.addClass(m_className);
		}
	}
	
	function onFocus(e)
	{
		var focused = $(e.target);
		if( focused.hasClass(m_className) )
		{
			focused.val('');
			focused.removeClass(m_className);
		}
	}
	
	function initOwnerFormSubmit()
	{
		var ownerForm = self.parents('form');
		ownerForm.submit(onOwnerFormSubmit);
		
		function onOwnerFormSubmit()
		{
			$('.' + m_className, $(this)).val('');
		}
	}
	
	return self;
}

