// javascript validation for cpFormClass
function basic_checks() {
 var arrForm = jsStr.split('###'); 
 var anz = arrForm.length;
 for(var i=0;i<anz;i++) {
  var item = arrForm[i].split('%%%');
  var label = item[0];
  var fieldtype = item[1];
  var options = item[2];
  var required = item[3];
  var validate = item[4];
  var validateType = item[5];
  var validateLimited = item[6];
  var validateMin = item[7];
  var validateMax = item[8];
  var validateSame = item[9];
  var validateFilledBoth = item[10];
  var validateNotFilled = item[11];
  var errorMessage = item[12];

  // Feldinhalte ermitteln
  if(fieldtype=='radio') {
   var anzOptions = document.getElementsByName('cpField'+i).length;
   var field = '';
   for(var r=0;r<anzOptions;r++) {
	if(document.getElementById('cpRadio'+i+r).checked==true) {
	 var element = document.getElementById('cpRadio'+i+r);
	 field = element.value;
	}
   }
   if(field=='') {var element = document.getElementById('cpRadio'+i+0);}
  }
  else if(fieldtype=='checkbox') {
   var field = '';
   var element = document.getElementById('cpField'+i);
   var arrCB = options.split('@@');
   label = arrCB[0];
   if(document.getElementById('cpField'+i).checked==true) {
	field = element.value;
   }
  }
  else {
   var element = document.getElementById('cpField'+i);
   var field = element.value;
  }
  var fieldvalue = field.replace(/ /g,''); // trim

  // leere Muss-Felder
  if(required==1 && fieldvalue=='') {
   if(errorMessage && errorMessage != '') {
	alert(label+': '+errorMessage);
   }
   else {
	alert(label+': '+jsEmpty);
   }
   element.focus();
   return false;
  }
  else if(required==1 && fieldtype=='select' && fieldvalue=='---') {
   if(errorMessage && errorMessage != '') {
	alert(label+': '+errorMessage);
   }
   else {
	alert(label+': '+jsEmpty);
   }
   element.focus();
   return false;
  }

  // Diverse Validierungen
  if(fieldvalue!='') {
   if(validateType!='') {
	switch(validateType) {
	 case 'int'		:	if(!fieldvalue.match('^[0-9]*$')) {
	      					if(errorMessage && errorMessage != '') {
							 alert(label+': '+errorMessage);
							}
							else {
							 alert(label+': '+jsInt);
							}
	 						element.focus();
	 						return false;
	 					};
						break;
	 case 'float'	:	if(!fieldvalue.match('^[0-9\.]*$')) {
	   						if(errorMessage && errorMessage != '') {
							 alert(label+': '+errorMessage);
							}
							else {
							 alert(label+': '+jsFloat);
							}
							element.focus();
	 						return false;
	 					};
						break;
	 case 'char'	:	if(fieldvalue.match('[0-9]')) {
	   	      				if(errorMessage && errorMessage != '') {
							 alert(label+': '+errorMessage);
							}
							else {
							 alert(label+': '+jsChar);
							}
							element.focus();
	 						return false;
	 					};
						break;
	 case 'mail'	:	if(fieldvalue.indexOf('@')==-1 || fieldvalue.indexOf('.')==-1 || fieldvalue.length<8) {
	 	      				if(errorMessage && errorMessage != '') {
							 alert(label+': '+errorMessage);
							}
							else {
							 alert(label+': '+jsMail);
							}
							element.focus();
	 						return false;
	 					};
						break;
	}
   }
   if(validateLimited!='') {
	var numbers = validateLimited.split('-');
	if(fieldvalue<numbers[0] || fieldvalue>numbers[1]) {
	 if(errorMessage && errorMessage != '') {
	  alert(label+': '+errorMessage);
	 }
	 else {
	  alert(label+': '+jsLimited+numbers[0]+'-'+numbers[1]+'.');
	 }
	 element.focus();
	 return false;
	}
   }
   if(validateMin!='') {
	min = parseFloat(validateMin);
	if(fieldvalue.length<min) {
	 if(errorMessage && errorMessage != '') {
	  alert(label+': '+errorMessage);
	 }
	 else {
	  alert(label+': '+jsMin+min+'.');
	 }
	 element.focus();
	 return false;
	}
   }
   if(validateMax!='') {
	max = parseFloat(validateMax);
	if(fieldvalue.length>max) {
	 if(errorMessage && errorMessage != '') {
	  alert(label+': '+errorMessage);
	 }
	 else {
	  alert(label+': '+jsMax+max+'.');
	 }
	 element.focus();
	 return false;
	}
   }
   if(validateSame!='' && fieldvalue != document.getElementById('cpField'+validateSame).value) {
	alert(label+': '+errorMessage);
	element.focus();
	return false;
   }
   if(validateFilledBoth!='' && document.getElementById('cpField'+validateFilledBoth).value=='') {
	alert(label+': '+errorMessage);
	element.focus();
	return false;
   }
   // Dateiupload - Dateiendung
   if(fieldtype == 'file') {
	var ErrType = 0;
	var arrTypes = jsUplEnd.split(','); 
	var anzTypes = arrTypes.length;
	for(var it=0;it<anzTypes;it++) {
	 var arrFN = fieldvalue.split('.');
	 var anzFN = arrFN.length;
	 var end = anzFN-1;
	 if(arrTypes[it] == arrFN[end]) {
	  ErrType++;
	 }
	}
	if(ErrType == 0) {
	 alert(label+': '+jsUplErr);
	 element.focus();
	 return false;
	}
   }
  }
  if(validateNotFilled!='' && fieldvalue=='' && document.getElementById('cpField'+validateNotFilled).value=='') {
   alert(label+': '+errorMessage);
   element.focus();
   return false;
  }
 }
 return true;
}