﻿  
var bAllOk = true;
var objLastField = null;
var lastszdatatype = "";
var lastbisnullable = false;
  
  function ValidateKeyPress(firedevent, type, control)
  {
  
  try{
   var code = alertkey(firedevent);
    switch (type)   
    {
        case "System.Int16":
        case "System.Int32":
        case "System.Int64":       
            if ((code > 47 && code < 58) || (code > 95 && code < 106) || code == 46 || code == 16 || code == 37 || code ==39 || code == 8 || code == 189 || code == 9)
            { }
            else
               window.event.returnValue = false;           

            break;
        case "System.Decimal":
        case "System.Single":
        case "System.Double":
            if ( (code > 47 && code < 58) || (code > 95 && code < 106) || code == 46 || code == 16 || code == 37 || code ==39 || code == 110 || code == 190 || code == 188 || code == 189 || code == 8 || code == 9)
            { }
            else
               window.event.returnValue = false;           

            break;
        case "System.DateTime":
            if (!( (code > 47 && code < 58) || (code > 95 && code < 106) || code ==32 || code == 46 || code == 16 || code == 37 || code ==39 || code == 110 || code == 190 || code == 8 || code == 9))
               window.event.returnValue = false;
            else
            {           
               if (code == 190 && control.value.length == 1)
               {
                  control.value = "0"+control.value;
                  window.event.returnValue = false;              
               }
               if (code == 190 && control.value.length == 4)
               {
                  part1 = control.value.substr(0, 3);
                  part2 = control.value.substr(3);
                  control.value = part1 + "0" + part2;
                  window.event.returnValue = false;
               }
               if (code == 190 && ( control.value.length == 2 || control.value.length == 5))
                  window.event.returnValue = false;
               if ((code == 32 || code == 9) && control.value.length == 8)
               {
                  part1 = control.value.substr(0, 6);                                          
                  part2 = control.value.substr(6);
                  control.value = part1 + "20" + part2;
                  if (code == 32)
                     window.event.returnValue = false;
               }
               if ((control.value.length == 2 || control.value.length == 5) && code != 8)
                  control.value += ".";
               if (control.value.length == 10 && code != 8 && code != 9)
                  window.event.returnValue = false;
               //if ((control.value.length == 13 || control.value.length == 16) && code != 8 && code != 190)
               //   control.value += ":";           
            }
            break;
        case "System.String":
            //alert(code);
            if ((code != 8)&&(code != 9)&&(code != 16)&&(code != 192)&&(code != 222)&&(code != 186)&&(code != 37)&&(code != 38)&&(code != 39)&&(code != 40)&&(code != 219)&&(code != 189)&&(code != 190))
            {
                var testregex = /[^a-zA-Z \-ß\d]/g;  // NICHT Wort (a-zA-Z) und NICHT Whitespace (Leerzeichen) sowie nicht -
                if (testregex.test(String.fromCharCode(code))==true && code!=96)
                {
                    window.event.returnValue = false;
                }
            }
            break;
         case "Indeca.Mail":
            //alert(code);
            if ((code != 8)&&(code != 9)&&(code != 16)&&(code != 192)&&(code != 222)&&(code != 186)&&(code != 37)&&(code != 38)&&(code != 39)&&(code != 40)&&(code != 219)&&(code != 189)&&(code != 190))
            {
                var testregex = /[^a-zA-Z \-ß\d]/g;  // NICHT Wort (a-zA-Z) und NICHT Whitespace (Leerzeichen) sowie nicht -
                if (testregex.test(String.fromCharCode(code))==true && code!=96)
                {
                    window.event.returnValue = false;
                }
            }
            break;
        default:               
        break;
    }         
    }
    catch(err){  }      
    //window.event.returnValue  = window.event.returnValue         
  }    
  
function HideDescMsg()
{
    var errorbox = window.document.getElementById("_DESCRIBE");
    errorbox.style.visibility = "hidden";
} 

function alertkey(e) {
    if( !e ) {
      if( window.event ) {
       //Internet Explorer
        return window.event;
      } else {
        return;
      }
    }
    
    if( typeof( e.keyCode ) == 'number'  ) {
      //DOM
        return e.keyCode;
    } else if( typeof( e.which ) == 'number' ) {
      //NS 4 compatible
        return e.which;
    } else if( typeof( e.charCode ) == 'number'  ) {
      //also NS 6+, Mozilla 0.9+
        return e.charCode;
    } else {
      //total failure, we have no way of obtaining the key code
      return null;
    }
    
  }
  
  
