function validEmail(e) {
    retVal = true;
    suffix = e.substr((e.lastIndexOf('.',e.length-1)+1),e.length);
    switch(true) {
        case (typeof(e) == "object"):                                 retVal = false; break;    // check it is not an object
        case (e.length<1):                                            retVal = false; break;    // check it is not empty
        case (e.indexOf('@',0)==-1):                                retVal = false; break;    // check it contains an @ sign
        case (e.indexOf('@',0)<1):                                    retVal = false; break;    // Nothing before the @
        case (e.indexOf('@',0)==e.length-1):                        retVal = false; break;    // Nothing after the @
        case (e.indexOf('[',0)==-1&&e.charAt(e.length-1)==']'):        retVal = false; break;    // No Left Bracket
        case (e.indexOf('[',0)>-1&&e.charAt(e.length-1)!=']'):        retVal = false; break;    // No Right Bracket
        case ((e.indexOf('@',0)>1&&e.charAt(e.length-1)!=']')&&(e.indexOf('.',0)==-1)): err="8";    retVal = false; break;    // No valid full-stop
        case ((e.indexOf('@',0)>1&&e.charAt(e.length-1)!=']')&&(((suffix.length<1)||(suffix.length>4))&&((suffix.toLowerCase()!='travel')&&(suffix.toLowerCase()!='museum')))): retVal = false; break; // validate the suffix
    }
    return retVal;
}