function validate_form (noscroll){

    $('span.error').replaceWith("");
	var notvalid = 0;
	$("span").remove(".formerror");

	$("[notnull=''],[notnull='notnull'],[regexp]",'form').each(function(i) {
			$(this).removeClass('invalid');
			var app_filter = $(this).attr('regexp');
			var parentTag = $(this).parent().parent();
			var visibility = $(this).parent().is(':visible');


		    $(this).removeClass('notvalid');
		    var is_error = false;
		    var value = $(this).val();
		    var message = $(this).attr("message");
		    if (visibility == true) {

			    var validation = $(this).attr('validation');
			    var disab = $(this).attr('disabled');
			    var fsize = $(this).attr('fixedsize');
			    var size = value.length;
			    var attrtype = $(this).attr('type');
			    var result = true;


			    var nclass=$(this).attr('class');
                 if (nclass == 'repeat')
	        		{
	                   var rlength=$(this).attr('name').length;
	                   rname=$(this).attr('name');
	                   rname=rname.substr(0,rlength-7);
	                   names=document.getElementsByName(rname);
	                   col=names.length;
	                   if (col>1) is_error=true;
	                   other_val=names[0].value;

	                   if (other_val == '' || other_val!=value) is_error=true;
				};

              	 if (!message) var message = '*';
              	 //if (!message) var message = '<img src="http://leprastuff.ru/data/img/20100113/2777435e25e41f34f6c8c7b1fd2cfd06.gif" width=48 height=48>';


					//application only
            	 	if (app_filter)
            	  	{

            	  	 filter=RegExp(app_filter);
            	  	 result=filter.test(value);

            		}


               		if (size == 0 && disab != true)
	                {
	                	is_error = true;
	                }

	                if (attrtype == 'checkbox' && !$(this).attr('checked'))
	                {
	                	is_error = true;
	                }


	                if (validation != null && size > 0 && is_error != true)
                     		{
		                 		  /******Int Checkin*********/
		                            if ((validation == 'integer') || (validation == 'int'))
		                            {
		                             	var filter=/^[0-9]+$/;
								  		result=filter.test(value);
		                    		 };

		                    				   /******real Checkin*********/
		                            if (validation == 'real')
		                            {
		                             	var filter=/^[0-9.]+$/;
								  		result=filter.test(value);
								  		if (value=='.') result = false;
		                    		};

		                    				 /******Email Checkin*********/
		                    		if (validation == 'email')
		                            {
		                             	var filter=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
		                             	result=filter.test(value);
		                    		};

		                                    /******Letters Checkin*********/
		                    		if (validation == 'letters')
		                            {
		                             	//var filter=/^[пїЅ-пїЅпїЅ-пїЅa-zA-Z-\s]+$/;
		                             	var filter=/^\D+$/;
		                             	result=filter.test(value);
		                    		};


                            }


			    if (fsize != null && fsize > 0 && is_error == false && size != fsize)
				{
					is_error=true;
				}

				if (result!=true) is_error = true;

			    if (is_error == true){
					$(this).addClass('notvalid');
					notvalid=1;
					parentTag.append('<span class=formerror>'+message+'</span>');
					}

	}

	});


	if (notvalid == 1)
	{
		var item=$('span.formerror:first','form');
		if (!noscroll) jQuery.scrollTo(item,500, {offset: -200});
		item.siblings(':input').addClass('invalid').focus();
		return false;
	}
	if (notvalid == 0) return true; //document.form1.submit();

}


