Dirk Dougherty | 5f0462a | 2013-11-19 13:15:07 -0800 | [diff] [blame] | 1 | excludeFromSuggestions=true |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 2 | fullpage=true |
| 3 | page.title=Google I/O 13 |
| 4 | @jd:body |
Scott Main | 299c5ea | 2013-07-30 12:28:43 -0700 | [diff] [blame] | 5 | |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 6 | <style> |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 7 | #ioplayer-frame { |
| 8 | z-index:10; |
| 9 | width:703px; |
| 10 | height:396px; |
| 11 | margin:0; |
| 12 | position:relative; |
| 13 | } |
| 14 | |
| 15 | #noplayer-message { |
| 16 | position:absolute; |
| 17 | top:50%;left:0; |
| 18 | width:100%; |
| 19 | z-index:-1; |
| 20 | text-align:center; |
| 21 | display:none; |
| 22 | } |
| 23 | |
| 24 | h1 { |
| 25 | font-weight:100; |
| 26 | font-size:40px; |
| 27 | line-height:30px; |
| 28 | margin:30px 0 10px 0px; |
| 29 | color:#000; |
| 30 | } |
| 31 | |
| 32 | h2 { |
| 33 | font-weight:100; |
| 34 | font-size:30px; |
| 35 | line-height:30px; |
| 36 | margin:12px 0 10px 0px; |
| 37 | color:#000; |
| 38 | float:left; |
| 39 | display:block; |
| 40 | } |
| 41 | |
| 42 | .col-4 h2 { |
| 43 | margin-top:40px; |
| 44 | } |
| 45 | |
| 46 | ul.videos { |
| 47 | list-style:none; |
| 48 | margin:0; |
| 49 | width:auto; |
| 50 | } |
| 51 | ul.videos li { |
| 52 | display:block; |
| 53 | float:left; |
| 54 | position:relative; |
| 55 | margin:0 2px 2px 0; |
| 56 | background-repeat:no-repeat !important; |
| 57 | background-size:320px auto; |
| 58 | background-position:10% 50%; |
Scott Main | 25a49f9 | 2013-05-30 13:51:08 -0700 | [diff] [blame] | 59 | z-index:1; /* IE: the description is 2 */ |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 60 | } |
| 61 | ul.videos li a { |
| 62 | color:#fff !important; |
| 63 | display:block; |
| 64 | margin:0; |
| 65 | padding:8px 12px; |
| 66 | width:209px; |
| 67 | height:134px; |
| 68 | box-shadow:inset 500px 500px 999px rgba(000, 000, 000, 0.2); |
| 69 | background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,0,0,0.8)), color-stop(1, transparent)); |
| 70 | background-image: -webkit-linear-gradient(top, rgba(0,0,0,0.8), transparent); |
| 71 | background-image: -moz-linear-gradient(top, rgba(0,0,0,0.8), transparent); |
| 72 | background-image: -o-linear-gradient(top, rgba(0,0,0,0.8), transparent); |
| 73 | background-image: linear-gradient(to bottom, rgba(0,0,0,0.8), transparent); |
Scott Main | 25a49f9 | 2013-05-30 13:51:08 -0700 | [diff] [blame] | 74 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cc000000', endColorstr='#00ffffff',GradientType=0 ); /* IE6-9 */ |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 75 | } |
| 76 | ul.videos.featured li { |
| 77 | margin:0 0 2px; |
| 78 | } |
| 79 | ul.videos.featured li a { |
| 80 | margin:0; |
| 81 | height:115px; |
| 82 | } |
| 83 | ul.videos li a:hover { |
| 84 | box-shadow:inset 500px 500px 999px rgba(255,255,255, 0.6); |
| 85 | } |
| 86 | ul.videos li h4 { |
| 87 | text-shadow:1px 1px 0 rgba(0,0,0,0.8); |
| 88 | font-size:18px; |
| 89 | line-height:22px; |
Scott Main | 25a49f9 | 2013-05-30 13:51:08 -0700 | [diff] [blame] | 90 | color:#fff; |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 91 | margin:0; |
Scott Main | 25a49f9 | 2013-05-30 13:51:08 -0700 | [diff] [blame] | 92 | height:100%; /* IE: to fill clickable area */ |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 93 | } |
| 94 | |
| 95 | ul.videos li .description-frame { |
| 96 | display:none; |
Scott Main | 25a49f9 | 2013-05-30 13:51:08 -0700 | [diff] [blame] | 97 | z-index:2; /* IE: the li is 1 */ |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 98 | } |
| 99 | ul.videos li a:hover .description-frame { |
| 100 | display:block; |
| 101 | position:absolute; |
| 102 | top:80px; |
| 103 | left:8px; |
| 104 | z-index:99; |
| 105 | } |
| 106 | ul.videos .description { |
| 107 | background:#fff; |
| 108 | width:200px; |
| 109 | padding:8px; |
| 110 | -webkit-border-radius:1px; |
| 111 | -moz-border-radius:1px; |
| 112 | border-radius:1px; |
| 113 | -moz-box-shadow: 0 2px 3px 2px rgba(000,000,000, 0.4); |
| 114 | -webkit-box-shadow: 0 2px 3px 2px rgba(000,000,000, 0.4); |
| 115 | box-shadow: 0 2px 3px 2px rgba(000,000,000, 0.4); |
| 116 | font-size:11px; |
| 117 | line-height:12px; |
| 118 | color:#000; |
| 119 | overflow:hidden; |
| 120 | } |
| 121 | ul.videos .arrow-up { |
| 122 | position:absolute; |
| 123 | left:15px; |
| 124 | top:-11px; |
| 125 | width:0; |
| 126 | height:0; |
| 127 | border-bottom:12px solid #fff; |
| 128 | border-left:12px solid transparent; |
| 129 | border-right:12px solid transparent; |
| 130 | } |
| 131 | ul.videos .arrow-down { |
| 132 | position:absolute; |
| 133 | left:15px; |
| 134 | bottom:-11px; |
| 135 | width:0; |
| 136 | height:0; |
| 137 | border-top:12px solid #fff; |
| 138 | border-left:12px solid transparent; |
| 139 | border-right:12px solid transparent; |
| 140 | } |
| 141 | |
| 142 | ul.videos span.tag { |
| 143 | font-size:.9em; |
| 144 | font-weight:normal; |
| 145 | display: block; |
| 146 | position: absolute; |
| 147 | bottom: 0; |
| 148 | color: #fff; |
| 149 | left: 0; |
| 150 | padding: 4px; |
| 151 | border-top-right-radius:4px; |
| 152 | text-transform:uppercase; |
| 153 | text-shadow: none; |
| 154 | } |
| 155 | ul.videos span.tag.design { |
| 156 | background-color:rgba(51, 181, 229, .7); |
Scott Main | 25a49f9 | 2013-05-30 13:51:08 -0700 | [diff] [blame] | 157 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cc33b5e5', endColorstr='#cc33b5e5',GradientType=0 ); /* IE6-9 */ |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 158 | } |
| 159 | ul.videos span.tag.develop { |
| 160 | background-color:rgba(255, 136, 0, .7); |
Scott Main | 25a49f9 | 2013-05-30 13:51:08 -0700 | [diff] [blame] | 161 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ccff8800', endColorstr='#ccff8800',GradientType=0 ); /* IE6-9 */ |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 162 | } |
| 163 | ul.videos span.tag.distribute { |
| 164 | background-color:rgba(153, 204, 0, .7); |
Scott Main | 25a49f9 | 2013-05-30 13:51:08 -0700 | [diff] [blame] | 165 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cc99cc00', endColorstr='#cc99cc00',GradientType=0 ); /* IE6-9 */ |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 166 | } |
| 167 | |
| 168 | </style> |
| 169 | |
| 170 | |
| 171 | |
| 172 | |
| 173 | |
| 174 | |
| 175 | |
| 176 | <div class="wrap"> |
| 177 | |
| 178 | <div class="col-12" style="width:704px;margin:0"> |
| 179 | <h1>Android @ Google I/O 13</h1> |
| 180 | <div id="ioplayer-frame"> |
| 181 | <div id="noplayer-message"> |
| 182 | <!-- busted flash player message --> |
| 183 | Your video is supposed to appear here.<br/> |
| 184 | Make sure you have the <a href="//get.adobe.com/flashplayer/" target="_blank">Flash® Player</a>. |
| 185 | </div> |
| 186 | <div id="player"><!-- Youtube embeds here... actually replaces this div --></div> |
| 187 | </div> |
| 188 | </div> |
| 189 | |
| 190 | <div class="col-4" style="margin:0;width:234px;padding:0 0 0 2px"> |
| 191 | <h2 class="norule">Most Popular</h2> |
| 192 | <ul class="videos featured" id="playlist2"> |
| 193 | </ul> |
| 194 | </div> |
| 195 | </div> |
| 196 | |
| 197 | <div class="wrap"> |
| 198 | |
| 199 | <div style="position:absolute;width:940px;text-align:right"> |
| 200 | <a href="//www.youtube.com/AndroidDevelopers" target="_blank"> |
| 201 | More on YouTube |
| 202 | <img src="//www.youtube.com/favicon.ico" style="border:0;width:16px;height:16px;vertical-align:middle;margin:0 2px 3px 2px"> |
| 203 | </a> |
| 204 | </div> |
| 205 | <div style="width:944px;overflow:hidden;padding:0 0 20px"> |
| 206 | <h2 class="norule">All Videos</h2> |
| 207 | <ul class="videos" id="playlist1" style="clear:left"> |
| 208 | <span id="videos-design"></span> |
| 209 | <span id="videos-develop"></span> |
| 210 | <span id="videos-distribute"></span> |
| 211 | </ul> |
| 212 | </div> |
| 213 | |
| 214 | </div> |
| 215 | |
| 216 | <br class="clearfix"/> |
| 217 | |
| 218 | |
| 219 | |
| 220 | |
| 221 | |
| 222 | |
| 223 | |
| 224 | |
| 225 | |
| 226 | |
| 227 | |
| 228 | <script src="//swfobject.googlecode.com/svn/trunk/swfobject/swfobject.js" type="text/javascript"></script> |
| 229 | <script type="text/javascript"> |
| 230 | |
| 231 | /* Load a video into the player box. |
| 232 | * @param id The YouTube video ID |
| 233 | * @param title The video title to display in the player box (character escaped) |
| 234 | * @param autoplay Whether to automatically play the video |
| 235 | */ |
| 236 | function loadVideo(id, title, autoplay) { |
| 237 | var url = '//www.youtube.com/v/' + id + '&rel=1&border=0&fs=1' + (autoplay?'&autoplay=1':''); |
| 238 | swfobject.embedSWF(url, 'player', '704', '397', '9.0.0', false, false, {allowfullscreen: 'true'}); |
Scott Main | 79bff4c | 2013-05-29 16:00:19 -0700 | [diff] [blame] | 239 | $('body,html').animate({ scrollTop: 0 }, "slow"); |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 240 | setTimeout(function(){$('#noplayer-message').show()}, 2000); |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 241 | } |
| 242 | |
| 243 | |
| 244 | function buildPlaylistDesign(data) { |
| 245 | buildPlaylist(data, $('ul#playlist1 #videos-design'), "design"); |
| 246 | } |
| 247 | |
| 248 | function buildPlaylistDevelop(data) { |
| 249 | buildPlaylist(data, $('ul#playlist1 #videos-develop'), "develop"); |
| 250 | } |
| 251 | |
| 252 | function buildPlaylistDistribute(data) { |
| 253 | buildPlaylist(data, $('ul#playlist1 #videos-distribute'), "distribute"); |
| 254 | } |
| 255 | |
| 256 | function buildPlaylist2(data) { |
| 257 | buildPlaylist(data, $('ul#playlist2')); |
| 258 | } |
| 259 | |
| 260 | function buildPlaylist(data, ul, tag) { |
| 261 | |
| 262 | var MAX_DESC_LENGTH = 200; // the length at which we will trim the description |
| 263 | var feed = data.feed; |
| 264 | var entries = feed.entry || []; |
| 265 | var playlistId = feed.yt$playlistId.$t; |
| 266 | |
| 267 | // Loop through each entry (each video) and add it to the '#DevelopersLive' list |
| 268 | for (var i = 0; i < entries.length; i++) { |
| 269 | var entry = entries[i]; |
| 270 | var title = entry.title.$t; |
| 271 | var id = entry.media$group.yt$videoid.$t; |
| 272 | // get 180x320 thumbnail |
| 273 | var thumbs = entry.media$group.media$thumbnail; |
| 274 | var thumbUrl; |
| 275 | for (var j = 0; j < thumbs.length; j++) { |
| 276 | if (thumbs[j].yt$name == "hqdefault") { |
| 277 | thumbUrl = thumbs[j].url; |
| 278 | } |
| 279 | } |
| 280 | |
| 281 | // chop out the google io title |
| 282 | title = title.substr(title.indexOf("-") + 1, title.length); |
| 283 | |
| 284 | var fullDescription = entry.media$group.media$description.$t; |
| 285 | var playerUrl = entry.media$group.media$content[0].url; |
| 286 | var shortDescription = fullDescription.substr(0, MAX_DESC_LENGTH); |
| 287 | // further shorten description if there's a url (remove it) |
| 288 | var httpindex = shortDescription.indexOf("http://"); |
| 289 | if (httpindex != -1) { |
| 290 | shortDescription = shortDescription.substring(0,httpindex); |
| 291 | } |
| 292 | shortDescription += shortDescription.length == MAX_DESC_LENGTH ? "..." : ""; // add ellipsis if we've chopped the description |
| 293 | |
| 294 | var a = $('<a href="#" id="' + id + '" ' |
Scott Main | 25a49f9 | 2013-05-30 13:51:08 -0700 | [diff] [blame] | 295 | + 'onclick="loadVideo(\'' + id + '\',\'' + escape(title) + '\',true); return false;" />'); |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 296 | var pShortDescription = $('<div class="description-frame"><div class="arrow-up"></div>' |
| 297 | + '<div class="description">' + shortDescription + '</div></div>'); |
| 298 | var h4Title = "<h4>" + title + "</h4>"; |
Scott Main | 25a49f9 | 2013-05-30 13:51:08 -0700 | [diff] [blame] | 299 | var li = $('<li style="background-image:url(\'' + thumbUrl +'\')" />'); |
Scott Main | 896f61d | 2013-05-28 17:59:12 -0700 | [diff] [blame] | 300 | |
| 301 | li.append(a); |
| 302 | a.append(h4Title).append(pShortDescription); |
| 303 | |
| 304 | if (tag !== undefined) { |
| 305 | var $tag = $('<span class="tag ' + tag + '">' + tag + '</span>'); |
| 306 | a.append($tag); |
| 307 | } |
| 308 | |
| 309 | ul.append(li); |
| 310 | |
| 311 | |
| 312 | // put the first video in the player |
| 313 | if ((tag == "design") && (i == 0)) { |
| 314 | loadVideo(id, escape(title), false); |
| 315 | } |
| 316 | } |
| 317 | } |
| 318 | |
| 319 | |
| 320 | /* Request the playlist feeds from YouTube */ |
| 321 | function showDevelopersLivePlaylist() { |
| 322 | var playlistId = "PLWz5rJ2EKKc-qVhMuAprIFYFbCotdgJKq"; /* IO 13 - Design */ |
| 323 | $.getScript("//gdata.youtube.com/feeds/api/playlists/" |
| 324 | + playlistId + |
| 325 | "?v=2&alt=json-in-script&max-results=50&callback=buildPlaylistDesign&orderby=position"); |
| 326 | |
| 327 | playlistId = "PLWz5rJ2EKKc9rkwO9yBosRvkQBJd5utmR"; /* IO 13 - Develop */ |
| 328 | $.getScript("//gdata.youtube.com/feeds/api/playlists/" |
| 329 | + playlistId + |
| 330 | "?v=2&alt=json-in-script&max-results=50&callback=buildPlaylistDevelop&orderby=position"); |
| 331 | |
| 332 | playlistId = "PLWz5rJ2EKKc-1WjgQqL0B4OQtbLfhMlB2"; /* IO 13 - Distribute */ |
| 333 | $.getScript("//gdata.youtube.com/feeds/api/playlists/" |
| 334 | + playlistId + |
| 335 | "?v=2&alt=json-in-script&max-results=50&callback=buildPlaylistDistribute&orderby=position"); |
| 336 | |
| 337 | |
| 338 | playlistId = "PLWz5rJ2EKKc9WGUwq2gQ-coU3fSyexgOx"; /* IO 13 - The Android Sessions */ |
| 339 | $.getScript("//gdata.youtube.com/feeds/api/playlists/" |
| 340 | + playlistId + |
| 341 | "?v=2&alt=json-in-script&max-results=3&callback=buildPlaylist2&orderby=viewCount"); |
| 342 | } |
| 343 | |
| 344 | showDevelopersLivePlaylist(); |
| 345 | |
| 346 | |
| 347 | </script> |