Uwd.System.ProgramStack = function(){	 	
	
	var num = 0;
	var stack = null;
	
	// Public functions
	return {
		init : function(programs) {
			this.stack = [];
			var program = null;
			for (var i = 0; i < programs.length; i++) {
				program = new Uwd.System.Program();
				program.setConfig(programs[i]);
				this.stack.push(program);
			}
			this.num = i;
		},
		
		getProgramById : function(id) {
			for(var i = 0; i < this.num; i++) {
				if (this.stack[i].id === id) {
					return this.stack[i];	
				}
			}	
			return null;	
		},
		
		getProgramByName : function(name) {
			for(var i = 0; i < this.num; i++) {
				if (this.stack[i].name === name) {
					return this.stack[i];	
				}
			}	
			return null;	
		},
		
		getCount : function() {
			return this.num;
		},
		
		getStack : function() {
			return this.stack;	
		}
	};
}();

