/* Compiled from X 4.17 by XC 1.06 on 10Jul07 */
function xEvent(evt) {
  var e = evt || window.event;
  if (!e)return;
  this.type = e.type;
  this.target = e.target || e.srcElement;
  this.relatedTarget = e.relatedTarget;
  /*@cc_on if(e.type=='mouseover')this.relatedTarget=e.fromElement;else if(e.type=='mouseout')this.relatedTarget=e.toElement;@*/
  if (xDef(e.pageX)) {
    this.pageX = e.pageX;
    this.pageY = e.pageY;
  } else if (xDef(e.clientX)) {
    this.pageX = e.clientX + xScrollLeft();
    this.pageY = e.clientY + xScrollTop();
  }
  if (xDef(e.offsetX)) {
    this.offsetX = e.offsetX;
    this.offsetY = e.offsetY;
  } else if (xDef(e.layerX)) {
    this.offsetX = e.layerX;
    this.offsetY = e.layerY;
  } else {
    this.offsetX = this.pageX - xPageX(this.target);
    this.offsetY = this.pageY - xPageY(this.target);
  }
  this.keyCode = e.keyCode || e.which || 0;
  this.shiftKey = e.shiftKey;
  this.ctrlKey = e.ctrlKey;
  this.altKey = e.altKey;
  if (typeof e.type == 'string') {
    if (e.type.indexOf('click') != -1) {
      this.button = 0;
    } else if (e.type.indexOf('mouse') != -1) {
      this.button = e.button;
      /*@cc_on if(e.button&1)this.button=0;else if(e.button&4)this.button=1;else if(e.button&2)this.button=2;@*/
    }
  }
}
xLibrary = {version:'4.17',license:'GNU LGPL',url:'http://cross-browser.com/'};
function xAddEventListener(e, eT, eL, cap) {
  if (!(e = xGetElementById(e)))return;
  eT = eT.toLowerCase();
  if (e.addEventListener)e.addEventListener(eT, eL, cap || false); else if (e.attachEvent)e.attachEvent('on' + eT, eL); else {
    var o = e['on' + eT];
    e['on' + eT] = typeof o == 'function' ? function(v) {
      o(v);
      eL(v);
    } : eL;
  }
}
function xPreventDefault(e) {
  if (e && e.preventDefault)e.preventDefault(); else if (window.event)window.event.returnValue = false;
}
function xRemoveEventListener(e, eT, eL, cap) {
  if (!(e = xGetElementById(e)))return;
  eT = eT.toLowerCase();
  if (e.removeEventListener)e.removeEventListener(eT, eL, cap || false); else if (e.detachEvent)e.detachEvent('on' + eT, eL); else e['on' +
                                                                                                                                     eT]
      = null;
}
function xStopPropagation(evt) {
  if (evt && evt.stopPropagation)evt.stopPropagation(); else if (window.event)window.event.cancelBubble = true;
}