         handler.call(@, event)
     return
 
+  _inArray: ( elem, array )->
+    i = 0
+    len = array.length
+    while i < len
+      if array[ i ] is elem
+        return i
+      i++
+    return -1
+  
+
 ## Deffered
 # **internal**
 # before を確実に処理するための簡易的な Deffered クラス

          return @._params.queries
        })
    catch e
      throw new Error(e)
      #IEだと defineProperty がアレらしいので
      #@.__defineGetter__ したほうがいいかなー


    if @listeners[ type ] is undefined
      @listeners[ type ] =[]

    if @_inArray(listener, @listeners[type]) < 0
      @listeners[type].push listener
    return

