﻿function checkValidation ( addressField, lang) {
	
	if (lang=='de') {
		txt = "Keine gültige E-mail!";
	} else if (lang=='fr') {
		txt = "Le couriel n'est pas valable!";
	} else if (lang=='it') {
		txt = "L'E-Mail non è valido.";
	}
	/*
	var de = "Keine gültige E-mail!";
	var en = "Error! No valid e-mail";
	var fr = "Le couriel n'est pas valable!";
	var it = "L'E-Mail non è valido.";
	var all= "Keine gültige E-mail!\nLe couriel n'est pas valable!\nL'E-Mail non è valido.";
   	*/
	
	
    if ( stringEmpty ( addressField.value ) ) {
		alert ( txt );
		
    } else if ( noAtSign ( addressField.value ) ) {
        alert ( txt );

    } else if ( nothingBeforeAt ( addressField.value ) ) {
		alert ( txt );

    } else if ( noLeftBracket ( addressField.value ) ) {
		alert ( txt );

    } else if ( noRightBracket ( addressField.value ) ) {
		alert ( txt );

    } else if ( noValidPeriod ( addressField.value ) ) {
		alert ( txt );

    } else if ( noValidSuffix ( addressField.value ) ) {
		alert ( txt );

    } else {
        return (true);
	}

    return ( false );
}

function linkCheckValidation ( formField , lang) {
    if ( checkValidation ( formField, lang ) == true ) {
        return (true);
		//alert ( 'E-Mail Address Validates OK' );
    }

    return ( false );
}

function stringEmpty ( address ) {
    // CHECK THAT THE STRING IS NOT EMPTY
    if ( address.length < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noAtSign ( address ) {
    // CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
    if ( address.indexOf ( '@', 0 ) == -1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function nothingBeforeAt ( address ) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
    if ( address.indexOf ( '@', 0 ) < 1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noLeftBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
    if ( address.indexOf ( '[', 0 ) == -1 && address.charAt ( address.length - 1 ) == ']' ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noRightBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
    if ( address.indexOf ( '[', 0 ) > -1 && address.charAt ( address.length - 1 ) != ']' ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidPeriod ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if ( address.indexOf ( '.', 0 ) == -1 )
        return ( true );

    return ( false );
}

function noValidSuffix ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = address.length;
    var pos = address.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 3 ) {
        return ( true );
    } else {
        return ( false );
    }
}

