var ov_form_type = new Array();
var ov_errormsg  = new Array();
var typed        = new Array();
function ov_add_type(fname,ename,fid,name,fparam,fvalue,fmust){
      if(typeof(ov_form_type[fname])=="undefined"){ ov_form_type[fname] = new Array();}
			if(typeof(ov_form_type[fname][ename])=="undefined"){ ov_form_type[fname][ename] = new Array();}
			if(typeof(ov_form_type[fname][ename][fid])=="undefined"){ ov_form_type[fname][ename][fid] = new Array();}
			ov_form_type[fname][ename][fid][fparam] = fvalue;
			if(fparam == "type"){
			  ov_form_type[fname][ename][fid]['must'] = fmust;
				ov_form_type[fname][ename][fid]['name'] = name;
			}
}

function ov_check_form(form_name){
  var form = eval("document."+form_name);
	var errormsg= "";
	var block   = 0;
  var ename   = "";
  for(i=0; i<form.elements.length; i++){
    if(typeof(ov_form_type[form_name][form.elements[i].name.substr(0,form.elements[i].name.indexOf("["))])!="undefined"){
  	  bpos  = form.elements[i].name.indexOf("[");
			ename = form.elements[i].name.substr(0,bpos);
			fid   = form.elements[i].name.substr(bpos+1,(form.elements[i].name.length-bpos-2));
			switch(ov_check(i,fid,form,ov_form_type[form_name][ename][fid])){
			  case 2:
				  if(typeof(ov_errormsg[form_name])!="undefined" && typeof(ov_errormsg[form_name]["empty"])!="undefined" && ov_form_type[form_name][ename][fid]["name"]){
						errormsg+= ov_errormsg[form_name]["empty"].replace(/XfeldnameX/,ov_form_type[form_name][ename][fid]["name"]);
					}
				  form_error(fid,i,2,ename);
					block = 1;
					break;
				case 1:
				  if(typeof(ov_errormsg[form_name])!="undefined" && typeof(ov_errormsg[form_name]["wrong"])!="undefined" && ov_form_type[form_name][ename][fid]["name"]){
						errormsg+= ov_errormsg[form_name]["wrong"].replace(/XfeldnameX/,ov_form_type[form_name][ename][fid]["name"]);
					}
					block = 1;
					form_error(fid,i,1,ename);
					break;
				case 3:
				  form_error(fid,i,0,ename);
					break;
			}
		}
  }
	if(typeof(ov_errormsg[form_name])!="undefined" &&  typeof(ov_errormsg[form_name]["start"])!="undefined"){errormsg = ov_errormsg[form_name]["start"]+errormsg;}
	if(typeof(ov_errormsg[form_name])!="undefined" &&  typeof(ov_errormsg[form_name]["end"])!="undefined"){  errormsg += ov_errormsg[form_name]["end"];}
  if(block ==1 && errormsg.length>0){
		alert(errormsg);
	}else{
		form.submit();
	}
}

// 2 = Mussfeld leer
// 1 = falscher Wert
// 3 = alles Okay
function ov_check(eid,fid,form,types){
  if(typeof(types)!= "undefined"){
	  var content = form.elements[eid].value;
	  if(content.length>0){
	    switch(types["type"]){
			  case 'text':
	        if(types["length"] && content.length > types["length"])return 1;
					if(types["minlength"] && content.length <= types["minlength"])return 1;
		      break;
		    case 'number':
				  if(isNaN(content)) return 1;
					if(types["length"] && content.length < types["length"])return 1;
			    break;
		    case 'email':
		      if(content.search("^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$")) return 1;
		      break;
				case 'plain':
		      if(content.search("^[a-zA-Z0-9_]*$")==-1) return 1;
		      break;
		    default:
		      alert("unknown type: "+types["type"]);
	    }

		}else{
		  if(types["must"] == 1) return 2;
		}
 return 3;
 }else{
 return -1;
 }
}

function checkform(form_name,mode){
  var f = eval("document."+form_name);
  var doit = true;
  var errmsg = '';
  if(mode=="login" || mode=="pwd"){
  	if(f.usr.value==''){ doit=false; form_error(1,0,1); errmsg+=ov_errormsg['usr']; }
  }
  if(mode == "login"){
  	if(f.pwd.value==''){ doit=false; form_error(2,0,1); errmsg+=ov_errormsg['pwd']; }
  }
  if(doit==false){
  	alert(ov_errormsg['start']+errmsg);
  } else {
		if(mode=="pwd"){ f.mode.value="pwd"; }
		f.submit();
	}
}
