/**
 * onLoadListener singleton implementation
 * (c) 2010 noldmedia
 */

var Registry = (function() {
	var instance = null;
	
	function privateConstructor() {
		var regItems = new Array();
		
		// add a listener function
		this.set = function(item,value) {
			if (!regItems[item])
				regItems[item] = value;
		};
		
		this.get = function(item) {
			
			if (!regItems.length)
				return null;
			
			if (regItems[item])
				return regItems[item];
			
			return null;
		}
		
		this.getAll = function(item) {
			return regItems;
		}
		
		this.remove = function(item) {
			
			if (!regItems.length)
				return false;
			
			if (regItems[item]) {
				oldItem = regItems[item];
				// remove from array
				regItems[item] = null;
				// unset old item
				oldItem = null;
				
				return true;
			}
			
			return false;
		}
		
		this.removeAll = function(item) {
			if (!regItems.length)
				return false;
				
			for (var i=0; i<regItems.length; i++) {
				this.remove(regItems[i]);
			}
			
			return true;
		}

	}
	
	return new function() {
		this.getInstance = function() {
			if (instance == null) {
				instance = new privateConstructor();
				instance.constructor = null;
			}
			
			return instance;
		};
	};
	
})();

// init global app variable
top.Registry = Registry.getInstance();
