function isEmpty(s) { return ((s == null) || (s.length == 0)); }

var whitespace = " \t\n\r";

function isWhitespace (s) {
  var i;
  if (isEmpty(s)) return true;
  for (i = 0; i < s.length; i++) {
    var c = s.charAt(i);
    if (whitespace.indexOf(c) == -1) return false;
  }
  return true;
}

function doesExist (s) { return ( ! isEmpty(s) && ! isWhitespace (s) ); }

var iEmail = "Введите правильный адрес электронной почты (например foo@bar.com).";
function isEmail (s) {
  if (isEmpty(s)) return ( true );
  if (isWhitespace(s)) return ( false );
  var i = 1;
  var sLength = s.length;
  while ((i < sLength) && (s.charAt(i) != "@")) { i++; }
  if ((i >= sLength) || (s.charAt(i) != "@")) return ( false );
  else i += 2;
  while ((i < sLength) && (s.charAt(i) != ".")) { i++; }
  if ((i >= sLength - 1) || (s.charAt(i) != ".")) return ( false );
  else return ( true );
}

function validateform(frm)
{
  for (i=0;i<frm.elements.length;i++)
  {
     if (  doesExist ( frm.elements[i].validate ) ) {
		    var value = frm.elements[i].value;
			var validate=frm.elements[i].validate;
			var result=eval(validate);
			if (! result)
			{
				return ( false );
			}
		}

     if (frm.elements[i].name.indexOf('r_')==0)
     {
		if ( ! doesExist ( frm.elements[i].value ) ) {
			alert ( "Одно или несколько полей не заполнены." );
			frm.elements[i].focus();
			return ( false );
		} 
     }
	 if (frm.elements[i].name=='form_email')
	 {
		if ( ! doesExist ( frm.form_email.value ) ) {
			alert ( "Введите Ваш e-mail." );
			frm.form_email.focus();
			return ( false );
		}
		
		if ( ! doesExist ( frm.form_city.value ) ) {
			alert ( "Введите Ваш Город." );
			frm.form_city.focus();
			return ( false );
		}
		
		if ( ! isEmail ( frm.form_email.value ) ) {
			alert ( iEmail );
			frm.form_email.focus();
			return ( false );
		}
	 }
  }
  return true;
}
