function validate(lang) {
	if (document.subscription_form.email1.value=="") {
		if (lang == 'FR') {
			alert("Veuillez entrer une adresse électronique valable.");
		} else if (lang == 'ES') {
				alert("Por favor ingrese una dirección de correo electrónico válida.");
			} else {
					alert("Please enter a valid e-mail address.");
				}
		document.subscription_form.email1.focus();
		return false;
	} else
		if (CheckValid(document.subscription_form.email1.value) == true) {
			if (lang == 'FR') {
			alert("La liste d’adresse de courrier à envoyer a été mise à jour. Merci!");
			} else if (lang == 'ES') {
				alert("La lista de correo ha sido actualizada ¡Gracias!");
				} else {
					alert("The mailing list has been updated. Thank you!");
					}
			return true;
		}	else {
				if (lang == 'FR') {
					alert("Erreure! L’adresse que vous venez d’entrer n’est pas valable. Veuillez la corriger et essayer de nouveau.");
				} else if (lang == 'ES') {
						alert("La direccion de correo que Ud. ingresó es inválida. Por favor de revisarlo y intentar de nuevo.");
					} else {
							alert("Error! The address you have entered is invalid. Please correct it and try again.");
						}
				return false;
			}
}

function checkValidation(forminput) {
    if (stringEmpty(forminput)) {
        // message = "Error! There is no input value entered.";
        return false;
    } else if (noAtSign( forminput )) {
        // message = "Error! The address \"" + forminput + "\" does not contain an '@' character.";
        return false;
    } else if (nothingBeforeAt(forminput)) {
        // message = "Error! The address \"" + forminput;
        // message += "\" must contain at least one character before the '@' character";
        return false;
    } else if (noLeftBracket(forminput)) {
        // message = "Error! The address \"" + forminput;
        // message += "\" contains a right square bracket ']',\nbut no corresponding left square bracket '['.";
        return false;
    } else if (noRightBracket(forminput)) {
        // message = "Error! The address \"" + forminput;
        // message += "\" contains a left square bracket '[',\nbut no corresponding right square bracket ']'.";
        return false;
    } else if (noValidPeriod(forminput)) {
        // message = "Error! The address \"" + forminput + "\" must contain a period ('.') character.";
        return false;
    } else if (noValidSuffix(forminput)) {
        // message = "Error! The address \"" + forminput;
        // message += "\" must contain a two, three or four character suffix.";
        return false;
    } else {
				return true;
    	}
}

function CheckValid (formField) {
    if ( checkValidation ( formField ) == true ) {
        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 );
    }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
