/**
 * Dateiname       : javascript/InputFilter.js
 * Letzte Akt.     : 29.11.2007 (CK)
 * 
 * (c) Copyright SECRA GmbH
 */

var secra;
if(!secra)
{
  secra = {};
}
else if(typeof secra != "object")
{
  throw new Error("secra ist kein Objekt!");
}

if(secra.InputFilter)
{
  throw new Error("secra.InputFilter existiert bereits!");
}

secra.InputFilter = function(allowedChars, id) {
  this.allowed = allowedChars.join("");
  this.elem = document.getElementById(id);
  this.elem.filterObj = this;
  this.elem.onkeypress = this.filter
};

secra.InputFilter.prototype.filter = function(event) {
  var e = event || window.event;
  var code = e.charCode || e.keyCode;
  if(e.charCode == 0) return true;
  if(e.ctrlKey || e.altKey) return true;
  if(code < 32) return true;
  var c = String.fromCharCode(code);
  if(this.filterObj.allowed.indexOf(c) != -1) {
    return true;
  } else {
    if (e.preventDefault) e.preventDefault();
    if (e.returnValue) e.returnValue = false;
    return false;
  }
};
