
var ov_form_type = new Array();
var ov_errormsg  = new Array();
var typed        = new Array();

function getProps(obj){
	for(i in obj){
		alert(i+': '+obj[i]);
	}
}


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++){
	  bracketIndex = (form.elements[i].name.indexOf("[")==-1)? form.elements[i].name.length : form.elements[i].name.indexOf("[");
    	if(typeof(ov_form_type[form_name][form.elements[i].name.substr(0,bracketIndex)])!="undefined"){
			ename = form.elements[i].name.substr(0,bracketIndex);
			fid   = form.elements[i].name.substr(bracketIndex+1,(form.elements[i].name.length-bracketIndex-2));
			if(fid.length==0) fid =0;

			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;
 }
}

// fuer Reiseanfrage: die einzelnen Teilnehmer in ein hidden "Reiseteilnehmer"
function saveTeilnehmer(formname){
	var form = eval('document.'+formname);	
	var teilnehmer = '';
	var nT = 0;	

	for(e=0; e < form.elements.length; e++){
		if(form.elements[e].name.substr(0,6) == 'name_['){
			nT++;
			teilnehmer += nT+'. - '+form.elements[e].value;
			if(form.elements[e+1].value.length > 0) {
				teilnehmer += ', '+form.elements[e+1].value;
			}
			if(form.elements[e+2].value.length > 0) {
				teilnehmer += ', '+form.elements[e+2].value;
			}
			if(form.elements[e+3].value.length > 0) {
				teilnehmer += ', geb.: '+form.elements[e+3].value;
			}
			if(form.elements[e+4].value.length > 0) {
				teilnehmer += ', Körpergröße: '+form.elements[e+4].value;
			}
			if(form.elements[e+5].value.length > 0) {
				teilnehmer += ', Konfektion: '+form.elements[e+5].value;
			}
			if(form.elements[e+6].value.length > 0) {
				teilnehmer += ', Tages-km: '+form.elements[e+6].value;
			}
			teilnehmer += '\n';
		}
	}
	form.Teilnehmer.value = teilnehmer;
}