with (classes) {

with (dom) {

with (events) {

events.Event = function (Listening_Object)
{
 with (Event)
 {
  if (! ("stopPropagation" in this)) this.stopPropagation = stopPropagation;
  if (! ("preventDefault" in this)) this.preventDefault = preventDefault;

  with (this)
  {
   if (! ("target" in this)) this.target = this.srcElement? this.srcElement : null;
   if (! ("currentTarget" in this)) this.currentTarget = Listening_Object;
   if (! ("eventPhase" in this)) this.eventPhase = Listening_Object == target? AT_TARGET : BUBBLING_PHASE;
   if (! ("bubbles" in this)) this.bubbles = true;
   if (! ("cancelable" in this)) this.cancelable = true;
//   if (! ! ("timeStamp" in this)) with (new Date) timeStamp = Date.UTC(getFullYear(), getMonth(), getDay(), getHours(), getMinutes(), getSeconds(), getMilliseconds());
   if (! ("timeStamp" in this)) this.timeStamp = 0;
  }
 }

 return this;
}

Event.CAPTURING_PHASE = 1;
Event.AT_TARGET = 2;
Event.BUBBLING_PHASE = 3;

// function initEvent () {}

Event.stopPropagation = function () { with (this)
{
 cancelBubble = true;
}}

Event.preventDefault = function () { with (this)
{
 stopPropogation(); // ??
}}

}

}

}
