var Scenery = new function(){ var base = this; base.media = [] base.nextMedia = null base.mouse = new mouse ({ use_offset: false }) base.init = function(){ base.resize.init() } base.add = function(wall, media){ var scene_media switch (media.type) { case 'image': scene_media = new Scenery.types.image ({ media: media, wall: wall }) break case 'youtube': case 'vimeo': scene_media = new Scenery.types.video ({ media: media, wall: wall }) break } base.media.push(scene_media) return scene_media } base.addNextToWall = function(wall){ base.add(wall, base.nextMedia) base.nextMedia = null } base.remove = function(id){ var removed = _.remove(base.media, function(media){ return media.id == id }) removed.forEach(function(media){ // cleanup }) } base.serialize = function(){ var scenery = base.media.map(function(media){ return media.serialize() }) return scenery } base.deserialize = function(scenery_data){ scenery_data.forEach(function(data){ var wall = Rooms.walls[data.wall_id] var scene_media = base.add(wall, data.media) scene_media.deserialize(data) }) } return base } Scenery.types = {}