forked from kjpluck/kjpluck.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
98 lines (84 loc) · 3.52 KB
/
index.html
File metadata and controls
98 lines (84 loc) · 3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="collapse navbar-collapse" id="theNavbar">
</div>
</div>
</nav>
<div id="videoGallery"/>
<script>
var pageData;
$.getJSON("pages.json", function(data) {
pageData = data;
var navbarItems = [];
$.each(data, function(pageIndex){
navbarItems.push("<li><a href=\"#" + pageIndex + "\" id=\"a" + pageIndex + "\">" + this.title + "</a></li>");
});
$("<ul/>",{class:"nav navbar-nav",html:navbarItems.join("")}).appendTo("#theNavbar");
$("a").click(changePage);
$("#a0").click();
});
function changePage(){
var page = this.hash.substr(1);
$(".nav").find(".active").removeClass("active");
$(this).parent().addClass("active");
var pageDetails = pageData[page];
var videoList = [];
var unknownTitles = [];
$.each(pageDetails.videos, function(videoIndex){
var title = localStorage.getItem(this);
if(title === null){
unknownTitles.push(this);
title = "<img src='images/spinner.gif'>";
}
videoList.push(
"<div class='col-lg-2 col-sm-3 col-xs-4'>"+
"<div class = 'thumbnail'>"+
"<a href='video.html#" + this + "'>"+
"<img class='img-responsive' src='http://img.youtube.com/vi/" + this + "/0.jpg'>"+
"</a>"+
"<div id='caption" + this + "' class='caption'>"+
title +
"</div>"+
"</div>"+
"</div>");
});
$("#videoGallery").empty();
$("<div/>",{class:"row",html:videoList.join("")}).appendTo("#videoGallery");
if(unknownTitles.length > 0){
var url = "https://www.googleapis.com/youtube/v3/videos?id=" + unknownTitles.join(",") + "&key=AIzaSyB2Bus3oP3tZMNWUbaVUjeVnx-HgLubfJI&fields=items(id,snippet(title))&part=snippet";
$.getJSON(url,
function(titleData){
$.each(titleData.items,
function(item){
$("#caption"+this.id).html = "<p>" + this.snippet.title + "</p>";
localStorage.setItem(this.id, this.snippet.title);
}
);
});
}
}
</script>
</body>
</html>