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(form.elements[i].name) !="undefined") && (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;
          if( emailCheck(content) == false) {
            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();
	}
}



function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
//	alert('Die angegebene E-Mail Adresse ist falsch!');
	 return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]

	if (user.match(userPat)==null) {
//	alert('Die angegebene E-Mail Adresse ist falsch!');
	    return false
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
	   for (var i=1;i<=4;i++) {
	     if (IPArray[i]>255) {
 //        alert('Die angegebene E-Mail Adresse ist falsch!');
	       return false
	     }
	    }
	    return true
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
	//  alert('Die angegebene E-Mail Adresse ist falsch!');
	  return false
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 ||
	    domArr[domArr.length-1].length>5) {
	 // alert('Die angegebene E-Mail Adresse ist falsch!');
	   return false
	}

	if (len<2) {
	 // alert('Die angegebene E-Mail Adresse ist falsch!');
	  return false
	}
	var tonlinePat = /t.?online.?de/
	if(domain.search(tonlinePat)!=-1){
		if(domain!='t-online.de') {
			// alert('Die angegebene E-Mail Adresse ist falsch!');
			// return false;
		}
	}
	return true;
}
function checkforemail() {
	if ((document.forms[0].email.value != '' && !emailCheck(document.forms[0].email.value))) {
		document.forms[0].email.value='';
		return false;
	} else {
		return true;
	}
}
function Convertto(val) {
	nval = 0;
	val = String(val);
	dezimalen = 0;
	nachkomma = "00";
	var lengostr = val.length;
	var lastdec = val.lastIndexOf(",");
	if(lastdec > 0) {
		dezimalen = val.substr(0,lastdec);
		nachkomma = val.substr(lastdec+1,lengostr);
	}

	return dezimalen+"."+nachkomma;
}
function Convertfrom(val) {
	nval = 0;
	val = String(val);
	dezimalen = 0;
	nachkomma = "00";
	var lengostr = val.length;
	var lastdec = val.lastIndexOf(".");
	if(lastdec > 0) {
		dezimalen = val.substr(0,lastdec);
		nachkomma = val.substr(lastdec+1,lengostr);
		if(lastdec == lengostr-2) nachkomma = nachkomma + "0";
		if((lengostr-1-lastdec) > 2) {
			nval = String(Math.round(100.00 * val));
			dezimalen = nval.substr(0,nval.length-2);
			nachkomma = nval.substr(nval.length-2,nval.length);
		}
	} else {
		dezimalen = val;
	}

	return dezimalen+","+nachkomma;
}

function check_versand(formname)
{

if (document.forms[formname].versandland.value == "") {
    return false;
  } else {
    return true;
  }
}


