	var notNullElements = new Array();
	var elementNames = new Array();
	var elementNames2 = new Array();
	var emailElements = new Array();
		
	function validateFormElements() {
	  var valid = true;
	  var elementToCheck;
	  var emailElementsNotNull = new Array();
	  emailElementsNotNull = emailElementsNotNull.concat(emailElements);
	  var generalErrors = document.getElementById("generalErrors");
  	  while (generalErrors.hasChildNodes()){
  	  	generalErrors.removeChild(generalErrors.firstChild);
  	  }
  	  var mailErrors = document.getElementById("mailErrors");
  	  while (mailErrors.hasChildNodes()){
  	  	mailErrors.removeChild(mailErrors.firstChild);
  	  }
 	  var errorMsgNode = document.createElement ("ul");
	  
 	  for (i=0; i < notNullElements.length;i++){
	 	elementToCheck = document.mailboxForm.elements[notNullElements[i]].value;
		if ((document.getElementById(notNullElements[i]).type=="text")||(document.getElementById(notNullElements[i]).type=="textarea")){
		  if (!/\S/.test (elementToCheck)){
		  
		  	valid=false;
			var myText = document.createTextNode(elementNames[i]);
			var myLi = document.createElement("li");
			
			myLi.appendChild(myText);
			errorMsgNode.appendChild(myLi);
		  }
		}
		
		else if (document.getElementById(notNullElements[i]).type=="select-one"){
			if (document.getElementById(notNullElements[i]).selectedIndex=="0"){
				 valid=false;
				var myText = document.createTextNode(elementNames[i]);
				var myLi = document.createElement("li");
				myLi.appendChild(myText);
				errorMsgNode.appendChild(myLi);
			}
		}
		else if (document.getElementById(notNullElements[i]).type=="radio"){
			var checked = false;
			for (j=0; j < document.getElementsByName(notNullElements[i]).length;j++){
				if (document.getElementsByName(notNullElements[i])[j].checked) {
					checked = true;
				}
			}
			if (!checked){
			 valid=false;
				var myText = document.createTextNode(elementNames[i]);
				var myLi = document.createElement("li");
				myLi.appendChild(myText);
				errorMsgNode.appendChild(myLi);
			}
		}
		else if (document.getElementById(notNullElements[i]).type=="checkbox"){
			var checked = false;
			for (j=0; j < document.getElementsByName(notNullElements[i]).length;j++){
				if (document.getElementsByName(notNullElements[i])[j].checked) {
					checked = true;
				}
			}
			if (!checked){
			 valid=false;
				var myText = document.createTextNode(elementNames[i]);
				var myLi = document.createElement("li");
				myLi.appendChild(myText);
				errorMsgNode.appendChild(myLi);
			}
		}
	  }
	  //wenn nur email zu validieren ohne mussfeldcheck
	  	 
		  var mailErrors = document.getElementById ("mailErrors");
		  var mailErrorMsgNode = document.createElement("ul");
		  var mailValid=true;
		  for (var l=0; l < emailElementsNotNull.length; l++){
		  	if (emailElementsNotNull[l] != "_"){
			  	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			  	if (!emailRegEx.test(document.mailboxForm.elements[emailElementsNotNull[l]].value)){
					mailValid = false;
					var myText = document.createTextNode(elementNames2[l]);
					var myLi = document.createElement("li");
					
					myLi.appendChild(myText);
					mailErrorMsgNode.appendChild(myLi);
				}
			}
	     }
	     if (!mailValid) {
	     	mailErrors.appendChild (mailErrorMsgNode);
	     }
	     if (!valid)  {
	     	generalErrors.appendChild (errorMsgNode);
	     }
	     document.getElementById("mailErrorsContainer").style.display = mailValid ? "none" : "block";
	     document.getElementById("generalErrorsContainer").style.display = valid ? "none" : "block";
	  	 return  valid && mailValid;
	}
	    	
	function checkAndSend() {
	var display="block";
	  if (validateFormElements())
	  {
	    //document.mailboxForm.action = '<cda:getConfig subject="cda.personalization.login.prefix"/>NA-NA-NA-NA-<%=layout%>-NA.html?service=fill_form_message';
      	document.mailboxForm.submit();
      	display="none";
	  	}	
	  document.getElementById("error").style.display = display;
	}
