highlight currently displayed subtitle
[HTML5TV.git] / www / html5tv.js
1 var theCarousel;\r
2 \r
3 function myCarousel_initCallback(carousel) {\r
4     theCarousel = carousel; // hack!\r
5 }\r
6 \r
7 function myCarousel_onBeforeAnimation(carousel, state) {\r
8     for (var i = carousel.first; i <= carousel.last; i++) {\r
9         if (carousel.has(i)) {\r
10             continue;\r
11         }\r
12 \r
13         if (i > carousel.options.customEventManager.getEventCount()) {\r
14             break;\r
15         }\r
16 \r
17         var event = carousel.options.customEventManager.getEvent(i - 1);\r
18 \r
19         var html = '<img src="' + event.args.src + '" width="' + html5tv.slide.width + '" height="' + html5tv.slide.height + '" alt="' + event.args.description + '" id="' + event.args.id + '" /><div class="thumbnailOverlay">' + event.args.title + '</div>';\r
20 \r
21         carousel.add(i, html);\r
22 \r
23         myCarousel_addClickHandler(event.args.id, event.startTime);\r
24     }\r
25 }\r
26 \r
27 function myCarousel_addClickHandler(id, time) {\r
28     $("#" + id).click(function() {\r
29         var videoElement = $("video#vid").get(0);\r
30         videoElement.currentTime = time;\r
31     });\r
32 }\r
33 \r
34 function chapterChange(isActive, args) {\r
35 \r
36 console.debug( isActive, args );\r
37 \r
38     if (isActive) {\r
39         $("#carousel img").css("border-color", "#272928");\r
40         $("#" + args.id).css("border-color", "white");\r
41         $("#carousel .thumbnailOverlay").css("visibility", "hidden");\r
42         $("#" + args.id + " + .thumbnailOverlay").css("visibility", "visible");\r
43 \r
44                 $('#sub_' + args.index).addClass('active');\r
45 \r
46         theCarousel.scroll(args.index, true);\r
47     } else {\r
48                 $('#sub_' + args.index).removeClass('active');\r
49         }\r
50 }\r
51 \r
52 \r
53 function additional_video(isActive, args) {\r
54         var video = $('video#' + args.id);\r
55         console.debug( isActive, args, video );\r
56         if (isActive) {\r
57                 $('div#slide').hide();\r
58                 video.show();\r
59                 video[0].play();\r
60         } else {\r
61                 video[0].pause();\r
62                 video.hide();\r
63                 $('div#slide').show();\r
64         }\r
65 }\r
66 \r
67 \r
68 $().ready(function() {\r
69         //console.debug( video_sync );\r
70         $("#vid").sync( html5tv.sync );\r
71 \r
72     $(".toggleContentPanel").click(function() {\r
73         var contentPanelId = "#" + ($(this).attr("class")).split(" ")[1];\r
74         $(contentPanelId).toggle("blind", {}, 100);\r
75         var currentBackground = $(this).css("background-image");\r
76         var newBackground = currentBackground.indexOf("Show") >=0 ? "url(contentPanelHide.png)" : "url(contentPanelShow.png)";\r
77         $(this).css("background-image", newBackground);\r
78     });\r
79 \r
80     var synchroniser = $("#vid").data("synchroniser");\r
81 \r
82     var customEventManager = synchroniser.getCustomEventManager();\r
83     var chapterCount = customEventManager.getEventCount();\r
84 \r
85     $('#carousel').jcarousel({\r
86         size: chapterCount,\r
87         itemLoadCallback: {\r
88             onBeforeAnimation: myCarousel_onBeforeAnimation\r
89         },\r
90         initCallback: myCarousel_initCallback,\r
91         customEventManager: customEventManager\r
92     });\r
93 });\r