﻿if (!EC) var EC = new Object();

EC.Event = function(e)
{
   this._e = e ? e : window.event;

   if (this._e.keyCode)
      this.keyCode = this._e.keyCode;
   else if (this._e.which)
      this.keyCode = this._e.which;
   else
      this.keyCode = 0;

   
   if (this._e.target)
      this.target = this._e.target;
   else if (this._e.srcElement)
      this.target = this._e.srcElement;
   else
      this.target = null;

   this.type = this._e.type;
}

EC.Event.prototype =
{
   cancelBubble:  function()
   {
      this._e.cancelBubble = true;
      this._e.returnValue = false;
      if (this._e.stopPropagation)
         this._e.stopPropagation();
   },

   isKeyPress: function()
   {
      return this._e.type == "keypress";
   },

   isClick: function()
   {
      return this._e.type == "click";
   }
}


EC.Events = new Object();

EC.Events.OnEnterKey = function(obj, e, f)
{
   e = new EC.Event(e);

   if (e.isKeyPress() && e.keyCode == '13' && obj == e.target) {
      e.cancelBubble();
      f();
   }
}

EC.Events.OnEscapeKey = function(obj, e, f)
{
   e = new EC.Event(e);

   if (e.isKeyPress() && e.keyCode == '27' && obj == e.target) {
      e.cancelBubble();
      f();
   }
}

EC.Events.OnEscapeKey = function(e, f)
{
   e = new EC.Event(e);

   if (e.isKeyPress() && e.keyCode == '27') {
      e.cancelBubble();
      f();
   }
}

EC.Events.OnClick = function(obj, e, f)
{
   e = new EC.Event(e);

   if (e.isClick() && obj == e.target && obj.click) {
      e.cancelBubble();
      f();
   }
}

EC.Events.OnEnterKeyClickElement = function(obj, e, id)
{
   EC.Events.OnEnterKey(obj, e, function () { EC.DOM.getElement(id).ecClick() });
}
