﻿/*	
 *	jQuery pub/sub plugin by Peter Higgins (dante@dojotoolkit.org)
 *	Loosely based on Dojo publish/subscribe API, limited in scope. Rewritten blindly.
 *	Original is (c) Dojo Foundation 2004-2009. Released under either AFL or new BSD, see:
 *	http://dojofoundation.org/license for more information.
 *
 */
(function($){

	var cache = {};

	$.subscribe = function(channel, callback){
		if(!cache[channel]) cache[channel] = [];
		cache[channel].push(callback);
		return [channel, callback];  
	},
	  
	$.unsubscribe = function(handle){
		var t = handle[0], c = cache[t];
		if (c) for (var i=0, len=c.length; i<len; i++) 
			c[i]==handle[1] && c.splice(i,1);
	},
	  
	$.publish = function(channel, args){
		var c = cache[channel];
		if (c) for (var i=0, len=c.length; i<len; i++)				
			c[i].apply(null, args||[]);
	}
		
})(jQuery);
