		var fillFields = ["Название компании", "E-mail", "Телефон", "Контактное лицо", "ИНН", "Логин", "Пароль", 
		"ФИО", "Сфера деятельности"];
		
		function _submit_(Object, layer) {
			if (typeof(Object) == "object") { var targetObject = Object; }
			else { var targetObject = $("#" + Object); }
			var errorCounter = 0;
			
			if (layer) {
				var Obj = Object.split(' ');
				var targetObject = $("#" + Obj[0]).contents().find(Obj[1]);
			}
			
			inputs = targetObject.find('[class*="required"]');
			$.each(inputs, function(index) {  
				var _class = $(this).attr('class').split(' ');
				
				for (var i = 0; i < _class.length; i++) {
					if (_class[i].match(/^(\[.+\])$/)) {
						var validators = eval(_class[i].match(/^(\[.+\])$/)[1]);
						
						for (var valid in validators) {							
							var vState = isRuleValidate($(this), targetObject, validators[valid]);
							if (!vState) {
								$(this).addClass('error'); 
								$(this).hasClass('form') ? $(this).removeClass('form') : '';
								isRadioGroup($(this)) ? $(this).before('<div class="txt" id="radio_error"><span>Отметьте, пожалуйста</span></div>') : '';
								errorCounter++; break;
							} else {
								$(this).removeClass('error');
							}
						}
					}
				}
			});
			
			return errorCounter ? false : true;
		}
		
		function isRuleValidate(obj, form, rule) {
			var value = obj.val();
			if (isRadioGroup(obj)) {
				form.find('#radio_error').remove();
				return validateGroup(obj, form);
			}
			
			if (!isFieldFill(value)) return false;
			
			if( rule == "required" ) {
				return ( value.match(/[^.*]/) && ( value != '' ) );
			}
			
			if( rule == "alphanum" ) {
				return ( value.match( /^[a-z0-9 ._-]+$/i) && ( value != '' ) );
			}
			
			if( rule == "url" ) {
				return value.match(/^(http|https|ftp)\:\/\/[a-z0-9\-\.]+\.[a-z]{2,3}(:[a-z0-9]*)?\/?([a-z0-9\-\._\?\,\'\/\\\+&amp;%\$#\=~])*$/i);
			}
			
			if( rule == "phone" ) {
				return value.match(/^[\d\s ().-]+$/);
			}
			
			if( rule == "email" ) {
				var _rule_filter = /^[a-z0-9._%-]+@[a-z0-9.-]+\.[a-z]{2,4}$/i;
				var _illegalChars = /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
				if ( !(_rule_filter.test(value)) || value.match(_illegalChars) ) { return false; } else { return true; }
			}		
		}
		
		function isFieldFill(value) {
			for (var fill in fillFields) {
				if (value == fillFields[fill]) return false;
			}
			return true;
		}
		
	function isRadioGroup(el) {
		return (typeof el != undefined && el.attr('type') == 'radio') ? true : false;
	}
		
	function validateGroup(el, form) {
		var ButtonGroup = form.find("input[name='"+el.attr("name")+"']");
		var gChecked = false;
		
		for(var i = 0; i < ButtonGroup.length; i++) {
			if(ButtonGroup[i].checked) {
				gChecked = true;
			}
		}
		
		return gChecked;
	}
