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 += "Campul " + sn + " nu trebuie sa fie gol.\n";}
				break;
				
				case "msel": // select box
				  ok = Selected(theForm.elements[nm]);
				  if (!ok) {errors += "Campul " + sn + " nu trebuie sa fie gol.\n";}
				break;
				
				case "eFl": // emptyFlashText

					ok = NotEmpty(theForm.elements[nm].value);

					if (!ok) {errors += "Bitte bestätigen Sie Ihren eingetragenen 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 += "Campul " + sn + " nu trebuie sa fie gol.\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 += "Campul " + sn + " trebuie sa contina o adresa Email buna.\n";};		

				break;	

				case "fl": // fieldlength {length}

					ok = HasLength(theForm.elements[nm].value,len) 

					if (!ok){errors += "Campul " + 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 += "Campul " + sn + " trebuie sa fie ales.\n";}

				break;	

				case "eoc": // either checked or filled

					theVal = nm.split("#");

					ok = CheckEitherOr(theVal,theForm)

					if (!ok){errors += "Unul din campuri trebuie sa fie ales: " + sn + "\n";}

				break;

				}

			} // end for loop checks

			if(errors){alert("S-au descoperit urmatoarele campuri:\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) 
{
return (theVal!="") ? true : 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(i=0;i<document.formEdit.length;i++){
    if(document.formEdit.elements[i].name == "file[]"){
        if(document.formEdit.elements[i].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;	

}

