/**
 * (c) 2009, Wacko Wacko studio
 * http://www.wacko-wacko.com
 */

function W2SignalListener() {
	var lastSignalId = null;
	var connections = new Array(); 
	var socket_ptrs = new Array(); 
	
	// public
	this.getSocket = function(signalId) {
		return connections[signalId];
	}
	this.lastSignal = function() {
		return lastSignalId;
	}
	
	this.signal = function(signalId, signalParams) {
		lastSignalId = signalId;
		processSignal(signalId, signalParams);
	}
	this.createSocket = function(socketId, ptr) {
		if (!ptr) return;
		socket_ptrs[socketId] = ptr;
	}
	this.connect = function(signalId, socketId, ptr) {
		connections[signalId] = socketId;
		if (ptr)
			socket_ptrs[socketId] = ptr;
	}
	
	// private
	var processSignal = function(signalId, signalParams) {
		var socketId = connections[signalId];
		if (!socketId) return;
		
		var func = socket_ptrs[socketId];
		if (!func) return;
		
		func(signalParams);
	}
	var init = function() {
	}
	init();
}