summaryrefslogtreecommitdiff
path: root/framework/Web/Javascripts/extended/event.js
blob: dd72d60e553924f54d3155a4c0996f5102f5858e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Object.extend(Event, {
	OnLoad : function (fn) {
		// opera onload is in document, not window
		var w = document.addEventListener && !window.addEventListener ? document : window;
		Event.__observe(w,'load',fn);
	},
	observe: function(elements, name, observer, useCapture) {
    if(!isList(elements))
		return this.__observe(elements, name, observer, useCapture);
	for(var i=0; i<elements.length; i++)
		this.__observe(elements[i], name, observer, useCapture);
  },
  __observe: function(element, name, observer, useCapture) {
    var element = $(element);
    useCapture = useCapture || false;
    
    if (name == 'keypress' &&
        ((navigator.appVersion.indexOf('AppleWebKit') > 0) 
        || (element && element.attachEvent)))
      name = 'keydown';
    
    this._observeAndCache(element, name, observer, useCapture);
  },
   keyCode : function(e)
	{
	   return e.keyCode != null ? e.keyCode : e.charCode
	},

	fireEvent : function(el,type)
	{
		if(document.createEvent)
        {
            var evt = document.createEvent('HTMLEvents');
            evt.initEvent(type, true, true);
            el.dispatchEvent(evt);
        }
        else if(el.fireEvent)
        {
            el.fireEvent('on'+type);
            el[type]();
        }
        else
            el[type]();
	}
});