1 2 3<!DOCTYPE html> 4<html lang="en"> 5<head> 6 <meta charset="UTF-8"> 7 <link type="text/css" href="https://bento.pbs.org/prod/3.150.0/staticfiles/dist/frontend/lib/bootstrap.css" rel="stylesheet" /> 8 <link type="text/css" href="https://bento.pbs.org/prod/3.150.0/staticfiles/dist/frontend/lib/bootstrap-responsive.css" rel="stylesheet" /> 9 <link type="text/css" href="https://bento.pbs.org/prod/3.150.0/staticfiles/dist/frontend/css/frontend_style.css" rel="stylesheet" /> 10 <link type="text/css" href="https://bento.pbs.org/prod/3.150.0/staticfiles/dist/frontend/js/frontend_js.css" rel="stylesheet" /> 11 12 13 <title>Eva Kor Documentary by Ted Green, Mika Brown and WFYI</title><meta name="description" content="Eva Kor Documentary Film by Ted Green, Mika Brown and WFYI"/><meta name="keywords" content="Eva Kor,Holocaust,survivor,Ted Green,Mika Brown,forgiveness,healing,Auschwitz,WFYI,Public Media,Film"/><meta name="google-site-verification" content="ouf-bg5IfVpSgcoD1lEGNxfqhJ19CgauhvQqACBZIbU"/><meta name="msvalidate.01" content="00D9BC26D831F977265DCF78DAE07379"/><!-- Twitter Card data --><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Eva Kor Documentary by Ted Green, Mika Brown and WFYI"><meta name="twitter:description" 14 content="Eva Kor Documentary Film by Ted Green, Mika Brown and WFYI"/><meta name="twitter:image" content="https://dc79r36mj3c9w.cloudfront.net/prod/filer_public/thestoryofeva-bento-live-pbs/cc6af3ef4c_Eva%20Kor%20at%20Auschwitz.jpg"/><meta name="thumbnail" content="https://dc79r36mj3c9w.cloudfront.net/prod/filer_public/thestoryofeva-bento-live-pbs/cc6af3ef4c_Eva%20Kor%20at%20Auschwitz.jpg"/><!-- Open Graph data --><meta property="og:title" content="Eva Kor Documentary by Ted Green, Mika Brown and WFYI"/><meta property="og:type" content="website"/><meta property="og:url" content="https://www.thestoryofeva.com/"/><meta property="og:image" content="https://dc79r36mj3c9w.cloudfront.net/prod/filer_public/thestoryofeva-bento-live-pbs/cc6af3ef4c_Eva%20Kor%20at%20Auschwitz.jpg"/><meta property="og:description" 15 content="Eva Kor Documentary Film by Ted Green, Mika Brown and WFYI"/><meta property="og:site_name" content="The Story of Eva"/><meta name="robots" content="index, follow"/><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0"/><link rel="apple-touch-icon" sizes="180x180" href="https://dc79r36mj3c9w.cloudfront.net/prod/3.150.0/staticfiles/bento_cms/favicons/apple-touch-icon.png"><link rel="icon" type="image/png" href="https://dc79r36mj3c9w.cloudfront.net/prod/3.150.0/staticfiles/bento_cms/favicons/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="https://dc79r36mj3c9w.cloudfront.net/prod/3.150.0/staticfiles/bento_cms/favicons/favicon-16x16.png" sizes="16x16"><link rel="icon" type="image/png" href="https://dc79r36mj3c9w.cloudfront.net/prod/3.150.0/staticfiles/bento_cms/favicons/android-chrome-512x512.png" sizes="512x512"><link rel="icon" type="image/png" href="https://dc79r36mj3c9w.cloudfront.net/prod/3.150.0/staticfiles/bento_cms/favicons/android-chrome-192x192.png" sizes="192x192"><link rel="manifest" href="https://dc79r36mj3c9w.cloudfront.net/prod/3.150.0/staticfiles/bento_cms/favicons/manifest.json"><meta name="theme-color" content="#575757"><!-- Google tag (gtag.js) -->
vendor: 63 bytes, line 15
15<script async src="https://www.googletagmanager.com/gtag/js?id=
15G-VLZ8BSQCNS
vendor: 11 bytes, line 15
15"></script>
15<script> 16
vendor: 134 bytes, lines 16-20
16window.dataLayer = window.dataLayer || []; 17 function gtag(){dataLayer.push(arguments);} 18 gtag('js', new Date()); 19 20 gtag('config', '
20G-VLZ8BSQCNS
vendor: 4 bytes, line 20
20');
21</script>
21<!-- Google Ad Manager -->
21<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
21<script> 22 window.googletag = window.googletag || {cmd: []}; 23</script>
23<!-- End Google Ad Manager -->
23<script type="application/ld+json"> 24 25{ 26 "@context": "http://schema.org", 27 "@type": "WebSite", 28 "url": "https://www.thestoryofeva.com/", 29 "name": "Eva Kor Documentary by Ted Green, Mika Brown and WFYI", 30 "description": "Eva Kor Documentary Film by Ted Green, Mika Brown and WFYI", 31 "publisher": { 32 "@type": "Organization", 33 "name": "The Story of Eva", 34 "logo": {} 35 }, 36 "keywords": "Eva Kor,Holocaust,survivor,Ted Green,Mika Brown,forgiveness,healing,Auschwitz,WFYI,Public Media,Film", 37 "image": { 38 "@type": "ImageObject", 39 "url": "https://dc79r36mj3c9w.cloudfront.net/prod/filer_public/thestoryofeva-bento-live-pbs/cc6af3ef4c_Eva%20Kor%20at%20Auschwitz.jpg", 40 "width": 2850, 41 "height": 1604 42 } 43} 44 45</script>
45 46 47</head> 48 49<body id="page-2825" class="studio bento3"> 50<style type="text/css" title="Bento Theme"> 51 a { 52 color: #575757; 53} 54 55a:hover, 56a:active, 57a:visited { 58 color: #404040; 59} 60 61/* expose accent classes */ 62 63.colorPalette-main { 64 color: #575757 !important; 65} 66 67.colorPalette-accent1 { 68 color: #404040 !important; 69} 70 71.colorPalette-accent2 { 72 color: #E6E6E6 !important; 73} 74 75.colorPalette-accent3 { 76 color: #EEEEEE !important; 77} 78 79.colorPalette-accent4 { 80 color: #F5F5F5 !important; 81} 82 83 84 </style> 85 86<header><a href="#main-content" class="skipnav" aria-label="skip to main link"> 87 Skip to main content 88 </a><div class="row-fluid"><style type="text/css"> 89 90 91#layout-9dbdbc44-f912-4134-887d-8eaab72d7223.container.layout-padding { 92 padding: px 0px px 0px; 93} 94 95@media (min-width: 1024px) { 96 #layout-9dbdbc44-f912-4134-887d-8eaab72d7223.container.layout-padding { 97 padding: px px px px; 98 } 99} 100 101#layout-9dbdbc44-f912-4134-887d-8eaab72d7223.container.has-background-image { 102 background-image: url(""); 103} 104 105 106@media (min-width: 1200px) {#layout-9dbdbc44-f912-4134-887d-8eaab72d7223.container.has-background-image {background-image: url("1920w");}}@media (min-width: 992px) and (max-width: 1199px) {#layout-9dbdbc44-f912-4134-887d-8eaab72d7223.container.has-background-image {background-image: url("1199w");}}@media (min-width: 768px) and (max-width: 991px) {#layout-9dbdbc44-f912-4134-887d-8eaab72d7223.container.has-background-image {background-image: url("991w");}}@media (min-width: 576px) and (max-width: 767px) {#layout-9dbdbc44-f912-4134-887d-8eaab72d7223.container.has-background-image {background-image: url("767w");}}@media (max-width: 575px) {#layout-9dbdbc44-f912-4134-887d-8eaab72d7223.container.has-background-image {background-image: url("575w");}} 107 108 </style><div id=""><div id="layout-9dbdbc44-f912-4134-887d-8eaab72d7223" 109 class="container 110 111 112 113 114 115 " 116 style=""><div id="column-87f27853-243e-4cfe-8357-ac9d637ec1b7" 117 class="span12 column-12 118 "><div id="component-7d6c0990-67ea-11e7-951e-3d73553d0d27" class="component"><style type="text/css"> 119header #component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu.menu--navbar-nav { 120 border-bottom-color: #575757; 121} 122 123#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu__trigger * { 124 fill: #575757; 125} 126 127#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu__trigger:hover *, 128#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu__trigger:focus * { 129 fill: #404040; 130} 131 132#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu__trigger { 133 border-color: #575757; 134} 135 136#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu__trigger:hover, 137#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu__trigger:focus { 138 border-color: #404040; 139} 140 141 142#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu .menu-item:hover, 143#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu .menu-item:focus { 144 background-color: #404040; 145} 146 147 148 149@media screen and (min-width: 1025px) { 150 .menu__trigger { 151 display: none; 152 } 153} 154 155#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu .menu__li > a:focus, 156#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu .submenu__li > a:focus { 157 outline: 2px solid #575757; 158 outline-offset: -2px; 159 z-index: 1; 160 position: relative; 161} 162 163#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu.menu--themed, 164#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu.menu--themed .navbar-nav, 165#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu.menu--themed + .menu--navbar-nav__spacer, 166#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu.menu--themed .submenu { 167 background-color: #404040; 168} 169 170#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu.menu--themed .menu-item:hover, 171#component-7d6c0990-67ea-11e7-951e-3d73553d0d27 .menu.menu--themed .menu-item:focus { 172 background-color: #575757; 173} 174 175</style><nav id="7d6c0990-67ea-11e7-951e-3d73553d0d27" class="menu menu--filled menu--navbar-nav"><button class="menu__trigger">
175<svg width="150" height="110" viewBox="0 0 150 110" xmlns="http://www.w3.org/2000/svg" class="pbs-hamburger" aria-labelledby="pbs-hamburger__title-7d6c0990-67ea-11e7-951e-3d73553d0d27"><title id="pbs-hamburger__title-7d6c0990-67ea-11e7-951e-3d73553d0d27"> 176 Menu 177 </title><path class="path1" d="M0,2c0-1.1,0.9-2,2-2h146c1.1,0,2,0.9,2,2v16c0,1.1-0.9,2-2,2H2c-1.1,0-2-0.9-2-2V2L0,2z"/><path class="path2" d="M0,47c0-1.1,0.9-2,2-2h146c1.1,0,2,0.9,2,2v16c0,1.1-0.9,2-2,2H2c-1.1,0-2-0.9-2-2V47L0,47z"/><path class="path3" d="M0,47c0-1.1,0.9-2,2-2h146c1.1,0,2,0.9,2,2v16c0,1.1-0.9,2-2,2H2c-1.1,0-2-0.9-2-2V47L0,47z"/><path class="path4" d="M0,92c0-1.1,0.9-2,2-2h146c1.1,0,2,0.9,2,2v16c0,1.1-0.9,2-2,2H2c-1.1,0-2-0.9-2-2V92L0,92z"/></svg></button><div class="menu-container clearfix"><ul class="navbar-nav menu__ul 178 align-left"><li id="d7b2581a-52d4-4af7-9d32-392ed0d7b58a" class="menu__li "><a aria-label="Home link" 179 180 href="/" 181 182 183 184 class="menu-item 185 active 186 " 187 > 188 Home 189 190 </a></li><li id="a3f8aa40-72d6-11e7-a11a-7b4ee403e9bb" class="menu__li "><a aria-label="The Film link" 191 192 href="/events/broadcast-schedule/" 193 194 195 196 class="menu-item 197 198 199 has-children 200 201 202 203 204 205 206 207 208 209 210 211 " 212 > 213 The Film 214 215 <i class="menu-item-caret fas fa-angle-down" aria-hidden="true"></i></a><button class="submenu__trigger" aria-label="Open Submenu"><i class="menu-item-caret fas fa-caret-down" aria-hidden="true"></i></button><ul class="submenu"><li id="b53dcd50-c0da-11e8-b8ca-7be07b89aae9" class="submenu__li"><a aria-label="About The Film link" 216 217 href="/events/broadcast-schedule/" 218 219 220 221 class="menu-item 222 223 " 224 > 225 About The Film 226 227 </a></li><li id="3ef4b8c0-984d-11e9-8f98-ebbbf5ddd416" class="submenu__li"><a aria-label="Acclaim link" 228 229 href="/media-kit/reviews/" 230 231 232 233 class="menu-item 234 235 " 236 > 237 Acclaim 238 239 </a></li><li id="ba44eea0-3129-11e8-a749-d1a229c46894" class="submenu__li"><a aria-label="Sponsors link" 240 241 href="/sponsors/" 242 243 244 245 class="menu-item 246 247 " 248 > 249 Sponsors 250 251 </a></li><li id="ac7535d0-a0dd-11e9-888a-0dd5cd46f769" class="submenu__li"><a aria-label="Headlines link" 252 253 href="/headlines/" 254 255 256 257 class="menu-item 258 259 " 260 > 261 Headlines 262 263 </a></li><li id="b264ae30-a0dd-11e9-888a-0dd5cd46f769" class="submenu__li"><a aria-label="Media Kit link" 264 265 href="/media-kit/" 266 267 268 269 class="menu-item 270 271 " 272 > 273 Media Kit 274 275 </a></li></ul></li><li id="c288cc60-312b-11e8-a749-d1a229c46894" class="menu__li "><a aria-label="Education link" 276 277 href="/education/student-impact/" 278 279 280 281 class="menu-item 282 283 284 has-children 285 286 287 288 289 290 " 291 > 292 Education 293 294 <i class="menu-item-caret fas fa-angle-down" aria-hidden="true"></i></a><button class="submenu__trigger" aria-label="Open Submenu"><i class="menu-item-caret fas fa-caret-down" aria-hidden="true"></i></button><ul class="submenu"><li id="78bbadc0-3b32-11e9-98d1-bd3641b64e12" class="submenu__li"><a aria-label="Eva Education Program link" 295 296 href="/education/student-impact/" 297 298 299 300 class="menu-item 301 302 " 303 > 304 Eva Education Program 305 306 </a></li><li id="2d869f40-9825-11e9-adcf-f1063f7c3202" class="submenu__li"><a aria-label="Eva Virtual Reality Experience link" 307 308 href="/education/vr/" 309 310 311 312 class="menu-item 313 314 " 315 > 316 Eva Virtual Reality Experience 317 318 </a></li></ul></li><li id="a77db5d0-2892-11e8-97d3-4183043c504a" class="menu__li "><a aria-label="Tributes link" 319 320 href="/about-eva/eva-new-story/" 321 322 323 324 class="menu-item 325 326 327 has-children 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 " 344 > 345 Tributes 346 347 <i class="menu-item-caret fas fa-angle-down" aria-hidden="true"></i></a><button class="submenu__trigger" aria-label="Open Submenu"><i class="menu-item-caret fas fa-caret-down" aria-hidden="true"></i></button><ul class="submenu"><li id="2d757e90-9e83-11e9-821c-03d19efe8a68" class="submenu__li"><a aria-label="Tribute Video, Obit link" 348 349 href="/about-eva/eva-new-story/" 350 351 352 353 class="menu-item 354 355 " 356 > 357 Tribute Video, Obit 358 359 </a></li><li id="78f04070-a0fa-11e9-888a-0dd5cd46f769" class="submenu__li"><a aria-label="Remembrances link" 360 361 href="/about-eva/remembrances/" 362 363 364 365 class="menu-item 366 367 " 368 > 369 Remembrances 370 371 </a></li><li id="0cad0130-9eb3-11e9-8695-ef96a3984ae2" class="submenu__li"><a aria-label="Eva Photo Gallery link" 372 373 href="/about-eva/default/" 374 375 376 377 class="menu-item 378 379 " 380 > 381 Eva Photo Gallery 382 383 </a></li><li id="adcdc620-a0cb-11e9-888a-0dd5cd46f769" class="submenu__li"><a aria-label="Alex Kor's Letter link" 384 385 href="/about-eva/alex-kors-letter/" 386 387 388 389 class="menu-item 390 391 " 392 > 393 Alex Kor's Letter 394 395 </a></li><li id="2c0da9a0-a343-11e9-91fe-f9faa49d4993" class="submenu__li"><a aria-label="Media Releases link" 396 397 href="/about-eva/media-releases/" 398 399 400 401 class="menu-item 402 403 " 404 > 405 Media Releases 406 407 </a></li><li id="7facaa60-d8a0-11e9-b430-c922d2b52104" class="submenu__li"><a aria-label="Celebration of Life link" 408 409 href="/about-eva/celebration-of-life/" 410 411 412 413 class="menu-item 414 415 " 416 > 417 Celebration of Life 418 419 </a></li><li id="8c630f60-d8a0-11e9-b430-c922d2b52104" class="submenu__li"><a aria-label="Last Speech link" 420 421 href="/about-eva/evas-last-speech/" 422 423 424 425 class="menu-item 426 427 " 428 > 429 Last Speech 430 431 </a></li></ul></li><li id="b8b878d0-431d-11e8-b0d4-07f5bf1bfdee" class="menu__li "><a aria-label="Screenings link" 432 433 href="/screenings/" 434 435 436 437 class="menu-item 438 439 440 has-children 441 442 443 444 445 446 447 448 " 449 > 450 Screenings 451 452 <i class="menu-item-caret fas fa-angle-down" aria-hidden="true"></i></a><button class="submenu__trigger" aria-label="Open Submenu"><i class="menu-item-caret fas fa-caret-down" aria-hidden="true"></i></button><ul class="submenu"><li id="4c8346a0-c599-11e8-b2a2-5d543b335f88" class="submenu__li"><a aria-label="Host a Screening link" 453 454 href="/screenings/" 455 456 457 458 class="menu-item 459 460 " 461 > 462 Host a Screening 463 464 </a></li><li id="d1cfe110-c599-11e8-b2a2-5d543b335f88" class="submenu__li"><a aria-label="Discussion Guide link" 465 466 href="https://dc79r36mj3c9w.cloudfront.net/prod/filer_public/thestoryofeva-bento-live-pbs/educationclips/f4f5b780a8_Discussion%20Guide%20THE%20STORY%20OF%20EVA.pdf" 467 468 target="_blank" rel="noopener noreferrer" 469 470 471 472 class="menu-item 473 474 " 475 > 476 Discussion Guide 477 478 </a></li>
478<li id="b3008890-1a60-11e9-9ac3-f33b65f40c15" class="submenu__li"><a aria-label="Event Photos link" 479 480 href="/photo-gallery/" 481 482 483 484 class="menu-item 485 486 " 487 > 488 Event Photos 489 490 </a></li></ul></li><li id="ad500380-30ec-11ec-b649-9529641b3f6b" class="menu__li "><a aria-label="Shop link" 491 492 href="https://secure.wfyi.org/EvaItems/" 493 494 495 496 class="menu-item 497 498 " 499 > 500 Shop 501 502 </a></li></ul></div></nav><div class="menu--navbar-nav__spacer"></div></div><div id="component-c853c1f0-67ea-11e7-951e-3d73553d0d27" class="component"><style type="text/css"> 503#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .filer-image-container:focus-within { 504 overflow: visible; 505} 506 507#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 a:focus { 508 overflow: visible; 509 position: relative; 510 z-index: 1; 511 outline: 2px solid #ffffff; 512 outline-offset: 2px; 513 box-shadow: 0 0 0 4px #575757; 514} 515 516#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .image-wrapper { 517 text-align: center; 518} 519 520#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .image-wrapper.img-text-align { 521 text-align: ; 522} 523 524#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .filer-image-container { 525 text-align: center; 526} 527 528#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .filer-image-container .image-link { 529 display: block; 530 height: 100%; 531} 532 533#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .filer-image-container .filer-image { 534 max-width: 100%; 535} 536 537#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .filer-image-container .img-details { 538 text-align: center; 539 max-width: 100%; 540 margin: auto; 541} 542 543#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .filer-image-container .img-details.img-aligned-left { 544 margin: 0 auto 0 0; 545} 546 547#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .filer-image-container .img-details.img-aligned-right { 548 margin: 0 0 0 auto; 549} 550 551#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .filer-image-container.img-padding-top { 552 padding-top: px; 553} 554 555#component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .filer-image-container.img-padding-bottom { 556 padding-bottom: px; 557} 558 559@media (min-width: 1024px) { 560 #component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .filer-image-container.img-padding-left { 561 padding-left: px; 562 } 563 564 #component-c853c1f0-67ea-11e7-951e-3d73553d0d27 .filer-image-container.img-padding-right { 565 padding-right: px; 566 } 567} 568 569</style><div class="image-wrapper 570 "><div 571 id="c853c1f0-67ea-11e7-951e-3d73553d0d27" 572 class="filer-image-container 573 574 575 576 577 578 579 "><img loading="lazy" 580 class="filer-image" 581 style="max-width: 100%;" 582 alt=""Eva" An Auschwitz survivor’s journey to forgiveness and healing | A film by Ted Green, Mika Brown and WFYI Public Media, Indianapolis" 583 src="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/74256200f9_Eva%20homepage%20main.jpg" 584 585 586 587 srcset="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/74256200f9_Eva%20homepage%20main.jpg?resize=1920x,no-scale-up 1920w, 588https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/74256200f9_Eva%20homepage%20main.jpg?resize=1199x,no-scale-up 1199w, 589https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/74256200f9_Eva%20homepage%20main.jpg?resize=991x,no-scale-up 991w, 590https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/74256200f9_Eva%20homepage%20main.jpg?resize=767x,no-scale-up 767w, 591https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/74256200f9_Eva%20homepage%20main.jpg?resize=575x,no-scale-up 575w" 592 sizes="(min-width: 1200px) 1920px, 593 ((min-width: 992px) and (max-width: 1199px)) 1199px, 594 ((min-width: 768px) and (max-width: 991px)) 991px, 595 ((min-width: 576px) and (max-width: 767px)) 767px, 596 (max-width: 575px) 575px" 597 598 /></div></div></div></div></div></div></div></header> 599 600
601 <main id="main-content" class="content "> 602 <div class="row-fluid"> 603 <div class="container"> 604 605 606<div class="content-wrapper full-width 607 608 "><div class="row-fluid"><style type="text/css"> 609 610 611#layout-40174b40-73b6-11e7-92cb-2f907eee36fe.container.layout-padding { 612 padding: 0px 0px 0px 0px; 613} 614 615@media (min-width: 1024px) { 616 #layout-40174b40-73b6-11e7-92cb-2f907eee36fe.container.layout-padding { 617 padding: 0px 0px 0px 0px; 618 } 619} 620 621#layout-40174b40-73b6-11e7-92cb-2f907eee36fe.container.has-background-image { 622 background-image: url(""); 623} 624 625 626@media (min-width: 1200px) {#layout-40174b40-73b6-11e7-92cb-2f907eee36fe.container.has-background-image {background-image: url("1920w");}}@media (min-width: 992px) and (max-width: 1199px) {#layout-40174b40-73b6-11e7-92cb-2f907eee36fe.container.has-background-image {background-image: url("1199w");}}@media (min-width: 768px) and (max-width: 991px) {#layout-40174b40-73b6-11e7-92cb-2f907eee36fe.container.has-background-image {background-image: url("991w");}}@media (min-width: 576px) and (max-width: 767px) {#layout-40174b40-73b6-11e7-92cb-2f907eee36fe.container.has-background-image {background-image: url("767w");}}@media (max-width: 575px) {#layout-40174b40-73b6-11e7-92cb-2f907eee36fe.container.has-background-image {background-image: url("575w");}} 627 628 </style><div id=""><div id="layout-40174b40-73b6-11e7-92cb-2f907eee36fe" 629 class="container 630 631 632 633 634 635 layout-padding " 636 style=""><div id="column-40174b41-73b6-11e7-92cb-2f907eee36fe" 637 class="span12 column-12 638 "><div id="component-61dfeca0-71f6-11ea-a470-d5406996c44e" class="component"><style type="text/css"> 639#component-61dfeca0-71f6-11ea-a470-d5406996c44e .filer-image-container:focus-within { 640 overflow: visible; 641} 642 643#component-61dfeca0-71f6-11ea-a470-d5406996c44e a:focus { 644 overflow: visible; 645 position: relative; 646 z-index: 1; 647 outline: 2px solid #ffffff; 648 outline-offset: 2px; 649 box-shadow: 0 0 0 4px #575757; 650} 651 652#component-61dfeca0-71f6-11ea-a470-d5406996c44e .image-wrapper { 653 text-align: center; 654} 655 656#component-61dfeca0-71f6-11ea-a470-d5406996c44e .image-wrapper.img-text-align { 657 text-align: center; 658} 659 660#component-61dfeca0-71f6-11ea-a470-d5406996c44e .filer-image-container { 661 text-align: center; 662} 663 664#component-61dfeca0-71f6-11ea-a470-d5406996c44e .filer-image-container .image-link { 665 display: block; 666 height: 100%; 667} 668 669#component-61dfeca0-71f6-11ea-a470-d5406996c44e .filer-image-container .filer-image { 670 max-width: 100%; 671} 672 673#component-61dfeca0-71f6-11ea-a470-d5406996c44e .filer-image-container .img-details { 674 text-align: center; 675 max-width: 100%; 676 margin: auto; 677} 678 679#component-61dfeca0-71f6-11ea-a470-d5406996c44e .filer-image-container .img-details.img-aligned-left { 680 margin: 0 auto 0 0; 681} 682 683#component-61dfeca0-71f6-11ea-a470-d5406996c44e .filer-image-container .img-details.img-aligned-right { 684 margin: 0 0 0 auto; 685} 686 687#component-61dfeca0-71f6-11ea-a470-d5406996c44e .filer-image-container.img-padding-top { 688 padding-top: px; 689} 690 691#component-61dfeca0-71f6-11ea-a470-d5406996c44e .filer-image-container.img-padding-bottom { 692 padding-bottom: px; 693} 694 695@media (min-width: 1024px) { 696 #component-61dfeca0-71f6-11ea-a470-d5406996c44e .filer-image-container.img-padding-left { 697 padding-left: px; 698 } 699 700 #component-61dfeca0-71f6-11ea-a470-d5406996c44e .filer-image-container.img-padding-right { 701 padding-right: px; 702 } 703} 704 705</style><div class="image-wrapper 706 img-text-align"><div 707 id="61dfeca0-71f6-11ea-a470-d5406996c44e" 708 class="filer-image-container 709 710 711 712 713 714 715 "><img loading="lazy" 716 class="filer-image" 717 style="max-width: 100%;" 718 alt="EVA E-LEARNING FREE IN APRIL Teachers can bring Eva's message of hope into students' homes with the 56-minute educational version of "Eva: A-7063" and Educator's Guide." 719 src="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f4e13cae66_Updated%20main%20header%20Website%20header%20general.jpg" 720 721 722 723 srcset="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f4e13cae66_Updated%20main%20header%20Website%20header%20general.jpg?resize=1920x,no-scale-up 1920w, 724https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f4e13cae66_Updated%20main%20header%20Website%20header%20general.jpg?resize=1199x,no-scale-up 1199w, 725https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f4e13cae66_Updated%20main%20header%20Website%20header%20general.jpg?resize=991x,no-scale-up 991w, 726https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f4e13cae66_Updated%20main%20header%20Website%20header%20general.jpg?resize=767x,no-scale-up 767w, 727https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f4e13cae66_Updated%20main%20header%20Website%20header%20general.jpg?resize=575x,no-scale-up 575w" 728 sizes="(min-width: 1200px) 1920px, 729 ((min-width: 992px) and (max-width: 1199px)) 1199px, 730 ((min-width: 768px) and (max-width: 991px)) 991px, 731 ((min-width: 576px) and (max-width: 767px)) 767px, 732 (max-width: 575px) 575px" 733 734 /></div></div></div></div></div></div></div><div class="row-fluid"><style type="text/css"> 735 736 737#layout-8bee5add-cc32-4b91-aaec-8288cda80c8c.container.layout-padding { 738 padding: 0px 0px 0px 0px; 739} 740 741@media (min-width: 1024px) { 742 #layout-8bee5add-cc32-4b91-aaec-8288cda80c8c.container.layout-padding { 743 padding: 0px 0px 0px 0px; 744 } 745} 746 747#layout-8bee5add-cc32-4b91-aaec-8288cda80c8c.container.has-background-image { 748 background-image: url(""); 749} 750 751 752@media (min-width: 1200px) {#layout-8bee5add-cc32-4b91-aaec-8288cda80c8c.container.has-background-image {background-image: url("1920w");}}@media (min-width: 992px) and (max-width: 1199px) {#layout-8bee5add-cc32-4b91-aaec-8288cda80c8c.container.has-background-image {background-image: url("1199w");}}@media (min-width: 768px) and (max-width: 991px) {#layout-8bee5add-cc32-4b91-aaec-8288cda80c8c.container.has-background-image {background-image: url("991w");}}@media (min-width: 576px) and (max-width: 767px) {#layout-8bee5add-cc32-4b91-aaec-8288cda80c8c.container.has-background-image {background-image: url("767w");}}@media (max-width: 575px) {#layout-8bee5add-cc32-4b91-aaec-8288cda80c8c.container.has-background-image {background-image: url("575w");}} 753 754 </style><div id=""><div id="layout-8bee5add-cc32-4b91-aaec-8288cda80c8c" 755 class="container 756 757 758 759 760 761 layout-padding " 762 style=""><div id="column-b721c810-3a06-11e9-b20c-7b5069252681"
763 class="span4 column-4 764 "><div id="component-70f037d0-3c42-11e9-b600-0f4d17a137fc" class="component"><style type="text/css"> 765#component-70f037d0-3c42-11e9-b600-0f4d17a137fc .filer-image-container:focus-within { 766 overflow: visible; 767} 768 769#component-70f037d0-3c42-11e9-b600-0f4d17a137fc a:focus { 770 overflow: visible; 771 position: relative; 772 z-index: 1; 773 outline: 2px solid #ffffff; 774 outline-offset: 2px; 775 box-shadow: 0 0 0 4px #575757; 776} 777 778#component-70f037d0-3c42-11e9-b600-0f4d17a137fc .image-wrapper { 779 text-align: center; 780} 781 782#component-70f037d0-3c42-11e9-b600-0f4d17a137fc .image-wrapper.img-text-align { 783 text-align: center; 784} 785 786#component-70f037d0-3c42-11e9-b600-0f4d17a137fc .filer-image-container { 787 text-align: center; 788} 789 790#component-70f037d0-3c42-11e9-b600-0f4d17a137fc .filer-image-container .image-link { 791 display: block; 792 height: 100%; 793} 794 795#component-70f037d0-3c42-11e9-b600-0f4d17a137fc .filer-image-container .filer-image { 796 max-width: 100%; 797} 798 799#component-70f037d0-3c42-11e9-b600-0f4d17a137fc .filer-image-container .img-details { 800 text-align: center; 801 max-width: 100%; 802 margin: auto; 803} 804 805#component-70f037d0-3c42-11e9-b600-0f4d17a137fc .filer-image-container .img-details.img-aligned-left { 806 margin: 0 auto 0 0; 807} 808 809#component-70f037d0-3c42-11e9-b600-0f4d17a137fc .filer-image-container .img-details.img-aligned-right { 810 margin: 0 0 0 auto; 811} 812 813#component-70f037d0-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-top { 814 padding-top: px; 815} 816 817#component-70f037d0-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-bottom { 818 padding-bottom: px; 819} 820 821@media (min-width: 1024px) { 822 #component-70f037d0-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-left { 823 padding-left: px; 824 } 825 826 #component-70f037d0-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-right { 827 padding-right: px; 828 } 829} 830 831</style><div class="image-wrapper 832 img-text-align"><div 833 id="70f037d0-3c42-11e9-b600-0f4d17a137fc" 834 class="filer-image-container 835 836 837 838 839 840 841 "><img loading="lazy" 842 class="filer-image" 843 style="max-width: 100%;" 844 alt="Filer image" 845 src="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/5b64bb088e_3%20seperate%20boxes%201.png" 846 847 848 849 srcset="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/5b64bb088e_3%20seperate%20boxes%201.png?resize=640x,no-scale-up 640w, 850https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/5b64bb088e_3%20seperate%20boxes%201.png?resize=399x,no-scale-up 399w, 851https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/5b64bb088e_3%20seperate%20boxes%201.png?resize=330x,no-scale-up 330w, 852https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/5b64bb088e_3%20seperate%20boxes%201.png?resize=767x,no-scale-up 767w, 853https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/5b64bb088e_3%20seperate%20boxes%201.png?resize=575x,no-scale-up 575w" 854 sizes="(min-width: 1200px) 640px, 855 ((min-width: 992px) and (max-width: 1199px)) 399px, 856 ((min-width: 768px) and (max-width: 991px)) 330px, 857 ((min-width: 576px) and (max-width: 767px)) 767px, 858 (max-width: 575px) 575px" 859 860 /></div></div></div></div><div id="column-5ca8e75f-e517-4c41-ac90-425db21f7fe8" 861 class="span4 column-4 862 "><div id="component-74450820-3c42-11e9-b600-0f4d17a137fc" class="component"><style type="text/css"> 863#component-74450820-3c42-11e9-b600-0f4d17a137fc .filer-image-container:focus-within { 864 overflow: visible; 865} 866 867#component-74450820-3c42-11e9-b600-0f4d17a137fc a:focus { 868 overflow: visible; 869 position: relative; 870 z-index: 1; 871 outline: 2px solid #ffffff; 872 outline-offset: 2px; 873 box-shadow: 0 0 0 4px #575757; 874} 875 876#component-74450820-3c42-11e9-b600-0f4d17a137fc .image-wrapper { 877 text-align: center; 878} 879 880#component-74450820-3c42-11e9-b600-0f4d17a137fc .image-wrapper.img-text-align { 881 text-align: center; 882} 883 884#component-74450820-3c42-11e9-b600-0f4d17a137fc .filer-image-container { 885 text-align: center; 886} 887 888#component-74450820-3c42-11e9-b600-0f4d17a137fc .filer-image-container .image-link { 889 display: block; 890 height: 100%; 891} 892 893#component-74450820-3c42-11e9-b600-0f4d17a137fc .filer-image-container .filer-image { 894 max-width: 100%; 895} 896 897#component-74450820-3c42-11e9-b600-0f4d17a137fc .filer-image-container .img-details { 898 text-align: center; 899 max-width: 100%; 900 margin: auto; 901} 902 903#component-74450820-3c42-11e9-b600-0f4d17a137fc .filer-image-container .img-details.img-
903aligned-left { 904 margin: 0 auto 0 0; 905} 906 907#component-74450820-3c42-11e9-b600-0f4d17a137fc .filer-image-container .img-details.img-aligned-right { 908 margin: 0 0 0 auto; 909} 910 911#component-74450820-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-top { 912 padding-top: px; 913} 914 915#component-74450820-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-bottom { 916 padding-bottom: px; 917} 918 919@media (min-width: 1024px) { 920 #component-74450820-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-left { 921 padding-left: px; 922 } 923 924 #component-74450820-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-right { 925 padding-right: px; 926 } 927} 928 929</style><div class="image-wrapper 930 img-text-align"><div 931 id="74450820-3c42-11e9-b600-0f4d17a137fc" 932 class="filer-image-container 933 934 935 936 937 938 939 "><img loading="lazy" 940 class="filer-image" 941 style="max-width: 100%;" 942 alt="Eva Mozes Kor: At 10, she survived experiments by Nazi doctor Josef Mengele. At 50, she helped launch the biggest manhunt in history. Now 85, after decades of pain and anger, she travels the world to promote what her life journey has taught: HOPE. HEALING. HUMANITY. "Eva: A-7063," a documentary by Ted Green, Mika Brown and WFYI, tells her full, unvarnished story for the first time, inspiring viewers around the world." 943 src="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/8.21.19/35e12c4f86_boxes%203%20home%20page%20pictures%203.png" 944 945 946 947 srcset="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/8.21.19/35e12c4f86_boxes%203%20home%20page%20pictures%203.png?resize=640x,no-scale-up 640w, 948https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/8.21.19/35e12c4f86_boxes%203%20home%20page%20pictures%203.png?resize=399x,no-scale-up 399w, 949https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/8.21.19/35e12c4f86_boxes%203%20home%20page%20pictures%203.png?resize=330x,no-scale-up 330w, 950https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/8.21.19/35e12c4f86_boxes%203%20home%20page%20pictures%203.png?resize=767x,no-scale-up 767w, 951https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/8.21.19/35e12c4f86_boxes%203%20home%20page%20pictures%203.png?resize=575x,no-scale-up 575w" 952 sizes="(min-width: 1200px) 640px, 953 ((min-width: 992px) and (max-width: 1199px)) 399px, 954 ((min-width: 768px) and (max-width: 991px)) 330px, 955 ((min-width: 576px) and (max-width: 767px)) 767px, 956 (max-width: 575px) 575px" 957 958 /></div></div></div></div><div id="column-0bae5dc3-c3f8-4248-95be-040ac287c68d" 959 class="span4 column-4 960 "><div id="component-7525a420-3c42-11e9-b600-0f4d17a137fc" class="component"><style type="text/css"> 961#component-7525a420-3c42-11e9-b600-0f4d17a137fc .filer-image-container:focus-within { 962 overflow: visible; 963} 964 965#component-7525a420-3c42-11e9-b600-0f4d17a137fc a:focus { 966 overflow: visible; 967 position: relative; 968 z-index: 1; 969 outline: 2px solid #ffffff; 970 outline-offset: 2px; 971 box-shadow: 0 0 0 4px #575757; 972} 973 974#component-7525a420-3c42-11e9-b600-0f4d17a137fc .image-wrapper { 975 text-align: center; 976} 977 978#component-7525a420-3c42-11e9-b600-0f4d17a137fc .image-wrapper.img-text-align { 979 text-align: center; 980} 981 982#component-7525a420-3c42-11e9-b600-0f4d17a137fc .filer-image-container { 983 text-align: center; 984} 985 986#component-7525a420-3c42-11e9-b600-0f4d17a137fc .filer-image-container .image-link { 987 display: block; 988 height: 100%; 989} 990 991#component-7525a420-3c42-11e9-b600-0f4d17a137fc .filer-image-container .filer-image { 992 max-width: 100%; 993} 994 995#component-7525a420-3c42-11e9-b600-0f4d17a137fc .filer-image-container .img-details { 996 text-align: center; 997 max-width: 100%; 998 margin: auto; 999} 1000 1001#component-7525a420-3c42-11e9-b600-0f4d17a137fc .filer-image-container .img-details.img-
1001aligned-left { 1002 margin: 0 auto 0 0; 1003} 1004 1005#component-7525a420-3c42-11e9-b600-0f4d17a137fc .filer-image-container .img-details.img-aligned-right { 1006 margin: 0 0 0 auto; 1007} 1008 1009#component-7525a420-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-top { 1010 padding-top: px; 1011} 1012 1013#component-7525a420-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-bottom { 1014 padding-bottom: px; 1015} 1016 1017@media (min-width: 1024px) { 1018 #component-7525a420-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-left { 1019 padding-left: px; 1020 } 1021 1022 #component-7525a420-3c42-11e9-b600-0f4d17a137fc .filer-image-container.img-padding-right { 1023 padding-right: px; 1024 } 1025} 1026 1027</style><div class="image-wrapper 1028 img-text-align"><div 1029 id="7525a420-3c42-11e9-b600-0f4d17a137fc" 1030 class="filer-image-container 1031 1032 1033 1034 1035 1036 1037 "><img loading="lazy" 1038 class="filer-image" 1039 style="max-width: 100%;" 1040 alt="Filer image" 1041 src="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/b01a38fef4_3%20seperate%20boxes%202.png" 1042 1043 1044 1045 srcset="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/b01a38fef4_3%20seperate%20boxes%202.png?resize=640x,no-scale-up 640w, 1046https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/b01a38fef4_3%20seperate%20boxes%202.png?resize=399x,no-scale-up 399w, 1047https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/b01a38fef4_3%20seperate%20boxes%202.png?resize=330x,no-scale-up 330w, 1048https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/b01a38fef4_3%20seperate%20boxes%202.png?resize=767x,no-scale-up 767w, 1049https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/Team%20Eva%20updates/b01a38fef4_3%20seperate%20boxes%202.png?resize=575x,no-scale-up 575w" 1050 sizes="(min-width: 1200px) 640px, 1051 ((min-width: 992px) and (max-width: 1199px)) 399px, 1052 ((min-width: 768px) and (max-width: 991px)) 330px, 1053 ((min-width: 576px) and (max-width: 767px)) 767px, 1054 (max-width: 575px) 575px" 1055 1056 /></div></div></div></div></div></div></div><div class="row-fluid"><style type="text/css"> 1057 1058 1059#layout-bcea3fec-d4a9-4a0a-b76e-d25ccc6c6bb8.container.layout-padding { 1060 padding: 0px 0px 0px 0px; 1061} 1062 1063@media (min-width: 1024px) { 1064 #layout-bcea3fec-d4a9-4a0a-b76e-d25ccc6c6bb8.container.layout-padding { 1065 padding: 0px 0px 0px 0px; 1066 } 1067} 1068 1069#layout-bcea3fec-d4a9-4a0a-b76e-d25ccc6c6bb8.container.has-background-image { 1070 background-image: url(""); 1071} 1072 1073 1074@media (min-width: 1200px) {#layout-bcea3fec-d4a9-4a0a-b76e-d25ccc6c6bb8.container.has-background-image {background-image: url("1920w");}}@media (min-width: 992px) and (max-width: 1199px) {#layout-bcea3fec-d4a9-4a0a-b76e-d25ccc6c6bb8.container.has-background-image {background-image: url("1199w");}}@media (min-width: 768px) and (max-width: 991px) {#layout-bcea3fec-d4a9-4a0a-b76e-d25ccc6c6bb8.container.has-background-image {background-image: url("991w");}}@media (min-width: 576px) and (max-width: 767px) {#layout-bcea3fec-d4a9-4a0a-b76e-d25ccc6c6bb8.container.has-background-image {background-image: url("767w");}}@media (max-width: 575px) {#layout-bcea3fec-d4a9-4a0a-b76e-d25ccc6c6bb8.container.has-background-image {background-image: url("575w");}} 1075 1076 </style><div id=""><div id="layout-bcea3fec-d4a9-4a0a-b76e-d25ccc6c6bb8" 1077 class="container 1078 1079 1080 1081 1082 1083 layout-padding " 1084 style=""><div id="column-fb2aacc0-a0ee-11ea-93bb-b93edb1cf13c" 1085 class="span12 column-12 1086 "><div id="component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c" class="component"><style type="text/css"> 1087#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .filer-image-container:focus-within { 1088 overflow: visible; 1089} 1090 1091#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c a:focus { 1092 overflow: visible; 1093 position: relative; 1094 z-index: 1; 1095 outline: 2px solid #ffffff; 1096 outline-offset: 2px; 1097 box-shadow: 0 0 0 4px #575757; 1098} 1099 1100#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .image-wrapper { 1101 text-align: center; 1102} 1103 1104#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .image-wrapper.img-text-align { 1105 text-align: center; 1106} 1107 1108#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .filer-image-container { 1109 text-align: center; 1110} 1111 1112#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .filer-image-container .image-link { 1113 display: block; 1114 height: 100%; 1115} 1116 1117#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .filer-image-container .filer-image { 1118 max-width: 100%; 1119} 1120 1121#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .filer-image-container .img-details { 1122 text-align: center; 1123 max-width: 100%; 1124 margin: auto; 1125} 1126 1127#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-
1127aligned-left { 1128 margin: 0 auto 0 0; 1129} 1130 1131#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-aligned-right { 1132 margin: 0 0 0 auto; 1133} 1134 1135#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-top { 1136 padding-top: px; 1137} 1138 1139#component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-bottom { 1140 padding-bottom: px; 1141} 1142 1143@media (min-width: 1024px) { 1144 #component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-left { 1145 padding-left: px; 1146 } 1147 1148 #component-ff573f70-a0ee-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-right { 1149 padding-right: px; 1150 } 1151} 1152 1153</style><div class="image-wrapper 1154 img-text-align"><div 1155 id="ff573f70-a0ee-11ea-93bb-b93edb1cf13c" 1156 class="filer-image-container 1157 1158 1159 1160 1161 1162 1163 "><img loading="lazy" 1164 class="filer-image" 1165 style="max-width: 100%;" 1166 alt=""EVA: A-7063" TRAILER" 1167 src="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/b26a40c291_trailer%20update%20Words%20headers%20long.jpg" 1168 1169 1170 1171 srcset="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/b26a40c291_trailer%20update%20Words%20headers%20long.jpg?resize=1920x,no-scale-up 1920w, 1172https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/b26a40c291_trailer%20update%20Words%20headers%20long.jpg?resize=1199x,no-scale-up 1199w, 1173https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/b26a40c291_trailer%20update%20Words%20headers%20long.jpg?resize=991x,no-scale-up 991w, 1174https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/b26a40c291_trailer%20update%20Words%20headers%20long.jpg?resize=767x,no-scale-up 767w, 1175https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/b26a40c291_trailer%20update%20Words%20headers%20long.jpg?resize=575x,no-scale-up 575w" 1176 sizes="(min-width: 1200px) 1920px, 1177 ((min-width: 992px) and (max-width: 1199px)) 1199px, 1178 ((min-width: 768px) and (max-width: 991px)) 991px, 1179 ((min-width: 576px) and (max-width: 767px)) 767px, 1180 (max-width: 575px) 575px" 1181 1182 /></div></div></div></div></div></div></div><div class="row-fluid"><style type="text/css"> 1183 1184 1185#layout-1526d54e-bdd5-41b9-89b0-5f8604590ad2.container.layout-padding { 1186 padding: 0px 0px 0px 0px; 1187} 1188 1189@media (min-width: 1024px) { 1190 #layout-1526d54e-bdd5-41b9-89b0-5f8604590ad2.container.layout-padding { 1191 padding: 0px 0px 0px 0px; 1192 } 1193} 1194 1195#layout-1526d54e-bdd5-41b9-89b0-5f8604590ad2.container.has-background-image { 1196 background-image: url(""); 1197} 1198 1199 1200@media (min-width: 1200px) {#layout-1526d54e-bdd5-41b9-89b0-5f8604590ad2.container.has-background-image {background-image: url("1920w");}}@media (min-width: 992px) and (max-width: 1199px) {#layout-1526d54e-bdd5-41b9-89b0-5f8604590ad2.container.has-background-image {background-image: url("1199w");}}@media (min-width: 768px) and (max-width: 991px) {#layout-1526d54e-bdd5-41b9-89b0-5f8604590ad2.container.has-background-image {background-image: url("991w");}}@media (min-width: 576px) and (max-width: 767px) {#layout-1526d54e-bdd5-41b9-89b0-5f8604590ad2.container.has-background-image {background-image: url("767w");}}@media (max-width: 575px) {#layout-1526d54e-bdd5-41b9-89b0-5f8604590ad2.container.has-background-image {background-image: url("575w");}} 1201 1202 </style><div id=""><div id="layout-1526d54e-bdd5-41b9-89b0-5f8604590ad2" 1203 class="container 1204 1205 1206 1207 1208 1209 layout-padding " 1210 style=""><div id="column-d0da5770-a041-11ea-8060-eb8e37da56c5" 1211 class="span12 column-12 1212 "><div id="component-d67abb00-72c6-11ea-b321-218155bddf99" class="component"><style type="text/css"> 1213 #video-component_d67abb00-72c6-11ea-b321-218155bddf99.video-component { 1214 border: 1px solid #EEEEEE; 1215 background-color: #F5F5F5; 1216} 1217 1218#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .video-container { 1219 background-color: #F5F5F5; 1220 border-bottom: 1px solid #EEEEEE; 1221} 1222 1223#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .video-info { 1224 border-top: 1px solid #EEEEEE; 1225} 1226 1227#video-component_d67abb00-72c6-11ea-b321-218155bddf99 section { 1228 background-color: #F5F5F5; 1229} 1230 1231#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .playlist__wrapper { 1232 border-left: 1px solid #EEEEEE; 1233 background-color: #F5F5F5; 1234} 1235 1236#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .playlist-item, 1237#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .playlist-body, 1238#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .video-info { 1239 background-color: #F5F5F5; 1240} 1241 1242#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .playlist-item-title { 1243 color: #575757; 1244} 1245 1246#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .playlist-item.selected-item .playlist-item-title, 1247#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .playlist-item:hover .playlist-item-title { 1248 color: #404040; 1249} 1250 1251#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .playlist-item.selected-item, 1252#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .playlist-item:hover { 1253 background-color: #EEEEEE; 1254} 1255 1256#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .playlist-header { 1257 background-color: #E6E6E6; 1258} 1259 1260#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .video-cta { 1261 border-color: #575757; 1262 color: #575757; 1263} 1264 1265#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .video-cta { 1266 color: #575757; 1267} 1268 1269#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .video-cta:hover, 1270#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .video-cta:focus { 1271 background-color: #404040; 1272 border-color: #404040; 1273 color: #F5F5F5; 1274} 1275 1276#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .video-cta:hover { 1277 text-decoration: underline; 1278} 1279 1280#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .playlist-body .playlist-item { 1281 /* Remove default button appearance in Firefox */ 1282 appearance: none; 1283 -webkit-appearance: none; 1284 -moz-appearance: none; 1285 /* Add visible focus style for accessibility */ 1286} 1287 1288#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .playlist-body .playlist-item:focus { 1289 outline: 2px solid #ffffff; 1290 outline-offset: -4px; 1291 box-shadow: inset 0 0 0 4px #575757; 1292 position: relative; 1293 z-index: 1; 1294} 1295 1296#video-component_d67abb00-72c6-11ea-b321-218155bddf99 button:focus, 1297#video-component_d67abb00-72c6-11ea-b321-218155bddf99 a:focus { 1298 overflow: visible; 1299 outline: 2px solid #ffffff; 1300 outline-offset: 2px; 1301 box-shadow: 0 0 0 4px #575757; 1302} 1303 1304#video-component_d67abb00-72c6-11ea-b321-218155bddf99 .pill-button-component:focus { 1305 outline: 2px solid #575757; 1306 outline-offset: 2px; 1307 box-shadow: 0 0 0 4px #ffffff; 1308} 1309 1310 1311 1312</style><div id='video-component_d67abb00-72c6-11ea-b321-218155bddf99' class='video-component column-12'><div class="video-container__wrapper"><!-- The <iframe> (and video player) will replace this <div> tag. --><div id='video-container_d67abb00-72c6-11ea-b321-218155bddf99' class='video-container'></div><div class='video-info'><div class='title'>"Eva: A-7063" Trailer</div></div></div></div></div></div></div></div></div><div class="row-fluid"><style type="text/css"> 1313 1314 1315#layout-316a02b4-d96b-49c4-bf20-a6f132b6039f.container.layout-padding { 1316 padding: 0px 0px 0px 0px; 1317} 1318 1319@media (min-width: 1024px) { 1320 #layout-316a02b4-d96b-49c4-bf20-a6f132b6039f.container.layout-padding { 1321 padding: 0px 0px 0px 0px; 1322 } 1323} 1324 1325#layout-316a02b4-d96b-49c4-bf20-a6f132b6039f.container.has-background-image { 1326 background-image: url(""); 1327} 1328 1329 1330@media (min-width: 1200px) {#layout-316a02b4-d96b-49c4-bf20-a6f132b6039f.container.has-background-image {background-image: url("1920w");}}@media (min-width: 992px) and (max-width: 1199px) {#layout-316a02b4-d96b-49c4-bf20-a6f132b6039f.container.has-background-image {background-image: url("1199w");}}@media (min-width: 768px) and (max-width: 991px) {#layout-316a02b4-d96b-49c4-bf20-a6f132b6039f.container.has-background-image {background-image: url("991w");}}@media (min-width: 576px) and (max-width: 767px) {#layout-316a02b4-d96b-49c4-bf20-a6f132b6039f.container.has-background-image {background-image: url("767w");}}@media (max-width: 575px) {#layout-316a02b4-d96b-49c4-bf20-a6f132b6039f.container.has-background-image {background-image: url("575w");}} 1331 1332 </style><div id=""><div id="layout-316a02b4-d96b-49c4-bf20-a6f132b6039f" 1333 class="container 1334 1335 1336 1337 1338 1339 layout-padding " 1340 style=""><div id="column-35498fb0-a0f0-11ea-93bb-b93edb1cf13c" 1341 class="span12 column-12 1342 "><div id="component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c" class="component"><style type="text/css"> 1343#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .filer-image-container:focus-within { 1344 overflow: visible; 1345} 1346 1347#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c a:focus { 1348 overflow: visible; 1349 position: relative; 1350 z-index: 1; 1351 outline: 2px solid #ffffff; 1352 outline-offset: 2px; 1353 box-shadow: 0 0 0 4px #575757; 1354} 1355 1356#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .image-wrapper { 1357 text-align: center; 1358} 1359 1360#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .image-wrapper.img-text-align { 1361 text-align: center; 1362} 1363 1364#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .filer-image-container { 1365 text-align: center; 1366} 1367 1368#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .filer-image-container .image-link { 1369 display: block; 1370 height: 100%; 1371} 1372 1373#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .filer-image-container .filer-image { 1374 max-width: 100%; 1375} 1376 1377#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .filer-image-container .img-details { 1378 text-align: center; 1379 max-width: 100%; 1380 margin: auto; 1381} 1382 1383#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-
1383aligned-left { 1384 margin: 0 auto 0 0; 1385} 1386 1387#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-aligned-right { 1388 margin: 0 0 0 auto; 1389} 1390 1391#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-top { 1392 padding-top: px; 1393} 1394 1395#component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-bottom { 1396 padding-bottom: px; 1397} 1398 1399@media (min-width: 1024px) { 1400 #component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-left { 1401 padding-left: px; 1402 } 1403 1404 #component-39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-right { 1405 padding-right: px; 1406 } 1407} 1408 1409</style><div class="image-wrapper 1410 img-text-align"><div 1411 id="39c7ebe0-a0f0-11ea-93bb-b93edb1cf13c" 1412 class="filer-image-container 1413 1414 1415 1416 1417 1418 1419 "><a aria-label="EVA EDUCATION PROGRAM image link" class="image-link" href="/education/student-impact/" 1420 target="" 1421 ><img loading="lazy" 1422 class="filer-image" 1423 style="max-width: 100%;" 1424 alt="EVA EDUCATION PROGRAM" 1425 src="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/a06b9ae432_eDUCATIO%202%20Words%20headers%20long.jpg" 1426 1427 1428 1429 srcset="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/a06b9ae432_eDUCATIO%202%20Words%20headers%20long.jpg?resize=1920x,no-scale-up 1920w, 1430https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/a06b9ae432_eDUCATIO%202%20Words%20headers%20long.jpg?resize=1199x,no-scale-up 1199w, 1431https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/a06b9ae432_eDUCATIO%202%20Words%20headers%20long.jpg?resize=991x,no-scale-up 991w, 1432https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/a06b9ae432_eDUCATIO%202%20Words%20headers%20long.jpg?resize=767x,no-scale-up 767w, 1433https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/a06b9ae432_eDUCATIO%202%20Words%20headers%20long.jpg?resize=575x,no-scale-up 575w" 1434 sizes="(min-width: 1200px) 1920px, 1435 ((min-width: 992px) and (max-width: 1199px)) 1199px, 1436 ((min-width: 768px) and (max-width: 991px)) 991px, 1437 ((min-width: 576px) and (max-width: 767px)) 767px, 1438 (max-width: 575px) 575px" 1439 1440 /></a></div></div></div></div></div></div></div><div class="row-fluid"><style type="text/css"> 1441 1442 1443#layout-1dad7573-f977-4c82-a088-121beaaaac3d.container.layout-padding { 1444 padding: 0px 0px 0px 0px; 1445} 1446 1447@media (min-width: 1024px) { 1448 #layout-1dad7573-f977-4c82-a088-121beaaaac3d.container.layout-padding { 1449 padding: 0px 0px 0px 0px; 1450 } 1451} 1452 1453#layout-1dad7573-f977-4c82-a088-121beaaaac3d.container.has-background-image { 1454 background-image: url(""); 1455} 1456 1457 1458@media (min-width: 1200px) {#layout-1dad7573-f977-4c82-a088-121beaaaac3d.container.has-background-image {background-image: url("1920w");}}@media (min-width: 992px) and (max-width: 1199px) {#layout-1dad7573-f977-4c82-a088-121beaaaac3d.container.has-background-image {background-image: url("1199w");}}@media (min-width: 768px) and (max-width: 991px) {#layout-1dad7573-f977-4c82-a088-121beaaaac3d.container.has-background-image {background-image: url("991w");}}@media (min-width: 576px) and (max-width: 767px) {#layout-1dad7573-f977-4c82-a088-121beaaaac3d.container.has-background-image {background-image: url("767w");}}@media (max-width: 575px) {#layout-1dad7573-f977-4c82-a088-121beaaaac3d.container.has-background-image {background-image: url("575w");}} 1459 1460 </style><div id=""><div id="layout-1dad7573-f977-4c82-a088-121beaaaac3d" 1461 class="container 1462 1463 1464 1465 1466 1467 layout-padding " 1468 style=""><div id="column-40946150-a0f1-11ea-93bb-b93edb1cf13c" 1469 class="span8 column-8 1470 "><div id="component-e2308870-a0f3-11ea-93bb-b93edb1cf13c" class="component"><style type="text/css"> 1471#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .filer-image-container:focus-within { 1472 overflow: visible; 1473} 1474 1475#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c a:focus { 1476 overflow: visible; 1477 position: relative; 1478 z-index: 1; 1479 outline: 2px solid #ffffff; 1480 outline-offset: 2px; 1481 box-shadow: 0 0 0 4px #575757; 1482} 1483 1484#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .image-wrapper { 1485 text-align: center; 1486} 1487 1488#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .image-wrapper.img-text-align { 1489 text-align: center; 1490} 1491 1492#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .filer-image-container { 1493 text-align: center; 1494} 1495 1496#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .filer-image-container .image-link { 1497 display: block; 1498 height: 100%; 1499} 1500 1501#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .filer-image-container .filer-image { 1502 max-width: 100%; 1503} 1504 1505#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .filer-image-container .img-details { 1506 text-align: center; 1507 max-width: 100%; 1508 margin: auto; 1509} 1510 1511#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-
1511aligned-left { 1512 margin: 0 auto 0 0; 1513} 1514 1515#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-aligned-right { 1516 margin: 0 0 0 auto; 1517} 1518 1519#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-top { 1520 padding-top: px; 1521} 1522 1523#component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-bottom { 1524 padding-bottom: px; 1525} 1526 1527@media (min-width: 1024px) { 1528 #component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-left { 1529 padding-left: px; 1530 } 1531 1532 #component-e2308870-a0f3-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-right { 1533 padding-right: px; 1534 } 1535} 1536 1537</style><div class="image-wrapper 1538 img-text-align"><div 1539 id="e2308870-a0f3-11ea-93bb-b93edb1cf13c" 1540 class="filer-image-container 1541 1542 1543 1544 1545 1546 1547 "><a aria-label="The Eva Education Program focuses on Eva’s 12 life-affirming messages — including Acceptance, Forgiveness and Moral Courage — and emphasizes social-emotional learning. It consists of a shortened version of the documentary and the interactive Eva Educator’s Guide, and it’s available for free digitally on PBS Learning Media, or on hard copy on the links to the right. image link" class="image-link" href="/education/student-impact/" 1548 target="" 1549 ><img loading="lazy" 1550 class="filer-image" 1551 style="max-width: 100%;" 1552 alt="The Eva Education Program focuses on Eva’s 12 life-affirming messages — including Acceptance, Forgiveness and Moral Courage — and emphasizes social-emotional learning. It consists of a shortened version of the documentary and the interactive Eva Educator’s Guide, and it’s available for free digitally on PBS Learning Media, or on hard copy on the links to the right. " 1553 src="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f928b094a5_home%20page%20education%20box.jpg" 1554 1555 1556 1557 srcset="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f928b094a5_home%20page%20education%20box.jpg?resize=1280x,no-scale-up 1280w, 1558https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f928b094a5_home%20page%20education%20box.jpg?resize=799x,no-scale-up 799w, 1559https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f928b094a5_home%20page%20education%20box.jpg?resize=660x,no-scale-up 660w, 1560https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f928b094a5_home%20page%20education%20box.jpg?resize=767x,no-scale-up 767w, 1561https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/f928b094a5_home%20page%20education%20box.jpg?resize=575x,no-scale-up 575w" 1562 sizes="(min-width: 1200px) 1280px, 1563 ((min-width: 992px) and (max-width: 1199px)) 799px, 1564 ((min-width: 768px) and (max-width: 991px)) 660px, 1565 ((min-width: 576px) and (max-width: 767px)) 767px, 1566 (max-width: 575px) 575px" 1567 1568 /></a></div></div></div></div><div id="column-a85c0252-316c-43de-97be-69ccabed413d" 1569 class="span4 column-4 1570 "><div id="component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c" class="component"><style type="text/css"> 1571#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .filer-image-container:focus-within { 1572 overflow: visible; 1573} 1574 1575#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c a:focus { 1576 overflow: visible; 1577 position: relative; 1578 z-index: 1; 1579 outline: 2px solid #ffffff; 1580 outline-offset: 2px; 1581 box-shadow: 0 0 0 4px #575757; 1582} 1583 1584#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .image-wrapper { 1585 text-align: center; 1586} 1587 1588#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .image-wrapper.img-text-align { 1589 text-align: center; 1590} 1591 1592#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .filer-image-container { 1593 text-align: center; 1594} 1595 1596#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .filer-image-container .image-link { 1597 display: block; 1598 height: 100%; 1599} 1600 1601#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .filer-image-container .filer-image { 1602 max-width: 100%; 1603} 1604 1605#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .filer-image-container .img-details { 1606 text-align: center; 1607 max-width: 100%; 1608 margin: auto; 1609} 1610 1611#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-
1611aligned-left { 1612 margin: 0 auto 0 0; 1613} 1614 1615#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-aligned-right { 1616 margin: 0 0 0 auto; 1617} 1618 1619#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-top { 1620 padding-top: px; 1621} 1622 1623#component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-bottom { 1624 padding-bottom: px; 1625} 1626 1627@media (min-width: 1024px) { 1628 #component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-left { 1629 padding-left: px; 1630 } 1631 1632 #component-91f41ba0-a0f4-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-right { 1633 padding-right: px; 1634 } 1635} 1636 1637</style><div class="image-wrapper 1638 img-text-align"><div 1639 id="91f41ba0-a0f4-11ea-93bb-b93edb1cf13c" 1640 class="filer-image-container 1641 1642 1643 1644 1645 1646 1647 "><a aria-label="Click here to access the Eva Education Program digitally for free on PBS Learning Media. image link" class="image-link" href="https://www.pbslearningmedia.org/collection/eva-kor-documentary-and-educators-guide/" 1648 target="_blank" 1649 rel="noopener"><img loading="lazy" 1650 class="filer-image" 1651 style="max-width: 100%;" 1652 alt="Click here to access the Eva Education Program digitally for free on PBS Learning Media." 1653 src="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/11fa82f437_new%20font%20collection.jpg" 1654 1655 1656 1657 srcset="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/11fa82f437_new%20font%20collection.jpg?resize=640x,no-scale-up 640w, 1658https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/11fa82f437_new%20font%20collection.jpg?resize=399x,no-scale-up 399w, 1659https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/11fa82f437_new%20font%20collection.jpg?resize=330x,no-scale-up 330w, 1660https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/11fa82f437_new%20font%20collection.jpg?resize=767x,no-scale-up 767w, 1661https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/11fa82f437_new%20font%20collection.jpg?resize=575x,no-scale-up 575w" 1662 sizes="(min-width: 1200px) 640px, 1663 ((min-width: 992px) and (max-width: 1199px)) 399px, 1664 ((min-width: 768px) and (max-width: 991px)) 330px, 1665 ((min-width: 576px) and (max-width: 767px)) 767px, 1666 (max-width: 575px) 575px" 1667 1668 /></a></div></div></div><div id="component-debcb610-a101-11ea-93bb-b93edb1cf13c" class="component"><style type="text/css"> 1669#component-debcb610-a101-11ea-93bb-b93edb1cf13c .filer-image-container:focus-within { 1670 overflow: visible; 1671} 1672 1673#component-debcb610-a101-11ea-93bb-b93edb1cf13c a:focus { 1674 overflow: visible; 1675 position: relative; 1676 z-index: 1; 1677 outline: 2px solid #ffffff; 1678 outline-offset: 2px; 1679 box-shadow: 0 0 0 4px #575757; 1680} 1681 1682#component-debcb610-a101-11ea-93bb-b93edb1cf13c .image-wrapper { 1683 text-align: center; 1684} 1685 1686#component-debcb610-a101-11ea-93bb-b93edb1cf13c .image-wrapper.img-text-align { 1687 text-align: center; 1688} 1689 1690#component-debcb610-a101-11ea-93bb-b93edb1cf13c .filer-image-container { 1691 text-align: center; 1692} 1693 1694#component-debcb610-a101-11ea-93bb-b93edb1cf13c .filer-image-container .image-link { 1695 display: block; 1696 height: 100%; 1697} 1698 1699#component-debcb610-a101-11ea-93bb-b93edb1cf13c .filer-image-container .filer-image { 1700 max-width: 100%; 1701} 1702 1703#component-debcb610-a101-11ea-93bb-b93edb1cf13c .filer-image-container .img-details { 1704 text-align: center; 1705 max-width: 100%; 1706 margin: auto; 1707} 1708 1709#component-debcb610-a101-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-aligned-left { 1710 margin: 0 auto 0 0; 1711} 1712 1713#component-debcb610-a101-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-aligned-right { 1714 margin: 0 0 0 auto; 1715} 1716 1717#component-debcb610-a101-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-top { 1718 padding-top: px; 1719} 1720 1721#component-debcb610-a101-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-bottom { 1722 padding-bottom: px; 1723} 1724 1725@media (min-width: 1024px) { 1726 #component-debcb610-a101-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-left { 1727 padding-left: px; 1728 } 1729 1730 #component-debcb610-a101-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-right { 1731 padding-right: px; 1732 } 1733} 1734 1735</style><div class="image-wrapper 1736 img-text-align"><div 1737 id="debcb610-a101-11ea-93bb-b93edb1cf13c" 1738 class="filer-image-container 1739 1740 1741 1742 1743 1744 1745 "><img loading="lazy" 1746 class="filer-image" 1747 style="max-width: 100%;" 1748 alt="Filer image" 1749 src="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/d3f1d05e2f_smallest%20pbs%20bar.jpg" 1750 1751 1752 1753 srcset="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/d3f1d05e2f_smallest%20pbs%20bar.jpg?resize=64
17530x,no-scale-up 640w, 1754https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/d3f1d05e2f_smallest%20pbs%20bar.jpg?resize=399x,no-scale-up 399w, 1755https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/d3f1d05e2f_smallest%20pbs%20bar.jpg?resize=330x,no-scale-up 330w, 1756https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/d3f1d05e2f_smallest%20pbs%20bar.jpg?resize=767x,no-scale-up 767w, 1757https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/d3f1d05e2f_smallest%20pbs%20bar.jpg?resize=575x,no-scale-up 575w" 1758 sizes="(min-width: 1200px) 640px, 1759 ((min-width: 992px) and (max-width: 1199px)) 399px, 1760 ((min-width: 768px) and (max-width: 991px)) 330px, 1761 ((min-width: 576px) and (max-width: 767px)) 767px, 1762 (max-width: 575px) 575px" 1763 1764 /></div></div></div></div></div></div></div><div class="row-fluid"><style type="text/css"> 1765 1766 1767#layout-ee32487e-73eb-456e-b0f6-fc8fbc925553.container.layout-padding { 1768 padding: 0px 0px 0px 0px; 1769} 1770 1771@media (min-width: 1024px) { 1772 #layout-ee32487e-73eb-456e-b0f6-fc8fbc925553.container.layout-padding { 1773 padding: 0px 0px 0px 0px; 1774 } 1775} 1776 1777#layout-ee32487e-73eb-456e-b0f6-fc8fbc925553.container.has-background-image { 1778 background-image: url(""); 1779} 1780 1781 1782@media (min-width: 1200px) {#layout-ee32487e-73eb-456e-b0f6-fc8fbc925553.container.has-background-image {background-image: url("1920w");}}@media (min-width: 992px) and (max-width: 1199px) {#layout-ee32487e-73eb-456e-b0f6-fc8fbc925553.container.has-background-image {background-image: url("1199w");}}@media (min-width: 768px) and (max-width: 991px) {#layout-ee32487e-73eb-456e-b0f6-fc8fbc925553.container.has-background-image {background-image: url("991w");}}@media (min-width: 576px) and (max-width: 767px) {#layout-ee32487e-73eb-456e-b0f6-fc8fbc925553.container.has-background-image {background-image: url("767w");}}@media (max-width: 575px) {#layout-ee32487e-73eb-456e-b0f6-fc8fbc925553.container.has-background-image {background-image: url("575w");}} 1783 1784 </style><div id=""><div id="layout-ee32487e-73eb-456e-b0f6-fc8fbc925553" 1785 class="container 1786 1787 1788 1789 1790 1791 layout-padding " 1792 style=""><div id="column-ca01b980-a0ef-11ea-93bb-b93edb1cf13c" 1793 class="span12 column-12 1794 "><div id="component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c" class="component"><style type="text/css"> 1795#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .filer-image-container:focus-within { 1796 overflow: visible; 1797} 1798 1799#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c a:focus { 1800 overflow: visible; 1801 position: relative; 1802 z-index: 1; 1803 outline: 2px solid #ffffff; 1804 outline-offset: 2px; 1805 box-shadow: 0 0 0 4px #575757; 1806} 1807 1808#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .image-wrapper { 1809 text-align: center; 1810} 1811 1812#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .image-wrapper.img-text-align { 1813 text-align: center; 1814} 1815 1816#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .filer-image-container { 1817 text-align: center; 1818} 1819 1820#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .filer-image-container .image-link { 1821 display: block; 1822 height: 100%; 1823} 1824 1825#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .filer-image-container .filer-image { 1826 max-width: 100%; 1827} 1828 1829#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .filer-image-container .img-details { 1830 text-align: center; 1831 max-width: 100%; 1832 margin: auto; 1833} 1834 1835#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-aligned-left { 1836 margin: 0 auto 0 0; 1837} 1838 1839#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .filer-image-container .img-details.img-aligned-right { 1840 margin: 0 0 0 auto; 1841} 1842 1843#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-top { 1844 padding-top: px; 1845} 1846 1847#component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-bottom { 1848 padding-bottom: px; 1849} 1850 1851@media (min-width: 1024px) { 1852 #component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-left { 1853 padding-left: px; 1854 } 1855 1856 #component-cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c .filer-image-container.img-padding-right { 1857 padding-right: px; 1858 } 1859} 1860 1861</style><div class="image-wrapper 1862 img-text-align"><div 1863 id="cdd30cd0-a0ef-11ea-93bb-b93edb1cf13c" 1864 class="filer-image-container 1865 1866 1867 1868 1869 1870 1871 "><img loading="lazy" 1872 class="filer-image" 1873 style="max-width: 100%;" 1874 alt="VIDEOS" 1875 src="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/2d9f255c2c_Videos%20Word%20Header.jpg" 1876 1877 1878 1879 srcset="https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/2d9f255c2c_Videos%20Word%20Header.jpg?resize=1920x,no-scale-up 1920w, 1880https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/2d9f255c2c_Videos%20Word%20Header.jpg?resize=1199x,no-scale-up 1199w, 1881https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/2d9f255c2c_Videos%20Word%20Header.jpg?resize=991x,no-scale-up 991w, 1882https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/2d9f255c2c_Videos%20Word%20Header.jpg?resize=767x,no-scale-up 767w, 1883https://image.pbs.org/bento3-prod/thestoryofeva-bento-live-pbs/01%20MESSAGE/5.27.20/2d9f255c2c_Videos%20Word%20Header.jpg?resize=575x,no-scale-up 575w" 1884 sizes="(min-width: 1200px) 1920px, 1885 ((min-width: 992px) and (max-width: 1199px)) 1199px, 1886 ((min-width: 768px) and (max-width: 991px)) 991px, 1887 ((min-width: 576px) and (max-width: 767px)) 767px, 1888 (max-width: 575px) 575px" 1889 1890 /></div></div></div></div></div></div></div><div class="row-fluid"><style type="text/css"> 1891 1892 1893#layout-e9bd0ac4-ea5a-4226-872d-83cb925ad9d1.container.layout-padding { 1894 padding: 0px 0px 0px 0px; 1895} 1896 1897@media (min-width: 1024px) { 1898 #layout-e9bd0ac4-ea5a-4226-872d-83cb925ad9d1.container.layout-padding { 1899 padding: 0px 0px 0px 0px; 1900 } 1901} 1902 1903#layout-e9bd0ac4-ea5a-4226-872d-83cb925ad9d1.container.has-background-image { 1904 background-image: url(""); 1905} 1906 1907 1908@media (min-width: 1200px) {#layout-e9bd0ac4-ea5a-4226-872d-83cb925ad9d1.container.has-background-image {background-image: url("1920w");}}@media (min-width: 992px) and (max-width: 1199px) {#layout-e9bd0ac4-ea5a-4226-872d-83cb925ad9d1.container.has-background-image {background-image: url("1199w");}}@media (min-width: 768px) and (max-width: 991px) {#layout-e9bd0ac4-ea5a-4226-872d-83cb925ad9d1.container.has-background-image {background-image: url("991w");}}@media (min-width: 576px) and (max-width: 767px) {#layout-e9bd0ac4-ea5a-4226-872d-83cb925ad9d1.container.has-background-image {background-image: url("767w");}}@media (max-width: 575px) {#layout-e9bd0ac4-ea5a-4226-872d-83cb925ad9d1.container.has-background-image {background-image: url("575w");}} 1909 1910 </style><div id=""><div id="layout-e9bd0ac4-ea5a-4226-872d-83cb925ad9d1" 1911 class="container 1912 1913 1914 1915 1916 1917 layout-padding " 1918 style=""><div id="column-e1154220-39c8-11e9-b20c-7b5069252681"
1919 class="span4 column-4 1920 "><div id="component-45f2b720-a04a-11ea-8060-eb8e37da56c5" class="component"><style type="text/css"> 1921 #video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5.video-component { 1922 border: 1px solid #EEEEEE; 1923 background-color: #F5F5F5; 1924} 1925 1926#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .video-container { 1927 background-color: #F5F5F5; 1928 border-bottom: 1px solid #EEEEEE; 1929} 1930 1931#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .video-info { 1932 border-top: 1px solid #EEEEEE; 1933} 1934 1935#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 section { 1936 background-color: #F5F5F5; 1937} 1938 1939#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .playlist__wrapper { 1940 border-left: 1px solid #EEEEEE; 1941 background-color: #F5F5F5; 1942} 1943 1944#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .playlist-item, 1945#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .playlist-body, 1946#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .video-info { 1947 background-color: #F5F5F5; 1948} 1949 1950#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .playlist-item-title { 1951 color: #575757; 1952} 1953 1954#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .playlist-item.selected-item .playlist-item-title, 1955#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .playlist-item:hover .playlist-item-title { 1956 color: #404040; 1957} 1958 1959#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .playlist-item.selected-item, 1960#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .playlist-item:hover { 1961 background-color: #EEEEEE; 1962} 1963 1964#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .playlist-header { 1965 background-color: #E6E6E6; 1966} 1967 1968#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .video-cta { 1969 border-color: #575757; 1970 color: #575757; 1971} 1972 1973#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .video-cta { 1974 color: #575757; 1975} 1976 1977#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .video-cta:hover, 1978#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .video-cta:focus { 1979 background-color: #404040; 1980 border-color: #404040; 1981 color: #F5F5F5; 1982} 1983 1984#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .video-cta:hover { 1985 text-decoration: underline; 1986} 1987 1988#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .playlist-body .playlist-item { 1989 /* Remove default button appearance in Firefox */ 1990 appearance: none; 1991 -webkit-appearance: none; 1992 -moz-appearance: none; 1993 /* Add visible focus style for accessibility */ 1994} 1995 1996#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .playlist-body .playlist-item:focus { 1997 outline: 2px solid #ffffff; 1998 outline-offset: -4px; 1999 box-shadow: inset 0 0 0 4px #575757; 2000 position: relative; 2001 z-index: 1; 2002} 2003 2004#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 button:focus, 2005#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 a:focus { 2006 overflow: visible; 2007 outline: 2px solid #ffffff; 2008 outline-offset: 2px; 2009 box-shadow: 0 0 0 4px #575757; 2010} 2011 2012#video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5 .pill-button-component:focus { 2013 outline: 2px solid #575757; 2014 outline-offset: 2px; 2015 box-shadow: 0 0 0 4px #ffffff; 2016} 2017 2018 2019 2020</style><div id='video-component_45f2b720-a04a-11ea-8060-eb8e37da56c5' class='video-component column-4'><div class="video-container__wrapper"><!-- The <iframe> (and video player) will replace this <div> tag. --><div id='video-container_45f2b720-a04a-11ea-8060-eb8e37da56c5' class='video-container'></div><div class='video-info'><div class='title'>"Eva: A-7063" Impact</div></div></div></div></div><div id="component-de64bc60-2b60-11ea-a780-f5f0e97c77ca" class="component"><style type="text/css"> 2021 #video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca.video-component { 2022 border: 1px solid #EEEEEE; 2023 background-color: #F5F5F5; 2024} 2025 2026#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .video-container { 2027 background-color: #F5F5F5; 2028 border-bottom: 1px solid #EEEEEE; 2029} 2030 2031#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .video-info { 2032 border-top: 1px solid #EEEEEE; 2033} 2034 2035#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca section { 2036 background-color: #F5F5F5; 2037} 2038 2039#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .playlist__wrapper { 2040 border-left: 1px solid #EEEEEE; 2041 background-color: #F5F5F5; 2042} 2043 2044#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .playlist-item, 2045#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .playlist-body, 2046#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .video-info { 2047 background-color: #F5F5F5; 2048} 2049 2050#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .playlist-item-title { 2051 color: #575757; 2052} 2053 2054#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .playlist-item.selected-item .playlist-item-title, 2055#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .playlist-item:hover .playlist-item-title { 2056 color: #404040; 2057} 2058 2059#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .playlist-item.selected-item, 2060#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .playlist-item:hover { 2061 background-color: #EEEEEE; 2062} 2063 2064#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .playlist-header { 2065 background-color: #E6E6E6; 2066} 2067 2068#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .video-cta { 2069 border-color: #575757; 2070 color: #575757; 2071} 2072 2073#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .video-cta { 2074 color: #575757; 2075} 2076 2077#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .video-cta:hover, 2078#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .video-cta:focus { 2079 background-color: #404040; 2080 border-color: #404040; 2081 color: #F5F5F5; 2082} 2083 2084#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .video-cta:hover { 2085 text-decoration: underline; 2086} 2087 2088#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .playlist-body .playlist-item { 2089 /* Remove default button appearance in Firefox */ 2090 appearance: none; 2091 -webkit-appearance: none; 2092 -moz-appearance: none; 2093 /* Add visible focus style for accessibility */ 2094} 2095 2096#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .playlist-body .playlist-item:focus { 2097 outline: 2px solid #ffffff; 2098 outline-offset: -4px; 2099 box-shadow: inset 0 0 0 4px #575757; 2100 position: relative; 2101 z-index: 1; 2102} 2103 2104#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca button:focus, 2105#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca a:focus { 2106 overflow: visible; 2107 outline: 2px solid #ffffff; 2108 outline-offset: 2px; 2109 box-shadow: 0 0 0 4px #575757; 2110} 2111 2112#video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca .pill-button-component:focus { 2113 outline: 2px solid #575757; 2114 outline-offset: 2px; 2115 box-shadow: 0 0 0 4px #ffffff; 2116} 2117 2118 2119 2120</style><div id='video-component_de64bc60-2b60-11ea-a780-f5f0e97c77ca' class='video-component column-4'><div class="video-container__wrapper"><!-- The <iframe> (and video player) will replace this <div> tag. --><div id='video-container_de64bc60-2b60-11ea-a780-f5f0e97c77ca' class='video-container'></div><div class='video-info'><div class='title'>Eva Outreach and Education Program</div></div></div></div></div></div><div id="column-87dbed45-1e4f-46ff-922d-8dae94db8c7f"
2121 class="span4 column-4 2122 "><div id="component-ee4ce510-39c8-11e9-b20c-7b5069252681" class="component"><style type="text/css"> 2123 #video-component_ee4ce510-39c8-11e9-b20c-7b5069252681.video-component { 2124 border: 1px solid #EEEEEE; 2125 background-color: #F5F5F5; 2126} 2127 2128#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .video-container { 2129 background-color: #F5F5F5; 2130 border-bottom: 1px solid #EEEEEE; 2131} 2132 2133#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .video-info { 2134 border-top: 1px solid #EEEEEE; 2135} 2136 2137#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 section { 2138 background-color: #F5F5F5; 2139} 2140 2141#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .playlist__wrapper { 2142 border-left: 1px solid #EEEEEE; 2143 background-color: #F5F5F5; 2144} 2145 2146#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .playlist-item, 2147#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .playlist-body, 2148#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .video-info { 2149 background-color: #F5F5F5; 2150} 2151 2152#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .playlist-item-title { 2153 color: #575757; 2154} 2155 2156#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .playlist-item.selected-item .playlist-item-title, 2157#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .playlist-item:hover .playlist-item-title { 2158 color: #404040; 2159} 2160 2161#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .playlist-item.selected-item, 2162#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .playlist-item:hover { 2163 background-color: #EEEEEE; 2164} 2165 2166#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .playlist-header { 2167 background-color: #E6E6E6; 2168} 2169 2170#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .video-cta { 2171 border-color: #575757; 2172 color: #575757; 2173} 2174 2175#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .video-cta { 2176 color: #575757; 2177} 2178 2179#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .video-cta:hover, 2180#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .video-cta:focus { 2181 background-color: #404040; 2182 border-color: #404040; 2183 color: #F5F5F5; 2184} 2185 2186#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .video-cta:hover { 2187 text-decoration: underline; 2188} 2189 2190#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .playlist-body .playlist-item { 2191 /* Remove default button appearance in Firefox */ 2192 appearance: none; 2193 -webkit-appearance: none; 2194 -moz-appearance: none; 2195 /* Add visible focus style for accessibility */ 2196} 2197 2198#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .playlist-body .playlist-item:focus { 2199 outline: 2px solid #ffffff; 2200 outline-offset: -4px; 2201 box-shadow: inset 0 0 0 4px #575757; 2202 position: relative; 2203 z-index: 1; 2204} 2205 2206#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 button:focus, 2207#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 a:focus { 2208 overflow: visible; 2209 outline: 2px solid #ffffff; 2210 outline-offset: 2px; 2211 box-shadow: 0 0 0 4px #575757; 2212} 2213 2214#video-component_ee4ce510-39c8-11e9-b20c-7b5069252681 .pill-button-component:focus { 2215 outline: 2px solid #575757; 2216 outline-offset: 2px; 2217 box-shadow: 0 0 0 4px #ffffff; 2218} 2219 2220 2221 2222</style><div id='video-component_ee4ce510-39c8-11e9-b20c-7b5069252681' class='video-component column-4'><div class="video-container__wrapper"><!-- The <iframe> (and video player) will replace this <div> tag. --><div id='video-container_ee4ce510-39c8-11e9-b20c-7b5069252681' class='video-container'></div><div class='video-info'><div class='title'>Behind the Scenes</div></div></div></div></div><div id="component-f9d1a7e0-39c8-11e9-b20c-7b5069252681" class="component"><style type="text/css"> 2223 #video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681.video-component { 2224 border: 1px solid #EEEEEE; 2225 background-color: #F5F5F5; 2226} 2227 2228#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .video-container { 2229 background-color: #F5F5F5; 2230 border-bottom: 1px solid #EEEEEE; 2231} 2232 2233#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .video-info { 2234 border-top: 1px solid #EEEEEE; 2235} 2236 2237#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 section { 2238 background-color: #F5F5F5; 2239} 2240 2241#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .playlist__wrapper { 2242 border-left: 1px solid #EEEEEE; 2243 background-color: #F5F5F5; 2244} 2245 2246#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .playlist-item, 2247#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .playlist-body, 2248#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .video-info { 2249 background-color: #F5F5F5; 2250} 2251 2252#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .playlist-item-title { 2253 color: #575757; 2254} 2255 2256#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .playlist-item.selected-item .playlist-item-title, 2257#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .playlist-item:hover .playlist-item-title { 2258 color: #404040; 2259} 2260 2261#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .playlist-item.selected-item, 2262#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .playlist-item:hover { 2263 background-color: #EEEEEE; 2264} 2265 2266#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .playlist-header { 2267 background-color: #E6E6E6; 2268} 2269 2270#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .video-cta { 2271 border-color: #575757; 2272 color: #575757; 2273} 2274 2275#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .video-cta { 2276 color: #575757; 2277} 2278 2279#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .video-cta:hover, 2280#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .video-cta:focus { 2281 background-color: #404040; 2282 border-color: #404040; 2283 color: #F5F5F5; 2284} 2285 2286#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .video-cta:hover { 2287 text-decoration: underline; 2288} 2289 2290#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .playlist-body .playlist-item { 2291 /* Remove default button appearance in Firefox */ 2292 appearance: none; 2293 -webkit-appearance: none; 2294 -moz-appearance: none; 2295 /* Add visible focus style for accessibility */ 2296} 2297 2298#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .playlist-body .playlist-item:focus { 2299 outline: 2px solid #ffffff; 2300 outline-offset: -4px; 2301 box-shadow: inset 0 0 0 4px #575757; 2302 position: relative; 2303 z-index: 1; 2304} 2305 2306#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 button:focus, 2307#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 a:focus { 2308 overflow: visible; 2309 outline: 2px solid #ffffff; 2310 outline-offset: 2px; 2311 box-shadow: 0 0 0 4px #575757; 2312} 2313 2314#video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681 .pill-button-component:focus { 2315 outline: 2px solid #575757; 2316 outline-offset: 2px; 2317 box-shadow: 0 0 0 4px #ffffff; 2318} 2319 2320 2321 2322</style><div id='video-component_f9d1a7e0-39c8-11e9-b20c-7b5069252681' class='video-component column-4'><div class="video-container__wrapper"><!-- The <iframe> (and video player) will replace this <div> tag. --><div id='video-container_f9d1a7e0-39c8-11e9-b20c-7b5069252681' class='video-container'></div><div class='video-info'><div class='title'>Eva's Impact on Sophie</div></div></div></div></div></div><div id="column-1d4d21a9-062f-47b4-8f28-ea8f0f1f6ce7"
2323 class="span4 column-4 2324 "><div id="component-fb5eca30-a0f0-11ea-93bb-b93edb1cf13c" class="component"><style type="text/css"> 2325 #video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c.video-component { 2326 border: 1px solid #EEEEEE; 2327 background-color: #F5F5F5; 2328} 2329 2330#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .video-container { 2331 background-color: #F5F5F5; 2332 border-bottom: 1px solid #EEEEEE; 2333} 2334 2335#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .video-info { 2336 border-top: 1px solid #EEEEEE; 2337} 2338 2339#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c section { 2340 background-color: #F5F5F5; 2341} 2342 2343#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .playlist__wrapper { 2344 border-left: 1px solid #EEEEEE; 2345 background-color: #F5F5F5; 2346} 2347 2348#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .playlist-item, 2349#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .playlist-body, 2350#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .video-info { 2351 background-color: #F5F5F5; 2352} 2353 2354#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .playlist-item-title { 2355 color: #575757; 2356} 2357 2358#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .playlist-item.selected-item .playlist-item-title, 2359#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .playlist-item:hover .playlist-item-title { 2360 color: #404040; 2361} 2362 2363#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .playlist-item.selected-item, 2364#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .playlist-item:hover { 2365 background-color: #EEEEEE; 2366} 2367 2368#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .playlist-header { 2369 background-color: #E6E6E6; 2370} 2371 2372#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .video-cta { 2373 border-color: #575757; 2374 color: #575757; 2375} 2376 2377#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .video-cta { 2378 color: #575757; 2379} 2380 2381#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .video-cta:hover, 2382#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .video-cta:focus { 2383 background-color: #404040; 2384 border-color: #404040; 2385 color: #F5F5F5; 2386} 2387 2388#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .video-cta:hover { 2389 text-decoration: underline; 2390} 2391 2392#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .playlist-body .playlist-item { 2393 /* Remove default button appearance in Firefox */ 2394 appearance: none; 2395 -webkit-appearance: none; 2396 -moz-appearance: none; 2397 /* Add visible focus style for accessibility */ 2398} 2399 2400#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .playlist-body .playlist-item:focus { 2401 outline: 2px solid #ffffff; 2402 outline-offset: -4px; 2403 box-shadow: inset 0 0 0 4px #575757; 2404 position: relative; 2405 z-index: 1; 2406} 2407 2408#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c button:focus, 2409#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c a:focus { 2410 overflow: visible; 2411 outline: 2px solid #ffffff; 2412 outline-offset: 2px; 2413 box-shadow: 0 0 0 4px #575757; 2414} 2415 2416#video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c .pill-button-component:focus { 2417 outline: 2px solid #575757; 2418 outline-offset: 2px; 2419 box-shadow: 0 0 0 4px #ffffff; 2420} 2421 2422 2423 2424</style><div id='video-component_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c' class='video-component column-4'><div class="video-container__wrapper"><!-- The <iframe> (and video player) will replace this <div> tag. --><div id='video-container_fb5eca30-a0f0-11ea-93bb-b93edb1cf13c' class='video-container'></div><div class='video-info'><div class='title'>Student Interviews</div></div></div></div></div><div id="component-fe1b5220-a0f0-11ea-93bb-b93edb1cf13c" class="component"><style type="text/css"> 2425 #video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c.video-component { 2426 border: 1px solid #EEEEEE; 2427 background-color: #F5F5F5; 2428} 2429 2430#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .video-container { 2431 background-color: #F5F5F5; 2432 border-bottom: 1px solid #EEEEEE; 2433} 2434 2435#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .video-info { 2436 border-top: 1px solid #EEEEEE; 2437} 2438 2439#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c section { 2440 background-color: #F5F5F5; 2441} 2442 2443#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .playlist__wrapper { 2444 border-left: 1px solid #EEEEEE; 2445 background-color: #F5F5F5; 2446} 2447 2448#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .playlist-item, 2449#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .playlist-body, 2450#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .video-info { 2451 background-color: #F5F5F5; 2452} 2453 2454#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .playlist-item-title { 2455 color: #575757; 2456} 2457 2458#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .playlist-item.selected-item .playlist-item-title, 2459#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .playlist-item:hover .playlist-item-title { 2460 color: #404040; 2461} 2462 2463#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .playlist-item.selected-item, 2464#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .playlist-item:hover { 2465 background-color: #EEEEEE; 2466} 2467 2468#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .playlist-header { 2469 background-color: #E6E6E6; 2470} 2471 2472#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .video-cta { 2473 border-color: #575757; 2474 color: #575757; 2475} 2476 2477#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .video-cta { 2478 color: #575757; 2479} 2480 2481#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .video-cta:hover, 2482#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .video-cta:focus { 2483 background-color: #404040; 2484 border-color: #404040; 2485 color: #F5F5F5; 2486} 2487 2488#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .video-cta:hover { 2489 text-decoration: underline; 2490} 2491 2492#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .playlist-body .playlist-item { 2493 /* Remove default button appearance in Firefox */ 2494 appearance: none; 2495 -webkit-appearance: none; 2496 -moz-appearance: none; 2497 /* Add visible focus style for accessibility */ 2498} 2499 2500#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .playlist-body .playlist-item:focus { 2501 outline: 2px solid #ffffff; 2502 outline-offset: -4px; 2503 box-shadow: inset 0 0 0 4px #575757; 2504 position: relative; 2505 z-index: 1; 2506} 2507 2508#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c button:focus, 2509#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c a:focus { 2510 overflow: visible; 2511 outline: 2px solid #ffffff; 2512 outline-offset: 2px; 2513 box-shadow: 0 0 0 4px #575757; 2514} 2515 2516#video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c .pill-button-component:focus { 2517 outline: 2px solid #575757; 2518 outline-offset: 2px; 2519 box-shadow: 0 0 0 4px #ffffff; 2520} 2521 2522 2523 2524</style><div id='video-component_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c' class='video-component column-4'><div class="video-container__wrapper"><!-- The <iframe> (and video player) will replace this <div> tag. --><div id='video-container_fe1b5220-a0f0-11ea-93bb-b93edb1cf13c' class='video-container'></div><div class='video-info'><div class='title'>Eva Kor Peace Garden</div></div></div></div></div></div></div></div></div> 2525 2526 2527</div> 2528 2529 2530 2531 2532 2533 2534 </div> 2535 </div> 2536 </main> 2537 2538 2539<footer><div class="row-fluid"><style type="text/css"> 2540 2541 2542#layout-1eddc50a-47c8-4630-92b0-aa0b3b8e6294.container.layout-padding { 2543 padding: px 0px px 0px; 2544} 2545 2546@media (min-width: 1024px) { 2547 #layout-1eddc50a-47c8-4630-92b0-aa0b3b8e6294.container.layout-padding { 2548 padding: px px px px; 2549 } 2550} 2551 2552#layout-1eddc50a-47c8-4630-92b0-aa0b3b8e6294.container.has-background-image { 2553 background-image: url(""); 2554} 2555 2556 2557@media (min-width: 1200px) {#layout-1eddc50a-47c8-4630-92b0-aa0b3b8e6294.container.has-background-image {background-image: url("1920w");}}@media (min-width: 992px) and (max-width: 1199px) {#layout-1eddc50a-47c8-4630-92b0-aa0b3b8e6294.container.has-background-image {background-image: url("1199w");}}@media (min-width: 768px) and (max-width: 991px) {#layout-1eddc50a-47c8-4630-92b0-aa0b3b8e6294.container.has-background-image {background-image: url("991w");}}@media (min-width: 576px) and (max-width: 767px) {#layout-1eddc50a-47c8-4630-92b0-aa0b3b8e6294.container.has-background-image {background-image: url("767w");}}@media (max-width: 575px) {#layout-1eddc50a-47c8-4630-92b0-aa0b3b8e6294.container.has-background-image {background-image: url("575w");}} 2558 2559 </style><div id=""><div id="layout-1eddc50a-47c8-4630-92b0-aa0b3b8e6294" 2560 class="container 2561 2562 2563 2564 2565 2566 " 2567 style=""><div id="column-23cd1a20-05d6-46aa-bcd8-d46399c7a1f0" 2568 class="span12 column-12 2569 "><div id="component-1fd5e9e0-76f4-11e7-8733-9bad518e8b4c" class="component"><div style="width:100%;background-color:#222;color:#FFF;"><!-- outer --><div id="wfyi-custom-footer" class="container" style="margin: auto;max-width: 1280px;"><div style="float:right;width:225px;padding:8px 0;"><p style="text-align: center;color:#FFF;font-weight: 400;font-size:1.2em;">Follow The Story of Eva on</p><div style="width:126px;margin: auto;"><!-- https://dc79r36mj3c9w.cloudfront.net/prod/filer_public/thestoryofeva-bento-live-pbs/Icons/c72d2ffe2b_twitter-white_76x63.png --><span style="margin-right:8px;"><a href="https://twitter.com/thestoryofeva" target="_blank"><img style="width:38px;" src="/prod/filer_public/thestoryofeva-bento-live-pbs/Icons/c72d2ffe2b_twitter-white_76x63.png" alt="Twitter" /></a></span><!-- https://dc79r36mj3c9w.cloudfront.net/prod/filer_public/thestoryofeva-bento-live-pbs/Icons/8444793150_facebook-white_64x63.png --><span style="margin-right:10px;"><a href="https://www.facebook.com/TheStoryOfEva/" target="_blank"><img style="width:32px;" src="/prod/filer_public/thestoryofeva-bento-live-pbs/Icons/8444793150_facebook-white_64x63.png" alt="Facebook" /></a></span><!-- https://dc79r36mj3c9w.cloudfront.net/prod/filer_public/thestoryofeva-bento-live-pbs/Icons/8a76c86c9f_instagram-white_63x64.png --><span><a href="https://www.instagram.com/thestoryofeva/" target="_blank"><img style="width:32px;" src="/prod/filer_public/thestoryofeva-bento-live-pbs/Icons/8a76c86c9f_instagram-white_63x64.png" alt="Instagram" /></a></span></div></div><div id="flexi-links" style="clear:none;display: table;line-height: 0;content:"";"><div class="span12"><ul class="nav main"><li><a href="/" class="max12" style="color:#FFF;font-weight: 400;">
2569Home</a></li><li><a href="mailto:[email protected]?subject=The Story of Eva Web Site Contact" target="_blank" class="max12" style="color:#FFF;font-weight: 400;">Contact Us</a></li><li><a href="/screenings" class="max12" style="color:#FFF;font-weight: 400;">Screenings</a></li><li><a href="https://www.wfyi.org" target="_blank" class="max12" style="color:#FFF;font-weight: 400;">WFYI</a></li><li><a href="https://secure.wfyi.org/EvaItems/" target="_blank" class="max12" style="color:#FFF;font-weight: 400;">Online Store</a></li></ul></div><!-- div.span12 --></div><!-- div#flexi-links --><div id="flexi-copyright" style="clear:none;display: table;line-height: 0;content:"";"><div class="span12"><ul class="nav secondary clearfix"><li class="after" style="color:#858585;font-size:12px;">© 2017 WFYI & Ted Green Films<br><small style="font-size:85%;color:#606060;font-size:10px;">WFYI Indinaapolis | 1630 N Meridian St, Indianapolis, IN 46202 | (317) 636-2020</small></li></ul></div><!-- div.span12 --></div><!-- div#flexi-copyright --></div><!-- div#wfyi-custom-footer.container --></div><!-- outer --></div></div></div></div></div></footer> 2570 2571 2572 2573 2574 2575 2576
2577<script type="text/javascript"> 2578 PBS = window.PBS || {}; 2579 PBS.BentoConfig = PBS.BentoConfig || {}; 2580 PBS.BentoConfig.baseURL = 'https://www.thestoryofeva.com/'; 2581 PBS.BentoConfig.APIBaseURL = 'https://www.thestoryofeva.com/'; 2582 PBS.BentoConfig.ItsPrefix = 'https://image.pbs.org/bento3-prod'; 2583 2584</script>
2584 2585
2586<script type="text/javascript" src="https://bento.pbs.org/prod/3.150.0/staticfiles/dist/frontend/css/frontend_style.js" ></script>
vendor: 1 bytes, line 2586
2586
2587<script type="text/javascript" src="https://bento.pbs.org/prod/3.150.0/staticfiles/dist/frontend/js/frontend_js.js" ></script>
2587 2588 2589
2590<script type="text/javascript"> 2591(function(PBS){ 2592 PBS = PBS || {}; 2593 PBS.snippets = PBS.snippets || {}; 2594 PBS.snippets['7d6c0990-67ea-11e7-951e-3d73553d0d27'] = new PBS.Menu({ 2595 component: document.getElementById('component-7d6c0990-67ea-11e7-951e-3d73553d0d27'), 2596 id: '7d6c0990-67ea-11e7-951e-3d73553d0d27' 2597 }); 2598}(window.PBS)); 2599 2600</script>
2600 2601 2602
2603<script type="text/javascript"> 2604(function(PBS){ 2605 PBS = PBS || {}; 2606 PBS.snippets = PBS.snippets || {}; 2607 PBS.snippets['page-content-disqus'] = new PBS.Disqus({ 2608 disqus_shortname: "", 2609 show_disqus: false, 2610 page_url: "https://www.thestoryofeva.com/", 2611 page_id: 2825 2612 }); 2613}(window.PBS)); 2614</script>
2614 2615
2616<script> 2617 $(document).ready(function () { 2618 var currentPlaylist = playlistMapping['d67abb00-72c6-11ea-b321-218155bddf99']; 2619 var currentSettings = settingsMapping['d67abb00-72c6-11ea-b321-218155bddf99']; 2620 $('.playlist-item').on('click', function () { 2621 $(this).addClass('selected-item').siblings().removeClass('selected-item'); 2622 }); 2623 if (currentPlaylist[0].videoSource === 'cove') { 2624 loadMMVideo('d67abb00-72c6-11ea-b321-218155bddf99', 0, currentPlaylist, currentSettings, 'WFYI'); 2625 } 2626 }); 2627 2628 function displayMMInfoItem(type, item, metadataSection) { 2629 var tag = ''; 2630 2631 var label = type && (type[0].toUpperCase() + type.slice(1)); 2632 var tag = type !== 'runtime' ? label : ''; 2633 2634 if (item) { 2635 $('<div class="additional-mm-info ' + type + '"></div>').appendTo(metadataSection); 2636 var mediaManagerInfoItem = $(metadataSection + ' .' + type); 2637 tag && mediaManagerInfoItem.html(label + ': '); 2638 mediaManagerInfoItem.append(item); 2639 } 2640 } 2641 2642 function fitMMVideo(elem) { 2643 var iFrame = elem; 2644 var aspectRatio = null; 2645 var actualPlayerWidth = iFrame.width(); 2646 var topBarHeight = 0; 2647 2648 2649 if (iFrame.attr("width") != '100%') { 2650 //for backwards compatibility use hardcoded old values for player dimensions 2651 try { 2652 var styleWidth = 512; 2653 var styleHeight = 288; 2654 aspectRatio = styleWidth / styleHeight; 2655 2656 iFrame.css({ 2657 "max-width": styleWidth, 2658 "max-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth, 2659 "min-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth 2660 }); 2661 } catch (e) { 2662 } 2663 } else { 2664 // the new player with width=100% and height=100% 2665 try { 2666 aspectRatio = 16 / 9; 2667 2668 if (iFrame.attr('src').indexOf('topbar=true') != -1) { 2669 topBarHeight = 40; 2670 } 2671 2672 iFrame.css({ 2673 "height": actualPlayerWidth / aspectRatio + topBarHeight, 2674 }); 2675 iFrame.parent().css({ 2676 "height": actualPlayerWidth / aspectRatio + topBarHeight, 2677 }); 2678 } catch (e) { 2679 } 2680 } 2681 } 2682 2683 function loadVideoIframe(response, playerObject, callsign) { 2684 var currentSettings = settingsMapping['d67abb00-72c6-11ea-b321-218155bddf99']; 2685 template = response.player_code.template; 2686 var iframe = jQuery(template); 2687 iframe.attr('allow', 'encrypted-media'); 2688 iframe.attr('title', 'Video player'); 2689 /* WCAG 2.1 1.2.2: Ensure captions are enabled. The PBS partner player 2690 should have closed-caption tracks available by default. If captions 2691 are missing, content editors must provide them. */ 2692 2693 if (callsign) { 2694 iframe.attr('src', function (i, e) { 2695 return e += '&callsign=' + callsign; 2696 }) 2697 } 2698 iframe.attr('src', function (i, e) { 2699 return e += '&endscreen=' + !!currentSettings.endScreen; 2700 }) 2701 playerObject.html(iframe); 2702 fitMMVideo(iframe); 2703 iframe.on('load', function () { 2704 fitMMVideo(jQuery(this)); 2705 }); 2706 } 2707 2708 function loadVideoMetadata(currentSettings, item, metadataSection) { 2709 currentSettings.showTitle && 2710 $(metadataSection + ' .title').html(item.title); 2711 2712 currentSettings.showContentChannel && 2713 $(metadataSection + ' .channel').html(item.channel); 2714 2715 $(metadataSection + ' .additional-mm-info').remove(); 2716 if (currentSettings.showAdditionalMediaManagerInfo) { 2717 var mediaManagerInfoTypes = ['runtime', 'published', 'expires', 'rating']; 2718 var mediaManagerInfoTypesLength = mediaManagerInfoTypes.length; 2719 for (var i = 0; i <= mediaManagerInfoTypesLength; i++) { 2720 displayMMInfoItem(mediaManagerInfoTypes[i], item[mediaManagerInfoTypes[i]], metadataSection); 2721 } 2722 } 2723 2724 if (currentSettings.showDescription) { 2725 $(metadataSection + ' .description').remove(); 2726 $('<p class="description"></p>').appendTo(metadataSection); 2727 $(metadataSection + ' .description').html(item.description); 2728 } 2729 } 2730 2731 function loadMMVideo(componentId, index, currentPlaylist, currentSettings, c
2731allsign) { 2732 var youtubeWrapper = '#youtube-wrapper_' + componentId; 2733 var videoContainer = '#video-container_' + componentId; 2734 var videoComponent = '#video-component_' + componentId; 2735 var videoContainerWrapper = videoComponent + ' .video-container__wrapper'; 2736 var metadataSection = videoComponent + ' .video-info'; 2737 2738 $(youtubeWrapper).remove(); 2739 $(videoContainer).remove(); 2740 2741 var videoContainerEl = document.createElement('div'); 2742 videoContainerEl.id = 'video-container_' + componentId; 2743 videoContainerEl.className = 'video-container'; 2744 $(videoContainerWrapper).prepend(videoContainerEl); 2745 var videoId = currentPlaylist[index].videoId; 2746 var title = currentPlaylist[index].title; 2747 var partnerPlayerUrl = currentPlaylist[index].partnerPlayerUrl; 2748 var APIBaseURL = PBS.BentoConfig.APIBaseURL || '/'; 2749 var url = APIBaseURL + 'merlin_plugin/video_frame/'; 2750 url += partnerPlayerUrl ? partnerPlayerUrl : videoId; 2751 if (callsign) { 2752 url += '/?callsign=' + callsign + '&title=' + title; 2753 } 2754 url += '/'; 2755 $.ajax({ 2756 url: url, 2757 dataType: 'json', 2758 success: function (response) { 2759 var template, notAvailableImg; 2760 var playerObject = $('#video-container_' + componentId); 2761 var imgUrl = currentPlaylist[index].img.url; 2762 2763 if (response.player_code) { 2764 loadVideoIframe(response, playerObject, callsign); 2765 } else { 2766 var notAvailableVideo = $('<img />'); 2767 notAvailableVideo.attr('src', imgUrl); 2768 notAvailableVideo.attr('alt', 'Video is not available'); 2769 playerObject.html($(notAvailableVideo)); 2770 } 2771 2772 loadVideoMetadata(currentSettings, currentPlaylist[index], metadataSection); 2773 2774 }, 2775 error: function (xhr, status, err) { 2776 console.error(xhr, status, err.toString()); 2777 } 2778 }); 2779 } 2780 </script>
vendor: 1 bytes, line 2780
2780
2781<script> 2782 $(document).ready(function() { 2783 var currentPlaylist = playlistMapping['d67abb00-72c6-11ea-b321-218155bddf99']; 2784 var currentSettings = settingsMapping['d67abb00-72c6-11ea-b321-218155bddf99']; 2785 2786 window.youtubeIframeMap = window.youtubeIframeMap || {}; 2787 if(currentPlaylist[0].videoSource === 'youtube') { 2788 if (typeof window.youtubeIframeMap === 'undefined') { 2789 window.youtubeIframeMap = {}; 2790 } 2791 window.youtubeIframeMap['d67abb00-72c6-11ea-b321-218155bddf99'] = { 2792 'playlist': currentPlaylist, 2793 'settings': currentSettings, 2794 }; 2795 } 2796 2797 //check if single video & no metadata 2798 if ((currentPlaylist.length === 1 || !currentSettings.showPlaylist) && 2799 !currentSettings.showTitle && 2800 !currentSettings.showContentChannel && 2801 !currentSettings.showDescription && 2802 !currentSettings.showAdditionalMediaManagerInfo){ 2803 $('#video-component_' + 'd67abb00-72c6-11ea-b321-218155bddf99').css({border: 'none'}); 2804 } 2805 2806 // This code loads the IFrame Player API code asynchronously. 2807 var scriptTag = document.getElementById("youtube_iframe_api"); 2808 if(!scriptTag) { 2809 scriptTag = document.createElement('script'); 2810 scriptTag.src = "https://www.youtube.com/iframe_api"; 2811 scriptTag.id = "youtube_iframe_api"; 2812 var firstScriptTag = document.getElementsByTagName('script')[0]; 2813 firstScriptTag.parentNode.insertBefore(scriptTag, firstScriptTag); 2814 } 2815 }) 2816 2817 // This function creates an <iframe> (and YouTube player) after the API code downloads. 2818 function onYouTubeIframeAPIReady() { 2819 for (var componentId in window.youtubeIframeMap) { 2820 var currentPlaylist = window.youtubeIframeMap[componentId]['playlist']; 2821 var currentSettings = window.youtubeIframeMap[componentId]['settings']; 2822 loadYoutubeVideo(componentId, 0, currentPlaylist, currentSettings); 2823 } 2824 } 2825 2826 function loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings) { 2827 var player, playerVars; 2828 var videoComponent = '#video-component_' + componentId; 2829 var youtubeWrapper = document.createElement('div'); 2830 youtubeWrapper.id = 'youtube-wrapper_' + componentId; 2831 youtubeWrapper.className = 'youtube-wrapper video-container'; 2832 2833 $('#video-container_' + componentId).remove(); 2834 $('#youtube-wrapper_' + componentId).remove(); 2835 var videoContainerEl = document.createElement('div'); 2836 videoContainerEl.id = 'video-container_' + componentId; 2837 2838 $(videoComponent + ' .video-container__wrapper').prepend(youtubeWrapper); 2839 2840 $(videoComponent + ' .youtube-wrapper').prepend(videoContainerEl); 2841 2842 playerVars = Object.assign({}, 2843 { cc_load_policy: 1 }, 2844 (currentPlaylist[index].rel === false) && { rel: 0 }, 2845 (currentPlaylist[index].controls === false) && { controls: 0 }, 2846 (currentPlaylist[index].fs === false) && { fs: 0 }, 2847 (currentPlaylist[index].autoplay === true) && { autoplay: 1 }, 2848 (currentPlaylist[index].start > 0) && { start: currentPlaylist[index].start }, 2849 (currentPlaylist[index].end > 0 && currentPlaylist[index].start < currentPlaylist[index].end) && { end: currentPlaylist[index].end } 2850 ); 2851 2852 player = new YT.Player('video-container_' + componentId, { 2853 videoId: currentPlaylist[index].videoId, 2854 playerVars 2855 }); 2856 2857 currentSettings.showTitle && 2858 $(videoComponent + ' .title').html(currentPlaylist[index].title); 2859 2860 currentSettings.showContentChannel && 2861 $(videoComponent + ' .channel').html(currentPlaylist[index].channel); 2862 2863 currentSettings.showDescription && 2864 $(videoComponent + ' .description').html(currentPlaylist[index].description); 2865 2866 $(videoComponent + ' .additional-mm-info').remove(); 2867 } 2868</script>
vendor: 1 bytes, line 2868
2868
2869<script> 2870 2871 var playlistJson = [ 2872 { 2873 "id": "25e18393-0eb3-4a26-9e43-44b945f27a1b", 2874 "img": { 2875 "url": "http://image.pbs.org/video-assets/ZuA6TON-asset-mezzanine-16x9-hvmOb8C.png", 2876 "isDefault": false 2877 }, 2878 "url": "http://pbs.org/video/new-trailer-pfmro9/", 2879 "title": "\"Eva: A-7063\" Trailer", 2880 "rating": "", 2881 "channel": "Eva A-7063", 2882 "expires": "", 2883 "runtime": "2:11", 2884 "videoId": "new-trailer-pfmro9", 2885 "published": "2017/10/05", 2886 "description": "Watch the \"Eva: A-7063\" trailer. DVDs are available for purchase at www.TheStoryofEva.com", 2887 "videoSource": "cove", 2888 "partnerPlayerUrl": "ZOg-4mp5fTDkCaeAgF3x7A==", 2889 "titlePlaceholder": "Title", 2890 "channelPlaceholder": "Content channel", 2891 "descriptionPlaceholder": "Description" 2892 } 2893]; 2894 var settingsJson = { 2895 "showTitle": true, 2896 "showPlaylist": false, 2897 "playlistHeight": 4, 2898 "showDescription": false, 2899 "showContentChannel": false, 2900 "showAdditionalMediaManagerInfo": false 2901} 2902 2903 2904 2905 function updatePlaylistHeaderTabindex(componentId) { 2906 var playlistHeader = document.getElementById('playlist-header_' + componentId); 2907 if (!playlistHeader) return; 2908 var caret = playlistHeader.querySelector('.dropdown-caret'); 2909 if (window.innerWidth > 1023) { 2910 // On desktop with one-column layout, playlist header is not interactive 2911 if (caret && window.getComputedStyle(caret).display === 'none') { 2912 playlistHeader.disabled = true; 2913 playlistHeader.setAttribute('aria-disabled', 'true'); 2914 playlistHeader.setAttribute('tabindex', '-1'); 2915 } else { 2916 playlistHeader.disabled = false; 2917 playlistHeader.removeAttribute('aria-disabled'); 2918 playlistHeader.setAttribute('tabindex', '0'); 2919 } 2920 } else { 2921 playlistHeader.disabled = false; 2922 playlistHeader.removeAttribute('aria-disabled'); 2923 playlistHeader.setAttribute('tabindex', '0'); 2924 } 2925 } 2926 $(window).on('load', function(){ 2927 resizePlaylist('d67abb00-72c6-11ea-b321-218155bddf99'); 2928 updatePlaylistHeaderTabindex('d67abb00-72c6-11ea-b321-218155bddf99'); 2929 }); 2930 $(window).resize(function(){ 2931 resizePlaylist('d67abb00-72c6-11ea-b321-218155bddf99'); 2932 updatePlaylistHeaderTabindex('d67abb00-72c6-11ea-b321-218155bddf99'); 2933 }); 2934 2935 if (typeof window.playlistMapping === 'undefined') { 2936 window.playlistMapping = {}; 2937 } 2938 2939 if (typeof window.settingsMapping === 'undefined') { 2940 window.settingsMapping = {}; 2941 } 2942 window.playlistMapping['d67abb00-72c6-11ea-b321-218155bddf99'] = playlistJson; 2943 window.settingsMapping['d67abb00-72c6-11ea-b321-218155bddf99'] = settingsJson; 2944 2945 function resizePlaylist(componentId) { 2946 const videoComponent = $('#video-component_' + componentId); 2947 const playlistWrapper = videoComponent.find('.playlist__wrapper'); 2948 const playlistBody = playlistWrapper.find('.playlist-body'); 2949 const isSmallPlaylist = playlistWrapper.hasClass('playlist-sm'); 2950 const isLargeWindow = $(window).width() >= 1024; 2951 const isOneColWithPlaylist = videoComponent.hasClass('column-12'); 2952 if (isOneColWithPlaylist) { 2953 if(isLargeWindow) { 2954 const mainVideoHeight = videoComponent.find('.video-container').outerHeight() + 2955 videoComponent.find('.video-info').outerHeight() + 2956 (videoComponent.find('.video-cta-container').outerHeight(true) || 0); 2957 const playlistHeaderHeight = $('#playlist-header_' + componentId).outerHeight(); 2958 2959 playlistWrapper.css('height', mainVideoHeight + 'px'); 2960 playlistBody.css('max-height', (mainVideoHeight - playlistHeaderHeight) + 'px'); 2961 } 2962 else { 2963 playlistWrapper.css('height', 'auto'); 2964 playlistBody.css('max-height', '400px'); 2965 } 2966 } 2967 if(isSmallPlaylist){ 2968 const playlistItemImgWrapper = playlistWrapper.find('.playlist-item-img-wrapper'); 2969 const playlistItemInfo = playlistWrapper.find('.playlist-item-info'); 2970 if(!isLargeWindow) { 2971 $(playlistItemImgWrapper).removeClass('span6'); 2972 $(playlistItemInfo).removeClass('span6'); 2973 $(playlistItemImgWrapper).addClass('span4'); 2974 $(playlistItemInfo).addClass('span8'); 2975 } 2976 else { 2977 $(playlistItemImgWrapper).removeClass('span4'); 2978 $(playlistItemInfo).removeClass('span8'); 2979 $(playlistItemImgWrapper).addClass('span6'); 2980 $(playlistItemInfo).addClass('span6'); 2981 } 2982 } 2983 2984 } 2985 2986 function selectPlaylistItem(componentId, index, videoSource) { 2987 var currentPlaylist = playlistMapping[componentId]; 2988 var currentSettings = settingsMapping[componentId]; 2989 switch(videoSource) { 2990 case 'cove': 2991 loadMMVideo(componentId, index, currentPlaylist, currentSettings); 2992 break; 2993 case 'youtube': 2994 loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings); 2995 break; 2996 default: 2997 loadDefault(componentId, index, currentPlaylist, currentSettings); 2998 break; 2999 } 3000 3001 } 3002 3003 function loadDefault(componentId, index, currentPlaylist, currentSettings) { 3004 var youtubeWrapper = '#youtube-wrapper_' + componentId; 3005 var videoContainer = '#video-container_' + componentId; 3006 var videoComponent = '#video-component_' + componentId; 3007 3008 $(youtubeWrapper).remove(); 3009 $(videoContainer).remove(); 3010 3011 var videoContainerEl = document.createElement('div'); 3012 videoContainerEl.id = 'video-container_' + componentId; 3013 videoContainerEl.className = 'video-container'; 3014 $(videoComponent + ' .video-container__wrapper').prepend(vi
3014deoContainerEl); 3015 3016 var defaultImg = document.createElement('img'); 3017 defaultImg.alt = currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder; 3018 defaultImg.src = currentPlaylist[index].img.url; 3019 $(videoContainerEl).prepend(defaultImg); 3020 3021 currentSettings.showTitle && 3022 $(videoComponent + ' .title').html(currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder); 3023 3024 currentSettings.showContentChannel && 3025 $(videoComponent + ' .channel').html(currentPlaylist[index].channel||currentPlaylist[index].channelPlaceholder); 3026 3027 currentSettings.showDescription && 3028 $(videoComponent + ' .description').html(currentPlaylist[index].description||currentPlaylist[index].descriptionPlaceholder); 3029 3030 $(videoComponent + ' .additional-mm-info').remove(); 3031 } 3032 3033 function showCurrentIndex(index, componentId) { 3034 var itemsCount = $('#playlist-items-count_' + componentId); 3035 var currentItem = itemsCount.children('span'); 3036 currentItem.text(index + '/'); 3037 } 3038 3039 function togglePlaylist(componentId) { 3040 var playlistHeader = $('#playlist-header_' + componentId); 3041 // Do not toggle if the header is disabled 3042 if (playlistHeader.prop('disabled')) return; 3043 var caret = playlistHeader.find('.dropdown-caret'); 3044 // Only toggle if the caret is visible (not just present in DOM) 3045 if (caret.length && caret.is(':visible')) { 3046 var playlistBody = $('#playlist-body_' + componentId); 3047 playlistBody.css('overflow', 'auto'); 3048 playlistBody.slideToggle('slow', function(){ playlistBody.css('overflow','auto') }); 3049 playlistHeader.find('i').toggleClass('fa-caret-up fa-caret-down'); 3050 // Toggle aria-expanded for accessibility 3051 var isExpanded = playlistHeader.attr('aria-expanded') === 'true'; 3052 playlistHeader.attr('aria-expanded', !isExpanded); 3053 } 3054 } 3055 3056</script>
vendor: 1 bytes, line 3056
3056
3057<script> 3058 $(document).ready(function () { 3059 var currentPlaylist = playlistMapping['45f2b720-a04a-11ea-8060-eb8e37da56c5']; 3060 var currentSettings = settingsMapping['45f2b720-a04a-11ea-8060-eb8e37da56c5']; 3061 $('.playlist-item').on('click', function () { 3062 $(this).addClass('selected-item').siblings().removeClass('selected-item'); 3063 }); 3064 if (currentPlaylist[0].videoSource === 'cove') { 3065 loadMMVideo('45f2b720-a04a-11ea-8060-eb8e37da56c5', 0, currentPlaylist, currentSettings, 'WFYI'); 3066 } 3067 }); 3068 3069 function displayMMInfoItem(type, item, metadataSection) { 3070 var tag = ''; 3071 3072 var label = type && (type[0].toUpperCase() + type.slice(1)); 3073 var tag = type !== 'runtime' ? label : ''; 3074 3075 if (item) { 3076 $('<div class="additional-mm-info ' + type + '"></div>').appendTo(metadataSection); 3077 var mediaManagerInfoItem = $(metadataSection + ' .' + type); 3078 tag && mediaManagerInfoItem.html(label + ': '); 3079 mediaManagerInfoItem.append(item); 3080 } 3081 } 3082 3083 function fitMMVideo(elem) { 3084 var iFrame = elem; 3085 var aspectRatio = null; 3086 var actualPlayerWidth = iFrame.width(); 3087 var topBarHeight = 0; 3088 3089 3090 if (iFrame.attr("width") != '100%') { 3091 //for backwards compatibility use hardcoded old values for player dimensions 3092 try { 3093 var styleWidth = 512; 3094 var styleHeight = 288; 3095 aspectRatio = styleWidth / styleHeight; 3096 3097 iFrame.css({ 3098 "max-width": styleWidth, 3099 "max-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth, 3100 "min-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth 3101 }); 3102 } catch (e) { 3103 } 3104 } else { 3105 // the new player with width=100% and height=100% 3106 try { 3107 aspectRatio = 16 / 9; 3108 3109 if (iFrame.attr('src').indexOf('topbar=true') != -1) { 3110 topBarHeight = 40; 3111 } 3112 3113 iFrame.css({ 3114 "height": actualPlayerWidth / aspectRatio + topBarHeight, 3115 }); 3116 iFrame.parent().css({ 3117 "height": actualPlayerWidth / aspectRatio + topBarHeight, 3118 }); 3119 } catch (e) { 3120 } 3121 } 3122 } 3123 3124 function loadVideoIframe(response, playerObject, callsign) { 3125 var currentSettings = settingsMapping['45f2b720-a04a-11ea-8060-eb8e37da56c5']; 3126 template = response.player_code.template; 3127 var iframe = jQuery(template); 3128 iframe.attr('allow', 'encrypted-media'); 3129 iframe.attr('title', 'Video player'); 3130 /* WCAG 2.1 1.2.2: Ensure captions are enabled. The PBS partner player 3131 should have closed-caption tracks available by default. If captions 3132 are missing, content editors must provide them. */ 3133 3134 if (callsign) { 3135 iframe.attr('src', function (i, e) { 3136 return e += '&callsign=' + callsign; 3137 }) 3138 } 3139 iframe.attr('src', function (i, e) { 3140 return e += '&endscreen=' + !!currentSettings.endScreen; 3141 }) 3142 playerObject.html(iframe); 3143 fitMMVideo(iframe); 3144 iframe.on('load', function () { 3145 fitMMVideo(jQuery(this)); 3146 }); 3147 } 3148 3149 function loadVideoMetadata(currentSettings, item, metadataSection) { 3150 currentSettings.showTitle && 3151 $(metadataSection + ' .title').html(item.title); 3152 3153 currentSettings.showContentChannel && 3154 $(metadataSection + ' .channel').html(item.channel); 3155 3156 $(metadataSection + ' .additional-mm-info').remove(); 3157 if (currentSettings.showAdditionalMediaManagerInfo) { 3158 var mediaManagerInfoTypes = ['runtime', 'published', 'expires', 'rating']; 3159 var mediaManagerInfoTypesLength = mediaManagerInfoTypes.length; 3160 for (var i = 0; i <= mediaManagerInfoTypesLength; i++) { 3161 displayMMInfoItem(mediaManagerInfoTypes[i], item[mediaManagerInfoTypes[i]], metadataSection); 3162 } 3163 } 3164 3165 if (currentSettings.showDescription) { 3166 $(metadataSection + ' .description').remove(); 3167 $('<p class="description"></p>').appendTo(metadataSection); 3168 $(metadataSection + ' .description').html(item.description); 3169 } 3170 } 3171 3172 function loadMMVideo(componentId, index, currentPlaylist, currentSettings, c
3172allsign) { 3173 var youtubeWrapper = '#youtube-wrapper_' + componentId; 3174 var videoContainer = '#video-container_' + componentId; 3175 var videoComponent = '#video-component_' + componentId; 3176 var videoContainerWrapper = videoComponent + ' .video-container__wrapper'; 3177 var metadataSection = videoComponent + ' .video-info'; 3178 3179 $(youtubeWrapper).remove(); 3180 $(videoContainer).remove(); 3181 3182 var videoContainerEl = document.createElement('div'); 3183 videoContainerEl.id = 'video-container_' + componentId; 3184 videoContainerEl.className = 'video-container'; 3185 $(videoContainerWrapper).prepend(videoContainerEl); 3186 var videoId = currentPlaylist[index].videoId; 3187 var title = currentPlaylist[index].title; 3188 var partnerPlayerUrl = currentPlaylist[index].partnerPlayerUrl; 3189 var APIBaseURL = PBS.BentoConfig.APIBaseURL || '/'; 3190 var url = APIBaseURL + 'merlin_plugin/video_frame/'; 3191 url += partnerPlayerUrl ? partnerPlayerUrl : videoId; 3192 if (callsign) { 3193 url += '/?callsign=' + callsign + '&title=' + title; 3194 } 3195 url += '/'; 3196 $.ajax({ 3197 url: url, 3198 dataType: 'json', 3199 success: function (response) { 3200 var template, notAvailableImg; 3201 var playerObject = $('#video-container_' + componentId); 3202 var imgUrl = currentPlaylist[index].img.url; 3203 3204 if (response.player_code) { 3205 loadVideoIframe(response, playerObject, callsign); 3206 } else { 3207 var notAvailableVideo = $('<img />'); 3208 notAvailableVideo.attr('src', imgUrl); 3209 notAvailableVideo.attr('alt', 'Video is not available'); 3210 playerObject.html($(notAvailableVideo)); 3211 } 3212 3213 loadVideoMetadata(currentSettings, currentPlaylist[index], metadataSection); 3214 3215 }, 3216 error: function (xhr, status, err) { 3217 console.error(xhr, status, err.toString()); 3218 } 3219 }); 3220 } 3221 </script>
vendor: 1 bytes, line 3221
3221
3222<script> 3223 $(document).ready(function() { 3224 var currentPlaylist = playlistMapping['45f2b720-a04a-11ea-8060-eb8e37da56c5']; 3225 var currentSettings = settingsMapping['45f2b720-a04a-11ea-8060-eb8e37da56c5']; 3226 3227 window.youtubeIframeMap = window.youtubeIframeMap || {}; 3228 if(currentPlaylist[0].videoSource === 'youtube') { 3229 if (typeof window.youtubeIframeMap === 'undefined') { 3230 window.youtubeIframeMap = {}; 3231 } 3232 window.youtubeIframeMap['45f2b720-a04a-11ea-8060-eb8e37da56c5'] = { 3233 'playlist': currentPlaylist, 3234 'settings': currentSettings, 3235 }; 3236 } 3237 3238 //check if single video & no metadata 3239 if ((currentPlaylist.length === 1 || !currentSettings.showPlaylist) && 3240 !currentSettings.showTitle && 3241 !currentSettings.showContentChannel && 3242 !currentSettings.showDescription && 3243 !currentSettings.showAdditionalMediaManagerInfo){ 3244 $('#video-component_' + '45f2b720-a04a-11ea-8060-eb8e37da56c5').css({border: 'none'}); 3245 } 3246 3247 // This code loads the IFrame Player API code asynchronously. 3248 var scriptTag = document.getElementById("youtube_iframe_api"); 3249 if(!scriptTag) { 3250 scriptTag = document.createElement('script'); 3251 scriptTag.src = "https://www.youtube.com/iframe_api"; 3252 scriptTag.id = "youtube_iframe_api"; 3253 var firstScriptTag = document.getElementsByTagName('script')[0]; 3254 firstScriptTag.parentNode.insertBefore(scriptTag, firstScriptTag); 3255 } 3256 }) 3257 3258 // This function creates an <iframe> (and YouTube player) after the API code downloads. 3259 function onYouTubeIframeAPIReady() { 3260 for (var componentId in window.youtubeIframeMap) { 3261 var currentPlaylist = window.youtubeIframeMap[componentId]['playlist']; 3262 var currentSettings = window.youtubeIframeMap[componentId]['settings']; 3263 loadYoutubeVideo(componentId, 0, currentPlaylist, currentSettings); 3264 } 3265 } 3266 3267 function loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings) { 3268 var player, playerVars; 3269 var videoComponent = '#video-component_' + componentId; 3270 var youtubeWrapper = document.createElement('div'); 3271 youtubeWrapper.id = 'youtube-wrapper_' + componentId; 3272 youtubeWrapper.className = 'youtube-wrapper video-container'; 3273 3274 $('#video-container_' + componentId).remove(); 3275 $('#youtube-wrapper_' + componentId).remove(); 3276 var videoContainerEl = document.createElement('div'); 3277 videoContainerEl.id = 'video-container_' + componentId; 3278 3279 $(videoComponent + ' .video-container__wrapper').prepend(youtubeWrapper); 3280 3281 $(videoComponent + ' .youtube-wrapper').prepend(videoContainerEl); 3282 3283 playerVars = Object.assign({}, 3284 { cc_load_policy: 1 }, 3285 (currentPlaylist[index].rel === false) && { rel: 0 }, 3286 (currentPlaylist[index].controls === false) && { controls: 0 }, 3287 (currentPlaylist[index].fs === false) && { fs: 0 }, 3288 (currentPlaylist[index].autoplay === true) && { autoplay: 1 }, 3289 (currentPlaylist[index].start > 0) && { start: currentPlaylist[index].start }, 3290 (currentPlaylist[index].end > 0 && currentPlaylist[index].start < currentPlaylist[index].end) && { end: currentPlaylist[index].end } 3291 ); 3292 3293 player = new YT.Player('video-container_' + componentId, { 3294 videoId: currentPlaylist[index].videoId, 3295 playerVars 3296 }); 3297 3298 currentSettings.showTitle && 3299 $(videoComponent + ' .title').html(currentPlaylist[index].title); 3300 3301 currentSettings.showContentChannel && 3302 $(videoComponent + ' .channel').html(currentPlaylist[index].channel); 3303 3304 currentSettings.showDescription && 3305 $(videoComponent + ' .description').html(currentPlaylist[index].description); 3306 3307 $(videoComponent + ' .additional-mm-info').remove(); 3308 } 3309</script>
vendor: 1 bytes, line 3309
3309
3310<script> 3311 3312 var playlistJson = [ 3313 { 3314 "id": "904b13d1-147d-4a46-9be1-9bd1fe58c410", 3315 "img": { 3316 "url": "https://image.pbs.org/video-assets/uqPtG4C-asset-mezzanine-16x9-MOXRp28.png", 3317 "isDefault": false 3318 }, 3319 "url": "http://pbs.org/video/impact-eva-tegdp1/", 3320 "title": "\"Eva: A-7063\" Impact", 3321 "rating": "", 3322 "channel": "Eva A-7063", 3323 "expires": "", 3324 "runtime": "1:38", 3325 "videoId": "impact-eva-tegdp1", 3326 "published": "2019/02/25", 3327 "description": "What started as a film has become a movement.", 3328 "videoSource": "cove", 3329 "partnerPlayerUrl": "H9aOZmV8jnTyNaRVyHarag==", 3330 "titlePlaceholder": "Title", 3331 "channelPlaceholder": "Content channel", 3332 "descriptionPlaceholder": "Description" 3333 } 3334]; 3335 var settingsJson = { 3336 "showTitle": true, 3337 "showPlaylist": false, 3338 "playlistHeight": 4, 3339 "showDescription": false, 3340 "showContentChannel": false, 3341 "showAdditionalMediaManagerInfo": false 3342} 3343 3344 3345 3346 function updatePlaylistHeaderTabindex(componentId) { 3347 var playlistHeader = document.getElementById('playlist-header_' + componentId); 3348 if (!playlistHeader) return; 3349 var caret = playlistHeader.querySelector('.dropdown-caret'); 3350 if (window.innerWidth > 1023) { 3351 // On desktop with one-column layout, playlist header is not interactive 3352 if (caret && window.getComputedStyle(caret).display === 'none') { 3353 playlistHeader.disabled = true; 3354 playlistHeader.setAttribute('aria-disabled', 'true'); 3355 playlistHeader.setAttribute('tabindex', '-1'); 3356 } else { 3357 playlistHeader.disabled = false; 3358 playlistHeader.removeAttribute('aria-disabled'); 3359 playlistHeader.setAttribute('tabindex', '0'); 3360 } 3361 } else { 3362 playlistHeader.disabled = false; 3363 playlistHeader.removeAttribute('aria-disabled'); 3364 playlistHeader.setAttribute('tabindex', '0'); 3365 } 3366 } 3367 $(window).on('load', function(){ 3368 resizePlaylist('45f2b720-a04a-11ea-8060-eb8e37da56c5'); 3369 updatePlaylistHeaderTabindex('45f2b720-a04a-11ea-8060-eb8e37da56c5'); 3370 }); 3371 $(window).resize(function(){ 3372 resizePlaylist('45f2b720-a04a-11ea-8060-eb8e37da56c5'); 3373 updatePlaylistHeaderTabindex('45f2b720-a04a-11ea-8060-eb8e37da56c5'); 3374 }); 3375 3376 if (typeof window.playlistMapping === 'undefined') { 3377 window.playlistMapping = {}; 3378 } 3379 3380 if (typeof window.settingsMapping === 'undefined') { 3381 window.settingsMapping = {}; 3382 } 3383 window.playlistMapping['45f2b720-a04a-11ea-8060-eb8e37da56c5'] = playlistJson; 3384 window.settingsMapping['45f2b720-a04a-11ea-8060-eb8e37da56c5'] = settingsJson; 3385 3386 function resizePlaylist(componentId) { 3387 const videoComponent = $('#video-component_' + componentId); 3388 const playlistWrapper = videoComponent.find('.playlist__wrapper'); 3389 const playlistBody = playlistWrapper.find('.playlist-body'); 3390 const isSmallPlaylist = playlistWrapper.hasClass('playlist-sm'); 3391 const isLargeWindow = $(window).width() >= 1024; 3392 const isOneColWithPlaylist = videoComponent.hasClass('column-12'); 3393 if (isOneColWithPlaylist) { 3394 if(isLargeWindow) { 3395 const mainVideoHeight = videoComponent.find('.video-container').outerHeight() + 3396 videoComponent.find('.video-info').outerHeight() + 3397 (videoComponent.find('.video-cta-container').outerHeight(true) || 0); 3398 const playlistHeaderHeight = $('#playlist-header_' + componentId).outerHeight(); 3399 3400 playlistWrapper.css('height', mainVideoHeight + 'px'); 3401 playlistBody.css('max-height', (mainVideoHeight - playlistHeaderHeight) + 'px'); 3402 } 3403 else { 3404 playlistWrapper.css('height', 'auto'); 3405 playlistBody.css('max-height', '400px'); 3406 } 3407 } 3408 if(isSmallPlaylist){ 3409 const playlistItemImgWrapper = playlistWrapper.find('.playlist-item-img-wrapper'); 3410 const playlistItemInfo = playlistWrapper.find('.playlist-item-info'); 3411 if(!isLargeWindow) { 3412 $(playlistItemImgWrapper).removeClass('span6'); 3413 $(playlistItemInfo).removeClass('span6'); 3414 $(playlistItemImgWrapper).addClass('span4'); 3415 $(playlistItemInfo).addClass('span8'); 3416 } 3417 else { 3418 $(playlistItemImgWrapper).removeClass('span4'); 3419 $(playlistItemInfo).removeClass('span8'); 3420 $(playlistItemImgWrapper).addClass('span6'); 3421 $(playlistItemInfo).addClass('span6'); 3422 } 3423 } 3424 3425 } 3426 3427 function selectPlaylistItem(componentId, index, videoSource) { 3428 var currentPlaylist = playlistMapping[componentId]; 3429 var currentSettings = settingsMapping[componentId]; 3430 switch(videoSource) { 3431 case 'cove': 3432 loadMMVideo(componentId, index, currentPlaylist, currentSettings); 3433 break; 3434 case 'youtube': 3435 loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings); 3436 break; 3437 default: 3438 loadDefault(componentId, index, currentPlaylist, currentSettings); 3439 break; 3440 } 3441 3442 } 3443 3444 function loadDefault(componentId, index, currentPlaylist, currentSettings) { 3445 var youtubeWrapper = '#youtube-wrapper_' + componentId; 3446 var videoContainer = '#video-container_' + componentId; 3447 var videoComponent = '#video-component_' + componentId; 3448 3449 $(youtubeWrapper).remove(); 3450 $(videoContainer).remove(); 3451 3452 var videoContainerEl = document.createElement('div'); 3453 videoContainerEl.id = 'video-container_' + componentId; 3454 videoContainerEl.className = 'video-container'; 3455 $(videoComponent + ' .video-container__wrapper').prepend(vi
3455deoContainerEl); 3456 3457 var defaultImg = document.createElement('img'); 3458 defaultImg.alt = currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder; 3459 defaultImg.src = currentPlaylist[index].img.url; 3460 $(videoContainerEl).prepend(defaultImg); 3461 3462 currentSettings.showTitle && 3463 $(videoComponent + ' .title').html(currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder); 3464 3465 currentSettings.showContentChannel && 3466 $(videoComponent + ' .channel').html(currentPlaylist[index].channel||currentPlaylist[index].channelPlaceholder); 3467 3468 currentSettings.showDescription && 3469 $(videoComponent + ' .description').html(currentPlaylist[index].description||currentPlaylist[index].descriptionPlaceholder); 3470 3471 $(videoComponent + ' .additional-mm-info').remove(); 3472 } 3473 3474 function showCurrentIndex(index, componentId) { 3475 var itemsCount = $('#playlist-items-count_' + componentId); 3476 var currentItem = itemsCount.children('span'); 3477 currentItem.text(index + '/'); 3478 } 3479 3480 function togglePlaylist(componentId) { 3481 var playlistHeader = $('#playlist-header_' + componentId); 3482 // Do not toggle if the header is disabled 3483 if (playlistHeader.prop('disabled')) return; 3484 var caret = playlistHeader.find('.dropdown-caret'); 3485 // Only toggle if the caret is visible (not just present in DOM) 3486 if (caret.length && caret.is(':visible')) { 3487 var playlistBody = $('#playlist-body_' + componentId); 3488 playlistBody.css('overflow', 'auto'); 3489 playlistBody.slideToggle('slow', function(){ playlistBody.css('overflow','auto') }); 3490 playlistHeader.find('i').toggleClass('fa-caret-up fa-caret-down'); 3491 // Toggle aria-expanded for accessibility 3492 var isExpanded = playlistHeader.attr('aria-expanded') === 'true'; 3493 playlistHeader.attr('aria-expanded', !isExpanded); 3494 } 3495 } 3496 3497</script>
vendor: 1 bytes, line 3497
3497
3498<script> 3499 $(document).ready(function () { 3500 var currentPlaylist = playlistMapping['de64bc60-2b60-11ea-a780-f5f0e97c77ca']; 3501 var currentSettings = settingsMapping['de64bc60-2b60-11ea-a780-f5f0e97c77ca']; 3502 $('.playlist-item').on('click', function () { 3503 $(this).addClass('selected-item').siblings().removeClass('selected-item'); 3504 }); 3505 if (currentPlaylist[0].videoSource === 'cove') { 3506 loadMMVideo('de64bc60-2b60-11ea-a780-f5f0e97c77ca', 0, currentPlaylist, currentSettings, 'WFYI'); 3507 } 3508 }); 3509 3510 function displayMMInfoItem(type, item, metadataSection) { 3511 var tag = ''; 3512 3513 var label = type && (type[0].toUpperCase() + type.slice(1)); 3514 var tag = type !== 'runtime' ? label : ''; 3515 3516 if (item) { 3517 $('<div class="additional-mm-info ' + type + '"></div>').appendTo(metadataSection); 3518 var mediaManagerInfoItem = $(metadataSection + ' .' + type); 3519 tag && mediaManagerInfoItem.html(label + ': '); 3520 mediaManagerInfoItem.append(item); 3521 } 3522 } 3523 3524 function fitMMVideo(elem) { 3525 var iFrame = elem; 3526 var aspectRatio = null; 3527 var actualPlayerWidth = iFrame.width(); 3528 var topBarHeight = 0; 3529 3530 3531 if (iFrame.attr("width") != '100%') { 3532 //for backwards compatibility use hardcoded old values for player dimensions 3533 try { 3534 var styleWidth = 512; 3535 var styleHeight = 288; 3536 aspectRatio = styleWidth / styleHeight; 3537 3538 iFrame.css({ 3539 "max-width": styleWidth, 3540 "max-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth, 3541 "min-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth 3542 }); 3543 } catch (e) { 3544 } 3545 } else { 3546 // the new player with width=100% and height=100% 3547 try { 3548 aspectRatio = 16 / 9; 3549 3550 if (iFrame.attr('src').indexOf('topbar=true') != -1) { 3551 topBarHeight = 40; 3552 } 3553 3554 iFrame.css({ 3555 "height": actualPlayerWidth / aspectRatio + topBarHeight, 3556 }); 3557 iFrame.parent().css({ 3558 "height": actualPlayerWidth / aspectRatio + topBarHeight, 3559 }); 3560 } catch (e) { 3561 } 3562 } 3563 } 3564 3565 function loadVideoIframe(response, playerObject, callsign) { 3566 var currentSettings = settingsMapping['de64bc60-2b60-11ea-a780-f5f0e97c77ca']; 3567 template = response.player_code.template; 3568 var iframe = jQuery(template); 3569 iframe.attr('allow', 'encrypted-media'); 3570 iframe.attr('title', 'Video player'); 3571 /* WCAG 2.1 1.2.2: Ensure captions are enabled. The PBS partner player 3572 should have closed-caption tracks available by default. If captions 3573 are missing, content editors must provide them. */ 3574 3575 if (callsign) { 3576 iframe.attr('src', function (i, e) { 3577 return e += '&callsign=' + callsign; 3578 }) 3579 } 3580 iframe.attr('src', function (i, e) { 3581 return e += '&endscreen=' + !!currentSettings.endScreen; 3582 }) 3583 playerObject.html(iframe); 3584 fitMMVideo(iframe); 3585 iframe.on('load', function () { 3586 fitMMVideo(jQuery(this)); 3587 }); 3588 } 3589 3590 function loadVideoMetadata(currentSettings, item, metadataSection) { 3591 currentSettings.showTitle && 3592 $(metadataSection + ' .title').html(item.title); 3593 3594 currentSettings.showContentChannel && 3595 $(metadataSection + ' .channel').html(item.channel); 3596 3597 $(metadataSection + ' .additional-mm-info').remove(); 3598 if (currentSettings.showAdditionalMediaManagerInfo) { 3599 var mediaManagerInfoTypes = ['runtime', 'published', 'expires', 'rating']; 3600 var mediaManagerInfoTypesLength = mediaManagerInfoTypes.length; 3601 for (var i = 0; i <= mediaManagerInfoTypesLength; i++) { 3602 displayMMInfoItem(mediaManagerInfoTypes[i], item[mediaManagerInfoTypes[i]], metadataSection); 3603 } 3604 } 3605 3606 if (currentSettings.showDescription) { 3607 $(metadataSection + ' .description').remove(); 3608 $('<p class="description"></p>').appendTo(metadataSection); 3609 $(metadataSection + ' .description').html(item.description); 3610 } 3611 } 3612 3613 function loadMMVideo(componentId, index, currentPlaylist, currentSettings, c
3613allsign) { 3614 var youtubeWrapper = '#youtube-wrapper_' + componentId; 3615 var videoContainer = '#video-container_' + componentId; 3616 var videoComponent = '#video-component_' + componentId; 3617 var videoContainerWrapper = videoComponent + ' .video-container__wrapper'; 3618 var metadataSection = videoComponent + ' .video-info'; 3619 3620 $(youtubeWrapper).remove(); 3621 $(videoContainer).remove(); 3622 3623 var videoContainerEl = document.createElement('div'); 3624 videoContainerEl.id = 'video-container_' + componentId; 3625 videoContainerEl.className = 'video-container'; 3626 $(videoContainerWrapper).prepend(videoContainerEl); 3627 var videoId = currentPlaylist[index].videoId; 3628 var title = currentPlaylist[index].title; 3629 var partnerPlayerUrl = currentPlaylist[index].partnerPlayerUrl; 3630 var APIBaseURL = PBS.BentoConfig.APIBaseURL || '/'; 3631 var url = APIBaseURL + 'merlin_plugin/video_frame/'; 3632 url += partnerPlayerUrl ? partnerPlayerUrl : videoId; 3633 if (callsign) { 3634 url += '/?callsign=' + callsign + '&title=' + title; 3635 } 3636 url += '/'; 3637 $.ajax({ 3638 url: url, 3639 dataType: 'json', 3640 success: function (response) { 3641 var template, notAvailableImg; 3642 var playerObject = $('#video-container_' + componentId); 3643 var imgUrl = currentPlaylist[index].img.url; 3644 3645 if (response.player_code) { 3646 loadVideoIframe(response, playerObject, callsign); 3647 } else { 3648 var notAvailableVideo = $('<img />'); 3649 notAvailableVideo.attr('src', imgUrl); 3650 notAvailableVideo.attr('alt', 'Video is not available'); 3651 playerObject.html($(notAvailableVideo)); 3652 } 3653 3654 loadVideoMetadata(currentSettings, currentPlaylist[index], metadataSection); 3655 3656 }, 3657 error: function (xhr, status, err) { 3658 console.error(xhr, status, err.toString()); 3659 } 3660 }); 3661 } 3662 </script>
vendor: 1 bytes, line 3662
3662
3663<script> 3664 $(document).ready(function() { 3665 var currentPlaylist = playlistMapping['de64bc60-2b60-11ea-a780-f5f0e97c77ca']; 3666 var currentSettings = settingsMapping['de64bc60-2b60-11ea-a780-f5f0e97c77ca']; 3667 3668 window.youtubeIframeMap = window.youtubeIframeMap || {}; 3669 if(currentPlaylist[0].videoSource === 'youtube') { 3670 if (typeof window.youtubeIframeMap === 'undefined') { 3671 window.youtubeIframeMap = {}; 3672 } 3673 window.youtubeIframeMap['de64bc60-2b60-11ea-a780-f5f0e97c77ca'] = { 3674 'playlist': currentPlaylist, 3675 'settings': currentSettings, 3676 }; 3677 } 3678 3679 //check if single video & no metadata 3680 if ((currentPlaylist.length === 1 || !currentSettings.showPlaylist) && 3681 !currentSettings.showTitle && 3682 !currentSettings.showContentChannel && 3683 !currentSettings.showDescription && 3684 !currentSettings.showAdditionalMediaManagerInfo){ 3685 $('#video-component_' + 'de64bc60-2b60-11ea-a780-f5f0e97c77ca').css({border: 'none'}); 3686 } 3687 3688 // This code loads the IFrame Player API code asynchronously. 3689 var scriptTag = document.getElementById("youtube_iframe_api"); 3690 if(!scriptTag) { 3691 scriptTag = document.createElement('script'); 3692 scriptTag.src = "https://www.youtube.com/iframe_api"; 3693 scriptTag.id = "youtube_iframe_api"; 3694 var firstScriptTag = document.getElementsByTagName('script')[0]; 3695 firstScriptTag.parentNode.insertBefore(scriptTag, firstScriptTag); 3696 } 3697 }) 3698 3699 // This function creates an <iframe> (and YouTube player) after the API code downloads. 3700 function onYouTubeIframeAPIReady() { 3701 for (var componentId in window.youtubeIframeMap) { 3702 var currentPlaylist = window.youtubeIframeMap[componentId]['playlist']; 3703 var currentSettings = window.youtubeIframeMap[componentId]['settings']; 3704 loadYoutubeVideo(componentId, 0, currentPlaylist, currentSettings); 3705 } 3706 } 3707 3708 function loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings) { 3709 var player, playerVars; 3710 var videoComponent = '#video-component_' + componentId; 3711 var youtubeWrapper = document.createElement('div'); 3712 youtubeWrapper.id = 'youtube-wrapper_' + componentId; 3713 youtubeWrapper.className = 'youtube-wrapper video-container'; 3714 3715 $('#video-container_' + componentId).remove(); 3716 $('#youtube-wrapper_' + componentId).remove(); 3717 var videoContainerEl = document.createElement('div'); 3718 videoContainerEl.id = 'video-container_' + componentId; 3719 3720 $(videoComponent + ' .video-container__wrapper').prepend(youtubeWrapper); 3721 3722 $(videoComponent + ' .youtube-wrapper').prepend(videoContainerEl); 3723 3724 playerVars = Object.assign({}, 3725 { cc_load_policy: 1 }, 3726 (currentPlaylist[index].rel === false) && { rel: 0 }, 3727 (currentPlaylist[index].controls === false) && { controls: 0 }, 3728 (currentPlaylist[index].fs === false) && { fs: 0 }, 3729 (currentPlaylist[index].autoplay === true) && { autoplay: 1 }, 3730 (currentPlaylist[index].start > 0) && { start: currentPlaylist[index].start }, 3731 (currentPlaylist[index].end > 0 && currentPlaylist[index].start < currentPlaylist[index].end) && { end: currentPlaylist[index].end } 3732 ); 3733 3734 player = new YT.Player('video-container_' + componentId, { 3735 videoId: currentPlaylist[index].videoId, 3736 playerVars 3737 }); 3738 3739 currentSettings.showTitle && 3740 $(videoComponent + ' .title').html(currentPlaylist[index].title); 3741 3742 currentSettings.showContentChannel && 3743 $(videoComponent + ' .channel').html(currentPlaylist[index].channel); 3744 3745 currentSettings.showDescription && 3746 $(videoComponent + ' .description').html(currentPlaylist[index].description); 3747 3748 $(videoComponent + ' .additional-mm-info').remove(); 3749 } 3750</script>
vendor: 1 bytes, line 3750
3750
3751<script> 3752 3753 var playlistJson = [ 3754 { 3755 "id": "60cb6d08-4534-4ab0-962e-e92351915e88", 3756 "img": { 3757 "url": "https://image.pbs.org/video-assets/rAiKPzb-asset-mezzanine-16x9-lCuixat.png", 3758 "isDefault": false 3759 }, 3760 "url": "http://pbs.org/video/eva-outreach-and-education-program-hxri1z/", 3761 "title": "Eva Outreach and Education Program", 3762 "rating": "", 3763 "channel": "Eva A-7063", 3764 "expires": "", 3765 "runtime": "2:18", 3766 "videoId": "eva-outreach-and-education-program-hxri1z", 3767 "published": "2019/12/30", 3768 "description": "Explore the work of the Eva Outreach and Education Program", 3769 "videoSource": "cove", 3770 "partnerPlayerUrl": "1yADora_2KIeudmp-Kd6XQ==", 3771 "titlePlaceholder": "Title", 3772 "channelPlaceholder": "Content channel", 3773 "descriptionPlaceholder": "Description" 3774 } 3775]; 3776 var settingsJson = { 3777 "showTitle": true, 3778 "showPlaylist": false, 3779 "playlistHeight": 4, 3780 "showDescription": false, 3781 "showContentChannel": false, 3782 "showAdditionalMediaManagerInfo": false 3783} 3784 3785 3786 3787 function updatePlaylistHeaderTabindex(componentId) { 3788 var playlistHeader = document.getElementById('playlist-header_' + componentId); 3789 if (!playlistHeader) return; 3790 var caret = playlistHeader.querySelector('.dropdown-caret'); 3791 if (window.innerWidth > 1023) { 3792 // On desktop with one-column layout, playlist header is not interactive 3793 if (caret && window.getComputedStyle(caret).display === 'none') { 3794 playlistHeader.disabled = true; 3795 playlistHeader.setAttribute('aria-disabled', 'true'); 3796 playlistHeader.setAttribute('tabindex', '-1'); 3797 } else { 3798 playlistHeader.disabled = false; 3799 playlistHeader.removeAttribute('aria-disabled'); 3800 playlistHeader.setAttribute('tabindex', '0'); 3801 } 3802 } else { 3803 playlistHeader.disabled = false; 3804 playlistHeader.removeAttribute('aria-disabled'); 3805 playlistHeader.setAttribute('tabindex', '0'); 3806 } 3807 } 3808 $(window).on('load', function(){ 3809 resizePlaylist('de64bc60-2b60-11ea-a780-f5f0e97c77ca'); 3810 updatePlaylistHeaderTabindex('de64bc60-2b60-11ea-a780-f5f0e97c77ca'); 3811 }); 3812 $(window).resize(function(){ 3813 resizePlaylist('de64bc60-2b60-11ea-a780-f5f0e97c77ca'); 3814 updatePlaylistHeaderTabindex('de64bc60-2b60-11ea-a780-f5f0e97c77ca'); 3815 }); 3816 3817 if (typeof window.playlistMapping === 'undefined') { 3818 window.playlistMapping = {}; 3819 } 3820 3821 if (typeof window.settingsMapping === 'undefined') { 3822 window.settingsMapping = {}; 3823 } 3824 window.playlistMapping['de64bc60-2b60-11ea-a780-f5f0e97c77ca'] = playlistJson; 3825 window.settingsMapping['de64bc60-2b60-11ea-a780-f5f0e97c77ca'] = settingsJson; 3826 3827 function resizePlaylist(componentId) { 3828 const videoComponent = $('#video-component_' + componentId); 3829 const playlistWrapper = videoComponent.find('.playlist__wrapper'); 3830 const playlistBody = playlistWrapper.find('.playlist-body'); 3831 const isSmallPlaylist = playlistWrapper.hasClass('playlist-sm'); 3832 const isLargeWindow = $(window).width() >= 1024; 3833 const isOneColWithPlaylist = videoComponent.hasClass('column-12'); 3834 if (isOneColWithPlaylist) { 3835 if(isLargeWindow) { 3836 const mainVideoHeight = videoComponent.find('.video-container').outerHeight() + 3837 videoComponent.find('.video-info').outerHeight() + 3838 (videoComponent.find('.video-cta-container').outerHeight(true) || 0); 3839 const playlistHeaderHeight = $('#playlist-header_' + componentId).outerHeight(); 3840 3841 playlistWrapper.css('height', mainVideoHeight + 'px'); 3842 playlistBody.css('max-height', (mainVideoHeight - playlistHeaderHeight) + 'px'); 3843 } 3844 else { 3845 playlistWrapper.css('height', 'auto'); 3846 playlistBody.css('max-height', '400px'); 3847 } 3848 } 3849 if(isSmallPlaylist){ 3850 const playlistItemImgWrapper = playlistWrapper.find('.playlist-item-img-wrapper'); 3851 const playlistItemInfo = playlistWrapper.find('.playlist-item-info'); 3852 if(!isLargeWindow) { 3853 $(playlistItemImgWrapper).removeClass('span6'); 3854 $(playlistItemInfo).removeClass('span6'); 3855 $(playlistItemImgWrapper).addClass('span4'); 3856 $(playlistItemInfo).addClass('span8'); 3857 } 3858 else { 3859 $(playlistItemImgWrapper).removeClass('span4'); 3860 $(playlistItemInfo).removeClass('span8'); 3861 $(playlistItemImgWrapper).addClass('span6'); 3862 $(playlistItemInfo).addClass('span6'); 3863 } 3864 } 3865 3866 } 3867 3868 function selectPlaylistItem(componentId, index, videoSource) { 3869 var currentPlaylist = playlistMapping[componentId]; 3870 var currentSettings = settingsMapping[componentId]; 3871 switch(videoSource) { 3872 case 'cove': 3873 loadMMVideo(componentId, index, currentPlaylist, currentSettings); 3874 break; 3875 case 'youtube': 3876 loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings); 3877 break; 3878 default: 3879 loadDefault(componentId, index, currentPlaylist, currentSettings); 3880 break; 3881 } 3882 3883 } 3884 3885 function loadDefault(componentId, index, currentPlaylist, currentSettings) { 3886 var youtubeWrapper = '#youtube-wrapper_' + componentId; 3887 var videoContainer = '#video-container_' + componentId; 3888 var videoComponent = '#video-component_' + componentId; 3889 3890 $(youtubeWrapper).remove(); 3891 $(videoContainer).remove(); 3892 3893 var videoContainerEl = document.createElement('div'); 3894 videoContainerEl.id = 'video-container_' + componentId; 3895 videoContainerEl.className = 'video-container'; 3896 $(videoComponent + ' .video-container__wrapper').prepend(vi
3896deoContainerEl); 3897 3898 var defaultImg = document.createElement('img'); 3899 defaultImg.alt = currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder; 3900 defaultImg.src = currentPlaylist[index].img.url; 3901 $(videoContainerEl).prepend(defaultImg); 3902 3903 currentSettings.showTitle && 3904 $(videoComponent + ' .title').html(currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder); 3905 3906 currentSettings.showContentChannel && 3907 $(videoComponent + ' .channel').html(currentPlaylist[index].channel||currentPlaylist[index].channelPlaceholder); 3908 3909 currentSettings.showDescription && 3910 $(videoComponent + ' .description').html(currentPlaylist[index].description||currentPlaylist[index].descriptionPlaceholder); 3911 3912 $(videoComponent + ' .additional-mm-info').remove(); 3913 } 3914 3915 function showCurrentIndex(index, componentId) { 3916 var itemsCount = $('#playlist-items-count_' + componentId); 3917 var currentItem = itemsCount.children('span'); 3918 currentItem.text(index + '/'); 3919 } 3920 3921 function togglePlaylist(componentId) { 3922 var playlistHeader = $('#playlist-header_' + componentId); 3923 // Do not toggle if the header is disabled 3924 if (playlistHeader.prop('disabled')) return; 3925 var caret = playlistHeader.find('.dropdown-caret'); 3926 // Only toggle if the caret is visible (not just present in DOM) 3927 if (caret.length && caret.is(':visible')) { 3928 var playlistBody = $('#playlist-body_' + componentId); 3929 playlistBody.css('overflow', 'auto'); 3930 playlistBody.slideToggle('slow', function(){ playlistBody.css('overflow','auto') }); 3931 playlistHeader.find('i').toggleClass('fa-caret-up fa-caret-down'); 3932 // Toggle aria-expanded for accessibility 3933 var isExpanded = playlistHeader.attr('aria-expanded') === 'true'; 3934 playlistHeader.attr('aria-expanded', !isExpanded); 3935 } 3936 } 3937 3938</script>
vendor: 1 bytes, line 3938
3938
3939<script> 3940 $(document).ready(function () { 3941 var currentPlaylist = playlistMapping['ee4ce510-39c8-11e9-b20c-7b5069252681']; 3942 var currentSettings = settingsMapping['ee4ce510-39c8-11e9-b20c-7b5069252681']; 3943 $('.playlist-item').on('click', function () { 3944 $(this).addClass('selected-item').siblings().removeClass('selected-item'); 3945 }); 3946 if (currentPlaylist[0].videoSource === 'cove') { 3947 loadMMVideo('ee4ce510-39c8-11e9-b20c-7b5069252681', 0, currentPlaylist, currentSettings, 'WFYI'); 3948 } 3949 }); 3950 3951 function displayMMInfoItem(type, item, metadataSection) { 3952 var tag = ''; 3953 3954 var label = type && (type[0].toUpperCase() + type.slice(1)); 3955 var tag = type !== 'runtime' ? label : ''; 3956 3957 if (item) { 3958 $('<div class="additional-mm-info ' + type + '"></div>').appendTo(metadataSection); 3959 var mediaManagerInfoItem = $(metadataSection + ' .' + type); 3960 tag && mediaManagerInfoItem.html(label + ': '); 3961 mediaManagerInfoItem.append(item); 3962 } 3963 } 3964 3965 function fitMMVideo(elem) { 3966 var iFrame = elem; 3967 var aspectRatio = null; 3968 var actualPlayerWidth = iFrame.width(); 3969 var topBarHeight = 0; 3970 3971 3972 if (iFrame.attr("width") != '100%') { 3973 //for backwards compatibility use hardcoded old values for player dimensions 3974 try { 3975 var styleWidth = 512; 3976 var styleHeight = 288; 3977 aspectRatio = styleWidth / styleHeight; 3978 3979 iFrame.css({ 3980 "max-width": styleWidth, 3981 "max-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth, 3982 "min-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth 3983 }); 3984 } catch (e) { 3985 } 3986 } else { 3987 // the new player with width=100% and height=100% 3988 try { 3989 aspectRatio = 16 / 9; 3990 3991 if (iFrame.attr('src').indexOf('topbar=true') != -1) { 3992 topBarHeight = 40; 3993 } 3994 3995 iFrame.css({ 3996 "height": actualPlayerWidth / aspectRatio + topBarHeight, 3997 }); 3998 iFrame.parent().css({ 3999 "height": actualPlayerWidth / aspectRatio + topBarHeight, 4000 }); 4001 } catch (e) { 4002 } 4003 } 4004 } 4005 4006 function loadVideoIframe(response, playerObject, callsign) { 4007 var currentSettings = settingsMapping['ee4ce510-39c8-11e9-b20c-7b5069252681']; 4008 template = response.player_code.template; 4009 var iframe = jQuery(template); 4010 iframe.attr('allow', 'encrypted-media'); 4011 iframe.attr('title', 'Video player'); 4012 /* WCAG 2.1 1.2.2: Ensure captions are enabled. The PBS partner player 4013 should have closed-caption tracks available by default. If captions 4014 are missing, content editors must provide them. */ 4015 4016 if (callsign) { 4017 iframe.attr('src', function (i, e) { 4018 return e += '&callsign=' + callsign; 4019 }) 4020 } 4021 iframe.attr('src', function (i, e) { 4022 return e += '&endscreen=' + !!currentSettings.endScreen; 4023 }) 4024 playerObject.html(iframe); 4025 fitMMVideo(iframe); 4026 iframe.on('load', function () { 4027 fitMMVideo(jQuery(this)); 4028 }); 4029 } 4030 4031 function loadVideoMetadata(currentSettings, item, metadataSection) { 4032 currentSettings.showTitle && 4033 $(metadataSection + ' .title').html(item.title); 4034 4035 currentSettings.showContentChannel && 4036 $(metadataSection + ' .channel').html(item.channel); 4037 4038 $(metadataSection + ' .additional-mm-info').remove(); 4039 if (currentSettings.showAdditionalMediaManagerInfo) { 4040 var mediaManagerInfoTypes = ['runtime', 'published', 'expires', 'rating']; 4041 var mediaManagerInfoTypesLength = mediaManagerInfoTypes.length; 4042 for (var i = 0; i <= mediaManagerInfoTypesLength; i++) { 4043 displayMMInfoItem(mediaManagerInfoTypes[i], item[mediaManagerInfoTypes[i]], metadataSection); 4044 } 4045 } 4046 4047 if (currentSettings.showDescription) { 4048 $(metadataSection + ' .description').remove(); 4049 $('<p class="description"></p>').appendTo(metadataSection); 4050 $(metadataSection + ' .description').html(item.description); 4051 } 4052 } 4053 4054 function loadMMVideo(componentId, index, currentPlaylist, currentSettings, c
4054allsign) { 4055 var youtubeWrapper = '#youtube-wrapper_' + componentId; 4056 var videoContainer = '#video-container_' + componentId; 4057 var videoComponent = '#video-component_' + componentId; 4058 var videoContainerWrapper = videoComponent + ' .video-container__wrapper'; 4059 var metadataSection = videoComponent + ' .video-info'; 4060 4061 $(youtubeWrapper).remove(); 4062 $(videoContainer).remove(); 4063 4064 var videoContainerEl = document.createElement('div'); 4065 videoContainerEl.id = 'video-container_' + componentId; 4066 videoContainerEl.className = 'video-container'; 4067 $(videoContainerWrapper).prepend(videoContainerEl); 4068 var videoId = currentPlaylist[index].videoId; 4069 var title = currentPlaylist[index].title; 4070 var partnerPlayerUrl = currentPlaylist[index].partnerPlayerUrl; 4071 var APIBaseURL = PBS.BentoConfig.APIBaseURL || '/'; 4072 var url = APIBaseURL + 'merlin_plugin/video_frame/'; 4073 url += partnerPlayerUrl ? partnerPlayerUrl : videoId; 4074 if (callsign) { 4075 url += '/?callsign=' + callsign + '&title=' + title; 4076 } 4077 url += '/'; 4078 $.ajax({ 4079 url: url, 4080 dataType: 'json', 4081 success: function (response) { 4082 var template, notAvailableImg; 4083 var playerObject = $('#video-container_' + componentId); 4084 var imgUrl = currentPlaylist[index].img.url; 4085 4086 if (response.player_code) { 4087 loadVideoIframe(response, playerObject, callsign); 4088 } else { 4089 var notAvailableVideo = $('<img />'); 4090 notAvailableVideo.attr('src', imgUrl); 4091 notAvailableVideo.attr('alt', 'Video is not available'); 4092 playerObject.html($(notAvailableVideo)); 4093 } 4094 4095 loadVideoMetadata(currentSettings, currentPlaylist[index], metadataSection); 4096 4097 }, 4098 error: function (xhr, status, err) { 4099 console.error(xhr, status, err.toString()); 4100 } 4101 }); 4102 } 4103 </script>
vendor: 1 bytes, line 4103
4103
4104<script> 4105 $(document).ready(function() { 4106 var currentPlaylist = playlistMapping['ee4ce510-39c8-11e9-b20c-7b5069252681']; 4107 var currentSettings = settingsMapping['ee4ce510-39c8-11e9-b20c-7b5069252681']; 4108 4109 window.youtubeIframeMap = window.youtubeIframeMap || {}; 4110 if(currentPlaylist[0].videoSource === 'youtube') { 4111 if (typeof window.youtubeIframeMap === 'undefined') { 4112 window.youtubeIframeMap = {}; 4113 } 4114 window.youtubeIframeMap['ee4ce510-39c8-11e9-b20c-7b5069252681'] = { 4115 'playlist': currentPlaylist, 4116 'settings': currentSettings, 4117 }; 4118 } 4119 4120 //check if single video & no metadata 4121 if ((currentPlaylist.length === 1 || !currentSettings.showPlaylist) && 4122 !currentSettings.showTitle && 4123 !currentSettings.showContentChannel && 4124 !currentSettings.showDescription && 4125 !currentSettings.showAdditionalMediaManagerInfo){ 4126 $('#video-component_' + 'ee4ce510-39c8-11e9-b20c-7b5069252681').css({border: 'none'}); 4127 } 4128 4129 // This code loads the IFrame Player API code asynchronously. 4130 var scriptTag = document.getElementById("youtube_iframe_api"); 4131 if(!scriptTag) { 4132 scriptTag = document.createElement('script'); 4133 scriptTag.src = "https://www.youtube.com/iframe_api"; 4134 scriptTag.id = "youtube_iframe_api"; 4135 var firstScriptTag = document.getElementsByTagName('script')[0]; 4136 firstScriptTag.parentNode.insertBefore(scriptTag, firstScriptTag); 4137 } 4138 }) 4139 4140 // This function creates an <iframe> (and YouTube player) after the API code downloads. 4141 function onYouTubeIframeAPIReady() { 4142 for (var componentId in window.youtubeIframeMap) { 4143 var currentPlaylist = window.youtubeIframeMap[componentId]['playlist']; 4144 var currentSettings = window.youtubeIframeMap[componentId]['settings']; 4145 loadYoutubeVideo(componentId, 0, currentPlaylist, currentSettings); 4146 } 4147 } 4148 4149 function loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings) { 4150 var player, playerVars; 4151 var videoComponent = '#video-component_' + componentId; 4152 var youtubeWrapper = document.createElement('div'); 4153 youtubeWrapper.id = 'youtube-wrapper_' + componentId; 4154 youtubeWrapper.className = 'youtube-wrapper video-container'; 4155 4156 $('#video-container_' + componentId).remove(); 4157 $('#youtube-wrapper_' + componentId).remove(); 4158 var videoContainerEl = document.createElement('div'); 4159 videoContainerEl.id = 'video-container_' + componentId; 4160 4161 $(videoComponent + ' .video-container__wrapper').prepend(youtubeWrapper); 4162 4163 $(videoComponent + ' .youtube-wrapper').prepend(videoContainerEl); 4164 4165 playerVars = Object.assign({}, 4166 { cc_load_policy: 1 }, 4167 (currentPlaylist[index].rel === false) && { rel: 0 }, 4168 (currentPlaylist[index].controls === false) && { controls: 0 }, 4169 (currentPlaylist[index].fs === false) && { fs: 0 }, 4170 (currentPlaylist[index].autoplay === true) && { autoplay: 1 }, 4171 (currentPlaylist[index].start > 0) && { start: currentPlaylist[index].start }, 4172 (currentPlaylist[index].end > 0 && currentPlaylist[index].start < currentPlaylist[index].end) && { end: currentPlaylist[index].end } 4173 ); 4174 4175 player = new YT.Player('video-container_' + componentId, { 4176 videoId: currentPlaylist[index].videoId, 4177 playerVars 4178 }); 4179 4180 currentSettings.showTitle && 4181 $(videoComponent + ' .title').html(currentPlaylist[index].title); 4182 4183 currentSettings.showContentChannel && 4184 $(videoComponent + ' .channel').html(currentPlaylist[index].channel); 4185 4186 currentSettings.showDescription && 4187 $(videoComponent + ' .description').html(currentPlaylist[index].description); 4188 4189 $(videoComponent + ' .additional-mm-info').remove(); 4190 } 4191</script>
vendor: 1 bytes, line 4191
4191
4192<script> 4193 4194 var playlistJson = [ 4195 { 4196 "id": "1718a704-1ede-44bb-aedc-82086cf43435", 4197 "img": { 4198 "url": "http://image.pbs.org/video-assets/QEyr7Rh-asset-mezzanine-16x9-OfWybHP.png", 4199 "isDefault": false 4200 }, 4201 "url": "http://pbs.org/video/behind-scenes-cxflv6/", 4202 "title": "Behind the Scenes", 4203 "rating": "", 4204 "channel": "Eva A-7063", 4205 "expires": "", 4206 "runtime": "3:15", 4207 "videoId": "behind-scenes-cxflv6", 4208 "published": "2018/03/14", 4209 "description": "Introducing a behind-the-scenes look at the creation of \"Eva.\"", 4210 "videoSource": "cove", 4211 "partnerPlayerUrl": "8nQcwWuLrz-pVtxExLgZzw==", 4212 "titlePlaceholder": "Title", 4213 "channelPlaceholder": "Content channel", 4214 "descriptionPlaceholder": "Description" 4215 } 4216]; 4217 var settingsJson = { 4218 "showTitle": true, 4219 "showPlaylist": false, 4220 "playlistHeight": 4, 4221 "showDescription": false, 4222 "showContentChannel": false, 4223 "showAdditionalMediaManagerInfo": false 4224} 4225 4226 4227 4228 function updatePlaylistHeaderTabindex(componentId) { 4229 var playlistHeader = document.getElementById('playlist-header_' + componentId); 4230 if (!playlistHeader) return; 4231 var caret = playlistHeader.querySelector('.dropdown-caret'); 4232 if (window.innerWidth > 1023) { 4233 // On desktop with one-column layout, playlist header is not interactive 4234 if (caret && window.getComputedStyle(caret).display === 'none') { 4235 playlistHeader.disabled = true; 4236 playlistHeader.setAttribute('aria-disabled', 'true'); 4237 playlistHeader.setAttribute('tabindex', '-1'); 4238 } else { 4239 playlistHeader.disabled = false; 4240 playlistHeader.removeAttribute('aria-disabled'); 4241 playlistHeader.setAttribute('tabindex', '0'); 4242 } 4243 } else { 4244 playlistHeader.disabled = false; 4245 playlistHeader.removeAttribute('aria-disabled'); 4246 playlistHeader.setAttribute('tabindex', '0'); 4247 } 4248 } 4249 $(window).on('load', function(){ 4250 resizePlaylist('ee4ce510-39c8-11e9-b20c-7b5069252681'); 4251 updatePlaylistHeaderTabindex('ee4ce510-39c8-11e9-b20c-7b5069252681'); 4252 }); 4253 $(window).resize(function(){ 4254 resizePlaylist('ee4ce510-39c8-11e9-b20c-7b5069252681'); 4255 updatePlaylistHeaderTabindex('ee4ce510-39c8-11e9-b20c-7b5069252681'); 4256 }); 4257 4258 if (typeof window.playlistMapping === 'undefined') { 4259 window.playlistMapping = {}; 4260 } 4261 4262 if (typeof window.settingsMapping === 'undefined') { 4263 window.settingsMapping = {}; 4264 } 4265 window.playlistMapping['ee4ce510-39c8-11e9-b20c-7b5069252681'] = playlistJson; 4266 window.settingsMapping['ee4ce510-39c8-11e9-b20c-7b5069252681'] = settingsJson; 4267 4268 function resizePlaylist(componentId) { 4269 const videoComponent = $('#video-component_' + componentId); 4270 const playlistWrapper = videoComponent.find('.playlist__wrapper'); 4271 const playlistBody = playlistWrapper.find('.playlist-body'); 4272 const isSmallPlaylist = playlistWrapper.hasClass('playlist-sm'); 4273 const isLargeWindow = $(window).width() >= 1024; 4274 const isOneColWithPlaylist = videoComponent.hasClass('column-12'); 4275 if (isOneColWithPlaylist) { 4276 if(isLargeWindow) { 4277 const mainVideoHeight = videoComponent.find('.video-container').outerHeight() + 4278 videoComponent.find('.video-info').outerHeight() + 4279 (videoComponent.find('.video-cta-container').outerHeight(true) || 0); 4280 const playlistHeaderHeight = $('#playlist-header_' + componentId).outerHeight(); 4281 4282 playlistWrapper.css('height', mainVideoHeight + 'px'); 4283 playlistBody.css('max-height', (mainVideoHeight - playlistHeaderHeight) + 'px'); 4284 } 4285 else { 4286 playlistWrapper.css('height', 'auto'); 4287 playlistBody.css('max-height', '400px'); 4288 } 4289 } 4290 if(isSmallPlaylist){ 4291 const playlistItemImgWrapper = playlistWrapper.find('.playlist-item-img-wrapper'); 4292 const playlistItemInfo = playlistWrapper.find('.playlist-item-info'); 4293 if(!isLargeWindow) { 4294 $(playlistItemImgWrapper).removeClass('span6'); 4295 $(playlistItemInfo).removeClass('span6'); 4296 $(playlistItemImgWrapper).addClass('span4'); 4297 $(playlistItemInfo).addClass('span8'); 4298 } 4299 else { 4300 $(playlistItemImgWrapper).removeClass('span4'); 4301 $(playlistItemInfo).removeClass('span8'); 4302 $(playlistItemImgWrapper).addClass('span6'); 4303 $(playlistItemInfo).addClass('span6'); 4304 } 4305 } 4306 4307 } 4308 4309 function selectPlaylistItem(componentId, index, videoSource) { 4310 var currentPlaylist = playlistMapping[componentId]; 4311 var currentSettings = settingsMapping[componentId]; 4312 switch(videoSource) { 4313 case 'cove': 4314 loadMMVideo(componentId, index, currentPlaylist, currentSettings); 4315 break; 4316 case 'youtube': 4317 loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings); 4318 break; 4319 default: 4320 loadDefault(componentId, index, currentPlaylist, currentSettings); 4321 break; 4322 } 4323 4324 } 4325 4326 function loadDefault(componentId, index, currentPlaylist, currentSettings) { 4327 var youtubeWrapper = '#youtube-wrapper_' + componentId; 4328 var videoContainer = '#video-container_' + componentId; 4329 var videoComponent = '#video-component_' + componentId; 4330 4331 $(youtubeWrapper).remove(); 4332 $(videoContainer).remove(); 4333 4334 var videoContainerEl = document.createElement('div'); 4335 videoContainerEl.id = 'video-container_' + componentId; 4336 videoContainerEl.className = 'video-container'; 4337 $(videoComponent + ' .video-container__wrapper').prepend(vi
4337deoContainerEl); 4338 4339 var defaultImg = document.createElement('img'); 4340 defaultImg.alt = currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder; 4341 defaultImg.src = currentPlaylist[index].img.url; 4342 $(videoContainerEl).prepend(defaultImg); 4343 4344 currentSettings.showTitle && 4345 $(videoComponent + ' .title').html(currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder); 4346 4347 currentSettings.showContentChannel && 4348 $(videoComponent + ' .channel').html(currentPlaylist[index].channel||currentPlaylist[index].channelPlaceholder); 4349 4350 currentSettings.showDescription && 4351 $(videoComponent + ' .description').html(currentPlaylist[index].description||currentPlaylist[index].descriptionPlaceholder); 4352 4353 $(videoComponent + ' .additional-mm-info').remove(); 4354 } 4355 4356 function showCurrentIndex(index, componentId) { 4357 var itemsCount = $('#playlist-items-count_' + componentId); 4358 var currentItem = itemsCount.children('span'); 4359 currentItem.text(index + '/'); 4360 } 4361 4362 function togglePlaylist(componentId) { 4363 var playlistHeader = $('#playlist-header_' + componentId); 4364 // Do not toggle if the header is disabled 4365 if (playlistHeader.prop('disabled')) return; 4366 var caret = playlistHeader.find('.dropdown-caret'); 4367 // Only toggle if the caret is visible (not just present in DOM) 4368 if (caret.length && caret.is(':visible')) { 4369 var playlistBody = $('#playlist-body_' + componentId); 4370 playlistBody.css('overflow', 'auto'); 4371 playlistBody.slideToggle('slow', function(){ playlistBody.css('overflow','auto') }); 4372 playlistHeader.find('i').toggleClass('fa-caret-up fa-caret-down'); 4373 // Toggle aria-expanded for accessibility 4374 var isExpanded = playlistHeader.attr('aria-expanded') === 'true'; 4375 playlistHeader.attr('aria-expanded', !isExpanded); 4376 } 4377 } 4378 4379</script>
vendor: 1 bytes, line 4379
4379
4380<script> 4381 $(document).ready(function () { 4382 var currentPlaylist = playlistMapping['f9d1a7e0-39c8-11e9-b20c-7b5069252681']; 4383 var currentSettings = settingsMapping['f9d1a7e0-39c8-11e9-b20c-7b5069252681']; 4384 $('.playlist-item').on('click', function () { 4385 $(this).addClass('selected-item').siblings().removeClass('selected-item'); 4386 }); 4387 if (currentPlaylist[0].videoSource === 'cove') { 4388 loadMMVideo('f9d1a7e0-39c8-11e9-b20c-7b5069252681', 0, currentPlaylist, currentSettings, 'WFYI'); 4389 } 4390 }); 4391 4392 function displayMMInfoItem(type, item, metadataSection) { 4393 var tag = ''; 4394 4395 var label = type && (type[0].toUpperCase() + type.slice(1)); 4396 var tag = type !== 'runtime' ? label : ''; 4397 4398 if (item) { 4399 $('<div class="additional-mm-info ' + type + '"></div>').appendTo(metadataSection); 4400 var mediaManagerInfoItem = $(metadataSection + ' .' + type); 4401 tag && mediaManagerInfoItem.html(label + ': '); 4402 mediaManagerInfoItem.append(item); 4403 } 4404 } 4405 4406 function fitMMVideo(elem) { 4407 var iFrame = elem; 4408 var aspectRatio = null; 4409 var actualPlayerWidth = iFrame.width(); 4410 var topBarHeight = 0; 4411 4412 4413 if (iFrame.attr("width") != '100%') { 4414 //for backwards compatibility use hardcoded old values for player dimensions 4415 try { 4416 var styleWidth = 512; 4417 var styleHeight = 288; 4418 aspectRatio = styleWidth / styleHeight; 4419 4420 iFrame.css({ 4421 "max-width": styleWidth, 4422 "max-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth, 4423 "min-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth 4424 }); 4425 } catch (e) { 4426 } 4427 } else { 4428 // the new player with width=100% and height=100% 4429 try { 4430 aspectRatio = 16 / 9; 4431 4432 if (iFrame.attr('src').indexOf('topbar=true') != -1) { 4433 topBarHeight = 40; 4434 } 4435 4436 iFrame.css({ 4437 "height": actualPlayerWidth / aspectRatio + topBarHeight, 4438 }); 4439 iFrame.parent().css({ 4440 "height": actualPlayerWidth / aspectRatio + topBarHeight, 4441 }); 4442 } catch (e) { 4443 } 4444 } 4445 } 4446 4447 function loadVideoIframe(response, playerObject, callsign) { 4448 var currentSettings = settingsMapping['f9d1a7e0-39c8-11e9-b20c-7b5069252681']; 4449 template = response.player_code.template; 4450 var iframe = jQuery(template); 4451 iframe.attr('allow', 'encrypted-media'); 4452 iframe.attr('title', 'Video player'); 4453 /* WCAG 2.1 1.2.2: Ensure captions are enabled. The PBS partner player 4454 should have closed-caption tracks available by default. If captions 4455 are missing, content editors must provide them. */ 4456 4457 if (callsign) { 4458 iframe.attr('src', function (i, e) { 4459 return e += '&callsign=' + callsign; 4460 }) 4461 } 4462 iframe.attr('src', function (i, e) { 4463 return e += '&endscreen=' + !!currentSettings.endScreen; 4464 }) 4465 playerObject.html(iframe); 4466 fitMMVideo(iframe); 4467 iframe.on('load', function () { 4468 fitMMVideo(jQuery(this)); 4469 }); 4470 } 4471 4472 function loadVideoMetadata(currentSettings, item, metadataSection) { 4473 currentSettings.showTitle && 4474 $(metadataSection + ' .title').html(item.title); 4475 4476 currentSettings.showContentChannel && 4477 $(metadataSection + ' .channel').html(item.channel); 4478 4479 $(metadataSection + ' .additional-mm-info').remove(); 4480 if (currentSettings.showAdditionalMediaManagerInfo) { 4481 var mediaManagerInfoTypes = ['runtime', 'published', 'expires', 'rating']; 4482 var mediaManagerInfoTypesLength = mediaManagerInfoTypes.length; 4483 for (var i = 0; i <= mediaManagerInfoTypesLength; i++) { 4484 displayMMInfoItem(mediaManagerInfoTypes[i], item[mediaManagerInfoTypes[i]], metadataSection); 4485 } 4486 } 4487 4488 if (currentSettings.showDescription) { 4489 $(metadataSection + ' .description').remove(); 4490 $('<p class="description"></p>').appendTo(metadataSection); 4491 $(metadataSection + ' .description').html(item.description); 4492 } 4493 } 4494 4495 function loadMMVideo(componentId, index, currentPlaylist, currentSettings, c
4495allsign) { 4496 var youtubeWrapper = '#youtube-wrapper_' + componentId; 4497 var videoContainer = '#video-container_' + componentId; 4498 var videoComponent = '#video-component_' + componentId; 4499 var videoContainerWrapper = videoComponent + ' .video-container__wrapper'; 4500 var metadataSection = videoComponent + ' .video-info'; 4501 4502 $(youtubeWrapper).remove(); 4503 $(videoContainer).remove(); 4504 4505 var videoContainerEl = document.createElement('div'); 4506 videoContainerEl.id = 'video-container_' + componentId; 4507 videoContainerEl.className = 'video-container'; 4508 $(videoContainerWrapper).prepend(videoContainerEl); 4509 var videoId = currentPlaylist[index].videoId; 4510 var title = currentPlaylist[index].title; 4511 var partnerPlayerUrl = currentPlaylist[index].partnerPlayerUrl; 4512 var APIBaseURL = PBS.BentoConfig.APIBaseURL || '/'; 4513 var url = APIBaseURL + 'merlin_plugin/video_frame/'; 4514 url += partnerPlayerUrl ? partnerPlayerUrl : videoId; 4515 if (callsign) { 4516 url += '/?callsign=' + callsign + '&title=' + title; 4517 } 4518 url += '/'; 4519 $.ajax({ 4520 url: url, 4521 dataType: 'json', 4522 success: function (response) { 4523 var template, notAvailableImg; 4524 var playerObject = $('#video-container_' + componentId); 4525 var imgUrl = currentPlaylist[index].img.url; 4526 4527 if (response.player_code) { 4528 loadVideoIframe(response, playerObject, callsign); 4529 } else { 4530 var notAvailableVideo = $('<img />'); 4531 notAvailableVideo.attr('src', imgUrl); 4532 notAvailableVideo.attr('alt', 'Video is not available'); 4533 playerObject.html($(notAvailableVideo)); 4534 } 4535 4536 loadVideoMetadata(currentSettings, currentPlaylist[index], metadataSection); 4537 4538 }, 4539 error: function (xhr, status, err) { 4540 console.error(xhr, status, err.toString()); 4541 } 4542 }); 4543 } 4544 </script>
vendor: 1 bytes, line 4544
4544
4545<script> 4546 $(document).ready(function() { 4547 var currentPlaylist = playlistMapping['f9d1a7e0-39c8-11e9-b20c-7b5069252681']; 4548 var currentSettings = settingsMapping['f9d1a7e0-39c8-11e9-b20c-7b5069252681']; 4549 4550 window.youtubeIframeMap = window.youtubeIframeMap || {}; 4551 if(currentPlaylist[0].videoSource === 'youtube') { 4552 if (typeof window.youtubeIframeMap === 'undefined') { 4553 window.youtubeIframeMap = {}; 4554 } 4555 window.youtubeIframeMap['f9d1a7e0-39c8-11e9-b20c-7b5069252681'] = { 4556 'playlist': currentPlaylist, 4557 'settings': currentSettings, 4558 }; 4559 } 4560 4561 //check if single video & no metadata 4562 if ((currentPlaylist.length === 1 || !currentSettings.showPlaylist) && 4563 !currentSettings.showTitle && 4564 !currentSettings.showContentChannel && 4565 !currentSettings.showDescription && 4566 !currentSettings.showAdditionalMediaManagerInfo){ 4567 $('#video-component_' + 'f9d1a7e0-39c8-11e9-b20c-7b5069252681').css({border: 'none'}); 4568 } 4569 4570 // This code loads the IFrame Player API code asynchronously. 4571 var scriptTag = document.getElementById("youtube_iframe_api"); 4572 if(!scriptTag) { 4573 scriptTag = document.createElement('script'); 4574 scriptTag.src = "https://www.youtube.com/iframe_api"; 4575 scriptTag.id = "youtube_iframe_api"; 4576 var firstScriptTag = document.getElementsByTagName('script')[0]; 4577 firstScriptTag.parentNode.insertBefore(scriptTag, firstScriptTag); 4578 } 4579 }) 4580 4581 // This function creates an <iframe> (and YouTube player) after the API code downloads. 4582 function onYouTubeIframeAPIReady() { 4583 for (var componentId in window.youtubeIframeMap) { 4584 var currentPlaylist = window.youtubeIframeMap[componentId]['playlist']; 4585 var currentSettings = window.youtubeIframeMap[componentId]['settings']; 4586 loadYoutubeVideo(componentId, 0, currentPlaylist, currentSettings); 4587 } 4588 } 4589 4590 function loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings) { 4591 var player, playerVars; 4592 var videoComponent = '#video-component_' + componentId; 4593 var youtubeWrapper = document.createElement('div'); 4594 youtubeWrapper.id = 'youtube-wrapper_' + componentId; 4595 youtubeWrapper.className = 'youtube-wrapper video-container'; 4596 4597 $('#video-container_' + componentId).remove(); 4598 $('#youtube-wrapper_' + componentId).remove(); 4599 var videoContainerEl = document.createElement('div'); 4600 videoContainerEl.id = 'video-container_' + componentId; 4601 4602 $(videoComponent + ' .video-container__wrapper').prepend(youtubeWrapper); 4603 4604 $(videoComponent + ' .youtube-wrapper').prepend(videoContainerEl); 4605 4606 playerVars = Object.assign({}, 4607 { cc_load_policy: 1 }, 4608 (currentPlaylist[index].rel === false) && { rel: 0 }, 4609 (currentPlaylist[index].controls === false) && { controls: 0 }, 4610 (currentPlaylist[index].fs === false) && { fs: 0 }, 4611 (currentPlaylist[index].autoplay === true) && { autoplay: 1 }, 4612 (currentPlaylist[index].start > 0) && { start: currentPlaylist[index].start }, 4613 (currentPlaylist[index].end > 0 && currentPlaylist[index].start < currentPlaylist[index].end) && { end: currentPlaylist[index].end } 4614 ); 4615 4616 player = new YT.Player('video-container_' + componentId, { 4617 videoId: currentPlaylist[index].videoId, 4618 playerVars 4619 }); 4620 4621 currentSettings.showTitle && 4622 $(videoComponent + ' .title').html(currentPlaylist[index].title); 4623 4624 currentSettings.showContentChannel && 4625 $(videoComponent + ' .channel').html(currentPlaylist[index].channel); 4626 4627 currentSettings.showDescription && 4628 $(videoComponent + ' .description').html(currentPlaylist[index].description); 4629 4630 $(videoComponent + ' .additional-mm-info').remove(); 4631 } 4632</script>
vendor: 1 bytes, line 4632
4632
4633<script> 4634 4635 var playlistJson = [ 4636 { 4637 "id": "78634a00-004d-4f8f-921f-9270b97bf870", 4638 "img": { 4639 "url": "https://image.pbs.org/video-assets/nUHwtpK-asset-mezzanine-16x9-AhGMvJv.png", 4640 "isDefault": false 4641 }, 4642 "url": "http://pbs.org/video/evas-impact-sophie-ow10mc/", 4643 "title": "Eva's Impact on Sophie", 4644 "rating": "", 4645 "channel": "Eva A-7063", 4646 "expires": "", 4647 "runtime": "3:58", 4648 "videoId": "evas-impact-sophie-ow10mc", 4649 "published": "2019/12/30", 4650 "description": "Meet Sophie, a high school sophomore who was inspired to take action after seeing \"Eva.\"", 4651 "videoSource": "cove", 4652 "partnerPlayerUrl": "RdxmxeKQBxpOW9ZMIiIB6g==", 4653 "titlePlaceholder": "Title", 4654 "channelPlaceholder": "Content channel", 4655 "descriptionPlaceholder": "Description" 4656 } 4657]; 4658 var settingsJson = { 4659 "showTitle": true, 4660 "showPlaylist": false, 4661 "playlistHeight": 4, 4662 "showDescription": false, 4663 "showContentChannel": false, 4664 "showAdditionalMediaManagerInfo": false 4665} 4666 4667 4668 4669 function updatePlaylistHeaderTabindex(componentId) { 4670 var playlistHeader = document.getElementById('playlist-header_' + componentId); 4671 if (!playlistHeader) return; 4672 var caret = playlistHeader.querySelector('.dropdown-caret'); 4673 if (window.innerWidth > 1023) { 4674 // On desktop with one-column layout, playlist header is not interactive 4675 if (caret && window.getComputedStyle(caret).display === 'none') { 4676 playlistHeader.disabled = true; 4677 playlistHeader.setAttribute('aria-disabled', 'true'); 4678 playlistHeader.setAttribute('tabindex', '-1'); 4679 } else { 4680 playlistHeader.disabled = false; 4681 playlistHeader.removeAttribute('aria-disabled'); 4682 playlistHeader.setAttribute('tabindex', '0'); 4683 } 4684 } else { 4685 playlistHeader.disabled = false; 4686 playlistHeader.removeAttribute('aria-disabled'); 4687 playlistHeader.setAttribute('tabindex', '0'); 4688 } 4689 } 4690 $(window).on('load', function(){ 4691 resizePlaylist('f9d1a7e0-39c8-11e9-b20c-7b5069252681'); 4692 updatePlaylistHeaderTabindex('f9d1a7e0-39c8-11e9-b20c-7b5069252681'); 4693 }); 4694 $(window).resize(function(){ 4695 resizePlaylist('f9d1a7e0-39c8-11e9-b20c-7b5069252681'); 4696 updatePlaylistHeaderTabindex('f9d1a7e0-39c8-11e9-b20c-7b5069252681'); 4697 }); 4698 4699 if (typeof window.playlistMapping === 'undefined') { 4700 window.playlistMapping = {}; 4701 } 4702 4703 if (typeof window.settingsMapping === 'undefined') { 4704 window.settingsMapping = {}; 4705 } 4706 window.playlistMapping['f9d1a7e0-39c8-11e9-b20c-7b5069252681'] = playlistJson; 4707 window.settingsMapping['f9d1a7e0-39c8-11e9-b20c-7b5069252681'] = settingsJson; 4708 4709 function resizePlaylist(componentId) { 4710 const videoComponent = $('#video-component_' + componentId); 4711 const playlistWrapper = videoComponent.find('.playlist__wrapper'); 4712 const playlistBody = playlistWrapper.find('.playlist-body'); 4713 const isSmallPlaylist = playlistWrapper.hasClass('playlist-sm'); 4714 const isLargeWindow = $(window).width() >= 1024; 4715 const isOneColWithPlaylist = videoComponent.hasClass('column-12'); 4716 if (isOneColWithPlaylist) { 4717 if(isLargeWindow) { 4718 const mainVideoHeight = videoComponent.find('.video-container').outerHeight() + 4719 videoComponent.find('.video-info').outerHeight() + 4720 (videoComponent.find('.video-cta-container').outerHeight(true) || 0); 4721 const playlistHeaderHeight = $('#playlist-header_' + componentId).outerHeight(); 4722 4723 playlistWrapper.css('height', mainVideoHeight + 'px'); 4724 playlistBody.css('max-height', (mainVideoHeight - playlistHeaderHeight) + 'px'); 4725 } 4726 else { 4727 playlistWrapper.css('height', 'auto'); 4728 playlistBody.css('max-height', '400px'); 4729 } 4730 } 4731 if(isSmallPlaylist){ 4732 const playlistItemImgWrapper = playlistWrapper.find('.playlist-item-img-wrapper'); 4733 const playlistItemInfo = playlistWrapper.find('.playlist-item-info'); 4734 if(!isLargeWindow) { 4735 $(playlistItemImgWrapper).removeClass('span6'); 4736 $(playlistItemInfo).removeClass('span6'); 4737 $(playlistItemImgWrapper).addClass('span4'); 4738 $(playlistItemInfo).addClass('span8'); 4739 } 4740 else { 4741 $(playlistItemImgWrapper).removeClass('span4'); 4742 $(playlistItemInfo).removeClass('span8'); 4743 $(playlistItemImgWrapper).addClass('span6'); 4744 $(playlistItemInfo).addClass('span6'); 4745 } 4746 } 4747 4748 } 4749 4750 function selectPlaylistItem(componentId, index, videoSource) { 4751 var currentPlaylist = playlistMapping[componentId]; 4752 var currentSettings = settingsMapping[componentId]; 4753 switch(videoSource) { 4754 case 'cove': 4755 loadMMVideo(componentId, index, currentPlaylist, currentSettings); 4756 break; 4757 case 'youtube': 4758 loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings); 4759 break; 4760 default: 4761 loadDefault(componentId, index, currentPlaylist, currentSettings); 4762 break; 4763 } 4764 4765 } 4766 4767 function loadDefault(componentId, index, currentPlaylist, currentSettings) { 4768 var youtubeWrapper = '#youtube-wrapper_' + componentId; 4769 var videoContainer = '#video-container_' + componentId; 4770 var videoComponent = '#video-component_' + componentId; 4771 4772 $(youtubeWrapper).remove(); 4773 $(videoContainer).remove(); 4774 4775 var videoContainerEl = document.createElement('div'); 4776 videoContainerEl.id = 'video-container_' + componentId; 4777 videoContainerEl.className = 'video-container'; 4778 $(videoComponent + ' .video-container__wrapper').prepend(vi
4778deoContainerEl); 4779 4780 var defaultImg = document.createElement('img'); 4781 defaultImg.alt = currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder; 4782 defaultImg.src = currentPlaylist[index].img.url; 4783 $(videoContainerEl).prepend(defaultImg); 4784 4785 currentSettings.showTitle && 4786 $(videoComponent + ' .title').html(currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder); 4787 4788 currentSettings.showContentChannel && 4789 $(videoComponent + ' .channel').html(currentPlaylist[index].channel||currentPlaylist[index].channelPlaceholder); 4790 4791 currentSettings.showDescription && 4792 $(videoComponent + ' .description').html(currentPlaylist[index].description||currentPlaylist[index].descriptionPlaceholder); 4793 4794 $(videoComponent + ' .additional-mm-info').remove(); 4795 } 4796 4797 function showCurrentIndex(index, componentId) { 4798 var itemsCount = $('#playlist-items-count_' + componentId); 4799 var currentItem = itemsCount.children('span'); 4800 currentItem.text(index + '/'); 4801 } 4802 4803 function togglePlaylist(componentId) { 4804 var playlistHeader = $('#playlist-header_' + componentId); 4805 // Do not toggle if the header is disabled 4806 if (playlistHeader.prop('disabled')) return; 4807 var caret = playlistHeader.find('.dropdown-caret'); 4808 // Only toggle if the caret is visible (not just present in DOM) 4809 if (caret.length && caret.is(':visible')) { 4810 var playlistBody = $('#playlist-body_' + componentId); 4811 playlistBody.css('overflow', 'auto'); 4812 playlistBody.slideToggle('slow', function(){ playlistBody.css('overflow','auto') }); 4813 playlistHeader.find('i').toggleClass('fa-caret-up fa-caret-down'); 4814 // Toggle aria-expanded for accessibility 4815 var isExpanded = playlistHeader.attr('aria-expanded') === 'true'; 4816 playlistHeader.attr('aria-expanded', !isExpanded); 4817 } 4818 } 4819 4820</script>
vendor: 1 bytes, line 4820
4820
4821<script> 4822 $(document).ready(function () { 4823 var currentPlaylist = playlistMapping['fb5eca30-a0f0-11ea-93bb-b93edb1cf13c']; 4824 var currentSettings = settingsMapping['fb5eca30-a0f0-11ea-93bb-b93edb1cf13c']; 4825 $('.playlist-item').on('click', function () { 4826 $(this).addClass('selected-item').siblings().removeClass('selected-item'); 4827 }); 4828 if (currentPlaylist[0].videoSource === 'cove') { 4829 loadMMVideo('fb5eca30-a0f0-11ea-93bb-b93edb1cf13c', 0, currentPlaylist, currentSettings, 'WFYI'); 4830 } 4831 }); 4832 4833 function displayMMInfoItem(type, item, metadataSection) { 4834 var tag = ''; 4835 4836 var label = type && (type[0].toUpperCase() + type.slice(1)); 4837 var tag = type !== 'runtime' ? label : ''; 4838 4839 if (item) { 4840 $('<div class="additional-mm-info ' + type + '"></div>').appendTo(metadataSection); 4841 var mediaManagerInfoItem = $(metadataSection + ' .' + type); 4842 tag && mediaManagerInfoItem.html(label + ': '); 4843 mediaManagerInfoItem.append(item); 4844 } 4845 } 4846 4847 function fitMMVideo(elem) { 4848 var iFrame = elem; 4849 var aspectRatio = null; 4850 var actualPlayerWidth = iFrame.width(); 4851 var topBarHeight = 0; 4852 4853 4854 if (iFrame.attr("width") != '100%') { 4855 //for backwards compatibility use hardcoded old values for player dimensions 4856 try { 4857 var styleWidth = 512; 4858 var styleHeight = 288; 4859 aspectRatio = styleWidth / styleHeight; 4860 4861 iFrame.css({ 4862 "max-width": styleWidth, 4863 "max-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth, 4864 "min-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth 4865 }); 4866 } catch (e) { 4867 } 4868 } else { 4869 // the new player with width=100% and height=100% 4870 try { 4871 aspectRatio = 16 / 9; 4872 4873 if (iFrame.attr('src').indexOf('topbar=true') != -1) { 4874 topBarHeight = 40; 4875 } 4876 4877 iFrame.css({ 4878 "height": actualPlayerWidth / aspectRatio + topBarHeight, 4879 }); 4880 iFrame.parent().css({ 4881 "height": actualPlayerWidth / aspectRatio + topBarHeight, 4882 }); 4883 } catch (e) { 4884 } 4885 } 4886 } 4887 4888 function loadVideoIframe(response, playerObject, callsign) { 4889 var currentSettings = settingsMapping['fb5eca30-a0f0-11ea-93bb-b93edb1cf13c']; 4890 template = response.player_code.template; 4891 var iframe = jQuery(template); 4892 iframe.attr('allow', 'encrypted-media'); 4893 iframe.attr('title', 'Video player'); 4894 /* WCAG 2.1 1.2.2: Ensure captions are enabled. The PBS partner player 4895 should have closed-caption tracks available by default. If captions 4896 are missing, content editors must provide them. */ 4897 4898 if (callsign) { 4899 iframe.attr('src', function (i, e) { 4900 return e += '&callsign=' + callsign; 4901 }) 4902 } 4903 iframe.attr('src', function (i, e) { 4904 return e += '&endscreen=' + !!currentSettings.endScreen; 4905 }) 4906 playerObject.html(iframe); 4907 fitMMVideo(iframe); 4908 iframe.on('load', function () { 4909 fitMMVideo(jQuery(this)); 4910 }); 4911 } 4912 4913 function loadVideoMetadata(currentSettings, item, metadataSection) { 4914 currentSettings.showTitle && 4915 $(metadataSection + ' .title').html(item.title); 4916 4917 currentSettings.showContentChannel && 4918 $(metadataSection + ' .channel').html(item.channel); 4919 4920 $(metadataSection + ' .additional-mm-info').remove(); 4921 if (currentSettings.showAdditionalMediaManagerInfo) { 4922 var mediaManagerInfoTypes = ['runtime', 'published', 'expires', 'rating']; 4923 var mediaManagerInfoTypesLength = mediaManagerInfoTypes.length; 4924 for (var i = 0; i <= mediaManagerInfoTypesLength; i++) { 4925 displayMMInfoItem(mediaManagerInfoTypes[i], item[mediaManagerInfoTypes[i]], metadataSection); 4926 } 4927 } 4928 4929 if (currentSettings.showDescription) { 4930 $(metadataSection + ' .description').remove(); 4931 $('<p class="description"></p>').appendTo(metadataSection); 4932 $(metadataSection + ' .description').html(item.description); 4933 } 4934 } 4935 4936 function loadMMVideo(componentId, index, currentPlaylist, currentSettings, c
4936allsign) { 4937 var youtubeWrapper = '#youtube-wrapper_' + componentId; 4938 var videoContainer = '#video-container_' + componentId; 4939 var videoComponent = '#video-component_' + componentId; 4940 var videoContainerWrapper = videoComponent + ' .video-container__wrapper'; 4941 var metadataSection = videoComponent + ' .video-info'; 4942 4943 $(youtubeWrapper).remove(); 4944 $(videoContainer).remove(); 4945 4946 var videoContainerEl = document.createElement('div'); 4947 videoContainerEl.id = 'video-container_' + componentId; 4948 videoContainerEl.className = 'video-container'; 4949 $(videoContainerWrapper).prepend(videoContainerEl); 4950 var videoId = currentPlaylist[index].videoId; 4951 var title = currentPlaylist[index].title; 4952 var partnerPlayerUrl = currentPlaylist[index].partnerPlayerUrl; 4953 var APIBaseURL = PBS.BentoConfig.APIBaseURL || '/'; 4954 var url = APIBaseURL + 'merlin_plugin/video_frame/'; 4955 url += partnerPlayerUrl ? partnerPlayerUrl : videoId; 4956 if (callsign) { 4957 url += '/?callsign=' + callsign + '&title=' + title; 4958 } 4959 url += '/'; 4960 $.ajax({ 4961 url: url, 4962 dataType: 'json', 4963 success: function (response) { 4964 var template, notAvailableImg; 4965 var playerObject = $('#video-container_' + componentId); 4966 var imgUrl = currentPlaylist[index].img.url; 4967 4968 if (response.player_code) { 4969 loadVideoIframe(response, playerObject, callsign); 4970 } else { 4971 var notAvailableVideo = $('<img />'); 4972 notAvailableVideo.attr('src', imgUrl); 4973 notAvailableVideo.attr('alt', 'Video is not available'); 4974 playerObject.html($(notAvailableVideo)); 4975 } 4976 4977 loadVideoMetadata(currentSettings, currentPlaylist[index], metadataSection); 4978 4979 }, 4980 error: function (xhr, status, err) { 4981 console.error(xhr, status, err.toString()); 4982 } 4983 }); 4984 } 4985 </script>
vendor: 1 bytes, line 4985
4985
4986<script> 4987 $(document).ready(function() { 4988 var currentPlaylist = playlistMapping['fb5eca30-a0f0-11ea-93bb-b93edb1cf13c']; 4989 var currentSettings = settingsMapping['fb5eca30-a0f0-11ea-93bb-b93edb1cf13c']; 4990 4991 window.youtubeIframeMap = window.youtubeIframeMap || {}; 4992 if(currentPlaylist[0].videoSource === 'youtube') { 4993 if (typeof window.youtubeIframeMap === 'undefined') { 4994 window.youtubeIframeMap = {}; 4995 } 4996 window.youtubeIframeMap['fb5eca30-a0f0-11ea-93bb-b93edb1cf13c'] = { 4997 'playlist': currentPlaylist, 4998 'settings': currentSettings, 4999 }; 5000 } 5001 5002 //check if single video & no metadata 5003 if ((currentPlaylist.length === 1 || !currentSettings.showPlaylist) && 5004 !currentSettings.showTitle && 5005 !currentSettings.showContentChannel && 5006 !currentSettings.showDescription && 5007 !currentSettings.showAdditionalMediaManagerInfo){ 5008 $('#video-component_' + 'fb5eca30-a0f0-11ea-93bb-b93edb1cf13c').css({border: 'none'}); 5009 } 5010 5011 // This code loads the IFrame Player API code asynchronously. 5012 var scriptTag = document.getElementById("youtube_iframe_api"); 5013 if(!scriptTag) { 5014 scriptTag = document.createElement('script'); 5015 scriptTag.src = "https://www.youtube.com/iframe_api"; 5016 scriptTag.id = "youtube_iframe_api"; 5017 var firstScriptTag = document.getElementsByTagName('script')[0]; 5018 firstScriptTag.parentNode.insertBefore(scriptTag, firstScriptTag); 5019 } 5020 }) 5021 5022 // This function creates an <iframe> (and YouTube player) after the API code downloads. 5023 function onYouTubeIframeAPIReady() { 5024 for (var componentId in window.youtubeIframeMap) { 5025 var currentPlaylist = window.youtubeIframeMap[componentId]['playlist']; 5026 var currentSettings = window.youtubeIframeMap[componentId]['settings']; 5027 loadYoutubeVideo(componentId, 0, currentPlaylist, currentSettings); 5028 } 5029 } 5030 5031 function loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings) { 5032 var player, playerVars; 5033 var videoComponent = '#video-component_' + componentId; 5034 var youtubeWrapper = document.createElement('div'); 5035 youtubeWrapper.id = 'youtube-wrapper_' + componentId; 5036 youtubeWrapper.className = 'youtube-wrapper video-container'; 5037 5038 $('#video-container_' + componentId).remove(); 5039 $('#youtube-wrapper_' + componentId).remove(); 5040 var videoContainerEl = document.createElement('div'); 5041 videoContainerEl.id = 'video-container_' + componentId; 5042 5043 $(videoComponent + ' .video-container__wrapper').prepend(youtubeWrapper); 5044 5045 $(videoComponent + ' .youtube-wrapper').prepend(videoContainerEl); 5046 5047 playerVars = Object.assign({}, 5048 { cc_load_policy: 1 }, 5049 (currentPlaylist[index].rel === false) && { rel: 0 }, 5050 (currentPlaylist[index].controls === false) && { controls: 0 }, 5051 (currentPlaylist[index].fs === false) && { fs: 0 }, 5052 (currentPlaylist[index].autoplay === true) && { autoplay: 1 }, 5053 (currentPlaylist[index].start > 0) && { start: currentPlaylist[index].start }, 5054 (currentPlaylist[index].end > 0 && currentPlaylist[index].start < currentPlaylist[index].end) && { end: currentPlaylist[index].end } 5055 ); 5056 5057 player = new YT.Player('video-container_' + componentId, { 5058 videoId: currentPlaylist[index].videoId, 5059 playerVars 5060 }); 5061 5062 currentSettings.showTitle && 5063 $(videoComponent + ' .title').html(currentPlaylist[index].title); 5064 5065 currentSettings.showContentChannel && 5066 $(videoComponent + ' .channel').html(currentPlaylist[index].channel); 5067 5068 currentSettings.showDescription && 5069 $(videoComponent + ' .description').html(currentPlaylist[index].description); 5070 5071 $(videoComponent + ' .additional-mm-info').remove(); 5072 } 5073</script>
vendor: 1 bytes, line 5073
5073
5074<script> 5075 5076 var playlistJson = [ 5077 { 5078 "id": "6b255eae-eeee-4294-90d1-02b90cee7ec0", 5079 "img": { 5080 "url": "https://image.pbs.org/video-assets/kHaQ8Tn-asset-mezzanine-16x9-wzpeUl1.jpg", 5081 "isDefault": false 5082 }, 5083 "url": "http://pbs.org/video/peace-learning-center-xonqvn/", 5084 "title": "Student Interviews", 5085 "rating": "", 5086 "channel": "Eva A-7063", 5087 "expires": "", 5088 "runtime": "1:49", 5089 "videoId": "peace-learning-center-xonqvn", 5090 "published": "2019/03/25", 5091 "description": "Students at Peace Learning Center react to Eva Kor's story.", 5092 "videoSource": "cove", 5093 "partnerPlayerUrl": "wZalZBDeoIovlnU8Wwn3zA==", 5094 "titlePlaceholder": "Title", 5095 "channelPlaceholder": "Content channel", 5096 "descriptionPlaceholder": "Description" 5097 } 5098]; 5099 var settingsJson = { 5100 "showTitle": true, 5101 "showPlaylist": false, 5102 "playlistHeight": 4, 5103 "showDescription": false, 5104 "showContentChannel": false, 5105 "showAdditionalMediaManagerInfo": false 5106} 5107 5108 5109 5110 function updatePlaylistHeaderTabindex(componentId) { 5111 var playlistHeader = document.getElementById('playlist-header_' + componentId); 5112 if (!playlistHeader) return; 5113 var caret = playlistHeader.querySelector('.dropdown-caret'); 5114 if (window.innerWidth > 1023) { 5115 // On desktop with one-column layout, playlist header is not interactive 5116 if (caret && window.getComputedStyle(caret).display === 'none') { 5117 playlistHeader.disabled = true; 5118 playlistHeader.setAttribute('aria-disabled', 'true'); 5119 playlistHeader.setAttribute('tabindex', '-1'); 5120 } else { 5121 playlistHeader.disabled = false; 5122 playlistHeader.removeAttribute('aria-disabled'); 5123 playlistHeader.setAttribute('tabindex', '0'); 5124 } 5125 } else { 5126 playlistHeader.disabled = false; 5127 playlistHeader.removeAttribute('aria-disabled'); 5128 playlistHeader.setAttribute('tabindex', '0'); 5129 } 5130 } 5131 $(window).on('load', function(){ 5132 resizePlaylist('fb5eca30-a0f0-11ea-93bb-b93edb1cf13c'); 5133 updatePlaylistHeaderTabindex('fb5eca30-a0f0-11ea-93bb-b93edb1cf13c'); 5134 }); 5135 $(window).resize(function(){ 5136 resizePlaylist('fb5eca30-a0f0-11ea-93bb-b93edb1cf13c'); 5137 updatePlaylistHeaderTabindex('fb5eca30-a0f0-11ea-93bb-b93edb1cf13c'); 5138 }); 5139 5140 if (typeof window.playlistMapping === 'undefined') { 5141 window.playlistMapping = {}; 5142 } 5143 5144 if (typeof window.settingsMapping === 'undefined') { 5145 window.settingsMapping = {}; 5146 } 5147 window.playlistMapping['fb5eca30-a0f0-11ea-93bb-b93edb1cf13c'] = playlistJson; 5148 window.settingsMapping['fb5eca30-a0f0-11ea-93bb-b93edb1cf13c'] = settingsJson; 5149 5150 function resizePlaylist(componentId) { 5151 const videoComponent = $('#video-component_' + componentId); 5152 const playlistWrapper = videoComponent.find('.playlist__wrapper'); 5153 const playlistBody = playlistWrapper.find('.playlist-body'); 5154 const isSmallPlaylist = playlistWrapper.hasClass('playlist-sm'); 5155 const isLargeWindow = $(window).width() >= 1024; 5156 const isOneColWithPlaylist = videoComponent.hasClass('column-12'); 5157 if (isOneColWithPlaylist) { 5158 if(isLargeWindow) { 5159 const mainVideoHeight = videoComponent.find('.video-container').outerHeight() + 5160 videoComponent.find('.video-info').outerHeight() + 5161 (videoComponent.find('.video-cta-container').outerHeight(true) || 0); 5162 const playlistHeaderHeight = $('#playlist-header_' + componentId).outerHeight(); 5163 5164 playlistWrapper.css('height', mainVideoHeight + 'px'); 5165 playlistBody.css('max-height', (mainVideoHeight - playlistHeaderHeight) + 'px'); 5166 } 5167 else { 5168 playlistWrapper.css('height', 'auto'); 5169 playlistBody.css('max-height', '400px'); 5170 } 5171 } 5172 if(isSmallPlaylist){ 5173 const playlistItemImgWrapper = playlistWrapper.find('.playlist-item-img-wrapper'); 5174 const playlistItemInfo = playlistWrapper.find('.playlist-item-info'); 5175 if(!isLargeWindow) { 5176 $(playlistItemImgWrapper).removeClass('span6'); 5177 $(playlistItemInfo).removeClass('span6'); 5178 $(playlistItemImgWrapper).addClass('span4'); 5179 $(playlistItemInfo).addClass('span8'); 5180 } 5181 else { 5182 $(playlistItemImgWrapper).removeClass('span4'); 5183 $(playlistItemInfo).removeClass('span8'); 5184 $(playlistItemImgWrapper).addClass('span6'); 5185 $(playlistItemInfo).addClass('span6'); 5186 } 5187 } 5188 5189 } 5190 5191 function selectPlaylistItem(componentId, index, videoSource) { 5192 var currentPlaylist = playlistMapping[componentId]; 5193 var currentSettings = settingsMapping[componentId]; 5194 switch(videoSource) { 5195 case 'cove': 5196 loadMMVideo(componentId, index, currentPlaylist, currentSettings); 5197 break; 5198 case 'youtube': 5199 loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings); 5200 break; 5201 default: 5202 loadDefault(componentId, index, currentPlaylist, currentSettings); 5203 break; 5204 } 5205 5206 } 5207 5208 function loadDefault(componentId, index, currentPlaylist, currentSettings) { 5209 var youtubeWrapper = '#youtube-wrapper_' + componentId; 5210 var videoContainer = '#video-container_' + componentId; 5211 var videoComponent = '#video-component_' + componentId; 5212 5213 $(youtubeWrapper).remove(); 5214 $(videoContainer).remove(); 5215 5216 var videoContainerEl = document.createElement('div'); 5217 videoContainerEl.id = 'video-container_' + componentId; 5218 videoContainerEl.className = 'video-container'; 5219 $(videoComponent + ' .video-container__wrapper').prepend(vi
5219deoContainerEl); 5220 5221 var defaultImg = document.createElement('img'); 5222 defaultImg.alt = currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder; 5223 defaultImg.src = currentPlaylist[index].img.url; 5224 $(videoContainerEl).prepend(defaultImg); 5225 5226 currentSettings.showTitle && 5227 $(videoComponent + ' .title').html(currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder); 5228 5229 currentSettings.showContentChannel && 5230 $(videoComponent + ' .channel').html(currentPlaylist[index].channel||currentPlaylist[index].channelPlaceholder); 5231 5232 currentSettings.showDescription && 5233 $(videoComponent + ' .description').html(currentPlaylist[index].description||currentPlaylist[index].descriptionPlaceholder); 5234 5235 $(videoComponent + ' .additional-mm-info').remove(); 5236 } 5237 5238 function showCurrentIndex(index, componentId) { 5239 var itemsCount = $('#playlist-items-count_' + componentId); 5240 var currentItem = itemsCount.children('span'); 5241 currentItem.text(index + '/'); 5242 } 5243 5244 function togglePlaylist(componentId) { 5245 var playlistHeader = $('#playlist-header_' + componentId); 5246 // Do not toggle if the header is disabled 5247 if (playlistHeader.prop('disabled')) return; 5248 var caret = playlistHeader.find('.dropdown-caret'); 5249 // Only toggle if the caret is visible (not just present in DOM) 5250 if (caret.length && caret.is(':visible')) { 5251 var playlistBody = $('#playlist-body_' + componentId); 5252 playlistBody.css('overflow', 'auto'); 5253 playlistBody.slideToggle('slow', function(){ playlistBody.css('overflow','auto') }); 5254 playlistHeader.find('i').toggleClass('fa-caret-up fa-caret-down'); 5255 // Toggle aria-expanded for accessibility 5256 var isExpanded = playlistHeader.attr('aria-expanded') === 'true'; 5257 playlistHeader.attr('aria-expanded', !isExpanded); 5258 } 5259 } 5260 5261</script>
vendor: 1 bytes, line 5261
5261
5262<script> 5263 $(document).ready(function () { 5264 var currentPlaylist = playlistMapping['fe1b5220-a0f0-11ea-93bb-b93edb1cf13c']; 5265 var currentSettings = settingsMapping['fe1b5220-a0f0-11ea-93bb-b93edb1cf13c']; 5266 $('.playlist-item').on('click', function () { 5267 $(this).addClass('selected-item').siblings().removeClass('selected-item'); 5268 }); 5269 if (currentPlaylist[0].videoSource === 'cove') { 5270 loadMMVideo('fe1b5220-a0f0-11ea-93bb-b93edb1cf13c', 0, currentPlaylist, currentSettings, 'WFYI'); 5271 } 5272 }); 5273 5274 function displayMMInfoItem(type, item, metadataSection) { 5275 var tag = ''; 5276 5277 var label = type && (type[0].toUpperCase() + type.slice(1)); 5278 var tag = type !== 'runtime' ? label : ''; 5279 5280 if (item) { 5281 $('<div class="additional-mm-info ' + type + '"></div>').appendTo(metadataSection); 5282 var mediaManagerInfoItem = $(metadataSection + ' .' + type); 5283 tag && mediaManagerInfoItem.html(label + ': '); 5284 mediaManagerInfoItem.append(item); 5285 } 5286 } 5287 5288 function fitMMVideo(elem) { 5289 var iFrame = elem; 5290 var aspectRatio = null; 5291 var actualPlayerWidth = iFrame.width(); 5292 var topBarHeight = 0; 5293 5294 5295 if (iFrame.attr("width") != '100%') { 5296 //for backwards compatibility use hardcoded old values for player dimensions 5297 try { 5298 var styleWidth = 512; 5299 var styleHeight = 288; 5300 aspectRatio = styleWidth / styleHeight; 5301 5302 iFrame.css({ 5303 "max-width": styleWidth, 5304 "max-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth, 5305 "min-height": actualPlayerWidth * styleHeight / styleWidth > styleHeight ? styleHeight : actualPlayerWidth * styleHeight / styleWidth 5306 }); 5307 } catch (e) { 5308 } 5309 } else { 5310 // the new player with width=100% and height=100% 5311 try { 5312 aspectRatio = 16 / 9; 5313 5314 if (iFrame.attr('src').indexOf('topbar=true') != -1) { 5315 topBarHeight = 40; 5316 } 5317 5318 iFrame.css({ 5319 "height": actualPlayerWidth / aspectRatio + topBarHeight, 5320 }); 5321 iFrame.parent().css({ 5322 "height": actualPlayerWidth / aspectRatio + topBarHeight, 5323 }); 5324 } catch (e) { 5325 } 5326 } 5327 } 5328 5329 function loadVideoIframe(response, playerObject, callsign) { 5330 var currentSettings = settingsMapping['fe1b5220-a0f0-11ea-93bb-b93edb1cf13c']; 5331 template = response.player_code.template; 5332 var iframe = jQuery(template); 5333 iframe.attr('allow', 'encrypted-media'); 5334 iframe.attr('title', 'Video player'); 5335 /* WCAG 2.1 1.2.2: Ensure captions are enabled. The PBS partner player 5336 should have closed-caption tracks available by default. If captions 5337 are missing, content editors must provide them. */ 5338 5339 if (callsign) { 5340 iframe.attr('src', function (i, e) { 5341 return e += '&callsign=' + callsign; 5342 }) 5343 } 5344 iframe.attr('src', function (i, e) { 5345 return e += '&endscreen=' + !!currentSettings.endScreen; 5346 }) 5347 playerObject.html(iframe); 5348 fitMMVideo(iframe); 5349 iframe.on('load', function () { 5350 fitMMVideo(jQuery(this)); 5351 }); 5352 } 5353 5354 function loadVideoMetadata(currentSettings, item, metadataSection) { 5355 currentSettings.showTitle && 5356 $(metadataSection + ' .title').html(item.title); 5357 5358 currentSettings.showContentChannel && 5359 $(metadataSection + ' .channel').html(item.channel); 5360 5361 $(metadataSection + ' .additional-mm-info').remove(); 5362 if (currentSettings.showAdditionalMediaManagerInfo) { 5363 var mediaManagerInfoTypes = ['runtime', 'published', 'expires', 'rating']; 5364 var mediaManagerInfoTypesLength = mediaManagerInfoTypes.length; 5365 for (var i = 0; i <= mediaManagerInfoTypesLength; i++) { 5366 displayMMInfoItem(mediaManagerInfoTypes[i], item[mediaManagerInfoTypes[i]], metadataSection); 5367 } 5368 } 5369 5370 if (currentSettings.showDescription) { 5371 $(metadataSection + ' .description').remove(); 5372 $('<p class="description"></p>').appendTo(metadataSection); 5373 $(metadataSection + ' .description').html(item.description); 5374 } 5375 } 5376 5377 function loadMMVideo(componentId, index, currentPlaylist, currentSettings, c
5377allsign) { 5378 var youtubeWrapper = '#youtube-wrapper_' + componentId; 5379 var videoContainer = '#video-container_' + componentId; 5380 var videoComponent = '#video-component_' + componentId; 5381 var videoContainerWrapper = videoComponent + ' .video-container__wrapper'; 5382 var metadataSection = videoComponent + ' .video-info'; 5383 5384 $(youtubeWrapper).remove(); 5385 $(videoContainer).remove(); 5386 5387 var videoContainerEl = document.createElement('div'); 5388 videoContainerEl.id = 'video-container_' + componentId; 5389 videoContainerEl.className = 'video-container'; 5390 $(videoContainerWrapper).prepend(videoContainerEl); 5391 var videoId = currentPlaylist[index].videoId; 5392 var title = currentPlaylist[index].title; 5393 var partnerPlayerUrl = currentPlaylist[index].partnerPlayerUrl; 5394 var APIBaseURL = PBS.BentoConfig.APIBaseURL || '/'; 5395 var url = APIBaseURL + 'merlin_plugin/video_frame/'; 5396 url += partnerPlayerUrl ? partnerPlayerUrl : videoId; 5397 if (callsign) { 5398 url += '/?callsign=' + callsign + '&title=' + title; 5399 } 5400 url += '/'; 5401 $.ajax({ 5402 url: url, 5403 dataType: 'json', 5404 success: function (response) { 5405 var template, notAvailableImg; 5406 var playerObject = $('#video-container_' + componentId); 5407 var imgUrl = currentPlaylist[index].img.url; 5408 5409 if (response.player_code) { 5410 loadVideoIframe(response, playerObject, callsign); 5411 } else { 5412 var notAvailableVideo = $('<img />'); 5413 notAvailableVideo.attr('src', imgUrl); 5414 notAvailableVideo.attr('alt', 'Video is not available'); 5415 playerObject.html($(notAvailableVideo)); 5416 } 5417 5418 loadVideoMetadata(currentSettings, currentPlaylist[index], metadataSection); 5419 5420 }, 5421 error: function (xhr, status, err) { 5422 console.error(xhr, status, err.toString()); 5423 } 5424 }); 5425 } 5426 </script>
vendor: 1 bytes, line 5426
5426
5427<script> 5428 $(document).ready(function() { 5429 var currentPlaylist = playlistMapping['fe1b5220-a0f0-11ea-93bb-b93edb1cf13c']; 5430 var currentSettings = settingsMapping['fe1b5220-a0f0-11ea-93bb-b93edb1cf13c']; 5431 5432 window.youtubeIframeMap = window.youtubeIframeMap || {}; 5433 if(currentPlaylist[0].videoSource === 'youtube') { 5434 if (typeof window.youtubeIframeMap === 'undefined') { 5435 window.youtubeIframeMap = {}; 5436 } 5437 window.youtubeIframeMap['fe1b5220-a0f0-11ea-93bb-b93edb1cf13c'] = { 5438 'playlist': currentPlaylist, 5439 'settings': currentSettings, 5440 }; 5441 } 5442 5443 //check if single video & no metadata 5444 if ((currentPlaylist.length === 1 || !currentSettings.showPlaylist) && 5445 !currentSettings.showTitle && 5446 !currentSettings.showContentChannel && 5447 !currentSettings.showDescription && 5448 !currentSettings.showAdditionalMediaManagerInfo){ 5449 $('#video-component_' + 'fe1b5220-a0f0-11ea-93bb-b93edb1cf13c').css({border: 'none'}); 5450 } 5451 5452 // This code loads the IFrame Player API code asynchronously. 5453 var scriptTag = document.getElementById("youtube_iframe_api"); 5454 if(!scriptTag) { 5455 scriptTag = document.createElement('script'); 5456 scriptTag.src = "https://www.youtube.com/iframe_api"; 5457 scriptTag.id = "youtube_iframe_api"; 5458 var firstScriptTag = document.getElementsByTagName('script')[0]; 5459 firstScriptTag.parentNode.insertBefore(scriptTag, firstScriptTag); 5460 } 5461 }) 5462 5463 // This function creates an <iframe> (and YouTube player) after the API code downloads. 5464 function onYouTubeIframeAPIReady() { 5465 for (var componentId in window.youtubeIframeMap) { 5466 var currentPlaylist = window.youtubeIframeMap[componentId]['playlist']; 5467 var currentSettings = window.youtubeIframeMap[componentId]['settings']; 5468 loadYoutubeVideo(componentId, 0, currentPlaylist, currentSettings); 5469 } 5470 } 5471 5472 function loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings) { 5473 var player, playerVars; 5474 var videoComponent = '#video-component_' + componentId; 5475 var youtubeWrapper = document.createElement('div'); 5476 youtubeWrapper.id = 'youtube-wrapper_' + componentId; 5477 youtubeWrapper.className = 'youtube-wrapper video-container'; 5478 5479 $('#video-container_' + componentId).remove(); 5480 $('#youtube-wrapper_' + componentId).remove(); 5481 var videoContainerEl = document.createElement('div'); 5482 videoContainerEl.id = 'video-container_' + componentId; 5483 5484 $(videoComponent + ' .video-container__wrapper').prepend(youtubeWrapper); 5485 5486 $(videoComponent + ' .youtube-wrapper').prepend(videoContainerEl); 5487 5488 playerVars = Object.assign({}, 5489 { cc_load_policy: 1 }, 5490 (currentPlaylist[index].rel === false) && { rel: 0 }, 5491 (currentPlaylist[index].controls === false) && { controls: 0 }, 5492 (currentPlaylist[index].fs === false) && { fs: 0 }, 5493 (currentPlaylist[index].autoplay === true) && { autoplay: 1 }, 5494 (currentPlaylist[index].start > 0) && { start: currentPlaylist[index].start }, 5495 (currentPlaylist[index].end > 0 && currentPlaylist[index].start < currentPlaylist[index].end) && { end: currentPlaylist[index].end } 5496 ); 5497 5498 player = new YT.Player('video-container_' + componentId, { 5499 videoId: currentPlaylist[index].videoId, 5500 playerVars 5501 }); 5502 5503 currentSettings.showTitle && 5504 $(videoComponent + ' .title').html(currentPlaylist[index].title); 5505 5506 currentSettings.showContentChannel && 5507 $(videoComponent + ' .channel').html(currentPlaylist[index].channel); 5508 5509 currentSettings.showDescription && 5510 $(videoComponent + ' .description').html(currentPlaylist[index].description); 5511 5512 $(videoComponent + ' .additional-mm-info').remove(); 5513 } 5514</script>
vendor: 1 bytes, line 5514
5514
5515<script> 5516 5517 var playlistJson = [ 5518 { 5519 "id": "4caaf37c-b396-4edb-b563-8f23752a9a87", 5520 "img": { 5521 "url": "https://image.pbs.org/video-assets/4cbaxDP-asset-mezzanine-16x9-oG5RXFS.png", 5522 "isDefault": false 5523 }, 5524 "url": "http://pbs.org/video/evas-garden-phrapl/", 5525 "title": "Eva Kor Peace Garden", 5526 "rating": "", 5527 "channel": "Eva A-7063", 5528 "expires": "", 5529 "runtime": "1:11", 5530 "videoId": "evas-garden-phrapl", 5531 "published": "2019/02/25", 5532 "description": "Students from across Indianapolis helped plant a peace garden in honor of Eva Mozes Kor.", 5533 "videoSource": "cove", 5534 "partnerPlayerUrl": "SoqHDWZCPdaxBgNOq4Ub9A==", 5535 "titlePlaceholder": "Title", 5536 "channelPlaceholder": "Content channel", 5537 "descriptionPlaceholder": "Description" 5538 } 5539]; 5540 var settingsJson = { 5541 "showTitle": true, 5542 "showPlaylist": false, 5543 "playlistHeight": 4, 5544 "showDescription": false, 5545 "showContentChannel": false, 5546 "showAdditionalMediaManagerInfo": false 5547} 5548 5549 5550 5551 function updatePlaylistHeaderTabindex(componentId) { 5552 var playlistHeader = document.getElementById('playlist-header_' + componentId); 5553 if (!playlistHeader) return; 5554 var caret = playlistHeader.querySelector('.dropdown-caret'); 5555 if (window.innerWidth > 1023) { 5556 // On desktop with one-column layout, playlist header is not interactive 5557 if (caret && window.getComputedStyle(caret).display === 'none') { 5558 playlistHeader.disabled = true; 5559 playlistHeader.setAttribute('aria-disabled', 'true'); 5560 playlistHeader.setAttribute('tabindex', '-1'); 5561 } else { 5562 playlistHeader.disabled = false; 5563 playlistHeader.removeAttribute('aria-disabled'); 5564 playlistHeader.setAttribute('tabindex', '0'); 5565 } 5566 } else { 5567 playlistHeader.disabled = false; 5568 playlistHeader.removeAttribute('aria-disabled'); 5569 playlistHeader.setAttribute('tabindex', '0'); 5570 } 5571 } 5572 $(window).on('load', function(){ 5573 resizePlaylist('fe1b5220-a0f0-11ea-93bb-b93edb1cf13c'); 5574 updatePlaylistHeaderTabindex('fe1b5220-a0f0-11ea-93bb-b93edb1cf13c'); 5575 }); 5576 $(window).resize(function(){ 5577 resizePlaylist('fe1b5220-a0f0-11ea-93bb-b93edb1cf13c'); 5578 updatePlaylistHeaderTabindex('fe1b5220-a0f0-11ea-93bb-b93edb1cf13c'); 5579 }); 5580 5581 if (typeof window.playlistMapping === 'undefined') { 5582 window.playlistMapping = {}; 5583 } 5584 5585 if (typeof window.settingsMapping === 'undefined') { 5586 window.settingsMapping = {}; 5587 } 5588 window.playlistMapping['fe1b5220-a0f0-11ea-93bb-b93edb1cf13c'] = playlistJson; 5589 window.settingsMapping['fe1b5220-a0f0-11ea-93bb-b93edb1cf13c'] = settingsJson; 5590 5591 function resizePlaylist(componentId) { 5592 const videoComponent = $('#video-component_' + componentId); 5593 const playlistWrapper = videoComponent.find('.playlist__wrapper'); 5594 const playlistBody = playlistWrapper.find('.playlist-body'); 5595 const isSmallPlaylist = playlistWrapper.hasClass('playlist-sm'); 5596 const isLargeWindow = $(window).width() >= 1024; 5597 const isOneColWithPlaylist = videoComponent.hasClass('column-12'); 5598 if (isOneColWithPlaylist) { 5599 if(isLargeWindow) { 5600 const mainVideoHeight = videoComponent.find('.video-container').outerHeight() + 5601 videoComponent.find('.video-info').outerHeight() + 5602 (videoComponent.find('.video-cta-container').outerHeight(true) || 0); 5603 const playlistHeaderHeight = $('#playlist-header_' + componentId).outerHeight(); 5604 5605 playlistWrapper.css('height', mainVideoHeight + 'px'); 5606 playlistBody.css('max-height', (mainVideoHeight - playlistHeaderHeight) + 'px'); 5607 } 5608 else { 5609 playlistWrapper.css('height', 'auto'); 5610 playlistBody.css('max-height', '400px'); 5611 } 5612 } 5613 if(isSmallPlaylist){ 5614 const playlistItemImgWrapper = playlistWrapper.find('.playlist-item-img-wrapper'); 5615 const playlistItemInfo = playlistWrapper.find('.playlist-item-info'); 5616 if(!isLargeWindow) { 5617 $(playlistItemImgWrapper).removeClass('span6'); 5618 $(playlistItemInfo).removeClass('span6'); 5619 $(playlistItemImgWrapper).addClass('span4'); 5620 $(playlistItemInfo).addClass('span8'); 5621 } 5622 else { 5623 $(playlistItemImgWrapper).removeClass('span4'); 5624 $(playlistItemInfo).removeClass('span8'); 5625 $(playlistItemImgWrapper).addClass('span6'); 5626 $(playlistItemInfo).addClass('span6'); 5627 } 5628 } 5629 5630 } 5631 5632 function selectPlaylistItem(componentId, index, videoSource) { 5633 var currentPlaylist = playlistMapping[componentId]; 5634 var currentSettings = settingsMapping[componentId]; 5635 switch(videoSource) { 5636 case 'cove': 5637 loadMMVideo(componentId, index, currentPlaylist, currentSettings); 5638 break; 5639 case 'youtube': 5640 loadYoutubeVideo(componentId, index, currentPlaylist, currentSettings); 5641 break; 5642 default: 5643 loadDefault(componentId, index, currentPlaylist, currentSettings); 5644 break; 5645 } 5646 5647 } 5648 5649 function loadDefault(componentId, index, currentPlaylist, currentSettings) { 5650 var youtubeWrapper = '#youtube-wrapper_' + componentId; 5651 var videoContainer = '#video-container_' + componentId; 5652 var videoComponent = '#video-component_' + componentId; 5653 5654 $(youtubeWrapper).remove(); 5655 $(videoContainer).remove(); 5656 5657 var videoContainerEl = document.createElement('div'); 5658 videoContainerEl.id = 'video-container_' + componentId; 5659 videoContainerEl.className = 'video-container'; 5660 $(videoComponent + ' .video-container__wrapper').prepend(vi
5660deoContainerEl); 5661 5662 var defaultImg = document.createElement('img'); 5663 defaultImg.alt = currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder; 5664 defaultImg.src = currentPlaylist[index].img.url; 5665 $(videoContainerEl).prepend(defaultImg); 5666 5667 currentSettings.showTitle && 5668 $(videoComponent + ' .title').html(currentPlaylist[index].title||currentPlaylist[index].titlePlaceholder); 5669 5670 currentSettings.showContentChannel && 5671 $(videoComponent + ' .channel').html(currentPlaylist[index].channel||currentPlaylist[index].channelPlaceholder); 5672 5673 currentSettings.showDescription && 5674 $(videoComponent + ' .description').html(currentPlaylist[index].description||currentPlaylist[index].descriptionPlaceholder); 5675 5676 $(videoComponent + ' .additional-mm-info').remove(); 5677 } 5678 5679 function showCurrentIndex(index, componentId) { 5680 var itemsCount = $('#playlist-items-count_' + componentId); 5681 var currentItem = itemsCount.children('span'); 5682 currentItem.text(index + '/'); 5683 } 5684 5685 function togglePlaylist(componentId) { 5686 var playlistHeader = $('#playlist-header_' + componentId); 5687 // Do not toggle if the header is disabled 5688 if (playlistHeader.prop('disabled')) return; 5689 var caret = playlistHeader.find('.dropdown-caret'); 5690 // Only toggle if the caret is visible (not just present in DOM) 5691 if (caret.length && caret.is(':visible')) { 5692 var playlistBody = $('#playlist-body_' + componentId); 5693 playlistBody.css('overflow', 'auto'); 5694 playlistBody.slideToggle('slow', function(){ playlistBody.css('overflow','auto') }); 5695 playlistHeader.find('i').toggleClass('fa-caret-up fa-caret-down'); 5696 // Toggle aria-expanded for accessibility 5697 var isExpanded = playlistHeader.attr('aria-expanded') === 'true'; 5698 playlistHeader.attr('aria-expanded', !isExpanded); 5699 } 5700 } 5701 5702</script>
5702 5703 5704 5705</body> 5706</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.