function validemail(mail,required) {
	//wenn nicht definiert, dann required
	if(required==undefined) required=true;
    if(mail==null) {
        if(required) return false;
        return true;
    }
    if(mail.length==0) {  
        if(required) return false;
        return true;
    }
	//alle zeichen sind erlaubt?
    if(!erlaubteChrs(mail)) return false;
    if(mail.indexOf("@")<1) { //darf @ nicht an erster stelle enthalten
        return false;
    } else if(mail.lastIndexOf(".")<=mail.indexOf("@")) {  //letzter punkt nach @
        return false;
    } else if(mail.indexOf("@")==mail.length) {  //@ nicht an letzter stelle
        return false;
    } else if(mail.indexOf("..")>=0) { //zwei punkte hintereinander nicht erlaubt
	return false;
    } else if(mail.indexOf(".")==mail.length) {  //punkt nicht letztes zeichen
	return false;
    }
    return true;
}

function erlaubteChrs(mail) {
	//alle zeichen erlaubt?
	var ok=true;
	var erlaubt="abcdefghijklmnopqrstuvwxyz0123456789@.-_";
	for(var i=0;i<mail.length;i++) {
		var chr=mail.charAt(i).toLowerCase();
		if(erlaubt.indexOf(chr)!=-1) continue;
		ok=false;
		break;
	}
	return ok;
}
