web: First cut at implementing playlist support.
[gnupg-doc.git] / web / share / campaign / campaign.js
index 00de5e9..f2094bd 100644 (file)
@@ -43,19 +43,6 @@ $(document).ready(function() {
   $('.carousel').bcSwipe({ threshold: 50 });
 });
 
-/* Defer loading Youtube iframe until the user clicks on the video.  */
-$(document).ready(function() {
-  /* For the video preview, we use this for devices without hover events.  */
-  if ("ontouchstart" in document.documentElement) {
-    $("body").addClass("touch");
-  }
-
-  /* Click handler for all videos.  */
-  $(".camp-video").one("click", function() {
-    let yt_id = $(this).data("embed");
-    $(this).html('<iframe class="embed-responsive-item" allowfullscreen src="https://www.youtube.com/embed/' + yt_id + '?autoplay=1&rel=0"></iframe>');
-  });
-});
 
 /* Fill donation amounts w/ javascript if possible.  */
 $(document).ready(function() {
@@ -73,3 +60,56 @@ $(document).ready(function() {
     });
   }
 });
+
+function get_param_from_url(name) {
+    let params = location.search.substring(1); // Snip away the ?
+    params = params.split('&');
+    let idx = 0;
+    for (; idx < params.length; idx++) {
+       let param = params[idx].split('=');
+       if (param[0] != name) {
+           return;
+       }
+       if (param.length > 1) {
+           return decodeURIComponent(param[1]);
+       }
+       return "";
+    }
+}
+
+/* Defer loading Youtube iframe until the user clicks on the video.  */
+$(document).ready(function() {
+  /* For the video preview, we use this for devices without hover events.  */
+  if ("ontouchstart" in document.documentElement) {
+    $("body").addClass("touch");
+  }
+
+    let wanted_yt_id = get_param_from_url('play');
+    $(".camp-video").each(function() {
+       let yt_ids = $(this).data("embed").split(",");
+       let yt_id_idx = yt_ids.indexOf(wanted_yt_id);
+       if (yt_id_idx != -1) {
+           $(this).data("embed", wanted_yt_id);
+           $(this).children("img").attr("src", "/share/campaign/img/thumbs/" + wanted_yt_id + ".jpg");
+           break;
+       }
+    });
+
+    /* To download the thumbs in share/campaign/img/thumbs:
+       for f in YTID1 YTID2 ...; do wget -O $f.jpg http://i1.ytimg.com/vi/$f/maxresdefault.jpg; done # or hqdefault.jpg */
+
+    /* Click handler for all videos.  */
+
+    /* http://i1.ytimg.com/vi/VGazSZUYyf4/hqdefault.jpg */
+    $(".camp-video").one("click", function() {
+       let yt_id = $(this).data("embed").split(",")[0];
+       let yt_list = $(this).data("embed-list");
+       let extra_parms = "";
+       if (yt_list) {
+           extra_parms = "&list=" + yt_list;
+       }
+       $(this).html('<iframe class="embed-responsive-item" allowfullscreen src="https://www.youtube.com/embed/'
+                    + yt_id + '?autoplay=1&modestbranding=1&rel=0' + extra_parms + '"></iframe>');
+    });
+  }
+});