// Juan Matias de la Camara Beovide
// TJF - Tiger JavaScrip Framework
// Abril 2008

// Este archivo contiene el codigo necesario para manejar eventos


var events = new Object;
events.listeners = new Object();


// para agregar mas listeners simplemente agregar los array literales y se crearán los handlers y funciones (addListener)
events.listeners.onmousemove  = [];
events.listeners.onmousedown  = [];
events.listeners.onmouseup    = [];
events.listeners.onclick      = [];


// Event
events.getEvent = function(e) {
  return ( e ) ? e : window.event;
}

events.getTarget = function(e) {
  var event = events.getEvent(e);
  return ( event.target ) ? event.target : event.srcElement
}

events.getMouseClick = function(e) {
  var position = { pageX: -1, pageY: -1 };

  if ( e.pageX ) {
    position.pageX = e.pageX;
    position.pageY = e.pageY;
  }

  else {
    position.pageX = e.clientX + document.body.scrollLeft;
    position.pageY = e.clientY + document.body.scrollTop;
  }

  return position;
}


events.init_handlers = function() {
  for(var ev in events.listeners ) {

    var string;

    string  = 'document.' + ev + '= function(e) {';
    string += 'for(var iter=0; iter < events.listeners.' + ev + '.length; iter++)';
    string += 'events.listeners.' + ev + '[iter]( events.getEvent(e) );';
    string += '}';

    eval(string);

  }

}

events.init_handlers();


events.init_addListener = function() {
  for(var ev in events.listeners ) {

    var string;

    string  = 'document.' + ev + '.addListener = function(func) {';
    string += 'events.listeners.' + ev + '[ events.listeners.' + ev + '.length ] = func;';
    string += '}';

    eval(string);

  }

}

events.init_addListener();


