/*
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
Modified by: vidal condori
*/


function isValidEmail(email, required) {
    if (required==undefined) {   // si no se especifica, se asume que es requerido
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // Asegura que todos los caracteres sean validos
        return false;
    }
    if (email.indexOf("@") < 1) { //  debe contener @, y este no debe ser el primer caraceter
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // el punto debe estar despues de @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ no debe ser el ultimo caracter
        return false;
    } else if (email.indexOf("..") >=0) { // dos puntos no son validos
	return false;
    } else if (email.indexOf(".") == email.length) {  // . no debe ser el ultimo caracter
	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;
}
