
/*
  sEvent([object HTML[Tag]Element]);
  Egy DOM objektumot var parameternek.
  
  PL:
  
  <div id="eventtest"> </div>
  <script type="text/javascript">
    
    //Hozzuk letre egy uj paldanyt az sEventbol az eventtest divunk dom ojektumaval 
    
    var te = new sEvent(document.getElementById("eventtest") );
    
    //ekkor mar bongeszofuggetlenul hasznalhatjuk erre a divre az addeventListener metodust 
    //Az sEvent elonye a tobbi hasonlo objektummal szemben, hogy a felhasznalo rendelkezesere bocsajt egy doEvent metodust, ami lehetove teszi, hogy
    //egy esemenyt barmikor megh`vhassunk
    
    te.addEvenetListener("click", function(){
      alert("Clicked");
    } );
    
    //Pelda az onclick esemeny meghivasara
    
    te.doEvent("click"); // a metodus meghivasa ugyan azt az eredmenyt adja, mintha raklikkeltunk volna az tagre
    
    
  </script>
  
*/


function sEvent(element){
  
  this._element = element;
  this._events = new Array();
  
  this.addEvent = function(action, onEvent){
/*
    Minden bongeszore
*/
    if ( !this._events[action] )
      this._events[action] = new Array();
    this._events[action][this._events[action].length] = onEvent;
/*
    Ha a bongeszo IE
*/  
    if (this._element.addEventListener)
      this._element.addEventListener(action, onEvent, false);
    else if (this._element.attachEvent)
      this._element.attachEvent( "on"+action, onEvent );
  
  }
  
  this.addEventListener = this.addEvent;
  
  this.removeEvent = function(action, onEvent){
    if (this._element.addEventListener)
      this._element.removeEventListener(action, onEvent, false);
    else if (this._element.attachEvent)
      this._element.detachEvent ( "on"+action, onEvent );
    
    if (this._element.addEventListener)
      this._element.removeEventListener(action, onEvent, false);
    else if (this._element.attachEvent)
      this._element.detachEvent ( "on"+action, onEvent );
  }
  
  this.removeEventListener = this.removeEvent;
  
  this.doEvent = function(action){
    if (this._events[action])
      for (var i in this._events[action]){
        new this._events[action][i];
      }
  }
  
  this.clearEvent = function(action){
    for (var i in this._events[action]);
      this.removeEvent(action, this._events[action][i]);
  }

}
