﻿/*
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") {
      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;
   }
}
*/



var muss = new Array();

function Check() {
   var nosa = true;
   var checknotpass = ""
   var onvalue = new Array();
   var anfmes="Das Formular konnte nicht versendet werden, da folgende Felder nicht korrekt ausgefüllt wurden:\n\n";
   var endmes="Die fehlenden oder fehlerhaften Felder wurden mit roten Pfeilen markiert.\n\nVielen Dank für Ihr Verständnis.";

   for (i=0; i<document.datkontakt.elements.length;i++) {
      if (muss[document.datkontakt.elements[i].name]) {
         if (document.datkontakt.elements[i].value=='') {
            checknotpass+="Das Feld "+muss[document.datkontakt.elements[i].name]+" wurde nicht ausgefüllt.\n\n";
            eval("document.w_img_"+document.datkontakt.elements[i].name+".src = JSPServer+'media/img/err_1.gif'");
         }
         else if (document.datkontakt.elements[i].name=='email' && !isValidEmail( document.datkontakt.elements[i].value))
         {
            checknotpass+="Das Feld "+muss[document.datkontakt.elements[i].name]+" enthält keine korrekte E-Mail-Addresse.\n\n";
            eval("document.w_img_"+document.datkontakt.elements[i].name+".src = JSPServer+'media/img/err_1.gif'");
         }
         else if (document.datkontakt.elements[i].name=='bankleitzahl' && (!isValidNumber( document.datkontakt.elements[i].value)
                 || document.datkontakt.elements[i].value < 10000000 ))
         {
            checknotpass+="Das Feld "+muss[document.datkontakt.elements[i].name]+" enthält keine korrekte Bankleitzahl.\n\n";
            eval("document.w_img_"+document.datkontakt.elements[i].name+".src = JSPServer+'media/img/err_1.gif'");
         }
         else if (document.datkontakt.elements[i].name=='kontonummer' && !isValidNumber( document.datkontakt.elements[i].value))
         {
            checknotpass+="Das Feld "+muss[document.datkontakt.elements[i].name]+" enthält keine korrekte Kontonummer.\n\n";
            eval("document.w_img_"+document.datkontakt.elements[i].name+".src = JSPServer+'media/img/err_1.gif'");
         }
         else if (document.datkontakt.elements[i].name=='bestdate' && !chkDate( document.datkontakt.elements[i].value))
         {
            checknotpass+="Das angegeben Bestelldatum ist ungültig (Format: TT.MM.JJJJ)\n\n";
            eval("document.w_img_"+document.datkontakt.elements[i].name+".src = JSPServer+'media/img/err_1.gif'");
         }
         else if (document.datkontakt.elements[i].name=='shortdate' && !chkShortDate( document.datkontakt.elements[i].value))
         {
            checknotpass+="Das angegeben Umstellungsdatum ist ungültig (Format: MM.JJJJ)\n\n";
            eval("document.w_img_"+document.datkontakt.elements[i].name+".src = JSPServer+'media/img/err_1.gif'");
         }
         else if (document.datkontakt.elements[i].name=='pwd' && !document.datkontakt.elements[i].value=='') {
            checknotpass += chkPwd();
         }
         else
         {
            eval("document.w_img_"+document.datkontakt.elements[i].name+".src = JSPServer+'media/img/err_0.gif'");
         }
      } else {
         checknotpass += chkPwd();
      }
   }

   if (checknotpass!='')
   {
      alert(unescape(escape(anfmes+checknotpass+endmes)));
      nosa = false;
   }

   if (nosa)
   {
      document.datkontakt.submit();
   }
}



function isValidNumber (number)
{
   validRegExp = /^\d+$/;
   if (number.search(validRegExp) == -1) {
      return false;
   }

   return true;
}



function isValidEmail (strEmail)
{
   validRegExp = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
   if (strEmail.search(validRegExp) == -1) {
      return false;
   }

   return true;
}



function chkDate (date)
{
   ret=date.search(/^[0-9]{1,2}\.[0-9]{1,2}\.[0-9][0-9][0-9][0-9]$/);

   if (ret==-1)
   {
      return false;
   }

   return true;
}



function chkShortDate (date)
{
   ret=date.search(/^[0-1][0-9]\.[0-2][0-0][0-0][5-9]$/);

   if(ret==-1)
   {
      return false;
   }

   return true;
}



function isAlfaNumeric(vnos, space)
{
   if (space==false) {
      validRegExp = /^[a-zA-Z0-9]{0,}$/;
   } else {
      validRegExp = /^[a-zA-Z0-9\s]{0,}$/;
   }

   return vnos.search(validRegExp);
}



function chkPwd ()
{
   var res = '';

   if (document.datkontakt.elements[i].name=='pwd' && !document.datkontakt.elements[i].value=='') {
      if ((document.datkontakt.pwd.value=='' && document.datkontakt.pwd1.value!='')
           || (document.datkontakt.pwd.value!='' && document.datkontakt.pwd1.value=='')) {
         res = "Bitte wiederholen Sie das Passwort!\n\n";
         eval("document.w_img_"+document.datkontakt.pwd.name+".src = JSPServer+'media/img/err_1.gif'");
         eval("document.w_img_"+document.datkontakt.pwd1.name+".src = JSPServer+'media/img/err_1.gif'");
      } else if ((document.datkontakt.pwd.value!='' && document.datkontakt.pwd1.value!='')
                  && (document.datkontakt.pwd.value!=document.datkontakt.pwd1.value)) {
         res = "Bitte geben Sie das gleiche Passwort ein!\n\n";
         eval("document.w_img_"+document.datkontakt.pwd.name+".src = JSPServer+'media/img/err_1.gif'");
         eval("document.w_img_"+document.datkontakt.pwd1.name+".src = JSPServer+'media/img/err_1.gif'");
      } else {
         if (! validatePwd(document.datkontakt.pwd)) {
            res = "Das angegebene Passwort ist ungültig (min. 8 Zeichen aus a-zA-Z0-9äÄöÖüÜ_§ und davon min. 2 Zeichen aus 0-9_§)\n\n";
            eval("document.w_img_"+document.datkontakt.pwd.name+".src = JSPServer+'media/img/err_1.gif'");
            eval("document.w_img_"+document.datkontakt.pwd1.name+".src = JSPServer+'media/img/err_1.gif'");
         }
      }
   }
   
   return res;
}



function validatePwd(form)
{
   var result = true;		 

   // general check for valid chars and length
   if (! form.value.match(/[a-zA-Z0-9äÄöÖüÜ_§]{8,}/)) {
      result = false;
   }

   // check for required amount of special chars
   var sTemp = form.value;
   var pos = 0;
   var count = 0;
   if (result) {
      while (pos > -1) {
         pos = sTemp.search(/[0-9_§]{1}/);
         if (pos > -1)
         {
            count++;
            sTemp = sTemp.substring(pos + 1);
            // alert("sTemp = " + sTemp);
         }
      }
   }
   
   if (count < 2) {
      result = false;
   }
   // alert("count = " + count);

	return result;
}

