function CheckForm(form)
{
	 var i,j;
	 var str = '';
	
	 var bad_field;
	 var fields = new Array();
	 var prompts = new Array();
	
	 fields[fields.length] = 'name';
	 prompts[prompts.length] = 'имя';
	
	 fields[fields.length] = 'login';
	 prompts[prompts.length] = 'логин';
	
	 fields[fields.length] = 'email';
	 prompts[prompts.length] = 'email';

	 fields[fields.length] = 'pass';
	 prompts[prompts.length] = 'пароль';

  	 fields[fields.length] = 'passConfirm';
	 prompts[prompts.length] = 'подтверждение пароля';

	
	 for (i = 0; i < fields.length; i++){
	  var field = form[fields[i]];
	  if (field.value == '')
	  {
		if (str != '') 
			{
					str += '\n';
			}else{
					bad_field = field;
			}
			str += prompts[i];
	  }
	 }
	 
	
	
	 if (str != ''){
	   alert("Следующие поля пусты:\n" + str);
	   bad_field.focus();
	   return false;
	 }
	
	
	 if (window.RegExp){
		   var fields = new Array();
		   var prompts = new Array();
		   var patterns = new Array();
		   var minVal = new Array();
		   var maxVal = new Array();
		   var maxLen = new Array();
		   var minLen = new Array();
		   var errors = new Array();
		
		   fields[fields.length] = 'name';
		   prompts[prompts.length] = 'имя';
		   patterns[patterns.length] = '^[^\\x00-\\x1F\\x22:]*$';
		   minVal[minVal.length] = 0;
		   maxVal[maxVal.length] = 0;
		   maxLen[maxLen.length] = 16;
		   minLen[minLen.length] = 0;
		   errors[errors.length] = 'Минимум 2, максимум 16 символов. Не должно содержать (\":\") и (\"). Не должно состоять из точек';

		   fields[fields.length] = 'login';
		   prompts[prompts.length] = 'логин';
		   patterns[patterns.length] = '^[^\\x00-\\x1F\\x22:]*$';
		   minVal[minVal.length] = 0;
		   maxVal[maxVal.length] = 0;
		   maxLen[maxLen.length] = 16;
		   minLen[minLen.length] = 0;
		   errors[errors.length] = 'Минимум 2, максимум 16 символов. Не должно содержать (\":\") и (\"). Не должно состоять из точек';


		   fields[fields.length] = 'pass';
		   prompts[prompts.length] = 'пароль';
		   patterns[patterns.length] = '^[a-zA-Z0-9_\\-\\.]( ?[a-zA-Z0-9_\\-\\.])*$';
		   minVal[minVal.length] = 0;
		   maxVal[maxVal.length] = 0;
		   maxLen[maxLen.length] = 16;
		   minLen[minLen.length] = 4;
		   errors[errors.length] = 'Минимум 4, максимум 16 символов. Может стостоять из букв английского алфавита, цифр, символов \" \", \"_\", \".\" ? \"-\".';

		   fields[fields.length] = 'passConfirm';
		   prompts[prompts.length] = 'подтверждение пароля';
		   patterns[patterns.length] = '^[a-zA-Z0-9_\\-\\.]( ?[a-zA-Z0-9_\\-\\.])*$';
		   minVal[minVal.length] = 0;
		   maxVal[maxVal.length] = 0;
		   maxLen[maxLen.length] = 16;
		   minLen[minLen.length] = 4;
		   errors[errors.length] = 'Минимум 4, максимум 16 символов. Может стостоять из букв английского алфавита, цифр, символов \" \", \"_\", \".\" ? \"-\".';


		   fields[fields.length] = 'email';
		   prompts[prompts.length] = 'email';
		   patterns[patterns.length] = '^([-a-zA-Z0-9._]+@[-_a-zA-Z0-9]+\\.[-_a-zA-Z0-9.]+)?$';
		   minVal[minVal.length] = 0;
		   maxVal[maxVal.length] = 0;
		   maxLen[maxLen.length] = 64;
		   minLen[minLen.length] = 0;
		   errors[errors.length] = 'Максимум 64 символа. Должно содержать существующий e-mail';
		


		   for (i = 0; i < fields.length; i++){
				var bad = false;
				var field = form[fields[i]];
				if (typeof field == 'undefined') continue;
				if (field.value != ''){
				     if (field.value.length > maxLen[i] && maxLen[i] > 0) bad = true;
				     if (field.value.length < minLen[i] && minLen[i] > 0) bad = true;
					 if (patterns[i] != ''){
						  var re = new RegExp(patterns[i]);
						  if (!re.test(field.value + "")) bad = true;
					 }
					 if ((minVal[i] > 0) || (maxVal[i] > 0)){
						  var val = parseInt(field.value,10);
						  if ((val < minVal[i]) || (val > maxVal[i])) bad = true;
					 }
					 if (bad){
						   alert("Error in field " + prompts[i] + "\n" + errors[i]);
						   field.focus();
						   return false;
					 }
				}
		   }
	 }
	 //check if passs are equal:
	 pass =  form['pass'];
	 pass2 = form['passConfirm'];
	 if(pass.value != pass2.value){
	   alert("Пароли не совпали!");
	   pass2.value = '';
	   pass2.focus();	   
	   return false;
	 }
	 return true;
}