/**
 * @author charnad
 * @version 1.0
 * @description Ïðîâåðÿåò ôîðìó íà çàïîëíåííîñòü
 * @param {Array} options Ñîäåðæèò îïöèè âàëèäàöèè
 */
jQuery.fn.validForm = function(userOptions) {

    var options = {
    	errorContainer: "#errorList",
    	errorContainerCssClass: {
    		'text-color': "#F00"
    	}
    }

    $.extend(options, userOptions);
    /**
     * @description Åñëè â ôîðìå èíïóòîâ áîëüøå, ÷åì 0, òî âàëèäèðóåì åå
     */

    $('head').append("<style>.inputError{border: 2px solid #F00; background: #FAA;}</style>");

    $(this).each( function() {
    	var id = "#" + $(this).attr('id');
        if ($(id + " input").length > 0) {
            Validate(id);
        } else {
        	return false;
        }
    });

    /**
     * @argument {$} form Ôîðìà äëÿ âàëèäàöèè
     */
    function Validate(form) {

        $(form + " input[@type=submit]").click(function(event) {

        /**
         * @type int
         * @description Êîëè÷åñòâî îøèáîê
         * @default 0
         */
        var errorAmount = 0;

        //var collection = $(form + " input[@type=text]")
            //.add(form +" input[@type=password]")
            //.add(form +" input[@type=file]")
            //.add(form +" textarea")
            //.add(form +" select");
        var collection = $('.required');

        collection.each(function() {
         	    var element = $(this);
         		var length = $.trim(element.attr('value'));

         		if (!length) {
         			element.addClass('inputError');
         			errorAmount++;
         		}
         		else {
                    element.removeClass('inputError');
         		}
     	});

     	collection.keypress( function (){
            $(this).removeClass('inputError');
        });

        collection.change( function() {
            if (($(this).attr('value')).length < 1) {
                $(this).addClass('inputError');
            }
            else {
            	$(this).removeClass('inputError');
            }
        });




        if (errorAmount) {
        	$(options.errorContainer).html('<span style="color:red;">Заполните пожалуйста все обязательные поля!</span>');
        	$(options.errorContainer).show();
            return false;
        } else {
        	$(options.errorContainer).hide();
        }
        });
    }

}