// neue String-Methode trim() kombiniert leftTrim und rightTrim;
String.prototype.trim = function () {
	return (this.replace(/\s+$/,"").replace(/^\s+/,""));
};

function validateEmailAddress(strEmail){
    if(strEmail!=null){
        strEmail = strEmail.replace(/\s/,"");
        var regexpemail = /^[_a-zA-Z0-9-]+((\.|!|_|\+|\-)[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(((\.|\-))+[a-zA-Z]{2,}){1,4}$/;
        return( strEmail.match(regexpemail) != null );
    }
}

function validateDate(strDate){
    if(strDate!=null){
        strDate = strDate.replace(/\s/,"");
        return( strDate.match(/^[0-3]\d\.[01]\d\.\d{4}$/) != null );
    } else { return( false ); }
}

function validateTime(strTime){
    if(strTime!=null){
        strTime = strTime.replace(/\s/,"");
        return( strTime.match(/^([01]\d|2[0-3])(:[0-5]\d){1,2}$/) != null );
    } else { return( false ); }
}

function formErrorMsg( strErrorMessage ) {
    var message = document.getElementById('formerrormsg');
	if(message!=null&& message!='undefined'){
	    if(strErrorMessage!=null) {
	        message.innerHTML += "<br />" + strErrorMessage;
	    	message.style.display='block';
	    	//window.scrollTo(0, 100);
            window.location.href='#Errormessage';
        } else {
            message.innerHTML = message.innerHTML.substring(0, message.innerHTML.indexOf("<!-- -->")+8);
	    	message.style.display='none';
        }
	}
}

function validateFormmailInput(oForm, aList){
    var success = true;
    var errormessage = null;
    formErrorMsg();	// Messagefeld zurücksetzen

	// assoziatives Array mit Label-Beschriftungen für Errormsg
	var LabelColl = document.getElementsByTagName('label');
    var aLabels = new Array();
    for (i=0; i< LabelColl.length;++i) {
        aLabels[LabelColl[i].htmlFor] = LabelColl[i].firstChild.nodeValue;
    }
    for (i=0; i< aList.length;++i) {
		// aList (required Fields) wird in Kennung und Feldname getrennt
        var typ = "-";
        var field = aList[i];
		if(aList[i].indexOf("]") > 0) {
        	typ = aList[i].substring(aList[i].indexOf("[")+1, aList[i].indexOf("]"));
        	field = aList[i].substr(aList[i].indexOf("]")+1);
        }
        var obj = oForm.elements[field];
        var localSuccess = true;

        if( typ == "-" ) {
        	if(obj.value.trim() == ''){ localSuccess=false; }
        }

        if( typ == "n" ) {
        	localSuccess = ( RegExp("^[0-9]+$").exec(obj.value.trim()) != null );
        }

        if( typ == "an" ) {
        	localSuccess = ( RegExp("^[a-zA-Z0-9]+$").exec(obj.value.trim()) != null );
        }

        if( typ == "ane" ) {
        	localSuccess = ( RegExp("^[a-zA-Z0-9\-_]+$").exec(obj.value.trim()) != null );
        }

        if( typ == "e" ) {
        	localSuccess = validateEmailAddress(obj.value.trim());
        }

        if( typ == "d" ) {
        	localSuccess = validateDate(obj.value.trim());
        }

        if( typ == "t" ) {
        	localSuccess = validateTime(obj.value.trim());
        }

	    if(localSuccess==false) {
        	formErrorMsg(aLabels[field]);
        	success = false;
        }
    }
    return success;
}
