var Threads = {};

Threads.queues = [];
Threads.active = false;
Threads.timer = null;
Threads.interval = 200;

Threads.queue = function(callback) {
	Threads.queues[Threads.queues.length] = callback;
	
	if (!Threads.active) {
		Threads.start();
	}
}

Threads.execute = function() {
	var callback = Threads.queues.shift();
	if (!Threads.queues.length) {
		Threads.stop();
	}
	callback();
}

Threads.start = function() {
	Threads.timer = setInterval(Threads.execute, Threads.interval);
	Threads.active = true;
}

Threads.stop = function() {
	if (Threads.timer != null) {
		clearInterval(Threads.timer);
	}
	Threads.active = false;
}