/**
 * jQuery preSubmit plugin file.
 *
 * @author Aliaksandr Astashenkau and Jeffrey Brayne
 * @author-email dfsq.dfsq@gmail.com, jeffreybrayne@gmail.com
 * @author-website http://dfsq.info
 * @license MIT License - http://www.opensource.org/licenses/mit-license.php
 * @version 1.0
 */
;(function($) {
	$.fn.preSubmit = function(options) {
	    return this.each(function() {
	        var is, fields;
	        is = options || {};

	        if (options.fields) fields = $(options.fields);
	        else {
	        	$(this).find('input[type="text"],input[type="password"],select,textarea').addClass('_preSubmit');
	        	fields = $(this).find('._preSubmit');
	        }

	        if (options.but) {
	            fields = fields.not(options.but);
	        }

	        $(this).submit(function(e) {
	            e.preventDefault();
	            var checked = 0;

	            fields.each(function(k, el) {
	                if (!$.trim($(this).val()) || $(this).val() == $(this).attr('ignore')) {
	                    $(this).focus();
	                    if (options.errClass) $(this).addClass(options.errClass);
	                    return false;
	                }
	                if (options.errClass) $(this).removeClass(options.errClass);
	                checked++;
	            });

	            if (fields.length == checked) {
	                if(options.onValid) {
	                 	$(this).unbind().submit();
	                	options.onValid.call(this);
	                }else {
	                	$(this).unbind().submit();
	                }
	            }

	            return false;
	        });
	    });
	};
})(jQuery);
