/*

Copyright 2005, 4word systems

All rights reserved.



This software may not be reproduced or distributed in any form without the express 

written consent of 4word systems or it's designee.



Revision 1.1:  20050729 Added underscore to list of valid characters

*/





function isValidEmail(email, required) {

    if (required==undefined) {   // if not specified, assume it's required

        required=true;

    }

    if (email==null) {

        if (required) {

            return false;

        }

        return true;

    }

    if (email.length==0) {  

        if (required) {

            return false;

        }

        return true;

    }

    if (! allValidChars(email)) {  // check to make sure all characters are valid

        return false;

    }

    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character

        return false;

    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @

        return false;

    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character

        return false;

    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid

	return false;

    } else if (email.indexOf(".") == email.length) {  // . must not be the last character

	return false;

    }

    return true;

}



function allValidChars(email) {

  var parsed = true;

  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";

  for (var i=0; i < email.length; i++) {

    var letter = email.charAt(i).toLowerCase();

    if (validchars.indexOf(letter) != -1)

      continue;

    parsed = false;

    break;

  }

  return parsed;

}


