var Storehouse = new Class({
	
	shelves: {},
	
	dispose: function(elements, shelf){
		this[shelf] = [];
		$$(elements).each(function(element){
			if(element.getPrevious()){
				element.store('previous',element.getPrevious());
			} else if(element.getNext()) {
				element.store('next',element.getNext());
			} else {
				element.store('parent',element.getParent());
			};
			this[shelf].include(element.dispose());
		}.bind(this));
		return this;
	},
	
	inject: function(shelf){
		this[shelf].reverse().each(function(element){
			var previous = element.retrieve('previous');
			var next = element.retrieve('next');
			var parent = element.retrieve('parent');
			if(previous){
				element.inject(previous,'after');
			} else if(next) {
				element.inject(next,'before');
			} else {
				element.inject(parent);
			}
		});
		this[shelf] = false;
	}

});


