/* Copyright (c) 2010, Diaspora Inc. This file is * licensed under the Affero General Public License version 3 or later. See * the COPYRIGHT file. */ var Embedder = { services: {}, register: function(service, template) { Embedder.services[service] = template; }, render: function(service, views) { var template = (typeof Embedder.services[service] === "string") ? Embedder.services[service] : Embedder.services.undefined; return $.mustache(template, views); }, embed: function($this) { var service = $this.data("host"), container = document.createElement("div"), $container = $(container).attr("class", "video-container"), $videoContainer = $this.parent().siblings("div.video-container"); if($videoContainer.length) { $videoContainer.slideUp("fast", function() { $(this).detach(); }); return; } if ($("div.video-container").length) { $("div.video-container").slideUp("fast", function() { $(this).detach(); }); } $container.html(Embedder.render(service, $this.data())); $container.hide() .insertAfter($this.parent()) .slideDown('fast'); $this.click(function() { $container.slideUp('fast', function() { $(this).detach(); }); }); }, initialize: function() { $(".stream").delegate("a.video-link", "click", Embedder.onVideoLinkClick); }, onVideoLinkClick: function(evt) { evt.preventDefault(); Embedder.embed($(this)); } }; Embedder.register("youtube.com", 'Watch this video on Youtube
' + ''); Embedder.register("vimeo.com", 'Watch this video on Vimeo
' + ''); Embedder.register("undefined", '

Unknown video type - {{host}}

'); $(document).ready(function() { Embedder.initialize(); });