// 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 errorLabel = 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 validateValAnd = item[12];
  var validateOneFilled = item[13];
  var validateValOr = item[14];
  var errorMessage = item[15];
  var postName = item[16];
  var firstId = parseInt(item[17]);
  var iid = i+firstId;

  if(postName != '') {var idName = postName;}
  else {var idName = 'cpField'+iid;}

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

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

  // Diverse Validierungen
  if(fieldvalue!='') {
   if(validateType!='') {
	switch(validateType) {
	 case 'int'		:	if(!fieldvalue.match('^[0-9]*$')) {
	   						element.className = cn+' inputerror';
	      					if(errorMessage && errorMessage != '') {
							 alert(errorLabel+': '+errorMessage);
							}
							else {
							 alert(errorLabel+': '+jsInt);
							}
	 						element.focus();
	 						return false;
	 					};
						break;
	 case 'float'	:	if(!fieldvalue.match('^[0-9\.]*$')) {
	   						element.className = cn+' inputerror';
	   						if(errorMessage && errorMessage != '') {
							 alert(errorLabel+': '+errorMessage);
							}
							else {
							 alert(errorLabel+': '+jsFloat);
							}
							element.focus();
	 						return false;
	 					};
						break;
	 case 'char'	:	if(fieldvalue.match('[0-9]')) {
	   						element.className = cn+' inputerror';
	   	      				if(errorMessage && errorMessage != '') {
							 alert(errorLabel+': '+errorMessage);
							}
							else {
							 alert(errorLabel+': '+jsChar);
							}
							element.focus();
	 						return false;
	 					};
						break;
	 case 'mail'	:	if(fieldvalue.indexOf('@')==-1 || fieldvalue.indexOf('.')==-1 || fieldvalue.length<8) {
	   						element.className = cn+' inputerror';
	 	      				if(errorMessage && errorMessage != '') {
							 alert(errorLabel+': '+errorMessage);
							}
							else {
							 alert(errorLabel+': '+jsMail);
							}
							element.focus();
	 						return false;
	 					};
						break;
	}
   }
   if(validateLimited!='') {
	var numbers = validateLimited.split('-');
	var minnr = parseInt(numbers[0]);
	var maxnr = parseInt(numbers[1]);
	var fieldnr = parseInt(fieldvalue);
	if(fieldnr<minnr || fieldnr>maxnr) {
	 element.className = cn+' inputerror';
	 if(errorMessage && errorMessage != '') {
	  alert(errorLabel+': '+errorMessage);
	 }
	 else {
	  alert(errorLabel+': '+jsLimited+minnr+'-'+maxnr+'.');
	 }
	 element.focus();
	 return false;
	}
   }
   if(validateMin!='') {
	var min = parseFloat(validateMin);
	if(fieldvalue.length<min) {
	 element.className = cn+' inputerror';
	 if(errorMessage && errorMessage != '') {
	  alert(errorLabel+': '+errorMessage);
	 }
	 else {
	  alert(errorLabel+': '+jsMin+min+'.');
	 }
	 element.focus();
	 return false;
	}
   }
   if(validateMax!='') {
	var max = parseFloat(validateMax);
	if(fieldvalue.length>max) {
	 element.className = cn+' inputerror';
	 if(errorMessage && errorMessage != '') {
	  alert(errorLabel+': '+errorMessage);
	 }
	 else {
	  alert(errorLabel+': '+jsMax+max+'.');
	 }
	 element.focus();
	 return false;
	}
   }
   if(postName == '') {
	var idName = 'cpField';
	if(validateSame!='' && fieldvalue != document.getElementById(idName+validateSame).value) {
	 element.className = cn+' inputerror';
	 alert(errorLabel+': '+errorMessage);
	 element.focus();
	 return false;
	}
	if(validateFilledBoth!='' && document.getElementById(idName+validateFilledBoth).value=='') {
	 element.className = cn+' inputerror';
	 alert(errorLabel+': '+errorMessage);
	 element.focus();
	 return false;
	}
	if(validateNotFilled!='' && fieldvalue=='' && document.getElementById(idName+validateNotFilled).value=='') {
	 element.className = cn+' inputerror';
	 alert(errorLabel+': '+errorMessage);
	 element.focus();
	 return false;
	}
	if(validateValAnd != '') {
	 var arrToVal = validateValAnd.split('|||');
	 if(field == arrToVal[0]) {
	  var fieldsToCheck = arrToVal[1].split('@');
	  var anzToCheck = fieldsToCheck.length;
	  var errorFields = 0;
	  for(var va=0;va<anzToCheck;va++) {
	   var iiid = parseInt(fieldsToCheck[va])+firstId;
	   var riiid = iiid*10;
	   if(document.getElementById('cpRadio'+riiid)) {
		var anzOpt = document.getElementsByName('cpField'+iiid).length;
		for(var rva=0; rva<anzOpt; rva++) {
		 var idr = riiid+rva;
		 if(document.getElementById('cpRadio'+idr).checked == true) {
		  errorFields++;
		 }
		}
	   }
	   else if(fieldtype == 'checkbox')  {
		if(document.getElementById(idName+iiid).checked == true) {
		 errorFields++;
		}
	   }
	   else {
		if(document.getElementById(idName+iiid).value != '') {
		 errorFields++;
		}
	   }
	  }
	  if(errorFields<anzToCheck) {
	   element.className = cn+' inputerror';
	   alert(item[0]+': '+errorMessage);
	   element.focus();
	   return false;
	  } 
	 }
	}
	if(validateOneFilled != '') {
	 var ofToCheck = validateOneFilled.split(',');
	 var anzOfCheck = ofToCheck.length;
	 var errorOf = 0;
	 for(var vo=0; vo<anzOfCheck; vo++) {
	  var oood = parseInt(ofToCheck[vo])+firstId;
	  var roood = oood*10;
	  if(document.getElementById('cpRadio'+roood)) {
	   var anzOptO = document.getElementsByName('cpField'+oood).length;
	   for(var ova=0; ova<anzOptO; ova++) {
		var odr = roood+ova;
		if(document.getElementById('cpRadio'+odr).checked == true) {
		 errorOf++;
		}
	   }
	  }
	  else if(fieldtype == 'checkbox') {
	   if(document.getElementById(idName+oood).checked == true) {
		errorOf++;
	   }
	  }
	  else {
	   if(document.getElementById(idName+oood).value != '') {
		errorOf++;
	   }
	  }
	 }
	 if(errorOf==0) {
	  element.className = cn+' inputerror';
	  alert(item[0]+': '+errorMessage);
	  element.focus();
	  return false;
	 }
	}
	if(validateValOr != '') {
	 var arrOrVal = validateValOr.split('|||');
	 if(field == arrOrVal[0]) {
	  var orToCheck = arrOrVal[1].split('@');
	  var anzOr = orToCheck.length;
	  var errorOr = 0;
	  for(var vao=0;vao<anzOr;vao++) {
	   var iiid = parseInt(orToCheck[vao])+firstId;
	   var riiid = iiid*10;
	   if(document.getElementById('cpRadio'+riiid)) {
		var anzOpt = document.getElementsByName('cpField'+iiid).length;
		for(var rova=0; rova<anzOpt; rova++) {
		 var idr = riiid+rova;
		 if(document.getElementById('cpRadio'+idr).checked == true) {
		  errorOr++;
		 }
		}
	   }
	   else if(fieldtype == 'checkbox') {
		if(document.getElementById(idName+iiid).checked == true) {
		 errorOr++;
		}
	   }
	   else {
		if(document.getElementById(idName+iiid).value != '') {
		 errorOr++;
		}
	   }
	  }
	  if(errorOr==0) {
	   element.className = cn+' inputerror';
	   alert(item[0]+': '+errorMessage);
	   element.focus();
	   return false;
	  }
	 }
	}
   }
  }
 }
 return true;
}
