function checkForm(checkArray,err_hd, sourceString) {		
	
	var err_msg = !err_hd?new Array('Folgende Fehler sind aufgetreten:\n'):new Array(err_hd+'\n');	
	var error = false;
	var errorClass 	= 'errorElement';
	
	for (i=0;i<checkArray.length;i++) {
	field = document.getElementById([checkArray[i][0]]);
	
	if(field){
		/* Block 1 überprüft Felder, die ausgefüllt sein müssen */
		  if (checkArray[i][1].indexOf('e')>-1) {
		    if (!trim(field.value) || field.value == -1) {
		      error = true;
		      err_msg.push(checkArray[i][2]);
		      field.className = errorClass;
		    }
		  }
		
		/* Block 2 überprüft, ob die Emailadresse formal richtig ist */
		  else if (checkArray[i][1].indexOf('m')>-1) {
		    if (field.value) {	      
		        if (!checkEmail(trim(field.value))) {
		          error=true;
		          err_msg.push(checkArray[i][2]);
		      	  field.className = errorClass;
		        }
		      }
		    }
		
		/* Block 3 überprüft Felder, deren Wert eine Zahl sein muss */
		  else if (checkArray[i][1].indexOf('n')>-1) {
		    var num_error = false;
		    if(field.value) {
		      var myvalue = trim(field.value);
		      var num = myvalue.match(/[^0-9,\.]/gi)
		      var dot = myvalue.match(/\./g);
		      var com = myvalue.match(/,/g);
		      if (num!= null) {
		        num_error = true;
		      }
		      else if ((dot!=null)&&(dot.length>1)) {
		        num_error = true;
		      }
		      else if ((com!=null)&&(com.length>1)) {
		        num_error = true;
		      }
		      else if ((com!=null)&&(dot!=null)) {
		        num_error = true;
		      }
		    }
		    if (num_error==true) {
		        error = true;
		        err_msg.push(checkArray[i][2]);
		      	field.className = errorClass;
		    }
		  }
		
		/* Block 4 überprüft Wert anhand eines regulären Audrucks auf bestimmte Muster */
		  else if (checkArray[i][1].indexOf('r')>-1) {
		    var regexp = checkArray[i][3];
		    if (field.value) {
		      if (!regexp.test(trim(field.value))) {
		        error = true;
		        err_msg.push(checkArray[i][2]);
		      	field.className = errorClass;
		      }
		    }
		  }
		
		/* Block 5 überprüft ob string teil eines anderen strings ist */
		else if(checkArray[i][1].indexOf('s') >-1){
			if(field.value && field.value == -1){
				error = true;
        		err_msg.push(checkArray[i][2]); 
				field.className = errorClass;
			}
		}
		/* Block 6  überprüft ob datum von heute ist */
		else if(checkArray[i][1].indexOf('d') >-1){
			if(field.value){
				if (trim(field.value) == getCurrentdate()) {
					error = true;
			        	err_msg.push(checkArray[i][2]);	
		      			field.className = errorClass;	
				}
			}
		}
		/* Block 7  überprüft ob datum nicht in der vergangenheit liegt */	
		else if(checkArray[i][1].indexOf('o')>-1){
			if(field.value){
				if (trim(field.value) < getCurrentdate()) {
					error = true;
			        	err_msg.push(checkArray[i][2]);
		      			field.className = errorClass;	
				}
			}		
		}
	   }
	}
	/* im Fehlerfall werden hier die gesammelten Fehlermeldungen verarbeitet und angezeigt. Wenn das
	Formular ohne Beanstandung ist, wird es übertragen */
	  if (error) {
	    err_msg = err_msg.join('\n\xB7 ');
	    alert(err_msg);
	    return false;
	  }
	  else {
	    return true;
	  }	
}
