  
  /* copyright (c) 2009 Paul Durdin. All rights reserved. */

  function echeck( str ) {
		var at = "@";
		var dot = ".";
		var lat = str.indexOf(at);
		var lstr = str.length;
		var ldot = str.indexOf(dot);
		if( str.indexOf(at) == -1 ) {
		   return false;
		}
		if( str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr ) {
		   return false;
		}
		if( str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr ) {
		    return false;
		}
    if( str.indexOf( at, (lat + 1) ) != -1 ) {
      return false;
    }
    if( str.substring( lat - 1, lat ) == dot || str.substring( lat + 1, lat + 2) == dot ) {
      return false;
    }
    if( str.indexOf( dot, ( lat + 2 ) )== -1 ) {
      return false;
    }
    if( str.indexOf(" ") != -1 ) {
      return false;
    }
    return true;
	}

  function validate_form( form, type ) {
    var q = form.elements;
    if( type == "new" ) {
      if( !q['user'].value || !q['email'].value || !q['pass1'].value || !q['pass2'].value ||
              !q['first'].value || !q['surname'].value || !q['phone'].value ) {
        alert("All fields marked * are required.");
        return false;
      }
      if( !echeck( q['email'].value )  ) {
        alert("The email address entered was invalid.");
        return false;
      }
      if( q['phone'].value.length < 8 ) {
        alert("Phone numbers must be at least 8 digits long.");
        return false;
      }
      if( q['pass1'].value.length < 6 ) {
        alert("Passwords must be at least 6 characters long.");
        return false;
      }
      if( q['pass1'].value != q['pass2'].value ) {
        alert("The passwords you have entered do not match!");
        return false;
      }
    } else if( type == "change" ) {
      if( !q['user'].value || !q['email'].value || !q['first'].value || !q['surname'].value || !q['phone'].value ) {
        alert("You must have a username, email, first name, surname and phone set.");
        return false;
      }
      if( !echeck( q['email'].value )  ) {
        alert("The email address entered was invalid.");
        return false;
      }
      if( q['phone'].value.length < 8 ) {
        alert("Phone numbers must be at least 8 digits long.");
        return false;
      }
      if( q['oldpass'].value ) {
        if( !q['pass1'].value ) {
          alert("To change your password you must enter your old password and then the new password twice.");
          return false;
        }
        if( q['pass1'].value.length < 6 ) {
          alert("The new password must be at least 6 characters long.");
          return false;
        }
        if( q['pass1'].value != q['pass2'].value ) {
          alert("The new passwords you have entered do not match!");
          return false;
        }
      }
    } else if( type == "pwd" ) {
      if( !q['useremail'].value ) {
        alert( "You must enter a username or email address." );
        return false;
      }
    }
    return true;
  }

