function checkName(formInput) {
	
    if (typeof(formInput) != "object") {
        alert("Validation not supported on this browser.");
        return(false);
    }

    var message;

    if (stringEmpty(formInput.value)) {
        message = "Erreur! Le champ nom ne peut pas être vide.\n";
        alert(message);
    } else {
        return(true);
    }

    var objType = typeof(formInput.focus);
    if (objType == "object" || objType == "function") {
         formInput.focus();
    }

    return(false);
}

function checkEmail(formInput) {
	
    if (typeof(formInput) != "object") {
        alert("Validation not supported on this browser.");
        return(false);
    }

    var message;

    if (stringEmpty(formInput.value)) {
        message = "Erreur! Le champ e-mail ne peut pas être vide.\n";
        alert(message);
    } else if (noAtSign( formInput.value )) {
        message = "Erreur! L'address \"" + formInput.value + "\" doit contenir le caractère '@'.\n";
        alert(message);
    } else if (nothingBeforeAt(formInput.value)) {
        message = "Erreur! L'address \"" + formInput.value;
        message += "\" doit contenir au moins une caractère avant le caractère '@'.\n";
        alert(message);
    } else if (noLeftBracket(formInput.value)) {
        message = "Erreur! L'address \"" + formInput.value;
        message += "\" contient un crochet droit ']',\nsans un crochet gauche correspondant '['.\n";
        alert(message);
    } else if (noRightBracket(formInput.value)) {
        message = "Erreur! L'address \"" + formInput.value;
        message += "\" contient un crochet gauche '[',\nsans un crochet droite correspondant ']'.\n";
        alert( message);
    } else if (noValidPeriod(formInput.value)) {
        message = "Erreur! L'address \"" + formInput.value + "\" doit contenir le caractère point ('.').\n";
        alert(message);
    } else if (noValidSuffix(formInput.value)) {
        message = "Erreur! L'address \"" + formInput.value;
        message += "\" doit contenit un suffixe de deux, trois ou quatre caractères.\n";
        alert(message);
    } else {
        return(true);
    }

    var objType = typeof(formInput.focus);
    if (objType == "object" || objType == "function") {
         formInput.focus();
    }

    return (false);
}

function checkValid (form) {
    if (checkName(form.name)) {
    	if (checkEmail(form.email)) {
    		return (true);
    	}
    } 
	
	return (false);
}

function stringEmpty (formField) {
    // CHECK THAT THE STRING IS NOT EMPTY
    if ( formField.length < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noAtSign (formField) {
    // CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
    if (formField.indexOf ('@', 0) == -1) {
        return ( true );
    } else {
        return ( false );
    }
}

function nothingBeforeAt (formField) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
    if ( formField.indexOf ( '@', 0 ) < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noLeftBracket (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
    if ( formField.indexOf ( '[', 0 ) == -1 && formField.charAt (formField.length - 1) == ']') {
        return ( true );
    } else {
        return ( false );
    }
}

function noRightBracket (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
    if (formField.indexOf ( '[', 0 ) > -1 && formField.charAt (formField.length - 1) != ']') {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidPeriod (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if (formField.indexOf ( '@', 0 ) > 1 && formField.charAt (formField.length - 1 ) == ']') {
        return ( false );
    }

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if (formField.indexOf ( '.', 0 ) == -1) {
        return ( true );
    }

    return ( false );
}

function noValidSuffix(formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if (formField.indexOf('@', 0) > 1 && formField.charAt(formField.length - 1) == ']') {
        return ( false );
    }

    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = formField.length;
    var pos = formField.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 4 ) {
        return ( true );
    } else {
        return ( false );
    }
}
