
var errors ="";

function chkFrm(theForm)

{


	errors="";
	if (theForm.checkem)
	{
		var chk = theForm.checkem.value;

		if (chk)

		{
			chk=chk.split(",");


			for (i=0;i<chk.length;i+=3)

			{

				var ok = true;

				var nm = chk[i];var co = chk[i+1];var sn=chk[i+2];

				if (co.indexOf("{") !=-1)

				{var pos = co.indexOf("{");var x = co;co = x.substring(0,pos);var len = x.substring(pos+1,x.indexOf("}"));}

				switch (co)

				{

				case "e": // empty

					ok = NotEmpty(theForm.elements[nm].value);

					if (!ok) {errors += "Feld " + sn + " darf nicht leer sein.\n";}
				break;

				case "ea": // emptyArray
				theVal = nm.split("#");
					ok = NotEmptyArr(theVal,theForm);

					if (!ok) {errors += "Feld " + sn + " darf nicht leer sein.\n";}
				break;

				case "msel": // select box
				  ok = Selected(theForm.elements[nm]);
				  if (!ok) {errors += "Feld " + sn + " darf nicht leer sein.\n";}
				break;

				case "eFl": // emptyFlashText

					ok = NotEmpty(theForm.elements[nm].value);

					if (!ok) {errors += "Bitte bestätigen Sie Ihren eingetragenen Text.\n";}

				break;

				case "eFl2": // emptyFlashText

					ok = NotEmpty(theForm.elements[nm].value);

					if (!ok) {errors += "Bitte bestätigen Sie Ihren geänderten Text.\n";}

				break;

				case "abtmp": // fileUpload Checked

					ok = abTemp();
					if (!ok) {errors += "Bitte bestätigen Sie die Übertragung der Bildrechte.\n";}

				break;


				case "eo": // not empty all fields

					var f = nm.split("#");

					var ok = false;

					for(y=0;y<f.length;y++)

					{

						ok = NotEmpty(theForm.elements[f[y]].value);

						if (ok)

							break;

					}

					if (!ok) {errors += "Feld " + sn + " darf nicht leer sein.\n";}

				break;

				case "n": // number

					ok = IsNumber(theForm.elements[nm].value);

					if(!ok) {errors += "Feld " + sn + " darf nur Zahlen enthalten.\n";};

				break;

				case "d": // date (german)

					ok = IsDate(theForm.elements[nm].value);

					if (!ok) {errors += "Feld " + sn + ": Kein korrektes Datumsformat (tt.mm.jjjj).\n";}

				break;

				case "de": // date correct or empty

					var ok2 = NotEmpty(theForm.elements[nm].value);

					if (ok2) {ok=IsDate(theForm.elements[nm].value)};

					if (!ok) {errors += "Feld " + sn + ": Kein korrektes Datumsformat (tt.mm.jjjj).\n";}

				break;

				case "m": // mail
					ok = IsMail(theForm.elements[nm].value);
					if (!ok) {errors += "Feld " + sn + " muss eine gültige Emailadresse enthalten.\n";};
				break;

				case "em": // mail
				  if (theForm.elements[nm].value=='') {

				  } else {
						ok = IsMail(theForm.elements[nm].value);
						if (!ok) {errors += "Feld " + sn + " muss eine gültige Emailadresse enthalten.\n";};
					}
				break;

				case "fl": // fieldlength {length}

					theVal = sn.split("#");
					len = theVal[0];
					sn = theVal[1];
					ok = HasLength(theForm.elements[nm].value,len)

					if (!ok){errors += "Feld " + sn + " muss mindestens " + len + " Zeichen lang sein.\n";}

				break;

				case "c": // one or more fields must be checked

					var ok = false;
					theVal = nm.split("#");


					ok = isChecked(theVal,theForm);

					if (!ok){errors += "Feld " + sn + " muss ausgewählt sein.\n";}

				break;

				case "eoc": // either checked or filled

					theVal = nm.split("#");

					ok = CheckEitherOr(theVal,theForm)

					if (!ok){errors += "Eins der Felder muss ausgewählt sein: " + sn + "\n";}

				break;

				}

			} // end for loop checks

			if(errors){alert("Es wurden folgende Fehler entdeckt:\n" + errors);return false;}else{return true};



		}

		else

		{

			alert ("Missing configuration for validation.\nCheck fields in hidden field \"checkem\".");

			return false;

		}

	}

	else

	{

		alert ("Missing configuration for validation.\nCheck hidden field \"checkem\".");

		return false;

	}

}

function NotEmpty(theVal,theForm)
{
return (theVal!="") ? true : false;
}

function NotEmptyArr(field,theForm)
{

var notE=false;

for(u=0;u<theForm.elements[field].length;u++)
{

  if(theForm.elements[field][u].checked == true)
    {
      notE = true;
    }
}

if(notE == true)
  {
    return true;
  }
  else
  {
    return false;
  }
}


function IsNumber(theVal)

{var re = new RegExp ("^\\d+([\.,]?\\d+)?$");var p = re.test(theVal); return (p) ? true : false}



function IsDate(theVal)

{var re = new RegExp ("^(\\d{1,2})[\.](\\d{1,2})[\.](\\d\\d(\\d\\d)?)$");var p = re.test(theVal);return (p) ? true : false}





function IsMail(theVal)

{var re = new RegExp ("^([0-9a-zA-Z][0-9a-zA-Z-_\\.]+)@([0-9a-zA-Z][0-9a-zA-Z-_]+\\.)+[a-zA-Z]{2,4}$");var p = re.test(theVal);return (p) ? true : false}



function HasLength(theVal,theLength)

{return (theVal.length<parseInt(theLength)) ? false :true }

function abTemp(){
var z = 0;



for(utzel=0;utzel<document.formEdit.length;utzel++){

    if(document.formEdit.elements[utzel].name == "file[]"){
        if(document.formEdit.elements[utzel].value != ""){
            z++;
        }
    }
}
if(z > 0){
    if(document.formEdit.Rechte.checked == false){
      return false;
    }
	else{
		return true;
	}
}
return true;

}

function isChecked(theVal,theForm) {


	var l = theForm.elements[theVal].length;

	if (!l)
	{
   if (theForm.elements[theVal].checked==true)
	   return true;
  }
  else
  {
    for(z=0;z<l;z++)
  	{
  		if (theForm.elements[theVal][z].checked==true)
  			return true;
  	}
	}
	return false;
}

function Selected(theForm)
{
  for (i=0;i<theForm.length;i++)
  {
    if(theForm.options[i].selected==true)
      return true;
  }
  return false;
}


function CheckEitherOr(theVal,theForm) {

	retval = false;

	for(z=0;z<theVal.length;z++)

	{

		Ftype = (theForm.elements[theVal[z]].type);

		switch (Ftype)

		{

			case "checkbox":

			case "radio":

				if (theForm.elements[theVal[z]].checked==true)

					return true;

			break;

			default:

				if (NotEmpty(theForm.elements[theVal[z]].value))

					return true;

			break;

		}

	}

	return false;

}





