var dom2 = new Object();
dom2.event = new Object();

/* ------------------------------------------------------------------
[文法]
  dom.event.addEventListener(elm, type, func, useCapture)
[説明]
  イベント・リスナーをセットする。
[引数]
  ・elm
      要素ノードオブジェクト
  ・type
      イベント・タイプ
  ・func
      イベント・リスナー関数（コールバック関数）の関数オブジェクト
  ・useCapture
      trueが指定されればキャプチャー・フェーズを有効にする。
      ただし、Internet Explorerでは、trueを指定しても、有効にならず、
      バブリング・フェーズとしてセットされるので、注意すること。
[戻値]
  成功すればtrueを、失敗すればfalseを返す。
------------------------------------------------------------------- */
dom2.event.addEventListener = function(elm, type, func, useCapture) {
  if(! elm) { return false; }
  if(! useCapture) {
    useCapture = false;
  }
  if(elm.addEventListener) {
    elm.addEventListener(type, func, false);
  } else if(elm.attachEvent) {
    elm.attachEvent('on'+type, func);
  } else {
    return false;
  }
  return true;
};

/* ------------------------------------------------------------------
[文法]
  dom.event.target(evt)
[説明]
  evtにセットされているイベントのイベント・ターゲットを特定する。
[引数]
  ・evt
      Eventインタフェース・オブジェクト
[戻値]
  イベント・ターゲットの要素ノードオブジェクト。イベント・ターゲット
  が判別できなかった場合はnullを返す。
------------------------------------------------------------------- */
dom2.event.target = function(evt) {
  /* W3C DOM準拠ブラウザー */
  if(evt && evt.target) {
    /* Safari 1.3対策 */
    if(evt.target.nodeType == 3) {
      return evt.target.parentNode;
    } else {
      return evt.target;
    }
  /* Internet Explorer */
  } else if(window.event && window.event.srcElement) {
    return window.event.srcElement;
  /* それ以外 */
  } else {
    return null;
  }
};

/* ------------------------------------------------------------------
[文法]
  dom.event.preventDefault(evt)
[説明]
  evtにセットされているイベントのデフォルト・アクションを抑止する。
[引数]
  ・evt
      Eventインタフェース・オブジェクト
[戻値]
  なし
------------------------------------------------------------------- */
dom2.event.preventDefault = function(evt) {
  /* W3C DOM準拠ブラウザー */
  if(evt && evt.preventDefault) {
    evt.preventDefault();
    /* Safari 1.3対策 */
    evt.currentTarget['on'+evt.type] = function() {return false;};
  /* Internet Explorer */
  } else if(window.event) {
    window.event.returnValue = false;
  }
};
