var keybYN            = new keybEdit('yn','Valid values are \'Y\' or \'N\'.');
var keybNumeric       = new keybEdit('01234567890');
var keybAlpha         = new keybEdit('abcdefghijklmnopqurstuvwxy');
var keybAlphaNumeric  = new keybEdit('abcdefghijklmnopqurstuvwxy01234567890 ', 'Alpha-numeric input only.');
var keybDecimal       = new keybEdit('01234567890.');
var keybDate          = new keybEdit('01234567890/', 'Date input only');

function keybEdit(strValid, strMsg) {

  var reWork = new RegExp('[a-z]','gi'); //	Regular expression

  if ( reWork.test(strValid) ) {
    this.valid = strValid.toLowerCase() + strValid.toUpperCase();
  } else {
    this.valid = strValid;
  }

  if( (strMsg == null) || (typeof(strMsg) == 'undefined') ) {
  	this.message = '';
  } else {
  	this.message = strMsg;
  }

  this.getValid = keybEditGetValid;
  this.getMessage = keybEditGetMessage;
  
  function keybEditGetValid() {
  	return this.valid.toString();
  }
  
  function keybEditGetMessage() {
  	return this.message;
  }

}

function editKeyBoard(objForm, objKeyb) {
  strWork = objKeyb.getValid();
  strMsg = ''; // Error message
  blnValidChar = false; // Valid character flag

  // Part 1: Validate input
  if ( !blnValidChar ) {

    for(i=0; i<strWork.length; i++) {
  	
      if ( window.event.keyCode == strWork.charCodeAt(i) ) {
  			blnValidChar = true;
  			break;
  		} // end if

    } // end for

  } // end if

  // Part 2: Build error message
  if ( !blnValidChar ) {

    if ( objKeyb.getMessage().toString().length != 0 ) {
  		alert('Error: ' + objKeyb.getMessage());
    }

  	window.event.returnValue = false; // Clear invalid character
  	objForm.focus(); // Set focus
  }

}

