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)
     	return 0
     var user=matchArray[1]
     var domain=matchArray[2]

     if (user.match(userPat)==null)
         return 0


     var IPArray=domain.match(ipDomainPat)
     if (IPArray!=null)
     {
          for (var i=1;i<=4;i++)
               if (IPArray[i]>255)
     		   return 0
          return 1
     }

     var domainArray=domain.match(domainPat)
     if (domainArray==null)
          return 0

     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>4)
        return 0

     if (len<2)
        return 0

     return 1;
}

function CheckUserInputChar(Type,Value)
{

     if (!Type)
          Type = "posinteger";    

     Type = Type.toLowerCase()

     if (document.all)
          InputCharCode = window.event.keyCode;
     else
     {
          InputCharCode = FF_LastEvent.which;
     }

     if (!InputCharCode || InputCharCode==8)
          return (true);

     if (Type == 'password')
     {
          if ((InputCharCode >= 65 && InputCharCode <= 90) || (InputCharCode >= 97 && InputCharCode <= 122) || (InputCharCode >= 48 && InputCharCode <= 57))
               return(true);
          else
               alert("Es sind nur die Zeichen A-Z und 0-9 erlaubt");
     }

     if (Type=='loginname')
     {
          if (Value.length==0)
          {
               if ((InputCharCode >= 65 && InputCharCode <= 90) || (InputCharCode >= 97 && InputCharCode <= 122) || InputCharCode == 196 || InputCharCode == 214 || InputCharCode == 220 || InputCharCode == 228 || InputCharCode == 246 || InputCharCode == 252)
                    return(true);
               else
                    alert('Der Loginname muss mit einem Buchstaben beginnen');
          }
          else
          {
               if ((InputCharCode >= 65 && InputCharCode <= 90) || (InputCharCode >= 97 && InputCharCode <= 122) || (InputCharCode >= 48 && InputCharCode <= 57) || InputCharCode == 43  || InputCharCode == 45 || InputCharCode == 46 || InputCharCode == 190 || InputCharCode == 58 || InputCharCode == 95 || InputCharCode == 196 || InputCharCode == 214 || InputCharCode == 220 || InputCharCode == 228 || InputCharCode == 246 || InputCharCode == 252)
                    return(true);
          }    
     }

     if (Type=='emailaddress')
     {
          if (Value.length==0)
          {
               if ((InputCharCode>=65 && InputCharCode<=90) || (InputCharCode>=97 && InputCharCode<=122) || InputCharCode == 45 || InputCharCode == 43 || InputCharCode==46 || InputCharCode == 190 || InputCharCode==95 || (InputCharCode>=48 && InputCharCode<=57))
                    return(true);
               else
                    alert('Die eMailadresse kann nicht mit diesem Zeichen beginnen');
          }
          else
          {
               if (InputCharCode == 64)
               {
                    if (Value.indexOf('@') != -1)
                         alert('Die eMailadresse darf nur ein @ enthalten');
                    else
                         return (true);
               }
               
               if ((InputCharCode>=65 && InputCharCode<=90) || (InputCharCode>=97 && InputCharCode<=122) || InputCharCode == 45 || InputCharCode == 43 || InputCharCode==46 || InputCharCode == 190 || InputCharCode==95 || (InputCharCode>=48 && InputCharCode<=57))
                    return(true);
          }            
     }

     if (Type=='emailalias')
     {
          if (InputCharCode == 42 && Value.length==0)
               return (true);
          if (Value.length > 0 && Value.indexOf('*') != -1)
               return(false);
               
          if ((InputCharCode>=65 && InputCharCode<=90) || (InputCharCode>=97 && InputCharCode<=122) || InputCharCode == 45 || InputCharCode == 43 || InputCharCode==46 || InputCharCode == 190 || InputCharCode==95 || (InputCharCode>=48 && InputCharCode<=57))
               return(true);
     }


     if (Type=='reversedns')
     {
          if (Value.length==0)
          {
               if ((InputCharCode >= 65 && InputCharCode <= 90) || (InputCharCode >= 97 && InputCharCode <= 122) || (InputCharCode >= 48 && InputCharCode <= 57))
                    return(true);
          }
          else
          {
               if ((InputCharCode >= 65 && InputCharCode <= 90) || (InputCharCode >= 97 && InputCharCode <= 122) || (InputCharCode >= 48 && InputCharCode <= 57) || InputCharCode == 45 || InputCharCode == 46 || InputCharCode == 190 || InputCharCode == 95)
                    return(true);
          }    
     }


     if (Type=='domainname')
     {
          var validChars = new Array(45,46,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,190,122,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,248,249,250,251,252,253,254,255,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,309,311,312,314,316,318,322,324,326,328,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,382);
          if (in_array(InputCharCode,validChars))
               return(true);
          else
               alert('Zeichen in Domainnamen nicht erlaubt');
     }

     if (Type=='hostnamemapping')
     {
          var validChars = new Array(45,47,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,95,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122);
          if (in_array(InputCharCode,validChars))
               return(true);
          else
               alert('Zeichen in Verzeichnisnamen nicht erlaubt');
     }

     if (Type=='url')
     {
          var validChars = new Array(45,46,47,48,49,50,51,52,53,54,55,56,57,58,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,190,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,248,249,250,251,252,253,254,255,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,309,311,312,314,316,318,322,324,326,328,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,382);
          if (in_array(InputCharCode,validChars))
               return(true);
          else
               alert('Zeichen in URL nicht erlaubt');
     }

     if (Type=='realname')
     {
          if (Value.length==0)
          {
               if ((InputCharCode >= 65 && InputCharCode <= 90) || (InputCharCode >= 97 && InputCharCode <= 122) || InputCharCode == 196 || InputCharCode == 214 || InputCharCode == 220 || InputCharCode == 228 || InputCharCode == 246 || InputCharCode == 252)
                    return(true);
               else
                    alert('Der Name muss mit einem Buchstaben beginnen');                    
          }
          else
          {
               if (InputCharCode == 32 || (InputCharCode >= 65 && InputCharCode <= 90) || (InputCharCode >= 97 && InputCharCode <= 122) || (InputCharCode >= 48 && InputCharCode <= 57) || InputCharCode == 43  || InputCharCode == 45 || InputCharCode == 46 || InputCharCode == 190 || InputCharCode == 58 || InputCharCode == 95 || InputCharCode == 196 || InputCharCode == 214 || InputCharCode == 220 || InputCharCode == 228 || InputCharCode == 246 || InputCharCode == 252)
                    return(true);
          }    
     }

     if (Type=='posinteger' || Type == "integer")
     {
          if (InputCharCode >= 48 && InputCharCode <= 57)
               return(true);
     }

     if (Type == 'decimal' || Type == "posdecimal")
     {
          if (InputCharCode == 44)
          {
               if (document.all && !window.opera)
               {
                    InputCharCode = 46
                    window.event.keyCode = 46
               }
               else
               {
                    alert("',' not allowed! use '.'")
                    return(false)
               }
          }
          if (!Value)
          {
               if ((InputCharCode >= 48 && InputCharCode <= 57) || InputCharCode == 46 || InputCharCode == 190)
                    return(true);
          }
          else
          {
               if ((InputCharCode >= 48 && InputCharCode <= 57) || ((InputCharCode == 46 || InputCharCode == 190)  && substr_count(Value,String.fromCharCode(46))<1))
                    return (true)
          }          
     }
     if (Type == 'phonenumber')
     {
          if (InputCharCode >= 48 && InputCharCode <= 57)
               return (true)
          else
          {
               if (document.all && !window.opera)
               {
                    if (InputCharCode >=97 && InputCharCode <=122)
                         InputCharCode = InputCharCode - 32;
     
                    if (InputCharCode>82)
                         InputCharCode = InputCharCode -1;
                    if (InputCharCode==89)
                         InputCharCode = InputCharCode -1;
                    if (InputCharCode>=65 && InputCharCode<=90)
                    {
                         window.event.keyCode = Math.floor((InputCharCode - 65) / 3) + 50;
                         return (true);
                    }
               }
          }
     }

     return (false);
}

function FF_SaveEvent(evt)
{
     FF_LastEvent = evt;
}

if (!document.all)
{
     var FF_LastEvent = "";
     document.onkeypress = FF_SaveEvent;


}

function substr_count(String,SearchChar)
{
     counter = 0;
     for (iFor1 = 0; iFor1 < String.length; iFor1++)
     {
          if (String.charAt(iFor1) == SearchChar)
               counter++;
     }
     return (counter)               
}

function in_array(value,a_array)
{
     for (var i=0; i<a_array.length; i++) 
     {
          if (a_array[i] == value) 
          {
               return(1)
          }
     }
     return(0)
}

function DeCryptSendto(s) 
{
     var n=0;
     var r="";
     s = "ocknvq<"+s;
     for(var i=0; i < s.length; i++) 
     {
     	n=s.charCodeAt(i);
     	if (n>=8364) {n = 128;}
     	r += String.fromCharCode(n-(2));
     }
     location.href=r;
}
function Decrypt (Str)
{
   var s = new String;
   var i;

   for (i=0; i<Str.length; i+=2)
   {
      s = s + String.fromCharCode (parseInt (Str.substr(i ,2), 16)^(i/2));
   }

   return s;
}

function MailToDecrypt(adr)
{
     location.href = Decrypt (adr)
}
String.prototype.LTrim = new Function("return this.replace(/^\\s+/,'')")
String.prototype.RTrim = new Function("return this.replace(/\\s+$/,'')")
String.prototype.Trim  = new Function("return this.replace(/^\\s+|\\s+$/g,'')")



