define(['emitter/render'], function(RenderEmitter){
	var _trajectories = [];

	var _addTrajectory = function(trajectoryModel){
		_trajectories.push(trajectoryModel);
		RenderEmitter.trigger('add-trajectory', trajectoryModel);
		RenderEmitter.trigger('all-trajectory', _trajectories);
	}

	var _removeTrajectory = function(drifterModel){
		var drifterId = drifterModel.getId(), removeIndex, removeTj;
		for(var i=0, tj; removeIndex=i, tj=_trajectories[i++];){
			if(drifterId == tj.getDrifterId()){
				_trajectories.splice(removeIndex, 1);
				removeTj = tj;
				break;
			}
		}
		RenderEmitter.trigger('remove-trajectory', removeTj);
		RenderEmitter.trigger('all-trajectory', _trajectories);
	}

	var _clean = function(){
		_trajectories = [];
		RenderEmitter.trigger('clear-trajectories');
		RenderEmitter.trigger('all-trajectory', _trajectories);
	}

	return {
		addTrajectory: _addTrajectory,
		removeTrajectory: _removeTrajectory,
		clean: _clean
	}
});