S_NSP = (document.all) ? 0 : 1;

if (S_NSP){
   document.captureEvents(Event.KEYUP);
}
document.onkeyup = checkAndStep;

function checkAndStep(e){

   if (S_NSP){
      var key = e.keyCode;
      var el = e.target;
   } else{
      var key = event.keyCode;
      var el = event.srcElement;
   }

   // only work if this is triggered by an input element 
   // and the event is not deletion
   if (el.tagName=="INPUT" && key != 8 && el.maxLength > 0 && el.value.length >= el.maxLength) {
      // find target element in the list of all elements
      var i;
      for(i=0; i<el.form.elements.length; i++){
         if (el==el.form.elements[i]){
	    break;
         }
      }

      //if found, put the focus on the next element
      if (i != el.form.elements.length-1 && el.form.elements[i+1].type!="hidden") {
         el.form.elements[i+1].focus();
      }
   }
}

