;(function($)
{
	$.fn.formButton = function(options)
	{
		var optionsDefault =
		{
			'submit_class'	: 'submit_form',
			'apply_class'	: 'submit_apply_form',
			'reset_class'	: 'reset_form'
		}
		
		var options = $.extend({}, optionsDefault, options);
	
		addFormButtonClass(this);
	
		function addFormButtonClass($el)
		{
			//--------- Change form link buttons to buttons

			/**
			 * a.submit_form	: onclick parent form submit
			 * a.reset_form		: onclick parent form reset
			 */
			$el.each(function(){
				//------- Submit form button
				
				var form = $(this);
				
				$(this).find('input').keydown(function(e){
					if (window.event) keycode = window.event.keyCode;
					else if (e) keycode = e.which;

					if(keycode == 13)
					{
						e.preventDefault();
						$(form).submit();
					}
				});

				$(this).find('a.'+options['submit_class']).click(function(e){
					e.preventDefault();
					
					var msg = $(this).attr('title') || '';

					if(!msg.match(/^\s*$/))
					{
						if($(this).hasClass('confirm'))
						{
							if(!confirm(msg)) return false;
						}
						else if($(this).hasClass('alert'))
						{
							alert(msg);
						}
					}

					var form_action = $(form).attr('action');
					
					if($(this).attr('href') && $(this).attr('href') != '#')
					{
						$(form).attr('action', $(this).attr('href'));
					}

					$(form).find('input[name=back_url]').attr('disabled', false);
					$(form).find('input[name=apply]').attr('disabled', true);

					$(form).submit();
					
					$(form).attr('action', form_action);
				});
				//------- End Submit form button
				
				//------- Submit Apply form button
				$(this).find('a.'+options['apply_class']).click(function(e){
					e.preventDefault();
					
					var msg = $(this).attr('title');

					if(!msg.match(/^\s*$/))
					{
						if($(this).hasClass('confirm'))
						{
							if(!confirm(msg)) return false;
						}
						else if($(this).hasClass('alert'))
						{
							alert(msg);
						}
					}

					var form_action = $(form).attr('action');
					
					if($(this).attr('href') && $(this).attr('href') != '#')
					{
						$(form).attr('action', $(this).attr('href'));
					}
					
					if($(form).find('input[name=apply]').length == 0)
					{
						$('<input type="hidden" name="apply" />').val('1').prependTo($(form));
					}
					else
					{
						$(form).find('input[name=apply]').val('1');
					}
					
					$(form).submit();
					
					$(form).attr('action', form_action);
				});
				//------- End Submit form button

				//------- Reset form button
				$(this).find('a.'+options['reset_class']).click(function(e){
					e.preventDefault();
					clearForm($(form));
				});
				//------- End Reset form button
			});
			//--------- End Change form link buttons to buttons
		}
		
		function clearForm($el)
		{
			$el.find(':input').each(function(){
				switch(this.type) {
					case 'password':
					case 'select-multiple':
					case 'select-one':
					case 'text':
					case 'textarea':
						$(this).val('');
						break;
					case 'checkbox':
					case 'radio':
						this.checked = false;
				}
			});
		}
	};
})(jQuery);
