var Eventos = {
	eventos: [],
	adiciona: function(o, e, f, s){
		var _e = e, r = o[r = "_" + (e = "on" + e)] = o[r] || (o[e] ? [[o[e], o]] : []), a, c, d, b;
		for (b=0;b<r.length;b++){
			if (r[b] && (r[b][0].toString() == f.toString())){
			    _e = o = e = f = s = a = c = b = d = null;
				return false;
			}
		}
		this.eventos.push({o: o, e: _e, f: f, s: s});
		r[r.length] = [f, s || o], o[e] = function(e){
			try{
				(e = e || event).preventDefault || (e.preventDefault = function(){e.returnValue = false;});
				e.stopPropagation || (e.stopPropagation = function(){e.cancelBubble = true;});
				e.target || (e.target = e.srcElement || null);
				e.key = (e.which + 1 || e.keyCode + 1) - 1 || 0;
			}catch(f){}
			for(d = 1, f = -1;f < r.length; r[++f] && (a = r[f][0], o = r[f][1], a.call ? c = a.call(o, e) : (o._ = a, c = o._(e), o._ = null), d &= c !== false)
			);
			return e = null, !!d;
		}
	    _e = o = e = f = s = a = c = b = d = null;
	},
	adicionaInicio: function(o, e, f, s){
	    var _e = e, r = o[r = "_" + (e = "on" + e)] = o[r] || (o[e] ? [[o[e], o]] : []), a, c, d, b;
		for (b=0;b<r.length;b++){
			if (r[b] && (r[b][0].toString() == f.toString())){
			    _e = o = e = f = s = a = c = b = d = null;
				return false;
			}
		}
		this.eventos.push({o: o, e: e, f: f, s: s});
	    r[r.length] = [f, s || o], o[e] = function(e){
	        try{
	            (e = e || event).preventDefault || (e.preventDefault = function(){e.returnValue = false;});
	            e.stopPropagation || (e.stopPropagation = function(){e.cancelBubble = true;});
	            e.target || (e.target = e.srcElement || null);
	            e.key = (e.which + 1 || e.keyCode + 1) - 1 || 0;
	        }catch(f){}
	        for(d = 1, f = r.length; f; r[--f] && (a = r[f][0], o = r[f][1], a.call ? c = a.call(o, e) : (o._ = a, c = o._(e), o._ = null), d &= c !== false));
	        return e = null, !!d;
	    }
	    _e = o = e = f = s = a = c = b = d = null;
	},
	remove: function(o, e, f, s){
		for(var i = (e = o["_on" + e] || []).length; i;){
			if(e[--i] && e[i][0] == f && (s || o) == e[i][1]){
				o = e = i = f = s = e[i] = null;
				return true;
			}
		}
		o = e = i = f = s = e[i] = null;
		return false;
	},
	limpar: function(){
		for(var i=0; i< this.eventos.length;i++)
			this.remove(this.eventos[i].o, this.eventos[i].e, this.eventos[i].f, this.eventos[i].s);
		i = this.eventos = null;
	}
}
if (typeof __CARREGOU_EVENTOS == "undefined"){
	Sisweb.aoFechar('Eventos.limpar(); delete Eventos');
	__CARREGOU_EVENTOS = true;
}
