//#################################################################################################### イベント関連の関数定義
var dom = new Object();
dom.event = new Object();
dom.event.addEventListener = function(elem, type, func, useCapture) {
  if (elem.addEventListener) {
    elem.addEventListener(type, func, false);
  } else if (elem.attachEvent) {
    elem.attachEvent('on'+type, func);
  } else {
    return false;
  }
  return true;
};
dom.event.removeEventListener = function(elem, type, func, useCapture) {
  if (elem.removeEventListener) {
    elem.removeEventListener(type, func, false);
  } else if (elem.detachEvent) {
    elem.detachEvent('on'+type, func);
  } else {
    return false;
  }
  return true;
};
dom.event.target = function(e) {
  if (e && e.target) {
    if (e.target.nodeType == 3) {
      return e.target.parentNode;
    } else {
      return e.target;
    }
  } else if (window.event && window.event.srcElement) {
    return window.event.srcElement;
  } else {
    return null;
  }
};
dom.event.preventDefault = function(e) {
  if (e && e.preventDefault) {
    e.preventDefault();
    e.currentTarget['on'+e.type] = function() {return false;};
  } else if (window.event) {
    window.event.returnValue = false;
  }
};
dom.event.stopPropagation = function(e) {
  if (e && e.stopPropagation) {
    e.stopPropagation();
  } else if (window.event) {
    window.event.cancelBubble = true;
  }
};
dom.event.dispatchEvent = function(elem, evet_type) {
  if (elem.dispatchEvent) {
    var e = document.createEvent('MouseEvents');
    e.initEvent(evet_type, true, true);
    elem.dispatchEvent(e);
  } else if (window.event) {
    var e = document.createEventObject();
    e.button = 1;
    elem.fireEvent('on'+evet_type, e);
  }
};




