/**
 * @author Lee Yeong Cheon
 * @version 1.00, 07/01/27
 * @since javascript 1.5
 */

  // MSIE, FF, Opera Event 객체  호환 설정
  if(!window.event && window.captureEvents) {
    window.event = new Object;
    document.addEventListener("mousemove", EventHandler, false);
    document.addEventListener("mouseover", EventHandler, false);
    document.addEventListener("mouseout", EventHandler, false);
    document.addEventListener("mousedown", EventHandler, false);
    document.addEventListener("mouseup", EventHandler, false);
    document.addEventListener("click", EventHandler, false);
    document.addEventListener("dblclick", EventHandler, false);
    window.addEventListener("keypress", EventHandler, false);
    window.addEventListener("keydown", EventHandler, false);
    window.addEventListener("keyup", EventHandler, false);
  }

  // FF, Opera to MSIE event property binding
  function EventHandler(event) {
    window.event.x = event.pageX;
    window.event.y = event.pageY;
    window.event.clientX = event.pageX;
    window.event.clientY = event.pageY;
    window.event.screenX = event.screenX;
    window.event.screenY = event.screenY;
    window.event.offsetX = event.offsetX ? event.offsetX : event.layerX;
    window.event.offsetY = event.offsetY ? event.offsetY : event.layerY;
    window.event.type = event.type;
    window.event.button = event.which;
    window.event.keyCode = event.which;
    window.event.srcElement = event.target;
  }

  // 명시된 객체(object)의 특정(event_type) 이벤트리스너에 handler를 등록한다.
  function AddEventListener(object, event_type, handler) {
    if(document.attachEvent) {
      object.attachEvent(event_type, handler);
    } else {
      object.addEventListener(event_type.replace(/^on/i,""), handler, false);
    }
  }

  // 명시된 객체(object)의 특정(event_type) 이벤트리스너에 등록된 handler를 제거한다.
  function RemoveEventListener(object, event_type, handler) {
    if(document.detachEvent) {
      object.detachEvent(event_type, handler);
    } else {
      object.removeEventListener(event_type.replace(/^on/i,""), handler, false);
    }
  }