/**
	Cross-browser Behavior-like implementation
	Events registered by selector
	Supports multicast!
*/


/**
	Events - top-level, static manager object
*/
Events = new Array();

Events.get = function (sSelector, sDomEvent) {
	for(
		var i = Events.length - 1;
		i >= 0 && !(
			Events[i].selector == sSelector
			&& Events[i].domEvent == sDomEvent
		);
		i--
	)
	{}
	
	if(i >= 0)
		return Events[i];
	
	//does not exist; create
	return Events.create(sSelector, sDomEvent);
}

Events.create = function (sSelector, sDomEvent) {
	var iIndex = this.length;
	var event = new Event(sSelector, sDomEvent, iIndex);
	this.push(event);
	return event;
}

Events.createMany = function () {
	for(var iArg = 0; iArg < arguments.length; iArg++) {
		var arg = arguments[iArg];
		this.create(arg[0], arg[1], arg[2]);
	}
}

Events.getList = function () {
	var sEvents = '';
	
	for(var iEvent = 0; iEvent < Events.length; iEvent++) {
		var event = Events[iEvent];
		sEvents += '|' + event.getString();
	}
	
	return sEvents;
}