if (! northlich){
	var northlich = new Object();
}
if (! northlich.validate){
	northlich.validate = new Object();
}

if (! northlich.validate.Email){
	northlich.validate.Email = new Object();
}

northlich.validate.Email.CheckErrors = function(tagIDsArray, oErrorsTracker){
	for(var i=0; i < tagIDsArray.length; i++)
	{
		northlich.validate.Email.CheckError(tagIDsArray[i], oErrorsTracker);
	}
}

northlich.validate.Email.CheckError = function(tagID, oErrorsTracker){
	var tag = document.getElementById(tagID);
    var email_str = tag.value;
   
	var error_id = 0;
    var error_msg = null;
    var error_messages = new Array();
    
    error_messages[0] = 0;
    error_messages[1] = 0;
    error_messages[2] = "Email address does not contain the '@' symbol";
    error_messages[3] = "Email address contains the '@' symbol more than once";
    error_messages[4] = "Email address cannot end with the '@' symbol";
    error_messages[5] = "Email address cannot start with the '@' symbol";
    error_messages[6] = "Email address cannot contain the symbol pairs '.@', '..' or '@.'";
    error_messages[7] = "Email address must contain an '.' symbol";
    error_messages[8] = "Email address cannot end with the '.' symbol";
    error_messages[9] = "Email address cannot start with the '.' symbol";
    error_messages[10] = "Email address contains an invalid symbol";
    
    if(email_str == ''){
        error_id = 1;
    }
    else if(email_str.indexOf("@") == -1){
        error_id = 2;
    }
    else if(email_str.split("@").length > 2){
        error_id = 3;
    }
    else if(email_str.charAt( (email_str.length - 1) ) == "@"){
        error_id = 4;
    }
    else if(email_str.charAt(0) == "@"){
        error_id = 5;
    }
    else if(email_str.indexOf(".@") >=0 | email_str.indexOf("..") >=0 | email_str.indexOf("@.") >=0 ){
        error_id = 6;
    }
    else if(email_str.indexOf(".") == -1){
        error_id = 7;
    }
    else if(email_str.charAt( (email_str.length - 1) ) == "."){
        error_id = 8;
    }
    else if(email_str.charAt(0) == "."){
        error_id = 9;
    }
    
    if (this.error_id == 0){
        var regex = /^([a-zA-Z0-9_\-])+([a-zA-Z0-9_\.\-])*\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
        var found_regex = regex.exec(email_str);
    
        if(found_regex == null){
        	error_id = 10;
        }
    } //end if this.error_id == 0
    
    error_msg = error_messages[error_id];
    
    if(error_msg){
		oErrorsTracker.appendError(tag.id, error_msg)
    }
} //IsValid
