メモリーリークパターンと言われても・・・

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>test</title>

<p id="pp">
<input type="text" id="y" size="6">
<input type="text" id="m" size="4">
<input type="text" id="d" size="4">
</p>
<p id="qq">
<input type="text" id="yy" size="6">
<input type="text" id="mm" size="4">
<input type="text" id="dd" size="4">
</p>

<script type="text/javascript">
//@cc_on

var AutoFocus = function (target, css_on, css_off) {

  var Listener = (function(css0_on, css_off) {
    return function (evt) {
      var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/;
      if ( /INPUT|TEXTAREA/.test(e.nodeName) ) {
        if (/*@if (@_jscript) 'focusin' @else@*/ 'focus' /*@end@*/ === evt.type) e.style.cssText = css_on;
        if (/*@if (@_jscript) 'focusout' @else@*/ 'blur' /*@end@*/ === evt.type) e.style.cssText = css_off;
      }
    };
  })(css_on, css_off);
  
  target./*@if (@_jscript) attachEvent('on' + @else@*/ addEventListener(/*@end@*/
    /*@if (@_jscript) 'focusin' @else@*/ 'focus' /*@end@*/, Listener, true);
    
  target./*@if (@_jscript) attachEvent('on' + @else@*/ addEventListener(/*@end@*/
    /*@if (@_jscript) 'focusout' @else@*/ 'blur' /*@end@*/, Listener, true);
    
  /*@if (@_jscript) attachEvent('on' + @else@*/ addEventListener(/*@end@*/
    'unload', function (evt) {
      /*@if (@_jscript) detachEvent('on' + @else@*/ removeEventListener(/*@end@*/
        'unload', arguments.callee, false);
      target./*@if (@_jscript) detachEvent('on' + @else@*/ removeEventListener(/*@end@*/
        /*@if (@_jscript) 'focusin' @else@*/ 'focus' /*@end@*/, Listener, true);
      target./*@if (@_jscript) detachEvent('on' + @else@*/ removeEventListener(/*@end@*/
       /*@if (@_jscript) 'focusout' @else@*/ 'blur' /*@end@*/, Listener, true);
    }, false);
}

AutoFocus(document.getElementById('pp'), 'background-color:#fee','');

AutoFocus(document.getElementById('qq'), 'background-color:#eef','');

</script>

targetで受けてるのが悪いんだと思うけど、どうしよう?