rtMedia for WordPress, BuddyPress and bbPress - Version 4.4.5

Version Description

rtMedia 4.4.5, with the upgraded mediaelement library.

=

Download this release

Release Info

Developer rtcamp
Plugin Icon 128x128 rtMedia for WordPress, BuddyPress and bbPress
Version 4.4.5
Comparing to
See all releases

Code changes from version 4.4.4 to 4.4.5

app/assets/css/rtmedia.css CHANGED
@@ -781,7 +781,7 @@ button::-moz-focus-inner {
781
  padding: 0;
782
  width: 90px;
783
  height: 110px;
784
- -webkit-tap-highlight-color: transparent;
785
  opacity: 0;
786
  z-index: 10;
787
  -webkit-transition: all 300ms ease-out;
@@ -2735,29 +2735,32 @@ a.rtmedia-upload-media-link {
2735
  #buddypress .mejs-controls button {
2736
  padding: 4px 8px;
2737
  border: none;
2738
- background: transparent url("../../../lib/media-element/controls.png") no-repeat;
2739
  }
2740
- #buddypress .mejs-controls .mejs-play button {
2741
  background-position: 0 0;
2742
  }
2743
- #buddypress .mejs-controls .mejs-pause button {
2744
- background-position: 0 -16px;
2745
  }
2746
- #buddypress .mejs-controls .mejs-unmute button {
2747
- background-position: -16px 0;
2748
  }
2749
- #buddypress .mejs-controls .mejs-mute button {
2750
- background-position: -16px -16px;
2751
  }
2752
- #buddypress .mejs-controls .mejs-fullscreen-button button {
2753
- background-position: -32px 0;
2754
  }
2755
- #buddypress .mejs-controls .mejs-unfullscreen button {
2756
- background-position: -32px -16px;
 
 
 
2757
  }
2758
 
2759
  .mejs-container .mejs-controls .mejs-time {
2760
- padding: 10px 3px 0;
2761
  content: '';
2762
  }
2763
 
781
  padding: 0;
782
  width: 90px;
783
  height: 110px;
784
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
785
  opacity: 0;
786
  z-index: 10;
787
  -webkit-transition: all 300ms ease-out;
2735
  #buddypress .mejs-controls button {
2736
  padding: 4px 8px;
2737
  border: none;
2738
+ background: rgba(0, 0, 0, 0) url("../../../lib/media-element/mejs-controls.png") no-repeat;
2739
  }
2740
+ #buddypress .mejs-controls .mejs-play > button {
2741
  background-position: 0 0;
2742
  }
2743
+ #buddypress .mejs-controls .mejs-pause > button {
2744
+ background-position: -20px 0;
2745
  }
2746
+ #buddypress .mejs-controls .mejs-unmute > button {
2747
+ background-position: -40px 0;
2748
  }
2749
+ #buddypress .mejs-controls .mejs-mute > button {
2750
+ background-position: -60px 0;
2751
  }
2752
+ #buddypress .mejs-controls .mejs-fullscreen-button > button {
2753
+ background-position: -80px 0;
2754
  }
2755
+ #buddypress .mejs-controls .mejs-unfullscreen > button {
2756
+ background-position: -100px 0;
2757
+ }
2758
+ #buddypress .mejs-controls .mejs-replay > button {
2759
+ background-position: -160px 0;
2760
  }
2761
 
2762
  .mejs-container .mejs-controls .mejs-time {
2763
+ padding: 15px 3px 0;
2764
  content: '';
2765
  }
2766
 
app/assets/css/rtmedia.min.css CHANGED
@@ -1 +1 @@
1
- .alignleft{float:left}.alignright{float:right}.aligncenter{display:block;margin-left:auto;margin-right:auto;text-align:center}.clear-both{clear:both}.clear-none{clear:none}.clear-left{clear:left}.clear-right{clear:right}.rtm-inline-block{display:inline-block}.rtm-text-left{text-align:left}.rtm-text-right{text-align:right}.rtm-text-center{text-align:center}.rtm-border-0{border:0 !important}.hide{display:none}.rtmedia-success,.rtmedia-warning{margin:10px 0;padding:8px 14px 8px 14px;text-shadow:0 1px 0 rgba(255,255,255,0.5);border-bottom:1px solid #e7e7e7;cursor:pointer}.rtmedia-success{background-color:#dff0d8;color:#468847}.rtmedia-warning{background-color:#F0D8DD;color:#884646}.clearfix:after{content:"";display:table;clear:both}#buddypress form#whats-new-form textarea{box-sizing:border-box;min-height:70px;width:100%}#buddypress #whats-new-form .rtmedia-uploader-div{display:none}#buddypress #whats-new-form #whats-new-options .rtmedia-uploader-div{display:block}#buddypress #whats-new-options{height:auto !important;overflow:hidden}#buddypress form#whats-new-form p.activity-greeting{line-height:1}#buddypress form#whats-new-form #whats-new-options select{border:1px solid #ccc;font-size:13px;margin-top:0;padding:3px 2px}#whats-new-submit #aw-whats-new-submit{font-size:12px;line-height:18px;padding:4px 6px}#whats-new-post-in-box{float:left;font-size:13px}#buddypress form#whats-new-form #whats-new-submit{margin-top:0}#whats-new-textarea{margin-bottom:10px}body.media.buddypress{overflow-y:auto}#buddypress input[type=submit]:focus{background:#ededed;border:1px solid #bbb;color:#555;outline:0;text-decoration:none}#buddypress ul.activity-list li.activity-item .activity-comments .rtmedia-uploader-div{color:#767676;margin-left:50px;padding-left:15px}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box{margin-top:0}#whats-new-post-in-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.rtmedia-container{box-sizing:border-box}.rtmedia-container *,.rtmedia-container *:before,.rtmedia-container *:after{box-sizing:inherit}.rtmedia-list.rtmedia-list{list-style:none;margin:0;padding:0}.rtmedia-list-item>a{border:0;display:inline-block;text-decoration:none}.rtmedia-list-item>a:focus{outline:0}.rtmedia-list-item>a+p{display:none}.rtmedia-list-item>a .rtmedia-item-thumbnail img{display:inline-block}#rtmedia-uploader-form .rtm-plupload-list,form .rtmedia-container .rtm-plupload-list,#rtmedia_uploader_filelist{list-style:none;margin-left:-4px;margin-right:-4px;padding-left:0;padding-top:10px}#rtmedia-uploader-form .rtm-plupload-list li,form .rtmedia-container .rtm-plupload-list li,#rtmedia_uploader_filelist li{background:#eee;float:left;margin:4px;max-width:110px;padding:5px;z-index:1;position:relative}#rtmedia-uploader-form .rtm-plupload-list li.upload-error,form .rtmedia-container .rtm-plupload-list li.upload-error,#rtmedia_uploader_filelist li.upload-error{border:1px solid red}#rtmedia-uploader-form .rtm-plupload-list img,form .rtmedia-container .rtm-plupload-list img,#rtmedia_uploader_filelist img{max-width:100%}#rtmedia-uploader-form .rtm-plupload-list canvas,form .rtmedia-container .rtm-plupload-list canvas,#rtmedia_uploader_filelist canvas{display:block;max-width:100%}#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-title,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-title,#rtmedia_uploader_filelist .rtm-upload-edit-title{font-size:12px}#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-desc,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-desc,#rtmedia_uploader_filelist .rtm-upload-edit-desc{font-size:12px;display:block}#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-title-wrapper label,#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-desc-wrapper label,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-title-wrapper label,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-desc-wrapper label,#rtmedia_uploader_filelist .rtm-upload-edit-title-wrapper label,#rtmedia_uploader_filelist .rtm-upload-edit-desc-wrapper label{display:block}#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-title-wrapper input.rtm-upload-edit-title,#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-desc-wrapper input.rtm-upload-edit-title,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-title-wrapper input.rtm-upload-edit-title,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-desc-wrapper input.rtm-upload-edit-title,#rtmedia_uploader_filelist .rtm-upload-edit-title-wrapper input.rtm-upload-edit-title,#rtmedia_uploader_filelist .rtm-upload-edit-desc-wrapper input.rtm-upload-edit-title{min-width:100%;margin-top:1px}.rtm-plupload-list:empty{display:none}.rtmedia-uploader-div,.rtmedia-uploader{clear:both}.rtm-upload-button-wrapper button.rtmedia-comment-media-upload,button.rtmedia-comment-media-upload{padding:3px 6px}.rtm-upload-button-wrapper button.rtmedia-comment-media-upload .dashicons,button.rtmedia-comment-media-upload .dashicons{font-size:18px;line-height:20px}button#rtmedia-add-media-button-post-update{padding:3px 6px}button#rtmedia-add-media-button-post-update .dashicons{font-size:18px;line-height:20px}.plupload_file_name{font-size:11px;font-weight:bold;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plupload_file_size{color:#666;font-size:10px}.plupload_file_action{background:#eee;position:absolute;height:18px;right:4px;top:0;width:18px;z-index:10}.plupload_file_action .dashicons{color:#DD3D36;cursor:pointer;font-size:16px;height:18px;padding:2px 1px;width:18px}.plupload_file_status{height:18px;overflow:hidden;position:relative}.plupload_file_progress{background:#7AD03A;height:4px;position:absolute;top:0}.rtm-form .rtm-field-wrap{margin-bottom:20px}.rtmedia_next_prev{padding:0 10px}.rtm-page-number{float:left}.rtm-page-number .rtm-label{line-height:30px}.rtm-page-number .rtm-label,.rtm-page-number .rtm-go-to-num,.rtm-page-number .rtmedia-page-link{float:left}.rtm-pagination{background:transparent;border:none;color:#888;font-size:small;margin:0;position:relative;display:block;float:left;width:100%;padding:10px 0}.rtm-pagination .rtm-paginate{float:right;font-size:15px}.rtm-pagination .rtm-paginate a,.rtm-pagination .rtm-paginate span{display:inline-block;line-height:1;margin:0 2px;padding:8px;text-decoration:none}.rtm-pagination .rtm-paginate a.rtmedia-page-link{padding:8px}.rtm-pagination .dashicons{font-size:14px;height:auto;line-height:1.2;margin:0;padding:0;width:auto}#rtmedia_go_to_num{font-size:16px;margin:0 5px;padding:4px 5px;width:80px}.rtmedia-upload-not-allowed{background-color:#fcf8e3;border-bottom:1px solid #EEE;color:#c09853;margin-bottom:20px;padding:10px 15px}.plupload_file_name{position:relative}.plupload_file_name .dashicons{background:#eee;color:#DD3D36;cursor:pointer;font-size:14px;height:auto;padding:0 2px 0 5px;position:absolute;right:0;top:0;width:auto}.plupload_file_name .dashicons-yes{color:#7AD03A}.rtmedia-gallery-item-actions{background-color:rgba(0,0,0,0.6);opacity:0;position:absolute;text-align:center;-webkit-transition:all ease-in-out 0.4s;transition:all ease-in-out 0.4s;width:100%;z-index:9}.rtmedia-gallery-item-actions a{border:0;box-shadow:0 0 0;color:#fff;display:inline-block;font-size:12px;outline:none;padding:4px;text-align:left;text-decoration:none;text-transform:uppercase}.rtmedia-gallery-item-actions .dashicons{font-size:17px;margin-right:2px;position:relative;top:1px}.rtmedia-gallery-item-actions .dashicons-trash{font-size:15px}.rtm-pro-allow-action .rtmedia-list-item:hover .rtmedia-gallery-item-actions{opacity:1}.rtm-pro-allow-action .rtmedia-list-item:hover .rtmedia-bulk-edit-item-wrap+.rtmedia-gallery-item-actions{opacity:0}.rtmedia-footer-link{clear:both;overflow:hidden;padding:16px 0;position:relative;text-align:center}.rtmedia-text-link-decoration,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit a,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit span,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete a,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete span,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title a,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title span{text-decoration:none}.rtmedia-text-link-decoration:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit a:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit span:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete a:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete span:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title a:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title span:hover{text-decoration:underline}.rtmedia-container .rtmedia-edit-list-media-table{max-height:300px;overflow-y:auto}.rtmedia-container .rtmedia-edit-list-media-table thead tr{background-color:#50A1D7}.rtmedia-container .rtmedia-edit-list-media-table thead th{text-align:center;color:#FFF}.rtmedia-container .rtmedia-edit-list-media-table tbody tr:nth-child(odd){background:#FFF}.rtmedia-container .rtmedia-edit-list-media-table tbody tr:nth-child(even){background:#DCDCDC}table.rtmedia-edit-media-list tr{line-height:30px}table.rtmedia-edit-media-list tr th{color:#333;padding:4px 10px;line-height:20px}table.rtmedia-edit-media-list tr .rtm-edit-media-list-heading{width:44%}table.rtmedia-edit-media-list tr .rtm-edit-media-list-title-heading{width:56%}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title{padding:4px;font-size:14px;line-height:24px}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title a{text-decoration:none;color:#333}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit{text-align:center}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit a{color:#333;font-size:13px}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete{text-align:center}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete span{color:#FF0000;cursor:pointer;font-size:13px}.rtm-hide{display:none}.rtmedia-list-item .rtmedia-album-media-count{position:absolute;top:0;right:0;background-color:black;color:white;padding:0 5px}.rtm-tabs.rtm-tabs{border-bottom:1px solid #eee;list-style:none;margin:0 0 20px;padding:0}.rtm-tabs li{border:1px solid #eee;border-bottom:0;float:left;margin:0 5px;padding:0}.rtm-tabs a{border:0;display:block;padding:5px 15px;text-decoration:none}.rtm-tabs a:focus{background:transparent;box-shadow:0 0 0}.rtm-tabs .active{position:relative}.rtm-tabs .active:after{background:#fff;bottom:-1px;content:' ';height:1px;left:0;position:absolute;width:100%}.rtm-tabs .dashicons{font-size:16px;height:auto;line-height:20px;margin-right:8px;width:auto}.rtmedia-edit-media-tabs .rtm-tabs a{border-bottom:0 none}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:104211;overflow:hidden;position:fixed;background:rgba(0,0,0,0.9)}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:104311;position:fixed;outline:none !important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;max-width:84%;margin:0 auto;right:0;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:' ';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !important}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;outline:none;padding:0;z-index:1046;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{background:#fff;color:#999;cursor:pointer;font-size:24px;font-style:normal;height:30px;line-height:30px;padding:0;position:absolute;right:1px;text-align:center;text-decoration:none;text-indent:2px;top:0;width:32px;z-index:12}.mfp-close:hover,.mfp-close:focus{opacity:1;filter:alpha(opacity=100)}.mfp-close:active{top:1px}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#FFF;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#CCC;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{cursor:pointer;position:absolute;opacity:0.65;filter:alpha(opacity=65);margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent;opacity:0;z-index:10;-webkit-transition:all 300ms ease-out;transition:all 300ms ease-out}.rtm-single-media:hover .mfp-arrow{opacity:1}@media (max-device-width: 640px){.mfp-arrow{display:none}.rtm-single-media:hover .mfp-arrow{display:none}}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1;filter:alpha(opacity=100)}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .mfp-a{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px;opacity:0.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #FFF;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border-right:27px solid #3F3F3F}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #FFF;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #3F3F3F}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#444}.mfp-figure small{color:#BDBDBD;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#F3F3F3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}.mfp-preloader{position:absolute;top:50%;left:0;right:0;margin-top:-36px;z-index:1044;font-size:0;width:36px;height:36px;margin-left:auto;margin-right:auto}.mfp-preloader:before{content:'Loading…';position:absolute;width:30px;height:30px}.mfp-preloader:not(:required):before{content:'';border-radius:50%;border:3px solid rgba(255,255,255,0.27);border-top-color:rgba(255,255,255,0.9);animation:spinner .6s linear infinite;-webkit-animation:spinner .6s linear infinite}@keyframes spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner{to{-webkit-transform:rotate(360deg)}}@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,0.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,0.6);position:fixed;text-align:center;padding:0}}@media all and (max-width: 900px){.mfp-arrow{-webkit-transform:scale(0.75);-ms-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{-webkit-transform-origin:0;-ms-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;-ms-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}#atwho-container #atwho-ground-comment_content .atwho-view{z-index:2147483647}.mfp-content .rtm-lightbox-container{background:#000;margin:0 auto;position:relative}.mfp-content .rtm-lightbox-container .rtmedia-comment-media-list .mejs-container.mejs-video{min-height:200px;min-width:200px}.mfp-content .rtm-single-meta{background:#fff;overflow:hidden;padding:20px 20px 110px;position:relative;vertical-align:top}.rtm-single-media{overflow:hidden;position:relative;text-align:center;vertical-align:middle}.rtm-single-media .mejs-container{margin:0 auto;max-width:inherit}.rtm-single-media .rtmedia-message-container{position:absolute;top:45%;left:0;right:0;margin-left:auto;margin-right:auto}@media (max-device-width: 640px){.rtm-single-media .rtmedia-message-container{top:25%}}.rtm-ltb-action-container{background-color:rgba(0,0,0,0.6);bottom:0;color:#fff;line-height:38px;opacity:0;padding:0 10px;position:absolute;width:100%;-webkit-transition:all 300ms ease-out;transition:all 300ms ease-out}.rtm-single-media:hover .rtm-ltb-action-container{opacity:1}@media (max-device-width: 640px){.rtm-ltb-action-container{clear:both;position:relative;opacity:1}.rtm-single-media:hover .rtm-ltb-action-container{opacity:1}}#buddypress #rtmedia-single-media-container.rtmedia-single-media .button{background:transparent;border:0 none;border-radius:2px;color:rgba(255,255,255,0.5);display:block;font-family:inherit;font-weight:normal;line-height:24px;margin:0;padding:0 6px;text-shadow:0 0 0;text-transform:none}#buddypress #rtmedia-single-media-container.rtmedia-single-media .button:hover{background:rgba(255,255,255,0.2);color:rgba(255,255,255,0.8)}#buddypress #rtmedia-single-media-container.rtmedia-single-media .rtm-options .button{color:#333;margin:0 auto;padding:0 4px 0 0}#buddypress #rtm-media-options-list .rtm-options form button{font-size:small}#buddypress #rtm-media-options-list .rtm-options .button{background:transparent;border:0 none;border-radius:2px;color:rgba(255,255,255,0.5);float:left;font-family:inherit;font-weight:normal;line-height:24px;padding:0 6px;text-shadow:0 0 0;text-transform:none}#buddypress #rtm-media-options-list .rtm-options .rtmedia-delete-favlist{color:#fff;padding:0}.rtm-options.rtm-options{background:#666;color:#fff;display:none;font-size:14px;list-style:none;margin:0;padding:8px 10px;position:absolute;left:0;top:38px;width:190px;z-index:10}.rtm-options li{margin:0;overflow:hidden;padding:2px 0}.rtm-media-options .rtm-options:after{bottom:100%;left:20px;border:solid transparent;content:' ';height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(255,255,255,0);border-bottom-color:#666;border-width:6px;margin-left:-6px}.mfp-content .rtm-options{background:#fff;color:#333;bottom:38px;right:0;left:auto;top:auto}.mfp-content .rtm-options:after{top:100%;right:22px;border:solid transparent;content:' ';height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(255,255,255,0);border-top-color:#fff;border-width:6px;margin-left:-6px}.rtm-options .dashicons{font-size:14px;line-height:24px;margin-right:2px}.rtm-media-options .rtm-options a{border:0;color:#fff;display:block;text-decoration:none}.rtm-ltb-title{color:rgba(255,255,255,0.7);float:left;font-size:13px}.rtm-ltb-title a{color:inherit}.rtm-ltb-title a:hover{border-bottom:1px dotted;color:#fff}.rtm-item-actions{float:right}.rtm-item-actions>div,.rtm-item-actions>form{float:left;margin:0 4px 0 0;padding:7px 0;position:relative}.rtmedia-media{margin:0 auto}.rtmedia-media img{display:inline-block;max-height:inherit;height:auto;max-width:100%;width:auto}@media only screen and (max-device-width: 1024px){.rtmedia-media{margin:40px 0}}.rtm-user-meta-details .username{font-size:16px;line-height:1;margin-bottom:6px}.userprofile{float:left;margin:0 16px 16px 0;max-width:54px}.userprofile a{display:block}.userprofile img{height:auto;max-width:100%}.rtm-time-privacy{color:#999;font-size:12px}.rtm-time-privacy .dashicons{font-size:14px;line-height:1.5;margin-top:-2px}.rtmedia-actions-before-comments>span{float:left;margin-right:10px}.rtmedia-actions-before-comments .rtmedia-comment-link,.rtmedia-actions-before-comments .rtmedia-view-conversation,#buddypress .rtmedia-actions-before-comments .rtmedia-like{border:0;font-size:13px;font-weight:normal;line-height:2;padding:0;text-transform:none}.rtmedia-actions-before-comments .rtmedia-comment-link:hover,.rtmedia-actions-before-comments .rtmedia-view-conversation:hover,#buddypress .rtmedia-actions-before-comments .rtmedia-like:hover{background:transparent}.rtmedia-comment-user-pic{float:left;margin-right:10px;max-width:36px}.rtmedia-comment-user-pic img{height:auto;max-width:100%}.rtm-like-comments-info{position:relative}.rtm-like-comments-info:after{bottom:100%;left:15px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(237,239,244,0);border-bottom-color:#edeff4;border-width:4px;margin-left:-4px}.rtm-comment-list.rtm-comment-list{list-style:none;margin:0;padding:0}.rtm-comment-list li{background:#edeff4;font-size:12px;margin-bottom:1px;padding:10px;position:relative}.rtm-comment-list li:hover .rtmedia-delete-comment{opacity:1}.rtm-comment-list .rtmedia-no-comments{margin:0;padding:5px 10px}.rtmedia-like-info{background:#edeff4;font-size:12px;margin-bottom:1px;padding:5px 10px;position:relative}.rtm-comment-wrap{overflow:hidden}.rtm-comment-wrap .rtmedia-comment-author{font-weight:700}.rtm-comment-wrap .rtmedia-comment-date{color:#999;font-size:11px}.rtmedia-comment-content{margin-top:2px}.rtmedia-delete-comment{color:#999;cursor:pointer;font-size:16px;opacity:0;position:absolute;right:5px;top:5px}.rtmedia-comment-content p{margin:0}.rtmedia-comment-details{line-height:1.5;margin-top:-3px}.rtmedia-item-comments textarea{font-size:14px;padding:4px}.rtm-media-single-comments{bottom:20px;padding:10px;width:100%}.rtm-media-single-comments textarea{background-color:#edeff4;font-size:12px;line-height:14px;max-height:40px;min-height:30px;padding:4px}.rtmedia-popup{background:#fff;margin:20px auto;max-width:600px;padding:20px;position:relative;width:auto}.rtmedia-popup .rtm-modal-title{font-size:24px;margin-bottom:20px;margin-top:0}.rtmedia-popup label{display:block;margin-bottom:5px}#rtm-modal-container p{margin-bottom:10px}#rtm-mejs-video-container{margin:0 auto}.rtmedia-media-name{float:left;max-width:140px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.rtm-single-media.rtm-media-type-video{padding-bottom:40px;padding-top:40px}.rtmedia-gallery-alert-container{position:fixed;top:0;left:0;height:100%;width:100%;background-color:rgba(0,0,0,0.6);z-index:999997}.rtmedia-gallery-message-box{position:fixed;top:40%;left:50%;margin-left:auto;margin-right:auto;z-index:999999}.rtmedia-gallery-message-box span{position:relative;left:-50%}.rtmedia-activity-container{box-sizing:border-box}.rtmedia-activity-container *,.rtmedia-activity-container *:before,.rtmedia-activity-container *:after{box-sizing:inherit}.rtmedia-activity-container .rtmedia-list.masonry{list-style:none;padding:0}.rtmedia-activity-container .rtmedia-list.masonry p{display:none}.rtmedia-activity-container .rtmedia-list.masonry:after{content:'';display:block;clear:both}.rtmedia-activity-container .rtmedia-list-item.masonry-brick{display:inline-block;float:left;width:32%;padding:0 !important}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container{min-width:33% !important;margin:0 0 5px 0;width:100% !important}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container .mejs-controls{width:100%}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container .mejs-controls .mejs-time-total{display:none}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container .mejs-controls .mejs-horizontal-volume-slider{width:20%;padding-left:5px}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total{width:100%}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container .mejs-controls .mejs-horizontal-volume-slider .mejs-time-loaded{display:none}.rtmedia-activity-container .rtmedia-list-item.masonry-brick img{display:block;max-width:100%}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .rtmedia-item-title{display:none}#buddypress ul.rtmedia-list li{border-bottom:0;padding-bottom:0}.rtmedia-activity-container .rtmedia-item-actions{display:none}.rtmedia-activity-container .rtmedia-item-title,.rtmedia-activity-container .rtmedia-item-title a{border:0;color:#666;font-size:13px;margin:5px 0 0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}#rtmedia-whts-new-upload-container div{left:0 !important;position:absolute;top:0 !important}#aw-whats-new-submit,.rtmedia-add-media-button{display:block}.rtm-drag-drop-active{border:4px dashed green !important;display:block;height:100%;opacity:0.5;z-index:9999}#rtm-drop-files-title{background:rgba(0,0,0,0.2);display:none;font-size:14px;height:100%;padding:20px;position:absolute;top:0;width:100%}#rtSelectPrivacy{float:right}form.rt_media_comment_form .rtmedia-plupload-container{overflow:hidden}.rtmedia-plupload-container{position:relative;float:left}.rtm-upload-button-wrapper{float:left;margin-right:5px}#rtmedia-action-update{margin-right:10px}.rtmedia-list-item.media-type-photo,.rtmedia-list-item.media-type-document,.rtmedia-list-item.media-type-music,.rtmedia-list-item.media-type-video{display:inline-block}.media-type-music .mejs-container{margin-bottom:10px}.previous-pagination{float:left;margin-top:10px}.next-pagination{float:right;margin-top:10px}@media screen and (max-width: 500px){#activity-stream li .media-type-video{width:100%}#activity-stream li .media-type-video .mejs-video{max-width:100%;min-width:100%}}#rtmedia_show_all_comment{cursor:pointer}#rtmedia_show_all_comment:hover{text-decoration:underline}#whats-new-options{opacity:0;display:none}#whats-new-options .rtmedia-uploader-div{opacity:0;display:none;visibility:hidden}.ac-form .rtmedia-uploader-div,.rt_media_comment_form .rtmedia-uploader-div{opacity:1;display:block;visibility:visible}#whats-new-options{opacity:0;display:none}a.rtmedia-comment-link{display:none}a.rtmedia-comment-link.rtmedia-comments-link{display:initial}.rtmedia-album-edit .rtm-checkbox-wrap{background:rgba(255,255,255,0.9);height:30px;line-height:1;padding:10px;position:absolute;z-index:10}.rtmedia-album-edit .rtmedia-item-selector{position:relative;top:-7px}.rtmedia-album-edit .rtmedia-move-container{display:none}.rtm-single-actions.rtm-item-actions{float:none}.rtm-media-type-music .rtmedia-media{width:100%}.media-item .describe{border-collapse:collapse;width:100%;border-top-style:solid;border-top-width:1px;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:left;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 8px 8px 0;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 0 0 10px}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-right:6px;margin-left:2px}.media-upload-form .align .field label{display:inline;padding:0 0 0 23px;margin:0 1em 0 3px;font-weight:bold}.media-upload-form tr.image-size label{margin:0 0 0 5px;font-weight:bold}.media-upload-form th.label label{font-weight:bold;margin:0.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}abbr.required{border:medium none;text-decoration:none}.media-item .describe input[type="text"],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 0 0 5px}.media-item .edit-attachment,.describe-toggle-on,.describe-toggle-off{display:block;line-height:36px;float:right;margin-right:15px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}#media-items .media-item{border-style:solid;border-width:1px;min-height:36px;position:relative;margin-top:-1px;width:100%}#media-items{width:623px}.media-new-php #media-items{margin:1em 0}#media-items:empty{border:0 none}.media-item .filename{line-height:36px;overflow:hidden;padding:0 10px}.media-item .error-div{padding-left:10px}.media-item .pinkynail{float:left;margin:2px 2px 0;max-width:40px;max-height:32px}.media-item .startopen,.media-item .startclosed{display:none}.media-item .original{position:relative;height:34px}.media-item .progress{float:right;height:22px;margin:6px 10px 0 0;width:200px;line-height:2em;padding:0;overflow:hidden;margin-bottom:2px;border:1px solid #d1d1d1;background:#f7f7f7;background-image:-webkit-gradient(linear, left bottom, left top, from(#fff), to(#f7f7f7));background-image:-webkit-linear-gradient(bottom, #fff, #f7f7f7);background-image:linear-gradient(to top, #fff, #f7f7f7);border-radius:3px;box-shadow:inset 0 0 3px rgba(0,0,0,0.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-24px;background-color:#8cc1e9;background-image:-webkit-gradient(linear, left bottom, left top, from(#72a7cf), to(#8cc1e9));background-image:-webkit-linear-gradient(bottom, #72a7cf, #8cc1e9);background-image:linear-gradient(to top, #72a7cf, #8cc1e9);border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,0.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0 8px;text-shadow:0 1px 0 rgba(255,255,255,0.4);color:rgba(0,0,0,0.6)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item.error{margin:0;padding:0}.media-upload-form .media-item.error p,.media-item .error-div{line-height:16px;margin:5px 10px;padding:0}.media-item .error-div a.dismiss{display:block;float:right;margin:5px 4px 0 15px}.find-box{width:600px;height:300px;overflow:hidden;padding:33px 0 51px;position:absolute;z-index:1000}.find-box-head{cursor:move;font-weight:bold;height:2em;line-height:2em;padding:1px 12px;position:absolute;top:5px;width:100%}.find-box-inside{overflow:auto;padding:6px;height:100%}.find-box-search{overflow:hidden;padding:9px;position:relative}.find-box-search .spinner{float:none;left:125px;position:absolute;top:9px}#find-posts-input{float:left;width:140px;height:24px}#find-posts-search{float:left;margin:1px 4px 0 3px}#find-posts-response{margin:8px 0;padding:0 1px 6px}#find-posts-response table{width:100%}#find-posts-response .found-radio{padding:3px 0 0 8px;width:15px}.find-box-buttons{padding:8px;overflow:hidden}.find-box #resize-se{position:absolute;right:1px;bottom:1px}.ui-find-overlay{position:absolute;top:0;left:0;background-color:#000;opacity:0.6;filter:alpha(opacity=60)}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-0.5em 0 2em 0}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border-width:1px;border-style:solid;line-height:1.8em;word-spacing:3px;border-radius:6px}.drag-drop #drag-drop-area{border:4px dashed #DDDDDD;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#aaa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative}#item-body .imgedit-settings .imgedit-group-top h2{display:inline-block;margin:0}.rtmedia-container .rtmedia-image-editor-cotnainer label{display:inline-block;float:none;margin-right:0}.rtmedia-container .rtmedia-image-editor-cotnainer .dashicons-editor-help{padding:0;height:auto;margin-top:10px}.rtmedia-container .rtmedia-image-editor-cotnainer .hidden{display:none}.imgedit-settings p{margin:8px 0}.post-php .imgedit-wrap table{width:100%}.describe .imgedit-wrap table td,.wp_attachment_holder .imgedit-wrap table td{vertical-align:top;padding-top:0}.describe .imgedit-wrap table td.imgedit-settings{padding:0 5px}.wp_attachment_holder .imgedit-wrap table td.imgedit-settings{width:250px}td.imgedit-settings input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;background:#fff url(../../../../../../wp-admin/images/wpspin_light.gif) no-repeat scroll 22px 10px;background-size:16px 16px;opacity:0.7;filter:alpha(opacity=70);width:100%;height:500px;display:none}.spinner{background:url(../../../../../../wp-admin/images/wpspin_light.gif) no-repeat;background-size:16px 16px;display:none;float:right;opacity:0.7;filter:alpha(opacity=70);width:16px;height:16px;margin:5px 5px 0}.no-float{float:none}.media-disabled,.imgedit-settings .disabled{color:grey}.wp_attachment_image,.A1B1{overflow:hidden}.wp_attachment_image .button,.A1B1 .button{float:left}.no-js .wp_attachment_image .button{display:none}.wp_attachment_image .spinner,.A1B1 .spinner{float:left;padding:0 4px 4px;vertical-align:bottom}.imgedit-menu{margin:0 0 12px;min-width:300px}.imgedit-menu div{float:left;width:32px;height:32px}.imgedit-crop-wrap{position:relative}.imgedit-crop{margin:0 8px 0 0}.imgedit-crop.disabled:hover{background-position:-9px -31px}.imgedit-crop:hover{background-position:-9px -1px}.imgedit-rleft{margin:0 3px}.imgedit-rleft.disabled:hover{background-position:-46px -31px}.imgedit-rleft:hover{background-position:-46px -1px}.imgedit-rright{margin:0 8px 0 3px}.imgedit-rright.disabled:hover{background-position:-77px -31px}.imgedit-rright:hover{background-position:-77px -1px}.imgedit-flipv{margin:0 3px}.imgedit-flipv.disabled:hover{background-position:-115px -31px}.imgedit-flipv:hover{background-position:-115px -1px}.imgedit-fliph{margin:0 8px 0 3px}.imgedit-fliph.disabled:hover{background-position:-147px -31px}.imgedit-fliph:hover{background-position:-147px -1px}.imgedit-undo{margin:0 3px}.imgedit-undo.disabled:hover{background-position:-184px -31px}.imgedit-undo:hover{background-position:-184px -1px}.imgedit-redo{margin:0 8px 0 3px}.imgedit-redo.disabled:hover{background-position:-215px -31px}.imgedit-redo:hover{background-position:-215px -1px}.imgedit-applyto img{margin:0 8px 0 0}.imgedit-group h3{font-size:18px}.imgedit-group .dashicons{border:0;line-height:1.2}.imgedit-group-top{margin:5px 0}.imgedit-applyto .imgedit-label{padding:2px 0 0;display:block}.imgedit-help{display:none;font-style:italic;margin-bottom:8px}a.imgedit-help-toggle{text-decoration:none}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0}.imgedit-submit-btn{margin-left:20px}.imgedit-wrap .nowrap{white-space:nowrap}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.wp_attachment_details{margin-bottom:20px}.imgedit-menu div{border-color:#d5d5d5;background-color:#f1f1f1}.imgedit-menu div:hover{border-color:#c1c1c1;background-color:#eaeaea}.imgedit-menu div.disabled{border-color:#ccc;background-color:#ddd;filter:alpha(opacity=50);opacity:0.5}.bp-media-image-editor-cotnainer{margin-top:35px}.wp_attachment_image .bp-media-image-edit{float:left}.wp_attachment_image .spinner{display:none}.bp-media-image-editor-cotnainer .hidden{display:none}.bp-media-image-editor-cotnainer div.updated{margin:5px 0 15px;background-color:#ffffe0;border-color:#e6db55;padding:0 .6em;border-radius:3px;border-width:1px;border-style:solid}.bp-media-image-editor-cotnainer div.updated p{margin:.5em 0;padding:2px}body article.bp_members.bp_member .entry-content,body div.bp_members.bp_member .entry-content{width:100%}.rtm-media-gallery-uploader{display:none}.rtmedia-uploader .drag-drop{border:4px dashed #DDD;text-align:center;background:#fafafa;overflow:hidden;color:#AAAAAA;margin-top:20px;padding:25px 0}.rtmedia-uploader .drag-drop.dragover{border-color:#83b4d8}.rtmedia-uploader .drag-drop .drag-drop-info{font-size:20px;line-height:24px}.rtmedia-uploader .drag-drop .rtm-select-files span{vertical-align:middle}.rtmedia-uploader .drag-drop .rtm-seperator{margin:0px 20px}.rtmedia-uploader .drag-drop .start-media-upload{display:none;margin-top:20px}.rtmedia-uploader .drag-drop .rtm-file-size-limit{vertical-align:middle;font-size:16px;line-height:24px}.rtm-uploader-main-wrapper .rtm-uploader-tabs{margin-bottom:10px;text-align:left}.rtm-uploader-main-wrapper ul{border-bottom:1px solid #CCC}.rtm-uploader-main-wrapper li{margin:0 0 -1px 10px;display:inline-block;padding:5px 10px;line-height:25px;background-color:#e4e4e4;border:1px solid #CCC}.rtm-uploader-main-wrapper li.active{background:transparent;border-left:1px solid #CCC;border-top:1px solid #CCC;border-right:1px solid #CCC;border-bottom:1px solid #fafafa}.rtm-uploader-main-wrapper li:hover{cursor:pointer}.rtmedia-container .rtmedia-list{margin:10px -5px}.rtmedia-container .rtmedia-list .rtmedia-list-item{float:left;margin:5px;position:relative}.rtmedia-container .rtmedia-list .rtmedia-list-item>a{display:block}.rtmedia-container .rtmedia-list .rtmedia_time{background-color:#000;color:#fff;display:inline-block;font-size:11px;font-weight:bold;line-height:14px;opacity:0.75;padding:0 4px;position:absolute;right:2px;top:2px}.rtmedia-container .rtmedia-list img{vertical-align:top}.rtmedia-container .rtmedia-list .rtmedia-item-title h4{color:#666;font-size:12px;font-weight:normal;margin:5px 0 0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.rtm-load-more{background:#eee;text-align:center}.rtmedia-container .rtm-load-more a{border:0;padding:10px 0}.rtm-load-more .rtm-media-loading{padding:10px 0}.rtm-media-options.rtm-media-search-enable>*:nth-last-child(2){border-right:none}.rtm-media-options{line-height:1.4;margin-bottom:10px;clear:both}.rtm-media-options>div{display:inline-block;cursor:pointer}.rtm-media-options .rtm-media-options-list{margin-right:5px;padding-right:10px;position:relative}.rtm-media-options>*{border-right:1px solid #999}.rtm-media-options>*:last-child{border-right:none}.rtm-media-options .dashicons{font-size:inherit;line-height:1.4}#buddypress .media_search.media_search .search_by{margin-top:3px}.media_search.media_search{float:right;border:1px solid #ccc;margin-left:5px;padding:3px 0}.media_search.media_search .media_search_input{width:200px;outline:0;max-width:200px;margin:0;box-shadow:none;padding:5px 6px;border:none;background:transparent;float:left;max-height:30px}.media_search.media_search #media_fatch_loader.load{float:left;width:20px;height:30px;position:relative}.media_search.media_search #media_fatch_loader.load:before{content:'';border-radius:50%;border:1px solid #aaa;border-top-color:rgba(255,255,255,0.9);animation:spinner .8s linear infinite;-webkit-animation:spinner .8s linear infinite;position:absolute;width:15px;height:15px;top:24%}.media_search.media_search .search_option{padding:0;background:transparent;color:#000;margin-bottom:0;line-height:1;border:none}.media_search.media_search .media_search_remove.search_option{display:none}.media_search.media_search .media_search_remove.search_option i{margin-top:4px}.media_search.media_search .search_by{background:transparent;margin-top:3px;float:left;width:auto;margin-bottom:0;height:auto;padding-top:0;padding-bottom:0}@keyframes spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner{to{-webkit-transform:rotate(360deg)}}.rtmedia-upload-media-link{cursor:pointer}a.rtmedia-upload-media-link{border:none}.rtm-album-privacy span{font-size:16px;display:inline-block;margin:0 20px 20px 20px;vertical-align:top}.rtm-album-privacy label{margin-right:8px}.rtm-album-privacy .dashicons{font-size:16px;line-height:1.6;margin-right:5px}#rtm-media-options-list .rtmedia-delete-album{background:transparent;border:0;color:#fff;font-family:inherit;font-size:inherit;font-weight:inherit;padding:0;text-transform:inherit}#rtm-media-options-list .rtmedia-delete-album:hover{background:transparent;border:0;color:#fff}.rtmedia-single-container button.rtmedia-like{background-color:transparent;color:inherit}#buddypress #item-body{padding:0 0 20px 20px}#buddypress .mejs-controls button{padding:4px 8px;border:none;background:transparent url("../../../lib/media-element/controls.png") no-repeat}#buddypress .mejs-controls .mejs-play button{background-position:0 0}#buddypress .mejs-controls .mejs-pause button{background-position:0 -16px}#buddypress .mejs-controls .mejs-unmute button{background-position:-16px 0}#buddypress .mejs-controls .mejs-mute button{background-position:-16px -16px}#buddypress .mejs-controls .mejs-fullscreen-button button{background-position:-32px 0}#buddypress .mejs-controls .mejs-unfullscreen button{background-position:-32px -16px}.mejs-container .mejs-controls .mejs-time{padding:10px 3px 0;content:''}.rtmedia-activity-container .mejs-playpause-button.mejs-play button:before,.rtmedia-activity-container .mejs-playpause-button.mejs-pause button:before,.rtmedia-activity-container .mejs-volume-button.mejs-mute button:before,.rtmedia-activity-container .mejs-fullscreen-button button:before,.rtmedia-media .mejs-playpause-button.mejs-play button:before,.rtmedia-media .mejs-playpause-button.mejs-pause button:before,.rtmedia-media .mejs-volume-button.mejs-mute button:before,.rtmedia-media .mejs-fullscreen-button button:before{content:''}@media only screen and (min-width: 1025px){.mfp-content .rtm-lightbox-container{display:-webkit-box;display:-ms-flexbox;display:flex;table-layout:fixed;width:100%;min-height:473px}.mfp-content .rtm-mfp-close{background:transparent}.mfp-content .rtm-single-media{display:-webkit-box;display:-ms-flexbox;display:flex;width:66.6667%;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mfp-content .rtm-single-meta{display:block;width:33.3333%;padding:20px}.mfp-content .rtm-single-meta .rtmedia-scroll{height:100%;overflow-X:hidden}}.rtl #rtSelectPrivacy{float:left}.rtl .rtmedia-plupload-container{float:right}.rtl .rtm-upload-button-wrapper{float:right}.rtl #whats-new-post-in-box{float:right}.rtl .describe-toggle-off{float:left}.rtl .media-item .pinkynail{float:right}.rtl .media-item .progress{float:left}.rtl .media-item .error-div a.dismiss{float:left}.rtl #find-posts-input{float:right}.rtl #find-posts-search{float:right}.rtl .spinner{float:left}.rtl .wp_attachment_image .button,.rtl .A1B1 .button{float:right}.rtl .wp_attachment_image .spinner,.rtl .A1B1 .spinner{float:right}.rtl .imgedit-menu div{float:right}.rtl .wp_attachment_image .bp-media-image-edit{float:right}.rtl .rtmedia-container .rtmedia-list .rtmedia-list-item{float:right}.rtl #buddypress #rtm-media-options-list .rtm-options .button{float:right}.rtl .rtm-ltb-title{float:right}.rtl .rtm-item-actions{float:left}.rtl .rtm-item-actions>div,.rtl .rtm-item-actions>form{float:right}.rtl .userprofile{float:right}.rtl .rtmedia-actions-before-comments>span{float:right}.rtl .rtmedia-comment-user-pic{float:right}.rtl .rtmedia-media-name{float:right}.rtl #rtmedia-uploader-form .rtm-plupload-list li,.rtl #rtmedia_uploader_filelist li{float:right}.rtl .rtm-page-number{float:right}.rtl .rtm-page-number .rtmedia-page-link{float:right}.rtl .rtm-pagination{float:right}.rtl .rtm-pagination .rtm-paginate{float:left}.rtl .rtm-tabs li{float:right}.rtl .alignleft{float:right}.rtl .alignright{float:left}
1
+ .alignleft{float:left}.alignright{float:right}.aligncenter{display:block;margin-left:auto;margin-right:auto;text-align:center}.clear-both{clear:both}.clear-none{clear:none}.clear-left{clear:left}.clear-right{clear:right}.rtm-inline-block{display:inline-block}.rtm-text-left{text-align:left}.rtm-text-right{text-align:right}.rtm-text-center{text-align:center}.rtm-border-0{border:0 !important}.hide{display:none}.rtmedia-success,.rtmedia-warning{margin:10px 0;padding:8px 14px 8px 14px;text-shadow:0 1px 0 rgba(255,255,255,0.5);border-bottom:1px solid #e7e7e7;cursor:pointer}.rtmedia-success{background-color:#dff0d8;color:#468847}.rtmedia-warning{background-color:#F0D8DD;color:#884646}.clearfix:after{content:"";display:table;clear:both}#buddypress form#whats-new-form textarea{box-sizing:border-box;min-height:70px;width:100%}#buddypress #whats-new-form .rtmedia-uploader-div{display:none}#buddypress #whats-new-form #whats-new-options .rtmedia-uploader-div{display:block}#buddypress #whats-new-options{height:auto !important;overflow:hidden}#buddypress form#whats-new-form p.activity-greeting{line-height:1}#buddypress form#whats-new-form #whats-new-options select{border:1px solid #ccc;font-size:13px;margin-top:0;padding:3px 2px}#whats-new-submit #aw-whats-new-submit{font-size:12px;line-height:18px;padding:4px 6px}#whats-new-post-in-box{float:left;font-size:13px}#buddypress form#whats-new-form #whats-new-submit{margin-top:0}#whats-new-textarea{margin-bottom:10px}body.media.buddypress{overflow-y:auto}#buddypress input[type=submit]:focus{background:#ededed;border:1px solid #bbb;color:#555;outline:0;text-decoration:none}#buddypress ul.activity-list li.activity-item .activity-comments .rtmedia-uploader-div{color:#767676;margin-left:50px;padding-left:15px}#buddypress form#whats-new-form #whats-new-content.active #whats-new-options[style] #whats-new-post-in-box{margin-top:0}#whats-new-post-in-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.rtmedia-container{box-sizing:border-box}.rtmedia-container *,.rtmedia-container *:before,.rtmedia-container *:after{box-sizing:inherit}.rtmedia-list.rtmedia-list{list-style:none;margin:0;padding:0}.rtmedia-list-item>a{border:0;display:inline-block;text-decoration:none}.rtmedia-list-item>a:focus{outline:0}.rtmedia-list-item>a+p{display:none}.rtmedia-list-item>a .rtmedia-item-thumbnail img{display:inline-block}#rtmedia-uploader-form .rtm-plupload-list,form .rtmedia-container .rtm-plupload-list,#rtmedia_uploader_filelist{list-style:none;margin-left:-4px;margin-right:-4px;padding-left:0;padding-top:10px}#rtmedia-uploader-form .rtm-plupload-list li,form .rtmedia-container .rtm-plupload-list li,#rtmedia_uploader_filelist li{background:#eee;float:left;margin:4px;max-width:110px;padding:5px;z-index:1;position:relative}#rtmedia-uploader-form .rtm-plupload-list li.upload-error,form .rtmedia-container .rtm-plupload-list li.upload-error,#rtmedia_uploader_filelist li.upload-error{border:1px solid red}#rtmedia-uploader-form .rtm-plupload-list img,form .rtmedia-container .rtm-plupload-list img,#rtmedia_uploader_filelist img{max-width:100%}#rtmedia-uploader-form .rtm-plupload-list canvas,form .rtmedia-container .rtm-plupload-list canvas,#rtmedia_uploader_filelist canvas{display:block;max-width:100%}#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-title,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-title,#rtmedia_uploader_filelist .rtm-upload-edit-title{font-size:12px}#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-desc,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-desc,#rtmedia_uploader_filelist .rtm-upload-edit-desc{font-size:12px;display:block}#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-title-wrapper label,#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-desc-wrapper label,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-title-wrapper label,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-desc-wrapper label,#rtmedia_uploader_filelist .rtm-upload-edit-title-wrapper label,#rtmedia_uploader_filelist .rtm-upload-edit-desc-wrapper label{display:block}#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-title-wrapper input.rtm-upload-edit-title,#rtmedia-uploader-form .rtm-plupload-list .rtm-upload-edit-desc-wrapper input.rtm-upload-edit-title,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-title-wrapper input.rtm-upload-edit-title,form .rtmedia-container .rtm-plupload-list .rtm-upload-edit-desc-wrapper input.rtm-upload-edit-title,#rtmedia_uploader_filelist .rtm-upload-edit-title-wrapper input.rtm-upload-edit-title,#rtmedia_uploader_filelist .rtm-upload-edit-desc-wrapper input.rtm-upload-edit-title{min-width:100%;margin-top:1px}.rtm-plupload-list:empty{display:none}.rtmedia-uploader-div,.rtmedia-uploader{clear:both}.rtm-upload-button-wrapper button.rtmedia-comment-media-upload,button.rtmedia-comment-media-upload{padding:3px 6px}.rtm-upload-button-wrapper button.rtmedia-comment-media-upload .dashicons,button.rtmedia-comment-media-upload .dashicons{font-size:18px;line-height:20px}button#rtmedia-add-media-button-post-update{padding:3px 6px}button#rtmedia-add-media-button-post-update .dashicons{font-size:18px;line-height:20px}.plupload_file_name{font-size:11px;font-weight:bold;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plupload_file_size{color:#666;font-size:10px}.plupload_file_action{background:#eee;position:absolute;height:18px;right:4px;top:0;width:18px;z-index:10}.plupload_file_action .dashicons{color:#DD3D36;cursor:pointer;font-size:16px;height:18px;padding:2px 1px;width:18px}.plupload_file_status{height:18px;overflow:hidden;position:relative}.plupload_file_progress{background:#7AD03A;height:4px;position:absolute;top:0}.rtm-form .rtm-field-wrap{margin-bottom:20px}.rtmedia_next_prev{padding:0 10px}.rtm-page-number{float:left}.rtm-page-number .rtm-label{line-height:30px}.rtm-page-number .rtm-label,.rtm-page-number .rtm-go-to-num,.rtm-page-number .rtmedia-page-link{float:left}.rtm-pagination{background:transparent;border:none;color:#888;font-size:small;margin:0;position:relative;display:block;float:left;width:100%;padding:10px 0}.rtm-pagination .rtm-paginate{float:right;font-size:15px}.rtm-pagination .rtm-paginate a,.rtm-pagination .rtm-paginate span{display:inline-block;line-height:1;margin:0 2px;padding:8px;text-decoration:none}.rtm-pagination .rtm-paginate a.rtmedia-page-link{padding:8px}.rtm-pagination .dashicons{font-size:14px;height:auto;line-height:1.2;margin:0;padding:0;width:auto}#rtmedia_go_to_num{font-size:16px;margin:0 5px;padding:4px 5px;width:80px}.rtmedia-upload-not-allowed{background-color:#fcf8e3;border-bottom:1px solid #EEE;color:#c09853;margin-bottom:20px;padding:10px 15px}.plupload_file_name{position:relative}.plupload_file_name .dashicons{background:#eee;color:#DD3D36;cursor:pointer;font-size:14px;height:auto;padding:0 2px 0 5px;position:absolute;right:0;top:0;width:auto}.plupload_file_name .dashicons-yes{color:#7AD03A}.rtmedia-gallery-item-actions{background-color:rgba(0,0,0,0.6);opacity:0;position:absolute;text-align:center;-webkit-transition:all ease-in-out 0.4s;transition:all ease-in-out 0.4s;width:100%;z-index:9}.rtmedia-gallery-item-actions a{border:0;box-shadow:0 0 0;color:#fff;display:inline-block;font-size:12px;outline:none;padding:4px;text-align:left;text-decoration:none;text-transform:uppercase}.rtmedia-gallery-item-actions .dashicons{font-size:17px;margin-right:2px;position:relative;top:1px}.rtmedia-gallery-item-actions .dashicons-trash{font-size:15px}.rtm-pro-allow-action .rtmedia-list-item:hover .rtmedia-gallery-item-actions{opacity:1}.rtm-pro-allow-action .rtmedia-list-item:hover .rtmedia-bulk-edit-item-wrap+.rtmedia-gallery-item-actions{opacity:0}.rtmedia-footer-link{clear:both;overflow:hidden;padding:16px 0;position:relative;text-align:center}.rtmedia-text-link-decoration,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit a,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit span,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete a,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete span,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title a,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title span{text-decoration:none}.rtmedia-text-link-decoration:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit a:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit span:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete a:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete span:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title a:hover,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title span:hover{text-decoration:underline}.rtmedia-container .rtmedia-edit-list-media-table{max-height:300px;overflow-y:auto}.rtmedia-container .rtmedia-edit-list-media-table thead tr{background-color:#50A1D7}.rtmedia-container .rtmedia-edit-list-media-table thead th{text-align:center;color:#FFF}.rtmedia-container .rtmedia-edit-list-media-table tbody tr:nth-child(odd){background:#FFF}.rtmedia-container .rtmedia-edit-list-media-table tbody tr:nth-child(even){background:#DCDCDC}table.rtmedia-edit-media-list tr{line-height:30px}table.rtmedia-edit-media-list tr th{color:#333;padding:4px 10px;line-height:20px}table.rtmedia-edit-media-list tr .rtm-edit-media-list-heading{width:44%}table.rtmedia-edit-media-list tr .rtm-edit-media-list-title-heading{width:56%}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete,table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title{padding:4px;font-size:14px;line-height:24px}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-title a{text-decoration:none;color:#333}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit{text-align:center}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-edit a{color:#333;font-size:13px}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete{text-align:center}table.rtmedia-edit-media-list tr td.rtm-edit-media-list-delete span{color:#FF0000;cursor:pointer;font-size:13px}.rtm-hide{display:none}.rtmedia-list-item .rtmedia-album-media-count{position:absolute;top:0;right:0;background-color:black;color:white;padding:0 5px}.rtm-tabs.rtm-tabs{border-bottom:1px solid #eee;list-style:none;margin:0 0 20px;padding:0}.rtm-tabs li{border:1px solid #eee;border-bottom:0;float:left;margin:0 5px;padding:0}.rtm-tabs a{border:0;display:block;padding:5px 15px;text-decoration:none}.rtm-tabs a:focus{background:transparent;box-shadow:0 0 0}.rtm-tabs .active{position:relative}.rtm-tabs .active:after{background:#fff;bottom:-1px;content:' ';height:1px;left:0;position:absolute;width:100%}.rtm-tabs .dashicons{font-size:16px;height:auto;line-height:20px;margin-right:8px;width:auto}.rtmedia-edit-media-tabs .rtm-tabs a{border-bottom:0 none}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:104211;overflow:hidden;position:fixed;background:rgba(0,0,0,0.9)}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:104311;position:fixed;outline:none !important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;max-width:84%;margin:0 auto;right:0;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:' ';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !important}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;outline:none;padding:0;z-index:1046;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{background:#fff;color:#999;cursor:pointer;font-size:24px;font-style:normal;height:30px;line-height:30px;padding:0;position:absolute;right:1px;text-align:center;text-decoration:none;text-indent:2px;top:0;width:32px;z-index:12}.mfp-close:hover,.mfp-close:focus{opacity:1;filter:alpha(opacity=100)}.mfp-close:active{top:1px}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#FFF;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#CCC;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{cursor:pointer;position:absolute;opacity:0.65;filter:alpha(opacity=65);margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent;opacity:0;z-index:10;-webkit-transition:all 300ms ease-out;transition:all 300ms ease-out}.rtm-single-media:hover .mfp-arrow{opacity:1}@media (max-device-width: 640px){.mfp-arrow{display:none}.rtm-single-media:hover .mfp-arrow{display:none}}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1;filter:alpha(opacity=100)}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .mfp-a{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px;opacity:0.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #FFF;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border-right:27px solid #3F3F3F}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #FFF;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #3F3F3F}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#444}.mfp-figure small{color:#BDBDBD;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#F3F3F3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}.mfp-preloader{position:absolute;top:50%;left:0;right:0;margin-top:-36px;z-index:1044;font-size:0;width:36px;height:36px;margin-left:auto;margin-right:auto}.mfp-preloader:before{content:'Loading…';position:absolute;width:30px;height:30px}.mfp-preloader:not(:required):before{content:'';border-radius:50%;border:3px solid rgba(255,255,255,0.27);border-top-color:rgba(255,255,255,0.9);animation:spinner .6s linear infinite;-webkit-animation:spinner .6s linear infinite}@keyframes spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner{to{-webkit-transform:rotate(360deg)}}@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,0.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,0.6);position:fixed;text-align:center;padding:0}}@media all and (max-width: 900px){.mfp-arrow{-webkit-transform:scale(0.75);-ms-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{-webkit-transform-origin:0;-ms-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;-ms-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}#atwho-container #atwho-ground-comment_content .atwho-view{z-index:2147483647}.mfp-content .rtm-lightbox-container{background:#000;margin:0 auto;position:relative}.mfp-content .rtm-lightbox-container .rtmedia-comment-media-list .mejs-container.mejs-video{min-height:200px;min-width:200px}.mfp-content .rtm-single-meta{background:#fff;overflow:hidden;padding:20px 20px 110px;position:relative;vertical-align:top}.rtm-single-media{overflow:hidden;position:relative;text-align:center;vertical-align:middle}.rtm-single-media .mejs-container{margin:0 auto;max-width:inherit}.rtm-single-media .rtmedia-message-container{position:absolute;top:45%;left:0;right:0;margin-left:auto;margin-right:auto}@media (max-device-width: 640px){.rtm-single-media .rtmedia-message-container{top:25%}}.rtm-ltb-action-container{background-color:rgba(0,0,0,0.6);bottom:0;color:#fff;line-height:38px;opacity:0;padding:0 10px;position:absolute;width:100%;-webkit-transition:all 300ms ease-out;transition:all 300ms ease-out}.rtm-single-media:hover .rtm-ltb-action-container{opacity:1}@media (max-device-width: 640px){.rtm-ltb-action-container{clear:both;position:relative;opacity:1}.rtm-single-media:hover .rtm-ltb-action-container{opacity:1}}#buddypress #rtmedia-single-media-container.rtmedia-single-media .button{background:transparent;border:0 none;border-radius:2px;color:rgba(255,255,255,0.5);display:block;font-family:inherit;font-weight:normal;line-height:24px;margin:0;padding:0 6px;text-shadow:0 0 0;text-transform:none}#buddypress #rtmedia-single-media-container.rtmedia-single-media .button:hover{background:rgba(255,255,255,0.2);color:rgba(255,255,255,0.8)}#buddypress #rtmedia-single-media-container.rtmedia-single-media .rtm-options .button{color:#333;margin:0 auto;padding:0 4px 0 0}#buddypress #rtm-media-options-list .rtm-options form button{font-size:small}#buddypress #rtm-media-options-list .rtm-options .button{background:transparent;border:0 none;border-radius:2px;color:rgba(255,255,255,0.5);float:left;font-family:inherit;font-weight:normal;line-height:24px;padding:0 6px;text-shadow:0 0 0;text-transform:none}#buddypress #rtm-media-options-list .rtm-options .rtmedia-delete-favlist{color:#fff;padding:0}.rtm-options.rtm-options{background:#666;color:#fff;display:none;font-size:14px;list-style:none;margin:0;padding:8px 10px;position:absolute;left:0;top:38px;width:190px;z-index:10}.rtm-options li{margin:0;overflow:hidden;padding:2px 0}.rtm-media-options .rtm-options:after{bottom:100%;left:20px;border:solid transparent;content:' ';height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(255,255,255,0);border-bottom-color:#666;border-width:6px;margin-left:-6px}.mfp-content .rtm-options{background:#fff;color:#333;bottom:38px;right:0;left:auto;top:auto}.mfp-content .rtm-options:after{top:100%;right:22px;border:solid transparent;content:' ';height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(255,255,255,0);border-top-color:#fff;border-width:6px;margin-left:-6px}.rtm-options .dashicons{font-size:14px;line-height:24px;margin-right:2px}.rtm-media-options .rtm-options a{border:0;color:#fff;display:block;text-decoration:none}.rtm-ltb-title{color:rgba(255,255,255,0.7);float:left;font-size:13px}.rtm-ltb-title a{color:inherit}.rtm-ltb-title a:hover{border-bottom:1px dotted;color:#fff}.rtm-item-actions{float:right}.rtm-item-actions>div,.rtm-item-actions>form{float:left;margin:0 4px 0 0;padding:7px 0;position:relative}.rtmedia-media{margin:0 auto}.rtmedia-media img{display:inline-block;max-height:inherit;height:auto;max-width:100%;width:auto}@media only screen and (max-device-width: 1024px){.rtmedia-media{margin:40px 0}}.rtm-user-meta-details .username{font-size:16px;line-height:1;margin-bottom:6px}.userprofile{float:left;margin:0 16px 16px 0;max-width:54px}.userprofile a{display:block}.userprofile img{height:auto;max-width:100%}.rtm-time-privacy{color:#999;font-size:12px}.rtm-time-privacy .dashicons{font-size:14px;line-height:1.5;margin-top:-2px}.rtmedia-actions-before-comments>span{float:left;margin-right:10px}.rtmedia-actions-before-comments .rtmedia-comment-link,.rtmedia-actions-before-comments .rtmedia-view-conversation,#buddypress .rtmedia-actions-before-comments .rtmedia-like{border:0;font-size:13px;font-weight:normal;line-height:2;padding:0;text-transform:none}.rtmedia-actions-before-comments .rtmedia-comment-link:hover,.rtmedia-actions-before-comments .rtmedia-view-conversation:hover,#buddypress .rtmedia-actions-before-comments .rtmedia-like:hover{background:transparent}.rtmedia-comment-user-pic{float:left;margin-right:10px;max-width:36px}.rtmedia-comment-user-pic img{height:auto;max-width:100%}.rtm-like-comments-info{position:relative}.rtm-like-comments-info:after{bottom:100%;left:15px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(237,239,244,0);border-bottom-color:#edeff4;border-width:4px;margin-left:-4px}.rtm-comment-list.rtm-comment-list{list-style:none;margin:0;padding:0}.rtm-comment-list li{background:#edeff4;font-size:12px;margin-bottom:1px;padding:10px;position:relative}.rtm-comment-list li:hover .rtmedia-delete-comment{opacity:1}.rtm-comment-list .rtmedia-no-comments{margin:0;padding:5px 10px}.rtmedia-like-info{background:#edeff4;font-size:12px;margin-bottom:1px;padding:5px 10px;position:relative}.rtm-comment-wrap{overflow:hidden}.rtm-comment-wrap .rtmedia-comment-author{font-weight:700}.rtm-comment-wrap .rtmedia-comment-date{color:#999;font-size:11px}.rtmedia-comment-content{margin-top:2px}.rtmedia-delete-comment{color:#999;cursor:pointer;font-size:16px;opacity:0;position:absolute;right:5px;top:5px}.rtmedia-comment-content p{margin:0}.rtmedia-comment-details{line-height:1.5;margin-top:-3px}.rtmedia-item-comments textarea{font-size:14px;padding:4px}.rtm-media-single-comments{bottom:20px;padding:10px;width:100%}.rtm-media-single-comments textarea{background-color:#edeff4;font-size:12px;line-height:14px;max-height:40px;min-height:30px;padding:4px}.rtmedia-popup{background:#fff;margin:20px auto;max-width:600px;padding:20px;position:relative;width:auto}.rtmedia-popup .rtm-modal-title{font-size:24px;margin-bottom:20px;margin-top:0}.rtmedia-popup label{display:block;margin-bottom:5px}#rtm-modal-container p{margin-bottom:10px}#rtm-mejs-video-container{margin:0 auto}.rtmedia-media-name{float:left;max-width:140px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.rtm-single-media.rtm-media-type-video{padding-bottom:40px;padding-top:40px}.rtmedia-gallery-alert-container{position:fixed;top:0;left:0;height:100%;width:100%;background-color:rgba(0,0,0,0.6);z-index:999997}.rtmedia-gallery-message-box{position:fixed;top:40%;left:50%;margin-left:auto;margin-right:auto;z-index:999999}.rtmedia-gallery-message-box span{position:relative;left:-50%}.rtmedia-activity-container{box-sizing:border-box}.rtmedia-activity-container *,.rtmedia-activity-container *:before,.rtmedia-activity-container *:after{box-sizing:inherit}.rtmedia-activity-container .rtmedia-list.masonry{list-style:none;padding:0}.rtmedia-activity-container .rtmedia-list.masonry p{display:none}.rtmedia-activity-container .rtmedia-list.masonry:after{content:'';display:block;clear:both}.rtmedia-activity-container .rtmedia-list-item.masonry-brick{display:inline-block;float:left;width:32%;padding:0 !important}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container{min-width:33% !important;margin:0 0 5px 0;width:100% !important}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container .mejs-controls{width:100%}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container .mejs-controls .mejs-time-total{display:none}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container .mejs-controls .mejs-horizontal-volume-slider{width:20%;padding-left:5px}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total{width:100%}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .mejs-container .mejs-controls .mejs-horizontal-volume-slider .mejs-time-loaded{display:none}.rtmedia-activity-container .rtmedia-list-item.masonry-brick img{display:block;max-width:100%}.rtmedia-activity-container .rtmedia-list-item.masonry-brick .rtmedia-item-title{display:none}#buddypress ul.rtmedia-list li{border-bottom:0;padding-bottom:0}.rtmedia-activity-container .rtmedia-item-actions{display:none}.rtmedia-activity-container .rtmedia-item-title,.rtmedia-activity-container .rtmedia-item-title a{border:0;color:#666;font-size:13px;margin:5px 0 0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}#rtmedia-whts-new-upload-container div{left:0 !important;position:absolute;top:0 !important}#aw-whats-new-submit,.rtmedia-add-media-button{display:block}.rtm-drag-drop-active{border:4px dashed green !important;display:block;height:100%;opacity:0.5;z-index:9999}#rtm-drop-files-title{background:rgba(0,0,0,0.2);display:none;font-size:14px;height:100%;padding:20px;position:absolute;top:0;width:100%}#rtSelectPrivacy{float:right}form.rt_media_comment_form .rtmedia-plupload-container{overflow:hidden}.rtmedia-plupload-container{position:relative;float:left}.rtm-upload-button-wrapper{float:left;margin-right:5px}#rtmedia-action-update{margin-right:10px}.rtmedia-list-item.media-type-photo,.rtmedia-list-item.media-type-document,.rtmedia-list-item.media-type-music,.rtmedia-list-item.media-type-video{display:inline-block}.media-type-music .mejs-container{margin-bottom:10px}.previous-pagination{float:left;margin-top:10px}.next-pagination{float:right;margin-top:10px}@media screen and (max-width: 500px){#activity-stream li .media-type-video{width:100%}#activity-stream li .media-type-video .mejs-video{max-width:100%;min-width:100%}}#rtmedia_show_all_comment{cursor:pointer}#rtmedia_show_all_comment:hover{text-decoration:underline}#whats-new-options{opacity:0;display:none}#whats-new-options .rtmedia-uploader-div{opacity:0;display:none;visibility:hidden}.ac-form .rtmedia-uploader-div,.rt_media_comment_form .rtmedia-uploader-div{opacity:1;display:block;visibility:visible}#whats-new-options{opacity:0;display:none}a.rtmedia-comment-link{display:none}a.rtmedia-comment-link.rtmedia-comments-link{display:initial}.rtmedia-album-edit .rtm-checkbox-wrap{background:rgba(255,255,255,0.9);height:30px;line-height:1;padding:10px;position:absolute;z-index:10}.rtmedia-album-edit .rtmedia-item-selector{position:relative;top:-7px}.rtmedia-album-edit .rtmedia-move-container{display:none}.rtm-single-actions.rtm-item-actions{float:none}.rtm-media-type-music .rtmedia-media{width:100%}.media-item .describe{border-collapse:collapse;width:100%;border-top-style:solid;border-top-width:1px;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:left;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 8px 8px 0;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 0 0 10px}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-right:6px;margin-left:2px}.media-upload-form .align .field label{display:inline;padding:0 0 0 23px;margin:0 1em 0 3px;font-weight:bold}.media-upload-form tr.image-size label{margin:0 0 0 5px;font-weight:bold}.media-upload-form th.label label{font-weight:bold;margin:0.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}abbr.required{border:medium none;text-decoration:none}.media-item .describe input[type="text"],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 0 0 5px}.media-item .edit-attachment,.describe-toggle-on,.describe-toggle-off{display:block;line-height:36px;float:right;margin-right:15px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}#media-items .media-item{border-style:solid;border-width:1px;min-height:36px;position:relative;margin-top:-1px;width:100%}#media-items{width:623px}.media-new-php #media-items{margin:1em 0}#media-items:empty{border:0 none}.media-item .filename{line-height:36px;overflow:hidden;padding:0 10px}.media-item .error-div{padding-left:10px}.media-item .pinkynail{float:left;margin:2px 2px 0;max-width:40px;max-height:32px}.media-item .startopen,.media-item .startclosed{display:none}.media-item .original{position:relative;height:34px}.media-item .progress{float:right;height:22px;margin:6px 10px 0 0;width:200px;line-height:2em;padding:0;overflow:hidden;margin-bottom:2px;border:1px solid #d1d1d1;background:#f7f7f7;background-image:-webkit-gradient(linear, left bottom, left top, from(#fff), to(#f7f7f7));background-image:-webkit-linear-gradient(bottom, #fff, #f7f7f7);background-image:linear-gradient(to top, #fff, #f7f7f7);border-radius:3px;box-shadow:inset 0 0 3px rgba(0,0,0,0.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-24px;background-color:#8cc1e9;background-image:-webkit-gradient(linear, left bottom, left top, from(#72a7cf), to(#8cc1e9));background-image:-webkit-linear-gradient(bottom, #72a7cf, #8cc1e9);background-image:linear-gradient(to top, #72a7cf, #8cc1e9);border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,0.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0 8px;text-shadow:0 1px 0 rgba(255,255,255,0.4);color:rgba(0,0,0,0.6)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item.error{margin:0;padding:0}.media-upload-form .media-item.error p,.media-item .error-div{line-height:16px;margin:5px 10px;padding:0}.media-item .error-div a.dismiss{display:block;float:right;margin:5px 4px 0 15px}.find-box{width:600px;height:300px;overflow:hidden;padding:33px 0 51px;position:absolute;z-index:1000}.find-box-head{cursor:move;font-weight:bold;height:2em;line-height:2em;padding:1px 12px;position:absolute;top:5px;width:100%}.find-box-inside{overflow:auto;padding:6px;height:100%}.find-box-search{overflow:hidden;padding:9px;position:relative}.find-box-search .spinner{float:none;left:125px;position:absolute;top:9px}#find-posts-input{float:left;width:140px;height:24px}#find-posts-search{float:left;margin:1px 4px 0 3px}#find-posts-response{margin:8px 0;padding:0 1px 6px}#find-posts-response table{width:100%}#find-posts-response .found-radio{padding:3px 0 0 8px;width:15px}.find-box-buttons{padding:8px;overflow:hidden}.find-box #resize-se{position:absolute;right:1px;bottom:1px}.ui-find-overlay{position:absolute;top:0;left:0;background-color:#000;opacity:0.6;filter:alpha(opacity=60)}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-0.5em 0 2em 0}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border-width:1px;border-style:solid;line-height:1.8em;word-spacing:3px;border-radius:6px}.drag-drop #drag-drop-area{border:4px dashed #DDDDDD;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#aaa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative}#item-body .imgedit-settings .imgedit-group-top h2{display:inline-block;margin:0}.rtmedia-container .rtmedia-image-editor-cotnainer label{display:inline-block;float:none;margin-right:0}.rtmedia-container .rtmedia-image-editor-cotnainer .dashicons-editor-help{padding:0;height:auto;margin-top:10px}.rtmedia-container .rtmedia-image-editor-cotnainer .hidden{display:none}.imgedit-settings p{margin:8px 0}.post-php .imgedit-wrap table{width:100%}.describe .imgedit-wrap table td,.wp_attachment_holder .imgedit-wrap table td{vertical-align:top;padding-top:0}.describe .imgedit-wrap table td.imgedit-settings{padding:0 5px}.wp_attachment_holder .imgedit-wrap table td.imgedit-settings{width:250px}td.imgedit-settings input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;background:#fff url(../../../../../../wp-admin/images/wpspin_light.gif) no-repeat scroll 22px 10px;background-size:16px 16px;opacity:0.7;filter:alpha(opacity=70);width:100%;height:500px;display:none}.spinner{background:url(../../../../../../wp-admin/images/wpspin_light.gif) no-repeat;background-size:16px 16px;display:none;float:right;opacity:0.7;filter:alpha(opacity=70);width:16px;height:16px;margin:5px 5px 0}.no-float{float:none}.media-disabled,.imgedit-settings .disabled{color:grey}.wp_attachment_image,.A1B1{overflow:hidden}.wp_attachment_image .button,.A1B1 .button{float:left}.no-js .wp_attachment_image .button{display:none}.wp_attachment_image .spinner,.A1B1 .spinner{float:left;padding:0 4px 4px;vertical-align:bottom}.imgedit-menu{margin:0 0 12px;min-width:300px}.imgedit-menu div{float:left;width:32px;height:32px}.imgedit-crop-wrap{position:relative}.imgedit-crop{margin:0 8px 0 0}.imgedit-crop.disabled:hover{background-position:-9px -31px}.imgedit-crop:hover{background-position:-9px -1px}.imgedit-rleft{margin:0 3px}.imgedit-rleft.disabled:hover{background-position:-46px -31px}.imgedit-rleft:hover{background-position:-46px -1px}.imgedit-rright{margin:0 8px 0 3px}.imgedit-rright.disabled:hover{background-position:-77px -31px}.imgedit-rright:hover{background-position:-77px -1px}.imgedit-flipv{margin:0 3px}.imgedit-flipv.disabled:hover{background-position:-115px -31px}.imgedit-flipv:hover{background-position:-115px -1px}.imgedit-fliph{margin:0 8px 0 3px}.imgedit-fliph.disabled:hover{background-position:-147px -31px}.imgedit-fliph:hover{background-position:-147px -1px}.imgedit-undo{margin:0 3px}.imgedit-undo.disabled:hover{background-position:-184px -31px}.imgedit-undo:hover{background-position:-184px -1px}.imgedit-redo{margin:0 8px 0 3px}.imgedit-redo.disabled:hover{background-position:-215px -31px}.imgedit-redo:hover{background-position:-215px -1px}.imgedit-applyto img{margin:0 8px 0 0}.imgedit-group h3{font-size:18px}.imgedit-group .dashicons{border:0;line-height:1.2}.imgedit-group-top{margin:5px 0}.imgedit-applyto .imgedit-label{padding:2px 0 0;display:block}.imgedit-help{display:none;font-style:italic;margin-bottom:8px}a.imgedit-help-toggle{text-decoration:none}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0}.imgedit-submit-btn{margin-left:20px}.imgedit-wrap .nowrap{white-space:nowrap}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.wp_attachment_details{margin-bottom:20px}.imgedit-menu div{border-color:#d5d5d5;background-color:#f1f1f1}.imgedit-menu div:hover{border-color:#c1c1c1;background-color:#eaeaea}.imgedit-menu div.disabled{border-color:#ccc;background-color:#ddd;filter:alpha(opacity=50);opacity:0.5}.bp-media-image-editor-cotnainer{margin-top:35px}.wp_attachment_image .bp-media-image-edit{float:left}.wp_attachment_image .spinner{display:none}.bp-media-image-editor-cotnainer .hidden{display:none}.bp-media-image-editor-cotnainer div.updated{margin:5px 0 15px;background-color:#ffffe0;border-color:#e6db55;padding:0 .6em;border-radius:3px;border-width:1px;border-style:solid}.bp-media-image-editor-cotnainer div.updated p{margin:.5em 0;padding:2px}body article.bp_members.bp_member .entry-content,body div.bp_members.bp_member .entry-content{width:100%}.rtm-media-gallery-uploader{display:none}.rtmedia-uploader .drag-drop{border:4px dashed #DDD;text-align:center;background:#fafafa;overflow:hidden;color:#AAAAAA;margin-top:20px;padding:25px 0}.rtmedia-uploader .drag-drop.dragover{border-color:#83b4d8}.rtmedia-uploader .drag-drop .drag-drop-info{font-size:20px;line-height:24px}.rtmedia-uploader .drag-drop .rtm-select-files span{vertical-align:middle}.rtmedia-uploader .drag-drop .rtm-seperator{margin:0px 20px}.rtmedia-uploader .drag-drop .start-media-upload{display:none;margin-top:20px}.rtmedia-uploader .drag-drop .rtm-file-size-limit{vertical-align:middle;font-size:16px;line-height:24px}.rtm-uploader-main-wrapper .rtm-uploader-tabs{margin-bottom:10px;text-align:left}.rtm-uploader-main-wrapper ul{border-bottom:1px solid #CCC}.rtm-uploader-main-wrapper li{margin:0 0 -1px 10px;display:inline-block;padding:5px 10px;line-height:25px;background-color:#e4e4e4;border:1px solid #CCC}.rtm-uploader-main-wrapper li.active{background:transparent;border-left:1px solid #CCC;border-top:1px solid #CCC;border-right:1px solid #CCC;border-bottom:1px solid #fafafa}.rtm-uploader-main-wrapper li:hover{cursor:pointer}.rtmedia-container .rtmedia-list{margin:10px -5px}.rtmedia-container .rtmedia-list .rtmedia-list-item{float:left;margin:5px;position:relative}.rtmedia-container .rtmedia-list .rtmedia-list-item>a{display:block}.rtmedia-container .rtmedia-list .rtmedia_time{background-color:#000;color:#fff;display:inline-block;font-size:11px;font-weight:bold;line-height:14px;opacity:0.75;padding:0 4px;position:absolute;right:2px;top:2px}.rtmedia-container .rtmedia-list img{vertical-align:top}.rtmedia-container .rtmedia-list .rtmedia-item-title h4{color:#666;font-size:12px;font-weight:normal;margin:5px 0 0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.rtm-load-more{background:#eee;text-align:center}.rtmedia-container .rtm-load-more a{border:0;padding:10px 0}.rtm-load-more .rtm-media-loading{padding:10px 0}.rtm-media-options.rtm-media-search-enable>*:nth-last-child(2){border-right:none}.rtm-media-options{line-height:1.4;margin-bottom:10px;clear:both}.rtm-media-options>div{display:inline-block;cursor:pointer}.rtm-media-options .rtm-media-options-list{margin-right:5px;padding-right:10px;position:relative}.rtm-media-options>*{border-right:1px solid #999}.rtm-media-options>*:last-child{border-right:none}.rtm-media-options .dashicons{font-size:inherit;line-height:1.4}#buddypress .media_search.media_search .search_by{margin-top:3px}.media_search.media_search{float:right;border:1px solid #ccc;margin-left:5px;padding:3px 0}.media_search.media_search .media_search_input{width:200px;outline:0;max-width:200px;margin:0;box-shadow:none;padding:5px 6px;border:none;background:transparent;float:left;max-height:30px}.media_search.media_search #media_fatch_loader.load{float:left;width:20px;height:30px;position:relative}.media_search.media_search #media_fatch_loader.load:before{content:'';border-radius:50%;border:1px solid #aaa;border-top-color:rgba(255,255,255,0.9);animation:spinner .8s linear infinite;-webkit-animation:spinner .8s linear infinite;position:absolute;width:15px;height:15px;top:24%}.media_search.media_search .search_option{padding:0;background:transparent;color:#000;margin-bottom:0;line-height:1;border:none}.media_search.media_search .media_search_remove.search_option{display:none}.media_search.media_search .media_search_remove.search_option i{margin-top:4px}.media_search.media_search .search_by{background:transparent;margin-top:3px;float:left;width:auto;margin-bottom:0;height:auto;padding-top:0;padding-bottom:0}@keyframes spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner{to{-webkit-transform:rotate(360deg)}}.rtmedia-upload-media-link{cursor:pointer}a.rtmedia-upload-media-link{border:none}.rtm-album-privacy span{font-size:16px;display:inline-block;margin:0 20px 20px 20px;vertical-align:top}.rtm-album-privacy label{margin-right:8px}.rtm-album-privacy .dashicons{font-size:16px;line-height:1.6;margin-right:5px}#rtm-media-options-list .rtmedia-delete-album{background:transparent;border:0;color:#fff;font-family:inherit;font-size:inherit;font-weight:inherit;padding:0;text-transform:inherit}#rtm-media-options-list .rtmedia-delete-album:hover{background:transparent;border:0;color:#fff}.rtmedia-single-container button.rtmedia-like{background-color:transparent;color:inherit}#buddypress #item-body{padding:0 0 20px 20px}#buddypress .mejs-controls button{padding:4px 8px;border:none;background:transparent url("../../../lib/media-element/mejs-controls.png") no-repeat}#buddypress .mejs-controls .mejs-play>button{background-position:0 0}#buddypress .mejs-controls .mejs-pause>button{background-position:-20px 0}#buddypress .mejs-controls .mejs-unmute>button{background-position:-40px 0}#buddypress .mejs-controls .mejs-mute>button{background-position:-60px 0}#buddypress .mejs-controls .mejs-fullscreen-button>button{background-position:-80px 0}#buddypress .mejs-controls .mejs-unfullscreen>button{background-position:-100px 0}#buddypress .mejs-controls .mejs-replay>button{background-position:-160px 0}.mejs-container .mejs-controls .mejs-time{padding:15px 3px 0;content:''}.rtmedia-activity-container .mejs-playpause-button.mejs-play button:before,.rtmedia-activity-container .mejs-playpause-button.mejs-pause button:before,.rtmedia-activity-container .mejs-volume-button.mejs-mute button:before,.rtmedia-activity-container .mejs-fullscreen-button button:before,.rtmedia-media .mejs-playpause-button.mejs-play button:before,.rtmedia-media .mejs-playpause-button.mejs-pause button:before,.rtmedia-media .mejs-volume-button.mejs-mute button:before,.rtmedia-media .mejs-fullscreen-button button:before{content:''}@media only screen and (min-width: 1025px){.mfp-content .rtm-lightbox-container{display:-webkit-box;display:-ms-flexbox;display:flex;table-layout:fixed;width:100%;min-height:473px}.mfp-content .rtm-mfp-close{background:transparent}.mfp-content .rtm-single-media{display:-webkit-box;display:-ms-flexbox;display:flex;width:66.6667%;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mfp-content .rtm-single-meta{display:block;width:33.3333%;padding:20px}.mfp-content .rtm-single-meta .rtmedia-scroll{height:100%;overflow-X:hidden}}.rtl #rtSelectPrivacy{float:left}.rtl .rtmedia-plupload-container{float:right}.rtl .rtm-upload-button-wrapper{float:right}.rtl #whats-new-post-in-box{float:right}.rtl .describe-toggle-off{float:left}.rtl .media-item .pinkynail{float:right}.rtl .media-item .progress{float:left}.rtl .media-item .error-div a.dismiss{float:left}.rtl #find-posts-input{float:right}.rtl #find-posts-search{float:right}.rtl .spinner{float:left}.rtl .wp_attachment_image .button,.rtl .A1B1 .button{float:right}.rtl .wp_attachment_image .spinner,.rtl .A1B1 .spinner{float:right}.rtl .imgedit-menu div{float:right}.rtl .wp_attachment_image .bp-media-image-edit{float:right}.rtl .rtmedia-container .rtmedia-list .rtmedia-list-item{float:right}.rtl #buddypress #rtm-media-options-list .rtm-options .button{float:right}.rtl .rtm-ltb-title{float:right}.rtl .rtm-item-actions{float:left}.rtl .rtm-item-actions>div,.rtl .rtm-item-actions>form{float:right}.rtl .userprofile{float:right}.rtl .rtmedia-actions-before-comments>span{float:right}.rtl .rtmedia-comment-user-pic{float:right}.rtl .rtmedia-media-name{float:right}.rtl #rtmedia-uploader-form .rtm-plupload-list li,.rtl #rtmedia_uploader_filelist li{float:right}.rtl .rtm-page-number{float:right}.rtl .rtm-page-number .rtmedia-page-link{float:right}.rtl .rtm-pagination{float:right}.rtl .rtm-pagination .rtm-paginate{float:left}.rtl .rtm-tabs li{float:right}.rtl .alignleft{float:right}.rtl .alignright{float:left}
app/assets/css/sass/_media-element.scss CHANGED
@@ -9,49 +9,41 @@
9
  button {
10
  padding: 4px 8px;
11
  border: none;
12
- background: rgba(0, 0, 0, 0) url('../../../lib/media-element/controls.png') no-repeat;
13
  }
14
 
15
- .mejs-play {
16
- button {
17
- background-position: 0 0;
18
- }
19
  }
20
 
21
- .mejs-pause {
22
- button {
23
- background-position: 0 -16px;
24
- }
25
  }
26
 
27
- .mejs-unmute {
28
- button {
29
- background-position: -16px 0;
30
- }
31
  }
32
 
33
- .mejs-mute {
34
- button {
35
- background-position: -16px -16px;
36
- }
37
  }
38
 
39
- .mejs-fullscreen-button {
40
- button {
41
- background-position: -32px 0;
42
- }
43
  }
44
 
45
- .mejs-unfullscreen {
46
- button {
47
- background-position: -32px -16px;
48
- }
49
  }
 
 
 
 
50
  }
51
  }
52
 
53
  .mejs-container .mejs-controls .mejs-time {
54
- padding: 10px 3px 0;content: '';
55
  }
56
 
57
  .rtmedia-activity-container, .rtmedia-media {
9
  button {
10
  padding: 4px 8px;
11
  border: none;
12
+ background: rgba(0, 0, 0, 0) url('../../../lib/media-element/mejs-controls.png') no-repeat;
13
  }
14
 
15
+ .mejs-play > button {
16
+ background-position: 0 0;
 
 
17
  }
18
 
19
+ .mejs-pause > button {
20
+ background-position: -20px 0;
 
 
21
  }
22
 
23
+ .mejs-unmute > button {
24
+ background-position: -40px 0;
 
 
25
  }
26
 
27
+ .mejs-mute > button {
28
+ background-position: -60px 0;
 
 
29
  }
30
 
31
+ .mejs-fullscreen-button > button {
32
+ background-position: -80px 0;
 
 
33
  }
34
 
35
+ .mejs-unfullscreen > button {
36
+ background-position: -100px 0;
 
 
37
  }
38
+
39
+ .mejs-replay > button {
40
+ background-position: -160px 0;
41
+ }
42
  }
43
  }
44
 
45
  .mejs-container .mejs-controls .mejs-time {
46
+ padding: 15px 3px 0;content: '';
47
  }
48
 
49
  .rtmedia-activity-container, .rtmedia-media {
app/assets/js/rtMedia.backbone.js CHANGED
@@ -1353,7 +1353,9 @@ jQuery( document ).ready( function( $ ) {
1353
  //$("#div-attache-rtmedia").hide();
1354
  apply_rtMagnificPopup( jQuery( '.rtmedia-list-media, .rtmedia-activity-container ul.rtmedia-list, #bp-media-list,.widget-item-listing,.bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content' ) );
1355
  jQuery( 'ul.activity-list li.rtmedia_update:first-child .wp-audio-shortcode, ul.activity-list li.rtmedia_update:first-child .wp-video-shortcode' ).mediaelementplayer( {
1356
- // If the <video width> is not specified, this is the default
 
 
1357
  defaultVideoWidth: 480,
1358
  // If the <video height> is not specified, this is the default
1359
  defaultVideoHeight: 270
@@ -1787,7 +1789,9 @@ jQuery(document).ready(function($) {
1787
 
1788
  function rtmedia_reset_video_and_audio(){
1789
  jQuery( 'ul.activity-list li.activity-item div.rtmedia-item-thumbnail > audio.wp-audio-shortcode, ul.activity-list li.activity-item div.rtmedia-item-thumbnail > video.wp-video-shortcode' ).mediaelementplayer( {
1790
- // If the <video width> is not specified, this is the default
 
 
1791
  defaultVideoWidth: 480,
1792
  // If the <video height> is not specified, this is the default
1793
  defaultVideoHeight: 270
@@ -1821,7 +1825,9 @@ function rtmedia_single_page_popup_close(){
1821
 
1822
  function rtmedia_reset_video_and_audio_for_popup(){
1823
  jQuery( '.rtm-lightbox-container .rtmedia-comments-container ul.rtm-comment-list li.rtmedia-comment div.rtmedia-item-thumbnail > audio.wp-audio-shortcode, .rtm-lightbox-container .rtmedia-comments-container ul.rtm-comment-list li.rtmedia-comment div.rtmedia-item-thumbnail > video.wp-video-shortcode' ).mediaelementplayer( {
1824
- // If the <video width> is not specified, this is the default
 
 
1825
  defaultVideoWidth: 200,
1826
  // If the <video height> is not specified, this is the default
1827
  defaultVideoHeight: 200
1353
  //$("#div-attache-rtmedia").hide();
1354
  apply_rtMagnificPopup( jQuery( '.rtmedia-list-media, .rtmedia-activity-container ul.rtmedia-list, #bp-media-list,.widget-item-listing,.bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content' ) );
1355
  jQuery( 'ul.activity-list li.rtmedia_update:first-child .wp-audio-shortcode, ul.activity-list li.rtmedia_update:first-child .wp-video-shortcode' ).mediaelementplayer( {
1356
+ // This is required to work with new MediaElement version.
1357
+ classPrefix: 'mejs-',
1358
+ // If the <video width> is not specified, this is the default
1359
  defaultVideoWidth: 480,
1360
  // If the <video height> is not specified, this is the default
1361
  defaultVideoHeight: 270
1789
 
1790
  function rtmedia_reset_video_and_audio(){
1791
  jQuery( 'ul.activity-list li.activity-item div.rtmedia-item-thumbnail > audio.wp-audio-shortcode, ul.activity-list li.activity-item div.rtmedia-item-thumbnail > video.wp-video-shortcode' ).mediaelementplayer( {
1792
+ // This is required to work with new MediaElement version.
1793
+ classPrefix: 'mejs-',
1794
+ // If the <video width> is not specified, this is the default
1795
  defaultVideoWidth: 480,
1796
  // If the <video height> is not specified, this is the default
1797
  defaultVideoHeight: 270
1825
 
1826
  function rtmedia_reset_video_and_audio_for_popup(){
1827
  jQuery( '.rtm-lightbox-container .rtmedia-comments-container ul.rtm-comment-list li.rtmedia-comment div.rtmedia-item-thumbnail > audio.wp-audio-shortcode, .rtm-lightbox-container .rtmedia-comments-container ul.rtm-comment-list li.rtmedia-comment div.rtmedia-item-thumbnail > video.wp-video-shortcode' ).mediaelementplayer( {
1828
+ // This is required to work with new MediaElement version.
1829
+ classPrefix: 'mejs-',
1830
+ // If the <video width> is not specified, this is the default
1831
  defaultVideoWidth: 200,
1832
  // If the <video height> is not specified, this is the default
1833
  defaultVideoHeight: 200
app/assets/js/rtMedia.js CHANGED
@@ -81,7 +81,9 @@ function apply_rtMagnificPopup( selector ) {
81
  }
82
 
83
  $( '.mfp-content .rtmedia-single-media .wp-audio-shortcode,.mfp-content .rtmedia-single-media .wp-video-shortcode,.mfp-content .rtmedia-single-media .bp_media_content video' ).mediaelementplayer( {
84
- // If the <video width> is not specified, this is the default
 
 
85
  defaultVideoWidth: 480,
86
  // always show the volume button
87
  hideVolumeOnTouchDevices: false,
@@ -274,7 +276,9 @@ jQuery( 'document' ).ready( function( $ ) {
274
  setTimeout( function() {
275
  apply_rtMagnificPopup( '.rtmedia-activity-container ul.rtmedia-list, #bp-media-list, .bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content' );
276
  jQuery( 'ul.activity-list li.rtmedia_update:first-child .wp-audio-shortcode, ul.activity-list li.rtmedia_update:first-child .wp-video-shortcode' ).mediaelementplayer( {
277
- // If the <video width> is not specified, this is the default
 
 
278
  defaultVideoWidth: 480,
279
  // If the <video height> is not specified, this is the default
280
  defaultVideoHeight: 270
@@ -299,7 +303,9 @@ jQuery( 'document' ).ready( function( $ ) {
299
  apply_rtMagnificPopup( '.rtmedia-activity-container ul.rtmedia-list, #bp-media-list, .bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content' );
300
 
301
  jQuery( 'ul.activity-list li.rtmedia_update div.rtmedia-item-thumbnail > audio.wp-audio-shortcode, ul.activity-list li.rtmedia_update div.rtmedia-item-thumbnail > video.wp-video-shortcode' ).mediaelementplayer( {
302
- // If the <video width> is not specified, this is the default
 
 
303
  defaultVideoWidth: 480,
304
  // If the <video height> is not specified, this is the default
305
  defaultVideoHeight: 270
81
  }
82
 
83
  $( '.mfp-content .rtmedia-single-media .wp-audio-shortcode,.mfp-content .rtmedia-single-media .wp-video-shortcode,.mfp-content .rtmedia-single-media .bp_media_content video' ).mediaelementplayer( {
84
+ // This is required to work with new MediaElement version.
85
+ classPrefix: 'mejs-',
86
+ // If the <video width> is not specified, this is the default
87
  defaultVideoWidth: 480,
88
  // always show the volume button
89
  hideVolumeOnTouchDevices: false,
276
  setTimeout( function() {
277
  apply_rtMagnificPopup( '.rtmedia-activity-container ul.rtmedia-list, #bp-media-list, .bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content' );
278
  jQuery( 'ul.activity-list li.rtmedia_update:first-child .wp-audio-shortcode, ul.activity-list li.rtmedia_update:first-child .wp-video-shortcode' ).mediaelementplayer( {
279
+ // This is required to work with new MediaElement version.
280
+ classPrefix: 'mejs-',
281
+ // If the <video width> is not specified, this is the default
282
  defaultVideoWidth: 480,
283
  // If the <video height> is not specified, this is the default
284
  defaultVideoHeight: 270
303
  apply_rtMagnificPopup( '.rtmedia-activity-container ul.rtmedia-list, #bp-media-list, .bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content' );
304
 
305
  jQuery( 'ul.activity-list li.rtmedia_update div.rtmedia-item-thumbnail > audio.wp-audio-shortcode, ul.activity-list li.rtmedia_update div.rtmedia-item-thumbnail > video.wp-video-shortcode' ).mediaelementplayer( {
306
+ // This is required to work with new MediaElement version.
307
+ classPrefix: 'mejs-',
308
+ // If the <video width> is not specified, this is the default
309
  defaultVideoWidth: 480,
310
  // If the <video height> is not specified, this is the default
311
  defaultVideoHeight: 270
app/assets/js/rtmedia.min.js CHANGED
@@ -3,5 +3,5 @@
3
  * @package rtMedia
4
  */
5
 
6
- function apply_rtMagnificPopup(a){jQuery("document").ready(function(b){var c="";c="undefined"==typeof rtmedia_load_more?"Loading media":rtmedia_load_more,"undefined"!=typeof rtmedia_lightbox_enabled&&"1"==rtmedia_lightbox_enabled&&(b(".activity-item .rtmedia-activity-container .rtmedia-list-item > a").siblings("p").children("a").length>0&&b(".activity-item .rtmedia-activity-container .rtmedia-list-item > a").siblings("p").children("a").addClass("no-popup"),rtMagnificPopup=jQuery(a).magnificPopup({delegate:"a:not(.no-popup, .mejs-time-slider, .mejs-volume-slider, .mejs-horizontal-volume-slider)",type:"ajax",tLoading:c+" #%curr%...",mainClass:"mfp-img-mobile",preload:[1,3],closeOnBgClick:!0,gallery:{enabled:!0,navigateByImgClick:!0,arrowMarkup:"",preload:[0,1]},image:{tError:'<a href="%url%">The image #%curr%</a> could not be loaded.',titleSrc:function(a){return a.el.attr("title")+"<small>by Marsel Van Oosten</small>"}},callbacks:{ajaxContentAdded:function(){a=jQuery.magnificPopup.instance,1===jQuery(a.items).size()&&jQuery(".mfp-arrow").remove();var a=jQuery.magnificPopup.instance,c=a.currItem.el,d=c.parent();if(d.is("li")||(d=d.parent()),(d.is(":nth-last-child(2)")||d.is(":last-child"))&&d.find("a").hasClass("rtmedia-list-item-a")){d.next();"block"==jQuery("#rtMedia-galary-next").css("display")&&jQuery("#rtMedia-galary-next").click()}var e=a.items.length;if(a.index==e-1&&!d.is(":last-child"))return void c.click();var f={};"undefined"!=typeof _wpmejsSettings&&(f.pluginPath=_wpmejsSettings.pluginPath);var g=jQuery(".rtmedia-container .rtmedia-single-meta").height(),h=!1;void 0!==a&&void 0!==a.probablyMobile&&1==a.probablyMobile&&(h=!0),b(".mfp-content .rtmedia-single-media .wp-audio-shortcode,.mfp-content .rtmedia-single-media .wp-video-shortcode,.mfp-content .rtmedia-single-media .bp_media_content video").attr("autoplay",!0),h&&b(".mfp-content .rtmedia-single-media .wp-video-shortcode,.mfp-content .rtmedia-single-media .bp_media_content video").attr("muted",!1),b(".mfp-content .rtmedia-single-media .wp-audio-shortcode,.mfp-content .rtmedia-single-media .wp-video-shortcode,.mfp-content .rtmedia-single-media .bp_media_content video").mediaelementplayer({defaultVideoWidth:480,hideVolumeOnTouchDevices:!1,features:["playpause","progress","current","volume","fullscreen"],defaultVideoHeight:270,alwaysShowControls:h,enableAutosize:!0,clickToPlayPause:!0,videoHeight:-1,success:function(a,c){a.addEventListener("loadeddata",function(c){var d=b(a).height(),e=b(window).height(),f=jQuery("div.rtm-ltb-action-container").height(),f=f+50,h=g-f;d>e&&jQuery(".rtmedia-container #rtmedia-single-media-container .mejs-container").attr("style","height:"+h+"px !important; transition:0.2s")},!1),h&&b(a).hasClass("wp-video-shortcode")?jQuery("body").on("touchstart",".mejs-overlay-button",function(b){a.paused?a.play():a.pause()}):a.play()}}),b(".mfp-content .mejs-audio .mejs-controls").css("position","relative"),rtMediaHook.call("rtmedia_js_popup_after_content_added",[]),"undefined"!=typeof bp&&void 0!==bp.mentions&&void 0!==bp.mentions.users&&(b("#atwho-container #atwho-ground-comment_content").remove(),b("#comment_content").bp_mentions(bp.mentions.users)),rtmedia_reset_video_and_audio_for_popup(),apply_rtMagnificPopup(".rtmedia-list-media.rtm-gallery-list, .rtmedia-activity-container ul.rtmedia-list, #bp-media-list,.bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content, .rtm-bbp-container, ul.rtm-comment-container")},close:function(a){rtmedia_single_page_popup_close()},BeforeChange:function(a){}}})),jQuery(document).ajaxComplete(function(){jQuery("[id^=imgedit-leaving]").filter(function(){var a=jQuery(this).text();jQuery(this).text(a.replace("OK","Save"))})})})}function rtmedia_init_action_dropdown(a){var b,c;jQuery(a+" .click-nav > span,"+a+" .click-nav > div").toggleClass("no-js js"),jQuery(a+" .click-nav .js ul").hide(),jQuery(a+" .click-nav .clicker").click(function(a){b=jQuery("#rtm-media-options .click-nav .clicker").next("ul"),c=jQuery(this).next("ul"),jQuery.each(b,function(a,b){jQuery(b).html()!=c.html()&&jQuery(b).hide()}),jQuery(c).toggle(),a.stopPropagation()})}function bp_media_create_element(a){return!1}function rtmedia_version_compare(a,b){if(typeof a+typeof b!="stringstring")return!1;for(var c=a.split("."),d=b.split("."),e=0,f=Math.max(c.length,d.length);e<f;e++){if(c[e]&&!d[e]&&parseInt(c[e])>0||parseInt(c[e])>parseInt(d[e]))return!0;if(d[e]&&!c[e]&&parseInt(d[e])>0||parseInt(c[e])<parseInt(d[e]))return!1}return!0}function rtm_is_element_exist(a){return jQuery(a).length>0}function rtm_masonry_reload(a){setTimeout(function(){a.masonry("reload")},250)}function rtm_search_media_text_validation(){""===jQuery("#media_search_input").val()?jQuery("#media_search").css("cursor","not-allowed"):jQuery("#media_search").css("cursor","pointer")}function rtmediaGetParameterByName(a){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var b=new RegExp("[\\?&]"+a+"=([^&#]*)"),c=b.exec(location.search);return null==c?"":decodeURIComponent(c[1].replace(/\+/g," "))}function rtmedia_single_media_alert_message(a,b){var c="rtmedia-success";"warning"==b&&(c="rtmedia-warning"),jQuery(".rtmedia-single-media .rtmedia-media").css("opacity","0.2"),jQuery(".rtmedia-single-media .rtmedia-media").after("<div class='rtmedia-message-container'><span class='"+c+"'>"+a+" </span></div>"),setTimeout(function(){jQuery(".rtmedia-single-media .rtmedia-media").css("opacity","1"),jQuery(".rtmedia-message-container").remove()},3e3),jQuery(".rtmedia-message-container").click(function(){jQuery(".rtmedia-single-media .rtmedia-media").css("opacity","1"),jQuery(".rtmedia-message-container").remove()})}function rtmedia_gallery_action_alert_message(a,b){var c="rtmedia-success";"warning"==b&&(c="rtmedia-warning");jQuery("body").append('<div class="rtmedia-gallery-alert-container"> </div>'),jQuery(".rtmedia-gallery-alert-container").append("<div class='rtmedia-gallery-message-box'><span class='"+c+"'>"+a+" </span></div>"),setTimeout(function(){jQuery(".rtmedia-gallery-alert-container").remove()},3e3),jQuery(".rtmedia-gallery-message-box").click(function(){jQuery(".rtmedia-gallery-alert-container").remove()})}function rtmedia_activity_masonry(){jQuery("#activity-stream .rtmedia-activity-container .rtmedia-list").masonry({itemSelector:".rtmedia-list-item",gutter:7});var a=0,b=setInterval(function(){a+=1,5===a&&clearInterval(b),jQuery.each(jQuery(".rtmedia-activity-container .rtmedia-list.masonry .rtmedia-item-title"),function(a,b){jQuery(b).width(jQuery(b).siblings(".rtmedia-item-thumbnail").children("img").width())}),rtm_masonry_reload(jQuery("#activity-stream .rtmedia-activity-container .rtmedia-list"))},1e3)}function get_parameter(a,b){if(!a)return!1;b||(b=window.location.href);var a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]"),c=a+"=([^&#]*)",d=new RegExp(c),e=d.exec(b);return null!==e&&e[1]}!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h=function(){},i=!!window.jQuery,j=a(window),k=function(a,c){b.ev.on("mfp"+a+".mfp",c)},l=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},m=function(c,d){b.ev.triggerHandler("mfp"+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},n=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},o=function(){a.magnificPopup.instance||(b=new h,b.init(),a.magnificPopup.instance=b)},p=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};h.prototype={constructor:h,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=p(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(!1===c.isObj){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=l("bg").on("click.mfp",function(){b.close()}),b.wrap=l("wrap").attr("tabindex",-1).on("click.mfp",function(a){b._checkIfClose(a.target)&&b.close()}),b.container=l("container",b.wrap)),b.contentContainer=l("content"),b.st.preloader&&(b.preloader=l("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var o=i[e];o=o.charAt(0).toUpperCase()+o.slice(1),b["init"+o].call(b)}m("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(k("MarkupParse",function(a,b,c,d){c.close_replaceWith=n(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(n())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:j.scrollTop(),position:"absolute"}),(!1===b.st.fixedBgPos||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup.mfp",function(a){27===a.keyCode&&b.close()}),j.on("resize.mfp",function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var p=b.wH=j.height(),q={};if(b.fixedContentPos&&b._hasScrollBar(p)){var r=b._getScrollbarSize();r&&(q.marginRight=r)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):q.overflow="hidden");var s=b.st.mainClass;return b.isIE7&&(s+=" mfp-ie7"),s&&b._addClassToMFP(s),b.updateItemHTML(),m("BuildControls"),a("html").css(q),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP("mfp-ready"),b._setFocus()):b.bgOverlay.addClass("mfp-ready"),d.on("focusin.mfp",b._onFocusIn)},16),b.isOpen=!0,b.updateSize(p),m("Open"),c},close:function(){b.isOpen&&(m("BeforeClose"),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP("mfp-removing"),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){m("Close");var c="mfp-removing mfp-ready ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup.mfp focusin.mfp"),b.ev.off(".mfp"),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&!0!==b.currTemplate[b.currItem.type]||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,m("AfterClose")},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||j.height();b.fixedContentPos||b.wrap.css("height",b.wH),m("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(m("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=!!b.st[d]&&b.st[d].markup;m("FirstMarkupParse",f),b.currTemplate[d]=!f||a(f)}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,m("Change",c),e=c.type,b.container.prepend(b.contentContainer),m("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&!0===b.currTemplate[c]?b.content.find(".mfp-close").length||b.content.append(n()):b.content=a:b.content="",m("BeforeAppend"),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,m("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){if((void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick)||2!==c.which&&!c.ctrlKey&&!c.metaKey){var f=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(f)if(a.isFunction(f)){if(!f.call(b))return!0}else if(j.width()<f)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};m("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass("mfp-prevent-close")){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||j.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){if(c.target!==b.wrap[0]&&!a.contains(b.wrap[0],c.target))return b._setFocus(),!1},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),m("MarkupParse",[b,c,d]),a.each(c,function(a,c){if(void 0===c||!1===c)return!0;if(e=a.split("_"),e.length>1){var d=b.find(".mfp-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith('<img src="'+c+'" class="'+d.attr("class")+'" />'):d.attr(e[1],c)}}else b.find(".mfp-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:h.prototype,modules:[],open:function(b,c){return o(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&times;</button>',tClose:"Close (Esc)",tLoading:"Loading..."}},a.fn.magnificPopup=function(c){o();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=i?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),i?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var q,r,s,t=function(){s&&(r.after(s.addClass(q)).detach(),s=null)};a.magnificPopup.registerModule("inline",{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push("inline"),k("Close.inline",function(){t()})},getInline:function(c,d){if(t(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(r||(q=e.hiddenClass,r=l(q),q="mfp-"+q),s=f.after(r).detach().removeClass(q)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var u,v=function(){u&&a(document.body).removeClass(u)},w=function(){v(),b.req&&b.req.abort()};a.magnificPopup.registerModule("ajax",{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push("ajax"),u=b.st.ajax.cursor,k("Close.ajax",w),k("BeforeChange.ajax",w)},getAjax:function(c){u&&a(document.body).addClass(u),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};m("ParseAjax",g),b.appendContent(a(g.data),"ajax"),c.finished=!0,v(),b._setFocus(),setTimeout(function(){b.wrap.addClass("mfp-ready")},16),b.updateStatus("ready"),m("AjaxContentAdded")},error:function(){v(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var x,y=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),k("Open"+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),k("Close"+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),j.off("resize.mfp")}),k("Resize"+d,b.resizeImage),b.isLowIE&&k("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,x&&clearInterval(x),a.isCheckingImgSize=!1,m("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){x&&clearInterval(x),x=setInterval(function(){if(d.naturalWidth>0)return void b._onImageHasSize(a);c>200&&clearInterval(x),c++,3===c?e(10):40===c?e(50):100===c&&e(500)},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,m("ImageLoadComplete")):(e++,e<200?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:y(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(x&&clearInterval(x),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var z,A=function(){return void 0===z&&(z=void 0!==document.createElement("p").style.MozTransform),z};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,h=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},i=function(){b.content.css("visibility","visible")};k("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),!(a=b._getItemToZoom()))return void i();f=h(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){i(),setTimeout(function(){f.remove(),a=f=null,m("ZoomAnimationEnded")},16)},g)},16)}}),k("BeforeClose"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(!(a=b._getItemToZoom()))return;f=h(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),k("Close"+d,function(){b._allowZoom()&&(i(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return!!b.currItem.hasSize&&b.currItem.img},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(i?d.innerHeight():d[0].offsetHeight)-g-f};return A()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var B=function(a){if(b.currTemplate.iframe){var c=b.currTemplate.iframe.find("iframe");c.length&&(a||(c[0].src="//about:blank"),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule("iframe",{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push("iframe"),k("BeforeChange",function(a,b,c){b!==c&&("iframe"===b?B():"iframe"===c&&B(!0))}),k("Close.iframe",function(){B()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){if(e.indexOf(this.index)>-1)return this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var C=function(a){var c=b.items.length;return a>c-1?a-c:a<0?c+a:a},D=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery",g=Boolean(a.fn.mfpFastClick);if(b.direction=!0,!c||!c.enabled)return!1;f+=" mfp-gallery",k("Open"+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){if(b.items.length>1)return b.next(),!1}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),k("UpdateStatus"+e,function(a,c){c.text&&(c.text=D(c.text,b.currItem.index,b.items.length))}),k("MarkupParse"+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?D(c.tCounter,f.index,g):""}),k("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass("mfp-prevent-close"),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass("mfp-prevent-close"),h=g?"mfpFastClick":"click";e[h](function(){b.prev()}),f[h](function(){b.next()}),b.isIE7&&(l("b",e[0],!1,!0),l("a",e[0],!1,!0),l("b",f[0],!1,!0),l("a",f[0],!1,!0)),b.container.append(e.add(f))}}),k("Change"+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),k("Close"+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowLeft&&g&&b.arrowLeft.add(b.arrowRight).destroyMfpFastClick(),b.arrowRight=b.arrowLeft=null})},next:function(){b.direction=!0,b.index=C(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=C(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=C(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),m("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,m("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});a.magnificPopup.registerModule("retina",{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(k("ImageHasSize.retina",function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),k("ElementParse.retina",function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),function(){var b="ontouchstart"in window,c=function(){j.off("touchmove"+d+" touchend"+d)},d=".mfpFastClick";a.fn.mfpFastClick=function(e){return a(this).each(function(){var f,g=a(this);if(b){var h,i,k,l,m,n;g.on("touchstart"+d,function(a){l=!1,n=1,m=a.originalEvent?a.originalEvent.touches[0]:a.touches[0],i=m.clientX,k=m.clientY,j.on("touchmove"+d,function(a){m=a.originalEvent?a.originalEvent.touches:a.touches,n=m.length,m=m[0],(Math.abs(m.clientX-i)>10||Math.abs(m.clientY-k)>10)&&(l=!0,c())}).on("touchend"+d,function(a){c(),l||n>1||(f=!0,a.preventDefault(),clearTimeout(h),h=setTimeout(function(){f=!1},1e3),e())})})}g.on("click"+d,function(){f||e()})})},a.fn.destroyMfpFastClick=function(){a(this).off("touchstart"+d+" click"+d),b&&j.off("touchmove"+d+" touchend"+d)}}(),o()}),"function"!=typeof Object.create&&(Object.create=function(a){function b(){}return b.prototype=a,new b}),function(a,b,c,d){var e={init:function(b,c){var d=this;d.elem=c,d.$elem=a(c),d.options=a.extend({},a.fn.rtTab.options,b),d.rtTabs()},rtTabs:function(){var c=this,d=c.options.activeTab;if(c.$elem.find("li:nth-child("+d+")").addClass("active"),c.rtTabContent(activeTabContent="yes"),c.rtClick(),!0==("false"!==c.$elem.attr("data-hash"))){var e=b.location.hash;e&&c.$elem.find("li").find('a[href="'+e+'"]').trigger("click"),a(b).on("hashchange",function(){var a=b.location.hash;c.$elem.find("li").find('a[href="'+a+'"]').trigger("click")})}},rtClick:function(){var c=this,d=c.$elem.find("li");d.find("a").on("click",function(e){e.preventDefault(),d.removeClass("active"),c.rtTabContent(),a(this).parent().addClass("active");var f=a(this).attr("href");if(a(f).removeClass("hide"),1==("false"!==c.$elem.attr("data-hash"))){var g=a(b).scrollTop();location.hash=a(this).attr("href"),a(b).scrollTop(g)}"function"==typeof c.options.onComplete&&c.options.onComplete.apply(c.elem,arguments)})},rtTabContent:function(b){this.$elem.find("li").find("a").each(function(){var c=a(this),d=c.attr("href");"yes"===b?c.parent().hasClass("active")||a(d).addClass("hide"):a(d).addClass("hide")})}};a.fn.rtTab=function(b){return this.each(function(){var c=Object.create(e);c.init(b,this),a.data(this,"rtTab",c)})},a.fn.rtTab.options={activeTab:1,onComplete:null}}(jQuery,window,document);var rtMagnificPopup,rtm_masonry_container,comment_media=!1,rtMediaHook={hooks:[],is_break:!1,register:function(a,b){void 0===rtMediaHook.hooks[a]&&(rtMediaHook.hooks[a]=[]),rtMediaHook.hooks[a].push(b)},call:function(a,arguments){if(void 0!==rtMediaHook.hooks[a])for(i=0;i<rtMediaHook.hooks[a].length;++i)if(1!=rtMediaHook.hooks[a][i](arguments))return rtMediaHook.is_break=!0,!1;return!0}};jQuery("document").ready(function(a){function b(){if(jQuery("#rtmedia-media-view-form").length>0){var a=jQuery("#rtmedia-media-view-form").attr("action");jQuery.post(a,{},function(a){})}}function c(){var a=jQuery.magnificPopup.instance;jQuery(".mfp-arrow-right").on("click",function(b){a.next()}),jQuery(".mfp-arrow-left").on("click",function(b){a.prev()}),jQuery(".mfp-content .rtmedia-media").swipe({swipeLeft:function(b,c,d,e,f){a.next()},swipeRight:function(b,c,d,e,f){a.prev()},threshold:0})}function d(){jQuery(".mfp-arrow-right").hide(),jQuery(".mfp-arrow-left").hide(),jQuery(document).unbind("keydown")}function e(){rtmedia_disable_popup_navigation("#comment_content")}function f(){jQuery(".rtmedia-container").on("click",".rtmedia-delete-media",function(a){a.preventDefault(),confirm(rtmedia_media_delete_confirmation)&&jQuery(this).closest("form").submit()})}jQuery(".rtmedia-uploader-div").css({opacity:"1",display:"block",visibility:"visible"}),jQuery(" #whats-new-options ").css({opacity:"1"}),void 0!==a.fn.rtTab&&a(".rtm-tabs").rtTab(),jQuery(".rtmedia-modal-link").length>0&&a(".rtmedia-modal-link").magnificPopup({type:"inline",midClick:!0,closeBtnInside:!0}),a("#rt_media_comment_form").submit(function(b){return""!=a.trim(a("#comment_content").val())||(0==jQuery("#rtmedia-single-media-container").length?rtmedia_gallery_action_alert_message(rtmedia_empty_comment_msg,"warning"):rtmedia_single_media_alert_message(rtmedia_empty_comment_msg,"warning"),!1)}),a("li.rtmedia-list-item p a").each(function(b){a(this).addClass("no-popup")}),a("li.rtmedia-list-item p a").each(function(b){a(this).addClass("no-popup")}),"undefined"!=typeof rtmedia_lightbox_enabled&&"1"==rtmedia_lightbox_enabled&&apply_rtMagnificPopup(".rtmedia-list-media.rtm-gallery-list, .rtmedia-activity-container ul.rtmedia-list, #bp-media-list,.bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content, .rtm-bbp-container, ul.rtm-comment-container"),
7
- jQuery.ajaxPrefilter(function(a,b,c){try{if(null==b.data||void 0===b.data||void 0===b.data.action)return!0}catch(a){return!0}if("activity_get_older_updates"==b.data.action){var d=b.success;a.success=function(a){d(a),apply_rtMagnificPopup(".rtmedia-activity-container ul.rtmedia-list, #bp-media-list, .bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content"),rtMediaHook.call("rtmedia_js_after_activity_added",[])}}else if("get_single_activity_content"==b.data.action){var d=b.success;a.success=function(a){d(a),setTimeout(function(){apply_rtMagnificPopup(".rtmedia-activity-container ul.rtmedia-list, #bp-media-list, .bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content"),jQuery("ul.activity-list li.rtmedia_update:first-child .wp-audio-shortcode, ul.activity-list li.rtmedia_update:first-child .wp-video-shortcode").mediaelementplayer({defaultVideoWidth:480,defaultVideoHeight:270})},900)}}}),jQuery.ajaxPrefilter(function(a,b,c){try{if(null==b.data||void 0===b.data||void 0===b.data.action)return!0}catch(a){return!0}if("activity_get_older_updates"==b.data.action){var d=b.success;a.success=function(a){d(a),apply_rtMagnificPopup(".rtmedia-activity-container ul.rtmedia-list, #bp-media-list, .bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content"),jQuery("ul.activity-list li.rtmedia_update div.rtmedia-item-thumbnail > audio.wp-audio-shortcode, ul.activity-list li.rtmedia_update div.rtmedia-item-thumbnail > video.wp-video-shortcode").mediaelementplayer({defaultVideoWidth:480,defaultVideoHeight:270}),setTimeout(function(){rtmedia_activity_stream_comment_media()},900),rtMediaHook.call("rtmedia_js_after_activity_added",[])}}}),jQuery(".rtmedia-container").on("click",".select-all",function(a){jQuery(this).toggleClass("unselect-all").toggleClass("select-all"),jQuery(this).attr("title",rtmedia_unselect_all_visible),jQuery(".rtmedia-list input").each(function(){jQuery(this).prop("checked",!0)}),jQuery(".rtmedia-list-item").addClass("bulk-selected")}),jQuery(".rtmedia-container").on("click",".unselect-all",function(a){jQuery(this).toggleClass("select-all").toggleClass("unselect-all"),jQuery(this).attr("title",rtmedia_select_all_visible),jQuery(".rtmedia-list input").each(function(){jQuery(this).prop("checked",!1)}),jQuery(".rtmedia-list-item").removeClass("bulk-selected")}),jQuery(".rtmedia-container").on("click",".rtmedia-move",function(a){jQuery(".rtmedia-delete-container").slideUp(),jQuery(".rtmedia-move-container").slideToggle()}),jQuery("#rtmedia-create-album-modal").on("click","#rtmedia_create_new_album",function(b){if($albumname=jQuery("<span/>").text(jQuery.trim(jQuery("#rtmedia_album_name").val())).html(),$album_description=jQuery("#rtmedia_album_description"),$context=jQuery.trim(jQuery("#rtmedia_album_context").val()),$context_id=jQuery.trim(jQuery("#rtmedia_album_context_id").val()),$privacy=jQuery.trim(jQuery("#rtmedia_select_album_privacy").val()),$create_album_nonce=jQuery.trim(jQuery("#rtmedia_create_album_nonce").val()),""!=$albumname){var c={action:"rtmedia_create_album",name:$albumname,description:$album_description.val(),context:$context,context_id:$context_id,create_album_nonce:$create_album_nonce};""!==$privacy&&(c.privacy=$privacy),a("#rtmedia_create_new_album").attr("disabled","disabled");var d=a("#rtmedia_create_new_album").html();a("#rtmedia_create_new_album").prepend("<img src='"+rMedia_loading_file+"' />"),jQuery.post(rtmedia_ajax_url,c,function(b){if(void 0!==b.album){b=jQuery.trim(b.album);var c=!0;$album_description.val(""),a("#rtmedia_album_name").focus(),jQuery(".rtmedia-user-album-list").each(function(){if(jQuery(this).children("optgroup").each(function(){if(jQuery(this).attr("value")===$context)return c=!1,void jQuery(this).append('<option value="'+b+'">'+$albumname+"</option>")}),c){var a=$context.charAt(0).toUpperCase()+$context.slice(1)+" "+rtmedia_main_js_strings.rtmedia_albums,d='<optgroup value="'+$context+'" label="'+a+'"><option value="'+b+'">'+$albumname+"</option></optgroup>";jQuery(this).append(d)}}),jQuery('select.rtmedia-user-album-list option[value="'+b+'"]').prop("selected",!0),jQuery(".rtmedia-create-new-album-container").slideToggle(),jQuery("#rtmedia_album_name").val(""),jQuery("#rtmedia-create-album-modal").append("<div class='rtmedia-success rtmedia-create-album-alert'><b>"+$albumname+"</b>"+rtmedia_album_created_msg+"</div>"),setTimeout(function(){jQuery(".rtmedia-create-album-alert").remove()},4e3),setTimeout(function(){galleryObj.reloadView(),jQuery(".close-reveal-modal").click()},2e3)}else void 0!==b.error?rtmedia_gallery_action_alert_message(b.error,"warning"):rtmedia_gallery_action_alert_message(rtmedia_something_wrong_msg,"warning");a("#rtmedia_create_new_album").removeAttr("disabled"),a("#rtmedia_create_new_album").html(d)})}else rtmedia_gallery_action_alert_message(rtmedia_empty_album_name_msg,"warning")}),jQuery(".rtmedia-container").on("click",".rtmedia-delete-selected",function(a){jQuery(".rtmedia-list :checkbox:checked").length>0?confirm(rtmedia_selected_media_delete_confirmation)&&jQuery(this).closest("form").attr("action","../../../"+rtmedia_media_slug+"/delete").submit():rtmedia_gallery_action_alert_message(rtmedia_no_media_selected,"warning")}),jQuery(".rtmedia-container").on("click",".rtmedia-move-selected",function(a){jQuery(".rtmedia-list :checkbox:checked").length>0?confirm(rtmedia_selected_media_move_confirmation)&&jQuery(this).closest("form").attr("action","").submit():rtmedia_gallery_action_alert_message(rtmedia_no_media_selected,"warning")}),jQuery("#buddypress").on("change",".rtm-activity-privacy-opt",function(){var a=jQuery(this).attr("id");a=a.split("-"),a=a[a.length-1];var b=this;data={activity_id:a,privacy:jQuery(this).val(),nonce:jQuery("#rtmedia_activity_privacy_nonce").val(),action:"rtm_change_activity_privacy"},jQuery.post(ajaxurl,data,function(a){var c="",d="";"true"==a?(c=rtmedia_main_js_strings.privacy_update_success,d="success"):(c=rtmedia_main_js_strings.privacy_update_error,d="fail"),jQuery(b).after('<p class="rtm-ac-privacy-updated '+d+'">'+c+"</p>"),setTimeout(function(){jQuery(b).siblings(".rtm-ac-privacy-updated").remove()},2e3)})}),jQuery(".media_search_input").on("keyup",function(){rtm_search_media_text_validation()}),b(),rtMediaHook.register("rtmedia_js_popup_after_content_added",function(){b(),f(),mfp=jQuery.magnificPopup.instance,jQuery(mfp.items).size()>1&&0==comment_media?c():d(),e(),rtmedia_disable_popup_navigation_comment_media_focus();var g=a(window).height();jQuery(".rtm-lightbox-container .mejs-video").css({height:.8*g,"over-flow":"hidden"}),jQuery(".mfp-content .rtmedia-media").css({"max-height":.87*g,"over-flow":"hidden"}),rtmedia_init_action_dropdown(".rtm-lightbox-container .rtmedia-actions"),jQuery(".rtmedia-comment-link").on("click",function(a){a.preventDefault(),jQuery("#comment_content").focus()}),jQuery(".rtm-more").shorten({showChars:130});var h=a(".rtm-gallery-title"),i="";""!=(i=a.isEmptyObject(h)?a("#subnav.item-list-tabs li.selected ").html():h.html())&&a(".rtm-ltb-gallery-title .ltb-title").html(i);var j=a("#subnav.item-list-tabs li.selected span").html();return a("li.total").html(j),!0});var g=jQuery("#drag-drop-area"),h=jQuery("#whats-new");g.html();jQuery("#rtmedia-upload-container").after("<div id='rtm-drop-files-title'>"+rtmedia_drop_media_msg+"</div>"),"undefined"!=typeof rtmedia_bp_enable_activity&&"1"==rtmedia_bp_enable_activity&&jQuery("#whats-new-textarea").append("<div id='rtm-drop-files-title'>"+rtmedia_drop_media_msg+"</div>"),jQuery(document).on("dragover",function(a){a.preventDefault(),a.target!=this&&(jQuery("#rtm-media-gallery-uploader").show(),"undefined"!=typeof rtmedia_bp_enable_activity&&"1"==rtmedia_bp_enable_activity&&h.addClass("rtm-drag-drop-active"),g.addClass("rtm-drag-drop-active"),jQuery("#rtm-drop-files-title").show())}).on("dragleave",function(a){if(a.preventDefault(),0!=a.originalEvent.pageX&&0!=a.originalEvent.pageY)return!1;"undefined"!=typeof rtmedia_bp_enable_activity&&"1"==rtmedia_bp_enable_activity&&(h.removeClass("rtm-drag-drop-active"),h.removeAttr("style")),g.removeClass("rtm-drag-drop-active"),jQuery("#rtm-drop-files-title").hide()}).on("drop",function(a){a.preventDefault(),jQuery(".bp-suggestions").focus(),"undefined"!=typeof rtmedia_bp_enable_activity&&"1"==rtmedia_bp_enable_activity&&(h.removeClass("rtm-drag-drop-active"),h.removeAttr("style")),g.removeClass("rtm-drag-drop-active"),jQuery("#rtm-drop-files-title").hide()}),jQuery(".rtmedia-container").on("click",".rtmedia-delete-album",function(a){a.preventDefault(),confirm(rtmedia_album_delete_confirmation)&&jQuery(this).closest("form").submit()}),jQuery(".rtmedia-container").on("click",".rtmedia-delete-media",function(a){a.preventDefault(),confirm(rtmedia_media_delete_confirmation)&&jQuery(this).closest("form").submit()}),rtmedia_init_action_dropdown(""),a(document).click(function(){a(".click-nav ul").is(":visible")&&a(".click-nav ul",this).hide()}),jQuery(".rtmedia-comment-link").on("click",function(a){a.preventDefault(),jQuery("#comment_content").focus()}),jQuery(".rtm-more").length>0&&a(".rtm-more").shorten({showChars:200}),"undefined"!=typeof rtmedia_masonry_layout&&"true"==rtmedia_masonry_layout&&"undefined"!=typeof rtmedia_masonry_layout_activity&&"true"==rtmedia_masonry_layout_activity&&rtmedia_activity_masonry(),jQuery(document).ajaxComplete(function(a,b,c){var d=get_parameter("action",c.data);"post_update"!==d&&"get_single_activity_content"!==d&&"activity_get_older_updates"!==d||"undefined"==typeof rtmedia_masonry_layout||"true"!=rtmedia_masonry_layout||"undefined"==typeof rtmedia_masonry_layout_activity||"true"!=rtmedia_masonry_layout_activity||rtmedia_activity_masonry()}),"undefined"!=typeof rtmedia_masonry_layout&&"true"==rtmedia_masonry_layout&&0==jQuery(".rtmedia-container .rtmedia-list.rtm-no-masonry").length&&(rtm_masonry_container=jQuery(".rtmedia-container .rtmedia-list"),rtm_masonry_container.masonry({itemSelector:".rtmedia-list-item"}),setInterval(function(){jQuery.each(jQuery(".rtmedia-list.masonry .rtmedia-item-title"),function(a,b){jQuery(b).width(jQuery(b).siblings(".rtmedia-item-thumbnail").children("img").width())}),rtm_masonry_reload(rtm_masonry_container)},1e3),jQuery.each(jQuery(".rtmedia-list.masonry .rtmedia-item-title"),function(a,b){jQuery(b).width(jQuery(b).siblings(".rtmedia-item-thumbnail").children("img").width())})),jQuery(".rtm-uploader-tabs").length>0&&jQuery(".rtm-uploader-tabs li").click(function(a){jQuery(this).hasClass("active")||(jQuery(this).siblings().removeClass("active"),jQuery(this).parents(".rtm-uploader-tabs").siblings().hide(),class_name=jQuery(this).attr("class"),jQuery(this).parents(".rtm-uploader-tabs").siblings('[data-id="'+class_name+'"]').show(),jQuery(this).addClass("active"),"rtm-upload-tab"!=class_name?jQuery("div.moxie-shim").hide():jQuery("div.moxie-shim").show())}),jQuery(".rtmedia-container").on("click",".rtm-delete-media",function(a){a.preventDefault();var b="Are you sure you want to delete this media?";if("undefined"!=typeof rtmedia_media_delete_confirmation&&(b=rtmedia_media_delete_confirmation),confirm(b)){var c=jQuery(this).closest("li"),d=jQuery("#rtmedia_media_delete_nonce").val(),e={action:"delete_uploaded_media",nonce:d,media_id:c.attr("id")};jQuery.ajax({url:ajaxurl,type:"post",data:e,success:function(a){"1"==a?(rtmedia_gallery_action_alert_message(rtmedia_main_js_strings.file_delete_success,"success"),c.remove(),"undefined"!=typeof rtmedia_masonry_layout&&"true"==rtmedia_masonry_layout&&0==jQuery(".rtmedia-container .rtmedia-list.rtm-no-masonry").length&&rtm_masonry_reload(rtm_masonry_container)):rtmedia_gallery_action_alert_message(rtmedia_file_not_deleted,"warning")}})}})}),function(a){a.fn.shorten=function(b){"use strict";var c={showChars:100,minHideChars:10,ellipsesText:"...",moreText:rtmedia_read_more,lessText:rtmedia__show_less,onLess:function(){},onMore:function(){},errMsg:null,force:!1};return b&&a.extend(c,b),!(a(this).data("jquery.shorten")&&!c.force)&&(a(this).data("jquery.shorten",!0),a(document).off("click",".morelink"),a(document).on({click:function(){var b=a(this);return b.hasClass("less")?(b.removeClass("less"),b.html(c.moreText),b.parent().prev().hide(0,function(){b.parent().prev().prev().show()}).hide(0,function(){c.onLess()})):(b.addClass("less"),b.html(c.lessText),b.parent().prev().show(0,function(){b.parent().prev().prev().hide()}).show(0,function(){c.onMore()})),!1}},".morelink"),this.each(function(){var b=a(this),d=b.html();if(b.text().length>c.showChars+c.minHideChars){var e=d.substr(0,c.showChars);if(e.indexOf("<")>=0){for(var f=!1,g="",h=0,i=[],k=null,l=0,m=0;m<=c.showChars;l++)if("<"!=d[l]||f||(f=!0,k=d.substring(l+1,d.indexOf(">",l)),"/"==k[0]?k!="/"+i[0]?c.errMsg="ERROR en HTML: the top of the stack should be the tag that closes":i.shift():"br"!=k.toLowerCase()&&i.unshift(k)),f&&">"==d[l]&&(f=!1),f)g+=d.charAt(l);else if(m++,h<=c.showChars)g+=d.charAt(l),h++;else if(i.length>0){for(j=0;j<i.length;j++)g+="</"+i[j]+">";break}e=a("<div/>").html(g+'<span class="ellip">'+c.ellipsesText+"</span>").html()}else e+=c.ellipsesText;var n='<div class="shortcontent">'+e+'</div><div class="allcontent">'+d+'</div><span><a href="javascript://nop/" class="morelink">'+c.moreText+"</a></span>";b.html(n),b.find(".allcontent").hide(),a(".shortcontent p:last",b).css("margin-bottom",0)}}))}}(jQuery),window.onload=function(){"undefined"!=typeof rtmedia_masonry_layout&&"true"==rtmedia_masonry_layout&&0==jQuery(".rtmedia-container .rtmedia-list.rtm-no-masonry").length&&rtm_masonry_reload(rtm_masonry_container),rtm_search_media_text_validation(),check_condition("search")&&jQuery("#media_search_remove").show()};
3
  * @package rtMedia
4
  */
5
 
6
+ function apply_rtMagnificPopup(a){jQuery("document").ready(function(b){var c="";c="undefined"==typeof rtmedia_load_more?"Loading media":rtmedia_load_more,"undefined"!=typeof rtmedia_lightbox_enabled&&"1"==rtmedia_lightbox_enabled&&(b(".activity-item .rtmedia-activity-container .rtmedia-list-item > a").siblings("p").children("a").length>0&&b(".activity-item .rtmedia-activity-container .rtmedia-list-item > a").siblings("p").children("a").addClass("no-popup"),rtMagnificPopup=jQuery(a).magnificPopup({delegate:"a:not(.no-popup, .mejs-time-slider, .mejs-volume-slider, .mejs-horizontal-volume-slider)",type:"ajax",tLoading:c+" #%curr%...",mainClass:"mfp-img-mobile",preload:[1,3],closeOnBgClick:!0,gallery:{enabled:!0,navigateByImgClick:!0,arrowMarkup:"",preload:[0,1]},image:{tError:'<a href="%url%">The image #%curr%</a> could not be loaded.',titleSrc:function(a){return a.el.attr("title")+"<small>by Marsel Van Oosten</small>"}},callbacks:{ajaxContentAdded:function(){a=jQuery.magnificPopup.instance,1===jQuery(a.items).size()&&jQuery(".mfp-arrow").remove();var a=jQuery.magnificPopup.instance,c=a.currItem.el,d=c.parent();if(d.is("li")||(d=d.parent()),(d.is(":nth-last-child(2)")||d.is(":last-child"))&&d.find("a").hasClass("rtmedia-list-item-a")){d.next();"block"==jQuery("#rtMedia-galary-next").css("display")&&jQuery("#rtMedia-galary-next").click()}var e=a.items.length;if(a.index==e-1&&!d.is(":last-child"))return void c.click();var f={};"undefined"!=typeof _wpmejsSettings&&(f.pluginPath=_wpmejsSettings.pluginPath);var g=jQuery(".rtmedia-container .rtmedia-single-meta").height(),h=!1;void 0!==a&&void 0!==a.probablyMobile&&1==a.probablyMobile&&(h=!0),b(".mfp-content .rtmedia-single-media .wp-audio-shortcode,.mfp-content .rtmedia-single-media .wp-video-shortcode,.mfp-content .rtmedia-single-media .bp_media_content video").attr("autoplay",!0),h&&b(".mfp-content .rtmedia-single-media .wp-video-shortcode,.mfp-content .rtmedia-single-media .bp_media_content video").attr("muted",!1),b(".mfp-content .rtmedia-single-media .wp-audio-shortcode,.mfp-content .rtmedia-single-media .wp-video-shortcode,.mfp-content .rtmedia-single-media .bp_media_content video").mediaelementplayer({classPrefix:"mejs-",defaultVideoWidth:480,hideVolumeOnTouchDevices:!1,features:["playpause","progress","current","volume","fullscreen"],defaultVideoHeight:270,alwaysShowControls:h,enableAutosize:!0,clickToPlayPause:!0,videoHeight:-1,success:function(a,c){a.addEventListener("loadeddata",function(c){var d=b(a).height(),e=b(window).height(),f=jQuery("div.rtm-ltb-action-container").height(),f=f+50,h=g-f;d>e&&jQuery(".rtmedia-container #rtmedia-single-media-container .mejs-container").attr("style","height:"+h+"px !important; transition:0.2s")},!1),h&&b(a).hasClass("wp-video-shortcode")?jQuery("body").on("touchstart",".mejs-overlay-button",function(b){a.paused?a.play():a.pause()}):a.play()}}),b(".mfp-content .mejs-audio .mejs-controls").css("position","relative"),rtMediaHook.call("rtmedia_js_popup_after_content_added",[]),"undefined"!=typeof bp&&void 0!==bp.mentions&&void 0!==bp.mentions.users&&(b("#atwho-container #atwho-ground-comment_content").remove(),b("#comment_content").bp_mentions(bp.mentions.users)),rtmedia_reset_video_and_audio_for_popup(),apply_rtMagnificPopup(".rtmedia-list-media.rtm-gallery-list, .rtmedia-activity-container ul.rtmedia-list, #bp-media-list,.bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content, .rtm-bbp-container, ul.rtm-comment-container")},close:function(a){rtmedia_single_page_popup_close()},BeforeChange:function(a){}}})),jQuery(document).ajaxComplete(function(){jQuery("[id^=imgedit-leaving]").filter(function(){var a=jQuery(this).text();jQuery(this).text(a.replace("OK","Save"))})})})}function rtmedia_init_action_dropdown(a){var b,c;jQuery(a+" .click-nav > span,"+a+" .click-nav > div").toggleClass("no-js js"),jQuery(a+" .click-nav .js ul").hide(),jQuery(a+" .click-nav .clicker").click(function(a){b=jQuery("#rtm-media-options .click-nav .clicker").next("ul"),c=jQuery(this).next("ul"),jQuery.each(b,function(a,b){jQuery(b).html()!=c.html()&&jQuery(b).hide()}),jQuery(c).toggle(),a.stopPropagation()})}function bp_media_create_element(a){return!1}function rtmedia_version_compare(a,b){if(typeof a+typeof b!="stringstring")return!1;for(var c=a.split("."),d=b.split("."),e=0,f=Math.max(c.length,d.length);e<f;e++){if(c[e]&&!d[e]&&parseInt(c[e])>0||parseInt(c[e])>parseInt(d[e]))return!0;if(d[e]&&!c[e]&&parseInt(d[e])>0||parseInt(c[e])<parseInt(d[e]))return!1}return!0}function rtm_is_element_exist(a){return jQuery(a).length>0}function rtm_masonry_reload(a){setTimeout(function(){a.masonry("reload")},250)}function rtm_search_media_text_validation(){""===jQuery("#media_search_input").val()?jQuery("#media_search").css("cursor","not-allowed"):jQuery("#media_search").css("cursor","pointer")}function rtmediaGetParameterByName(a){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var b=new RegExp("[\\?&]"+a+"=([^&#]*)"),c=b.exec(location.search);return null==c?"":decodeURIComponent(c[1].replace(/\+/g," "))}function rtmedia_single_media_alert_message(a,b){var c="rtmedia-success";"warning"==b&&(c="rtmedia-warning"),jQuery(".rtmedia-single-media .rtmedia-media").css("opacity","0.2"),jQuery(".rtmedia-single-media .rtmedia-media").after("<div class='rtmedia-message-container'><span class='"+c+"'>"+a+" </span></div>"),setTimeout(function(){jQuery(".rtmedia-single-media .rtmedia-media").css("opacity","1"),jQuery(".rtmedia-message-container").remove()},3e3),jQuery(".rtmedia-message-container").click(function(){jQuery(".rtmedia-single-media .rtmedia-media").css("opacity","1"),jQuery(".rtmedia-message-container").remove()})}function rtmedia_gallery_action_alert_message(a,b){var c="rtmedia-success";"warning"==b&&(c="rtmedia-warning");jQuery("body").append('<div class="rtmedia-gallery-alert-container"> </div>'),jQuery(".rtmedia-gallery-alert-container").append("<div class='rtmedia-gallery-message-box'><span class='"+c+"'>"+a+" </span></div>"),setTimeout(function(){jQuery(".rtmedia-gallery-alert-container").remove()},3e3),jQuery(".rtmedia-gallery-message-box").click(function(){jQuery(".rtmedia-gallery-alert-container").remove()})}function rtmedia_activity_masonry(){jQuery("#activity-stream .rtmedia-activity-container .rtmedia-list").masonry({itemSelector:".rtmedia-list-item",gutter:7});var a=0,b=setInterval(function(){a+=1,5===a&&clearInterval(b),jQuery.each(jQuery(".rtmedia-activity-container .rtmedia-list.masonry .rtmedia-item-title"),function(a,b){jQuery(b).width(jQuery(b).siblings(".rtmedia-item-thumbnail").children("img").width())}),rtm_masonry_reload(jQuery("#activity-stream .rtmedia-activity-container .rtmedia-list"))},1e3)}function get_parameter(a,b){if(!a)return!1;b||(b=window.location.href);var a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]"),c=a+"=([^&#]*)",d=new RegExp(c),e=d.exec(b);return null!==e&&e[1]}!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h=function(){},i=!!window.jQuery,j=a(window),k=function(a,c){b.ev.on("mfp"+a+".mfp",c)},l=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},m=function(c,d){b.ev.triggerHandler("mfp"+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},n=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},o=function(){a.magnificPopup.instance||(b=new h,b.init(),a.magnificPopup.instance=b)},p=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};h.prototype={constructor:h,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=p(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(!1===c.isObj){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=l("bg").on("click.mfp",function(){b.close()}),b.wrap=l("wrap").attr("tabindex",-1).on("click.mfp",function(a){b._checkIfClose(a.target)&&b.close()}),b.container=l("container",b.wrap)),b.contentContainer=l("content"),b.st.preloader&&(b.preloader=l("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var o=i[e];o=o.charAt(0).toUpperCase()+o.slice(1),b["init"+o].call(b)}m("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(k("MarkupParse",function(a,b,c,d){c.close_replaceWith=n(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(n())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:j.scrollTop(),position:"absolute"}),(!1===b.st.fixedBgPos||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup.mfp",function(a){27===a.keyCode&&b.close()}),j.on("resize.mfp",function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var p=b.wH=j.height(),q={};if(b.fixedContentPos&&b._hasScrollBar(p)){var r=b._getScrollbarSize();r&&(q.marginRight=r)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):q.overflow="hidden");var s=b.st.mainClass;return b.isIE7&&(s+=" mfp-ie7"),s&&b._addClassToMFP(s),b.updateItemHTML(),m("BuildControls"),a("html").css(q),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP("mfp-ready"),b._setFocus()):b.bgOverlay.addClass("mfp-ready"),d.on("focusin.mfp",b._onFocusIn)},16),b.isOpen=!0,b.updateSize(p),m("Open"),c},close:function(){b.isOpen&&(m("BeforeClose"),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP("mfp-removing"),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){m("Close");var c="mfp-removing mfp-ready ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup.mfp focusin.mfp"),b.ev.off(".mfp"),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&!0!==b.currTemplate[b.currItem.type]||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,m("AfterClose")},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||j.height();b.fixedContentPos||b.wrap.css("height",b.wH),m("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(m("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=!!b.st[d]&&b.st[d].markup;m("FirstMarkupParse",f),b.currTemplate[d]=!f||a(f)}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,m("Change",c),e=c.type,b.container.prepend(b.contentContainer),m("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&!0===b.currTemplate[c]?b.content.find(".mfp-close").length||b.content.append(n()):b.content=a:b.content="",m("BeforeAppend"),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,m("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){if((void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick)||2!==c.which&&!c.ctrlKey&&!c.metaKey){var f=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(f)if(a.isFunction(f)){if(!f.call(b))return!0}else if(j.width()<f)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};m("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass("mfp-prevent-close")){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||j.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){if(c.target!==b.wrap[0]&&!a.contains(b.wrap[0],c.target))return b._setFocus(),!1},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),m("MarkupParse",[b,c,d]),a.each(c,function(a,c){if(void 0===c||!1===c)return!0;if(e=a.split("_"),e.length>1){var d=b.find(".mfp-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith('<img src="'+c+'" class="'+d.attr("class")+'" />'):d.attr(e[1],c)}}else b.find(".mfp-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:h.prototype,modules:[],open:function(b,c){return o(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&times;</button>',tClose:"Close (Esc)",tLoading:"Loading..."}},a.fn.magnificPopup=function(c){o();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=i?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),i?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var q,r,s,t=function(){s&&(r.after(s.addClass(q)).detach(),s=null)};a.magnificPopup.registerModule("inline",{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push("inline"),k("Close.inline",function(){t()})},getInline:function(c,d){if(t(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(r||(q=e.hiddenClass,r=l(q),q="mfp-"+q),s=f.after(r).detach().removeClass(q)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var u,v=function(){u&&a(document.body).removeClass(u)},w=function(){v(),b.req&&b.req.abort()};a.magnificPopup.registerModule("ajax",{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push("ajax"),u=b.st.ajax.cursor,k("Close.ajax",w),k("BeforeChange.ajax",w)},getAjax:function(c){u&&a(document.body).addClass(u),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};m("ParseAjax",g),b.appendContent(a(g.data),"ajax"),c.finished=!0,v(),b._setFocus(),setTimeout(function(){b.wrap.addClass("mfp-ready")},16),b.updateStatus("ready"),m("AjaxContentAdded")},error:function(){v(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var x,y=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),k("Open"+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),k("Close"+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),j.off("resize.mfp")}),k("Resize"+d,b.resizeImage),b.isLowIE&&k("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,x&&clearInterval(x),a.isCheckingImgSize=!1,m("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){x&&clearInterval(x),x=setInterval(function(){if(d.naturalWidth>0)return void b._onImageHasSize(a);c>200&&clearInterval(x),c++,3===c?e(10):40===c?e(50):100===c&&e(500)},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,m("ImageLoadComplete")):(e++,e<200?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:y(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(x&&clearInterval(x),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var z,A=function(){return void 0===z&&(z=void 0!==document.createElement("p").style.MozTransform),z};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,h=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},i=function(){b.content.css("visibility","visible")};k("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),!(a=b._getItemToZoom()))return void i();f=h(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){i(),setTimeout(function(){f.remove(),a=f=null,m("ZoomAnimationEnded")},16)},g)},16)}}),k("BeforeClose"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(!(a=b._getItemToZoom()))return;f=h(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),k("Close"+d,function(){b._allowZoom()&&(i(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return!!b.currItem.hasSize&&b.currItem.img},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(i?d.innerHeight():d[0].offsetHeight)-g-f};return A()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var B=function(a){if(b.currTemplate.iframe){var c=b.currTemplate.iframe.find("iframe");c.length&&(a||(c[0].src="//about:blank"),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule("iframe",{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push("iframe"),k("BeforeChange",function(a,b,c){b!==c&&("iframe"===b?B():"iframe"===c&&B(!0))}),k("Close.iframe",function(){B()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){if(e.indexOf(this.index)>-1)return this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var C=function(a){var c=b.items.length;return a>c-1?a-c:a<0?c+a:a},D=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery",g=Boolean(a.fn.mfpFastClick);if(b.direction=!0,!c||!c.enabled)return!1;f+=" mfp-gallery",k("Open"+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){if(b.items.length>1)return b.next(),!1}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),k("UpdateStatus"+e,function(a,c){c.text&&(c.text=D(c.text,b.currItem.index,b.items.length))}),k("MarkupParse"+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?D(c.tCounter,f.index,g):""}),k("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass("mfp-prevent-close"),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass("mfp-prevent-close"),h=g?"mfpFastClick":"click";e[h](function(){b.prev()}),f[h](function(){b.next()}),b.isIE7&&(l("b",e[0],!1,!0),l("a",e[0],!1,!0),l("b",f[0],!1,!0),l("a",f[0],!1,!0)),b.container.append(e.add(f))}}),k("Change"+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),k("Close"+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowLeft&&g&&b.arrowLeft.add(b.arrowRight).destroyMfpFastClick(),b.arrowRight=b.arrowLeft=null})},next:function(){b.direction=!0,b.index=C(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=C(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=C(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),m("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,m("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});a.magnificPopup.registerModule("retina",{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(k("ImageHasSize.retina",function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),k("ElementParse.retina",function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),function(){var b="ontouchstart"in window,c=function(){j.off("touchmove"+d+" touchend"+d)},d=".mfpFastClick";a.fn.mfpFastClick=function(e){return a(this).each(function(){var f,g=a(this);if(b){var h,i,k,l,m,n;g.on("touchstart"+d,function(a){l=!1,n=1,m=a.originalEvent?a.originalEvent.touches[0]:a.touches[0],i=m.clientX,k=m.clientY,j.on("touchmove"+d,function(a){m=a.originalEvent?a.originalEvent.touches:a.touches,n=m.length,m=m[0],(Math.abs(m.clientX-i)>10||Math.abs(m.clientY-k)>10)&&(l=!0,c())}).on("touchend"+d,function(a){c(),l||n>1||(f=!0,a.preventDefault(),clearTimeout(h),h=setTimeout(function(){f=!1},1e3),e())})})}g.on("click"+d,function(){f||e()})})},a.fn.destroyMfpFastClick=function(){a(this).off("touchstart"+d+" click"+d),b&&j.off("touchmove"+d+" touchend"+d)}}(),o()}),"function"!=typeof Object.create&&(Object.create=function(a){function b(){}return b.prototype=a,new b}),function(a,b,c,d){var e={init:function(b,c){var d=this;d.elem=c,d.$elem=a(c),d.options=a.extend({},a.fn.rtTab.options,b),d.rtTabs()},rtTabs:function(){var c=this,d=c.options.activeTab;if(c.$elem.find("li:nth-child("+d+")").addClass("active"),c.rtTabContent(activeTabContent="yes"),c.rtClick(),!0==("false"!==c.$elem.attr("data-hash"))){var e=b.location.hash;e&&c.$elem.find("li").find('a[href="'+e+'"]').trigger("click"),a(b).on("hashchange",function(){var a=b.location.hash;c.$elem.find("li").find('a[href="'+a+'"]').trigger("click")})}},rtClick:function(){var c=this,d=c.$elem.find("li");d.find("a").on("click",function(e){e.preventDefault(),d.removeClass("active"),c.rtTabContent(),a(this).parent().addClass("active");var f=a(this).attr("href");if(a(f).removeClass("hide"),1==("false"!==c.$elem.attr("data-hash"))){var g=a(b).scrollTop();location.hash=a(this).attr("href"),a(b).scrollTop(g)}"function"==typeof c.options.onComplete&&c.options.onComplete.apply(c.elem,arguments)})},rtTabContent:function(b){this.$elem.find("li").find("a").each(function(){var c=a(this),d=c.attr("href");"yes"===b?c.parent().hasClass("active")||a(d).addClass("hide"):a(d).addClass("hide")})}};a.fn.rtTab=function(b){return this.each(function(){var c=Object.create(e);c.init(b,this),a.data(this,"rtTab",c)})},a.fn.rtTab.options={activeTab:1,onComplete:null}}(jQuery,window,document);var rtMagnificPopup,rtm_masonry_container,comment_media=!1,rtMediaHook={hooks:[],is_break:!1,register:function(a,b){void 0===rtMediaHook.hooks[a]&&(rtMediaHook.hooks[a]=[]),rtMediaHook.hooks[a].push(b)},call:function(a,arguments){if(void 0!==rtMediaHook.hooks[a])for(i=0;i<rtMediaHook.hooks[a].length;++i)if(1!=rtMediaHook.hooks[a][i](arguments))return rtMediaHook.is_break=!0,!1;return!0}};jQuery("document").ready(function(a){function b(){if(jQuery("#rtmedia-media-view-form").length>0){var a=jQuery("#rtmedia-media-view-form").attr("action");jQuery.post(a,{},function(a){})}}function c(){var a=jQuery.magnificPopup.instance;jQuery(".mfp-arrow-right").on("click",function(b){a.next()}),jQuery(".mfp-arrow-left").on("click",function(b){a.prev()}),jQuery(".mfp-content .rtmedia-media").swipe({swipeLeft:function(b,c,d,e,f){a.next()},swipeRight:function(b,c,d,e,f){a.prev()},threshold:0})}function d(){jQuery(".mfp-arrow-right").hide(),jQuery(".mfp-arrow-left").hide(),jQuery(document).unbind("keydown")}function e(){rtmedia_disable_popup_navigation("#comment_content")}function f(){jQuery(".rtmedia-container").on("click",".rtmedia-delete-media",function(a){a.preventDefault(),confirm(rtmedia_media_delete_confirmation)&&jQuery(this).closest("form").submit()})}jQuery(".rtmedia-uploader-div").css({opacity:"1",display:"block",visibility:"visible"}),jQuery(" #whats-new-options ").css({opacity:"1"}),void 0!==a.fn.rtTab&&a(".rtm-tabs").rtTab(),jQuery(".rtmedia-modal-link").length>0&&a(".rtmedia-modal-link").magnificPopup({type:"inline",midClick:!0,closeBtnInside:!0}),a("#rt_media_comment_form").submit(function(b){return""!=a.trim(a("#comment_content").val())||(0==jQuery("#rtmedia-single-media-container").length?rtmedia_gallery_action_alert_message(rtmedia_empty_comment_msg,"warning"):rtmedia_single_media_alert_message(rtmedia_empty_comment_msg,"warning"),!1)}),a("li.rtmedia-list-item p a").each(function(b){a(this).addClass("no-popup")}),a("li.rtmedia-list-item p a").each(function(b){a(this).addClass("no-popup")}),
7
+ "undefined"!=typeof rtmedia_lightbox_enabled&&"1"==rtmedia_lightbox_enabled&&apply_rtMagnificPopup(".rtmedia-list-media.rtm-gallery-list, .rtmedia-activity-container ul.rtmedia-list, #bp-media-list,.bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content, .rtm-bbp-container, ul.rtm-comment-container"),jQuery.ajaxPrefilter(function(a,b,c){try{if(null==b.data||void 0===b.data||void 0===b.data.action)return!0}catch(a){return!0}if("activity_get_older_updates"==b.data.action){var d=b.success;a.success=function(a){d(a),apply_rtMagnificPopup(".rtmedia-activity-container ul.rtmedia-list, #bp-media-list, .bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content"),rtMediaHook.call("rtmedia_js_after_activity_added",[])}}else if("get_single_activity_content"==b.data.action){var d=b.success;a.success=function(a){d(a),setTimeout(function(){apply_rtMagnificPopup(".rtmedia-activity-container ul.rtmedia-list, #bp-media-list, .bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content"),jQuery("ul.activity-list li.rtmedia_update:first-child .wp-audio-shortcode, ul.activity-list li.rtmedia_update:first-child .wp-video-shortcode").mediaelementplayer({classPrefix:"mejs-",defaultVideoWidth:480,defaultVideoHeight:270})},900)}}}),jQuery.ajaxPrefilter(function(a,b,c){try{if(null==b.data||void 0===b.data||void 0===b.data.action)return!0}catch(a){return!0}if("activity_get_older_updates"==b.data.action){var d=b.success;a.success=function(a){d(a),apply_rtMagnificPopup(".rtmedia-activity-container ul.rtmedia-list, #bp-media-list, .bp-media-sc-list, li.media.album_updated ul,ul.bp-media-list-media, li.activity-item div.activity-content div.activity-inner div.bp_media_content"),jQuery("ul.activity-list li.rtmedia_update div.rtmedia-item-thumbnail > audio.wp-audio-shortcode, ul.activity-list li.rtmedia_update div.rtmedia-item-thumbnail > video.wp-video-shortcode").mediaelementplayer({classPrefix:"mejs-",defaultVideoWidth:480,defaultVideoHeight:270}),setTimeout(function(){rtmedia_activity_stream_comment_media()},900),rtMediaHook.call("rtmedia_js_after_activity_added",[])}}}),jQuery(".rtmedia-container").on("click",".select-all",function(a){jQuery(this).toggleClass("unselect-all").toggleClass("select-all"),jQuery(this).attr("title",rtmedia_unselect_all_visible),jQuery(".rtmedia-list input").each(function(){jQuery(this).prop("checked",!0)}),jQuery(".rtmedia-list-item").addClass("bulk-selected")}),jQuery(".rtmedia-container").on("click",".unselect-all",function(a){jQuery(this).toggleClass("select-all").toggleClass("unselect-all"),jQuery(this).attr("title",rtmedia_select_all_visible),jQuery(".rtmedia-list input").each(function(){jQuery(this).prop("checked",!1)}),jQuery(".rtmedia-list-item").removeClass("bulk-selected")}),jQuery(".rtmedia-container").on("click",".rtmedia-move",function(a){jQuery(".rtmedia-delete-container").slideUp(),jQuery(".rtmedia-move-container").slideToggle()}),jQuery("#rtmedia-create-album-modal").on("click","#rtmedia_create_new_album",function(b){if($albumname=jQuery("<span/>").text(jQuery.trim(jQuery("#rtmedia_album_name").val())).html(),$album_description=jQuery("#rtmedia_album_description"),$context=jQuery.trim(jQuery("#rtmedia_album_context").val()),$context_id=jQuery.trim(jQuery("#rtmedia_album_context_id").val()),$privacy=jQuery.trim(jQuery("#rtmedia_select_album_privacy").val()),$create_album_nonce=jQuery.trim(jQuery("#rtmedia_create_album_nonce").val()),""!=$albumname){var c={action:"rtmedia_create_album",name:$albumname,description:$album_description.val(),context:$context,context_id:$context_id,create_album_nonce:$create_album_nonce};""!==$privacy&&(c.privacy=$privacy),a("#rtmedia_create_new_album").attr("disabled","disabled");var d=a("#rtmedia_create_new_album").html();a("#rtmedia_create_new_album").prepend("<img src='"+rMedia_loading_file+"' />"),jQuery.post(rtmedia_ajax_url,c,function(b){if(void 0!==b.album){b=jQuery.trim(b.album);var c=!0;$album_description.val(""),a("#rtmedia_album_name").focus(),jQuery(".rtmedia-user-album-list").each(function(){if(jQuery(this).children("optgroup").each(function(){if(jQuery(this).attr("value")===$context)return c=!1,void jQuery(this).append('<option value="'+b+'">'+$albumname+"</option>")}),c){var a=$context.charAt(0).toUpperCase()+$context.slice(1)+" "+rtmedia_main_js_strings.rtmedia_albums,d='<optgroup value="'+$context+'" label="'+a+'"><option value="'+b+'">'+$albumname+"</option></optgroup>";jQuery(this).append(d)}}),jQuery('select.rtmedia-user-album-list option[value="'+b+'"]').prop("selected",!0),jQuery(".rtmedia-create-new-album-container").slideToggle(),jQuery("#rtmedia_album_name").val(""),jQuery("#rtmedia-create-album-modal").append("<div class='rtmedia-success rtmedia-create-album-alert'><b>"+$albumname+"</b>"+rtmedia_album_created_msg+"</div>"),setTimeout(function(){jQuery(".rtmedia-create-album-alert").remove()},4e3),setTimeout(function(){galleryObj.reloadView(),jQuery(".close-reveal-modal").click()},2e3)}else void 0!==b.error?rtmedia_gallery_action_alert_message(b.error,"warning"):rtmedia_gallery_action_alert_message(rtmedia_something_wrong_msg,"warning");a("#rtmedia_create_new_album").removeAttr("disabled"),a("#rtmedia_create_new_album").html(d)})}else rtmedia_gallery_action_alert_message(rtmedia_empty_album_name_msg,"warning")}),jQuery(".rtmedia-container").on("click",".rtmedia-delete-selected",function(a){jQuery(".rtmedia-list :checkbox:checked").length>0?confirm(rtmedia_selected_media_delete_confirmation)&&jQuery(this).closest("form").attr("action","../../../"+rtmedia_media_slug+"/delete").submit():rtmedia_gallery_action_alert_message(rtmedia_no_media_selected,"warning")}),jQuery(".rtmedia-container").on("click",".rtmedia-move-selected",function(a){jQuery(".rtmedia-list :checkbox:checked").length>0?confirm(rtmedia_selected_media_move_confirmation)&&jQuery(this).closest("form").attr("action","").submit():rtmedia_gallery_action_alert_message(rtmedia_no_media_selected,"warning")}),jQuery("#buddypress").on("change",".rtm-activity-privacy-opt",function(){var a=jQuery(this).attr("id");a=a.split("-"),a=a[a.length-1];var b=this;data={activity_id:a,privacy:jQuery(this).val(),nonce:jQuery("#rtmedia_activity_privacy_nonce").val(),action:"rtm_change_activity_privacy"},jQuery.post(ajaxurl,data,function(a){var c="",d="";"true"==a?(c=rtmedia_main_js_strings.privacy_update_success,d="success"):(c=rtmedia_main_js_strings.privacy_update_error,d="fail"),jQuery(b).after('<p class="rtm-ac-privacy-updated '+d+'">'+c+"</p>"),setTimeout(function(){jQuery(b).siblings(".rtm-ac-privacy-updated").remove()},2e3)})}),jQuery(".media_search_input").on("keyup",function(){rtm_search_media_text_validation()}),b(),rtMediaHook.register("rtmedia_js_popup_after_content_added",function(){b(),f(),mfp=jQuery.magnificPopup.instance,jQuery(mfp.items).size()>1&&0==comment_media?c():d(),e(),rtmedia_disable_popup_navigation_comment_media_focus();var g=a(window).height();jQuery(".rtm-lightbox-container .mejs-video").css({height:.8*g,"over-flow":"hidden"}),jQuery(".mfp-content .rtmedia-media").css({"max-height":.87*g,"over-flow":"hidden"}),rtmedia_init_action_dropdown(".rtm-lightbox-container .rtmedia-actions"),jQuery(".rtmedia-comment-link").on("click",function(a){a.preventDefault(),jQuery("#comment_content").focus()}),jQuery(".rtm-more").shorten({showChars:130});var h=a(".rtm-gallery-title"),i="";""!=(i=a.isEmptyObject(h)?a("#subnav.item-list-tabs li.selected ").html():h.html())&&a(".rtm-ltb-gallery-title .ltb-title").html(i);var j=a("#subnav.item-list-tabs li.selected span").html();return a("li.total").html(j),!0});var g=jQuery("#drag-drop-area"),h=jQuery("#whats-new");g.html();jQuery("#rtmedia-upload-container").after("<div id='rtm-drop-files-title'>"+rtmedia_drop_media_msg+"</div>"),"undefined"!=typeof rtmedia_bp_enable_activity&&"1"==rtmedia_bp_enable_activity&&jQuery("#whats-new-textarea").append("<div id='rtm-drop-files-title'>"+rtmedia_drop_media_msg+"</div>"),jQuery(document).on("dragover",function(a){a.preventDefault(),a.target!=this&&(jQuery("#rtm-media-gallery-uploader").show(),"undefined"!=typeof rtmedia_bp_enable_activity&&"1"==rtmedia_bp_enable_activity&&h.addClass("rtm-drag-drop-active"),g.addClass("rtm-drag-drop-active"),jQuery("#rtm-drop-files-title").show())}).on("dragleave",function(a){if(a.preventDefault(),0!=a.originalEvent.pageX&&0!=a.originalEvent.pageY)return!1;"undefined"!=typeof rtmedia_bp_enable_activity&&"1"==rtmedia_bp_enable_activity&&(h.removeClass("rtm-drag-drop-active"),h.removeAttr("style")),g.removeClass("rtm-drag-drop-active"),jQuery("#rtm-drop-files-title").hide()}).on("drop",function(a){a.preventDefault(),jQuery(".bp-suggestions").focus(),"undefined"!=typeof rtmedia_bp_enable_activity&&"1"==rtmedia_bp_enable_activity&&(h.removeClass("rtm-drag-drop-active"),h.removeAttr("style")),g.removeClass("rtm-drag-drop-active"),jQuery("#rtm-drop-files-title").hide()}),jQuery(".rtmedia-container").on("click",".rtmedia-delete-album",function(a){a.preventDefault(),confirm(rtmedia_album_delete_confirmation)&&jQuery(this).closest("form").submit()}),jQuery(".rtmedia-container").on("click",".rtmedia-delete-media",function(a){a.preventDefault(),confirm(rtmedia_media_delete_confirmation)&&jQuery(this).closest("form").submit()}),rtmedia_init_action_dropdown(""),a(document).click(function(){a(".click-nav ul").is(":visible")&&a(".click-nav ul",this).hide()}),jQuery(".rtmedia-comment-link").on("click",function(a){a.preventDefault(),jQuery("#comment_content").focus()}),jQuery(".rtm-more").length>0&&a(".rtm-more").shorten({showChars:200}),"undefined"!=typeof rtmedia_masonry_layout&&"true"==rtmedia_masonry_layout&&"undefined"!=typeof rtmedia_masonry_layout_activity&&"true"==rtmedia_masonry_layout_activity&&rtmedia_activity_masonry(),jQuery(document).ajaxComplete(function(a,b,c){var d=get_parameter("action",c.data);"post_update"!==d&&"get_single_activity_content"!==d&&"activity_get_older_updates"!==d||"undefined"==typeof rtmedia_masonry_layout||"true"!=rtmedia_masonry_layout||"undefined"==typeof rtmedia_masonry_layout_activity||"true"!=rtmedia_masonry_layout_activity||rtmedia_activity_masonry()}),"undefined"!=typeof rtmedia_masonry_layout&&"true"==rtmedia_masonry_layout&&0==jQuery(".rtmedia-container .rtmedia-list.rtm-no-masonry").length&&(rtm_masonry_container=jQuery(".rtmedia-container .rtmedia-list"),rtm_masonry_container.masonry({itemSelector:".rtmedia-list-item"}),setInterval(function(){jQuery.each(jQuery(".rtmedia-list.masonry .rtmedia-item-title"),function(a,b){jQuery(b).width(jQuery(b).siblings(".rtmedia-item-thumbnail").children("img").width())}),rtm_masonry_reload(rtm_masonry_container)},1e3),jQuery.each(jQuery(".rtmedia-list.masonry .rtmedia-item-title"),function(a,b){jQuery(b).width(jQuery(b).siblings(".rtmedia-item-thumbnail").children("img").width())})),jQuery(".rtm-uploader-tabs").length>0&&jQuery(".rtm-uploader-tabs li").click(function(a){jQuery(this).hasClass("active")||(jQuery(this).siblings().removeClass("active"),jQuery(this).parents(".rtm-uploader-tabs").siblings().hide(),class_name=jQuery(this).attr("class"),jQuery(this).parents(".rtm-uploader-tabs").siblings('[data-id="'+class_name+'"]').show(),jQuery(this).addClass("active"),"rtm-upload-tab"!=class_name?jQuery("div.moxie-shim").hide():jQuery("div.moxie-shim").show())}),jQuery(".rtmedia-container").on("click",".rtm-delete-media",function(a){a.preventDefault();var b="Are you sure you want to delete this media?";if("undefined"!=typeof rtmedia_media_delete_confirmation&&(b=rtmedia_media_delete_confirmation),confirm(b)){var c=jQuery(this).closest("li"),d=jQuery("#rtmedia_media_delete_nonce").val(),e={action:"delete_uploaded_media",nonce:d,media_id:c.attr("id")};jQuery.ajax({url:ajaxurl,type:"post",data:e,success:function(a){"1"==a?(rtmedia_gallery_action_alert_message(rtmedia_main_js_strings.file_delete_success,"success"),c.remove(),"undefined"!=typeof rtmedia_masonry_layout&&"true"==rtmedia_masonry_layout&&0==jQuery(".rtmedia-container .rtmedia-list.rtm-no-masonry").length&&rtm_masonry_reload(rtm_masonry_container)):rtmedia_gallery_action_alert_message(rtmedia_file_not_deleted,"warning")}})}})}),function(a){a.fn.shorten=function(b){"use strict";var c={showChars:100,minHideChars:10,ellipsesText:"...",moreText:rtmedia_read_more,lessText:rtmedia__show_less,onLess:function(){},onMore:function(){},errMsg:null,force:!1};return b&&a.extend(c,b),!(a(this).data("jquery.shorten")&&!c.force)&&(a(this).data("jquery.shorten",!0),a(document).off("click",".morelink"),a(document).on({click:function(){var b=a(this);return b.hasClass("less")?(b.removeClass("less"),b.html(c.moreText),b.parent().prev().hide(0,function(){b.parent().prev().prev().show()}).hide(0,function(){c.onLess()})):(b.addClass("less"),b.html(c.lessText),b.parent().prev().show(0,function(){b.parent().prev().prev().hide()}).show(0,function(){c.onMore()})),!1}},".morelink"),this.each(function(){var b=a(this),d=b.html();if(b.text().length>c.showChars+c.minHideChars){var e=d.substr(0,c.showChars);if(e.indexOf("<")>=0){for(var f=!1,g="",h=0,i=[],k=null,l=0,m=0;m<=c.showChars;l++)if("<"!=d[l]||f||(f=!0,k=d.substring(l+1,d.indexOf(">",l)),"/"==k[0]?k!="/"+i[0]?c.errMsg="ERROR en HTML: the top of the stack should be the tag that closes":i.shift():"br"!=k.toLowerCase()&&i.unshift(k)),f&&">"==d[l]&&(f=!1),f)g+=d.charAt(l);else if(m++,h<=c.showChars)g+=d.charAt(l),h++;else if(i.length>0){for(j=0;j<i.length;j++)g+="</"+i[j]+">";break}e=a("<div/>").html(g+'<span class="ellip">'+c.ellipsesText+"</span>").html()}else e+=c.ellipsesText;var n='<div class="shortcontent">'+e+'</div><div class="allcontent">'+d+'</div><span><a href="javascript://nop/" class="morelink">'+c.moreText+"</a></span>";b.html(n),b.find(".allcontent").hide(),a(".shortcontent p:last",b).css("margin-bottom",0)}}))}}(jQuery),window.onload=function(){"undefined"!=typeof rtmedia_masonry_layout&&"true"==rtmedia_masonry_layout&&0==jQuery(".rtmedia-container .rtmedia-list.rtm-no-masonry").length&&rtm_masonry_reload(rtm_masonry_container),rtm_search_media_text_validation(),check_condition("search")&&jQuery("#media_search_remove").show()};
app/main/RTMedia.php CHANGED
@@ -990,14 +990,11 @@ class RTMedia {
990
 
991
  function enqueue_scripts_styles() {
992
  global $rtmedia;
993
- if ( wp_script_is( 'wp-mediaelement', 'registered' ) ) {
994
- wp_enqueue_style( 'wp-mediaelement' );
995
- wp_enqueue_script( 'wp-mediaelement' );
996
- } else {
997
- wp_enqueue_script( 'wp-mediaelement', RTMEDIA_URL . 'lib/media-element/mediaelement-and-player.min.js', '', RTMEDIA_VERSION );
998
- wp_enqueue_style( 'wp-mediaelement', RTMEDIA_URL . 'lib/media-element/mediaelementplayer.min.css', '', RTMEDIA_VERSION );
999
- wp_enqueue_script( 'wp-mediaelement-start', RTMEDIA_URL . 'lib/media-element/wp-mediaelement.js', 'wp-mediaelement', RTMEDIA_VERSION, true );
1000
- }
1001
 
1002
  // Dashicons: Needs if not loaded by WP
1003
  wp_enqueue_style( 'dashicons' );
@@ -1012,20 +1009,20 @@ class RTMedia {
1012
  if ( '' === $suffix ) {
1013
  wp_enqueue_script( 'rtmedia-magnific-popup', RTMEDIA_URL . 'app/assets/js/vendors/magnific-popup.js', array(
1014
  'jquery',
1015
- 'wp-mediaelement',
1016
  ), RTMEDIA_VERSION );
1017
  wp_enqueue_script( 'rtmedia-admin-tabs', RTMEDIA_URL . 'app/assets/admin/js/vendors/tabs.js', array(
1018
  'jquery',
1019
- 'wp-mediaelement',
1020
  ), RTMEDIA_VERSION );
1021
  wp_enqueue_script( 'rtmedia-main', RTMEDIA_URL . 'app/assets/js/rtMedia.js', array(
1022
  'jquery',
1023
- 'wp-mediaelement',
1024
  ), RTMEDIA_VERSION );
1025
  } else {
1026
  wp_enqueue_script( 'rtmedia-main', RTMEDIA_URL . 'app/assets/js/rtmedia.min.js', array(
1027
  'jquery',
1028
- 'wp-mediaelement',
1029
  ), RTMEDIA_VERSION );
1030
  }
1031
 
990
 
991
  function enqueue_scripts_styles() {
992
  global $rtmedia;
993
+
994
+ wp_enqueue_script( 'rt-mediaelement', RTMEDIA_URL . 'lib/media-element/mediaelement-and-player.min.js', '', RTMEDIA_VERSION );
995
+ wp_enqueue_style( 'rt-mediaelement', RTMEDIA_URL . 'lib/media-element/mediaelementplayer-legacy.min.css', '', RTMEDIA_VERSION );
996
+ wp_enqueue_style( 'rt-mediaelement-wp', RTMEDIA_URL . 'lib/media-element/wp-mediaelement.min.css', '', RTMEDIA_VERSION );
997
+ wp_enqueue_script( 'rt-mediaelement-wp', RTMEDIA_URL . 'lib/media-element/wp-mediaelement.min.js', 'rt-mediaelement', RTMEDIA_VERSION, true );
 
 
 
998
 
999
  // Dashicons: Needs if not loaded by WP
1000
  wp_enqueue_style( 'dashicons' );
1009
  if ( '' === $suffix ) {
1010
  wp_enqueue_script( 'rtmedia-magnific-popup', RTMEDIA_URL . 'app/assets/js/vendors/magnific-popup.js', array(
1011
  'jquery',
1012
+ 'rt-mediaelement-wp',
1013
  ), RTMEDIA_VERSION );
1014
  wp_enqueue_script( 'rtmedia-admin-tabs', RTMEDIA_URL . 'app/assets/admin/js/vendors/tabs.js', array(
1015
  'jquery',
1016
+ 'rt-mediaelement-wp',
1017
  ), RTMEDIA_VERSION );
1018
  wp_enqueue_script( 'rtmedia-main', RTMEDIA_URL . 'app/assets/js/rtMedia.js', array(
1019
  'jquery',
1020
+ 'rt-mediaelement-wp',
1021
  ), RTMEDIA_VERSION );
1022
  } else {
1023
  wp_enqueue_script( 'rtmedia-main', RTMEDIA_URL . 'app/assets/js/rtmedia.min.js', array(
1024
  'jquery',
1025
+ 'rt-mediaelement-wp',
1026
  ), RTMEDIA_VERSION );
1027
  }
1028
 
index.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: rtMedia for WordPress, BuddyPress and bbPress
4
  Plugin URI: https://rtmedia.io/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media
5
  Description: This plugin adds missing media rich features like photos, videos and audio uploading to BuddyPress which are essential if you are building social network, seriously!
6
- Version: 4.4.4
7
  Author: rtCamp
8
  Text Domain: buddypress-media
9
  Author URI: http://rtcamp.com/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media
@@ -22,7 +22,7 @@ if ( ! defined( 'RTMEDIA_VERSION' ) ) {
22
  * The version of the plugin
23
  *
24
  */
25
- define( 'RTMEDIA_VERSION', '4.4.4' );
26
  }
27
 
28
  if ( ! defined( 'RTMEDIA_PATH' ) ) {
3
  Plugin Name: rtMedia for WordPress, BuddyPress and bbPress
4
  Plugin URI: https://rtmedia.io/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media
5
  Description: This plugin adds missing media rich features like photos, videos and audio uploading to BuddyPress which are essential if you are building social network, seriously!
6
+ Version: 4.4.5
7
  Author: rtCamp
8
  Text Domain: buddypress-media
9
  Author URI: http://rtcamp.com/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media
22
  * The version of the plugin
23
  *
24
  */
25
+ define( 'RTMEDIA_VERSION', '4.4.5' );
26
  }
27
 
28
  if ( ! defined( 'RTMEDIA_PATH' ) ) {
languages/buddypress-media.po CHANGED
@@ -1,28 +1,28 @@
1
- # Copyright (C) 2017 rtCamp
2
  # This file is distributed under the same license as the rtMedia for WordPress, BuddyPress and bbPress package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: rtMedia for WordPress, BuddyPress and bbPress 4.4.4\n"
6
  "Report-Msgid-Bugs-To: http://community.rtcamp.com/c/rtmedia/\n"
7
- "POT-Creation-Date: 2017-10-12 11:31:01+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: rtMedia <rtmedia@rtcamp.com>\n"
13
  "Language-Team: rtMedia <rtmedia@rtcamp.com>\n"
14
- "X-Generator: grunt-wp-i18n 0.5.4\n"
15
- "X-Poedit-KeywordsList: "
16
- "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
17
- "attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
18
  "Language: en\n"
19
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
  "X-Poedit-Country: United States\n"
21
  "X-Poedit-SourceCharset: UTF-8\n"
 
 
 
22
  "X-Poedit-Basepath: ../\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
 
26
 
27
  #: app/admin/RTMediaAdmin.php:147
28
  msgid ""
@@ -2154,7 +2154,7 @@ msgstr ""
2154
  msgid "Album"
2155
  msgstr ""
2156
 
2157
- #: app/main/RTMedia.php:697 app/main/RTMedia.php:1101
2158
  #: app/main/controllers/media/RTMediaAlbum.php:53
2159
  #: app/main/controllers/media/RTMediaAlbum.php:65
2160
  msgid "Albums"
@@ -2179,95 +2179,95 @@ msgstr ""
2179
  msgid ": Can't Create Database table. Please check create table permission."
2180
  msgstr ""
2181
 
2182
- #: app/main/RTMedia.php:1043
2183
  msgid "Loading media"
2184
  msgstr ""
2185
 
2186
- #: app/main/RTMedia.php:1044
2187
  msgid "Please enter some content to post."
2188
  msgstr ""
2189
 
2190
- #: app/main/RTMedia.php:1045
2191
  msgid "Empty Comment is not allowed."
2192
  msgstr ""
2193
 
2194
- #: app/main/RTMedia.php:1046
2195
  msgid "Are you sure you want to delete this media?"
2196
  msgstr ""
2197
 
2198
- #: app/main/RTMedia.php:1047
2199
  msgid "Are you sure you want to delete this comment?"
2200
  msgstr ""
2201
 
2202
- #: app/main/RTMedia.php:1048
2203
  msgid "Are you sure you want to delete this Album?"
2204
  msgstr ""
2205
 
2206
- #: app/main/RTMedia.php:1049
2207
  msgid "Drop files here"
2208
  msgstr ""
2209
 
2210
- #: app/main/RTMedia.php:1050
2211
  msgid "album created successfully."
2212
  msgstr ""
2213
 
2214
- #: app/main/RTMedia.php:1051
2215
  msgid "Something went wrong. Please try again."
2216
  msgstr ""
2217
 
2218
- #: app/main/RTMedia.php:1052
2219
  msgid "Enter an album name."
2220
  msgstr ""
2221
 
2222
- #: app/main/RTMedia.php:1053
2223
  msgid "Max file Size Limit : "
2224
  msgstr ""
2225
 
2226
- #: app/main/RTMedia.php:1054
2227
  msgid "Allowed File Formats"
2228
  msgstr ""
2229
 
2230
- #: app/main/RTMedia.php:1055 templates/media/album-single-edit.php:73
2231
  msgid "Select All Visible"
2232
  msgstr ""
2233
 
2234
- #: app/main/RTMedia.php:1056
2235
  msgid "Unselect All Visible"
2236
  msgstr ""
2237
 
2238
- #: app/main/RTMedia.php:1057
2239
  msgid "Please select some media."
2240
  msgstr ""
2241
 
2242
- #: app/main/RTMedia.php:1058
2243
  msgid "Are you sure you want to delete the selected media?"
2244
  msgstr ""
2245
 
2246
- #: app/main/RTMedia.php:1059
2247
  msgid "Are you sure you want to move the selected media?"
2248
  msgstr ""
2249
 
2250
- #: app/main/RTMedia.php:1060
2251
  msgid "Waiting"
2252
  msgstr ""
2253
 
2254
- #: app/main/RTMedia.php:1061
2255
  msgid "Uploaded"
2256
  msgstr ""
2257
 
2258
- #: app/main/RTMedia.php:1062
2259
  msgid "Uploading"
2260
  msgstr ""
2261
 
2262
- #: app/main/RTMedia.php:1063
2263
  msgid "Failed"
2264
  msgstr ""
2265
 
2266
- #: app/main/RTMedia.php:1064
2267
  msgid "Close"
2268
  msgstr ""
2269
 
2270
- #: app/main/RTMedia.php:1065
2271
  #: app/main/controllers/media/RTMediaGalleryItemAction.php:63
2272
  #: app/main/controllers/media/RTMediaGalleryItemAction.php:80
2273
  #: app/main/controllers/template/rtmedia-functions.php:1163
@@ -2275,7 +2275,7 @@ msgstr ""
2275
  msgid "Edit"
2276
  msgstr ""
2277
 
2278
- #: app/main/RTMedia.php:1066
2279
  #: app/main/controllers/media/RTMediaGalleryItemAction.php:67
2280
  #: app/main/controllers/media/RTMediaGalleryItemAction.php:80
2281
  #: app/main/controllers/template/rtmedia-functions.php:2078
@@ -2284,83 +2284,83 @@ msgstr ""
2284
  msgid "Delete"
2285
  msgstr ""
2286
 
2287
- #: app/main/RTMedia.php:1067 templates/media/media-single-edit.php:8
2288
  msgid "Edit Media"
2289
  msgstr ""
2290
 
2291
- #: app/main/RTMedia.php:1068
2292
  msgid "Remove from queue"
2293
  msgstr ""
2294
 
2295
- #: app/main/RTMedia.php:1069
2296
  msgid "Add more files"
2297
  msgstr ""
2298
 
2299
- #: app/main/RTMedia.php:1070
2300
  msgid "File not supported"
2301
  msgstr ""
2302
 
2303
- #: app/main/RTMedia.php:1071
2304
  msgid "more"
2305
  msgstr ""
2306
 
2307
- #: app/main/RTMedia.php:1072
2308
  msgid "less"
2309
  msgstr ""
2310
 
2311
- #: app/main/RTMedia.php:1073
2312
  msgid "Read more"
2313
  msgstr ""
2314
 
2315
- #: app/main/RTMedia.php:1074
2316
  msgid "Show less"
2317
  msgstr ""
2318
 
2319
- #: app/main/RTMedia.php:1076
2320
  msgid "This media is uploaded. Are you sure you want to delete this media?"
2321
  msgstr ""
2322
 
2323
- #: app/main/RTMedia.php:1084
2324
  msgid "Featured media set successfully."
2325
  msgstr ""
2326
 
2327
- #: app/main/RTMedia.php:1085
2328
  msgid "Featured media removed successfully."
2329
  msgstr ""
2330
 
2331
- #: app/main/RTMedia.php:1087
2332
  msgid "Title:"
2333
  msgstr ""
2334
 
2335
- #: app/main/RTMedia.php:1088
2336
  msgid "Description:"
2337
  msgstr ""
2338
 
2339
- #: app/main/RTMedia.php:1090 templates/media/media-gallery.php:103
2340
  msgid "Oops !! There's no media found for the request !!"
2341
  msgstr ""
2342
 
2343
- #: app/main/RTMedia.php:1094
2344
  msgid "Edit File Name"
2345
  msgstr ""
2346
 
2347
- #: app/main/RTMedia.php:1102
2348
  msgid "Privacy updated successfully."
2349
  msgstr ""
2350
 
2351
- #: app/main/RTMedia.php:1103
2352
  msgid "Couldn't change privacy, please try again."
2353
  msgstr ""
2354
 
2355
- #: app/main/RTMedia.php:1104
2356
  msgid "file deleted successfully."
2357
  msgstr ""
2358
 
2359
- #: app/main/RTMedia.php:1141
2360
  msgid "There are some uploads in progress. Do you want to cancel them?"
2361
  msgstr ""
2362
 
2363
- #: app/main/RTMedia.php:1242
2364
  msgid "Adding media in Comments is not allowed"
2365
  msgstr ""
2366
 
1
+ # Copyright (C) 2018 rtCamp
2
  # This file is distributed under the same license as the rtMedia for WordPress, BuddyPress and bbPress package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: rtMedia for WordPress, BuddyPress and bbPress 4.4.5\n"
6
  "Report-Msgid-Bugs-To: http://community.rtcamp.com/c/rtmedia/\n"
7
+ "POT-Creation-Date: 2018-01-19 05:56:06+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: rtMedia <rtmedia@rtcamp.com>\n"
13
  "Language-Team: rtMedia <rtmedia@rtcamp.com>\n"
 
 
 
 
14
  "Language: en\n"
15
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
16
  "X-Poedit-Country: United States\n"
17
  "X-Poedit-SourceCharset: UTF-8\n"
18
+ "X-Poedit-KeywordsList: "
19
+ "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
20
+ "attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
21
  "X-Poedit-Basepath: ../\n"
22
  "X-Poedit-SearchPath-0: .\n"
23
  "X-Poedit-Bookmarks: \n"
24
  "X-Textdomain-Support: yes\n"
25
+ "X-Generator: grunt-wp-i18n1.0.1\n"
26
 
27
  #: app/admin/RTMediaAdmin.php:147
28
  msgid ""
2154
  msgid "Album"
2155
  msgstr ""
2156
 
2157
+ #: app/main/RTMedia.php:697 app/main/RTMedia.php:1098
2158
  #: app/main/controllers/media/RTMediaAlbum.php:53
2159
  #: app/main/controllers/media/RTMediaAlbum.php:65
2160
  msgid "Albums"
2179
  msgid ": Can't Create Database table. Please check create table permission."
2180
  msgstr ""
2181
 
2182
+ #: app/main/RTMedia.php:1040
2183
  msgid "Loading media"
2184
  msgstr ""
2185
 
2186
+ #: app/main/RTMedia.php:1041
2187
  msgid "Please enter some content to post."
2188
  msgstr ""
2189
 
2190
+ #: app/main/RTMedia.php:1042
2191
  msgid "Empty Comment is not allowed."
2192
  msgstr ""
2193
 
2194
+ #: app/main/RTMedia.php:1043
2195
  msgid "Are you sure you want to delete this media?"
2196
  msgstr ""
2197
 
2198
+ #: app/main/RTMedia.php:1044
2199
  msgid "Are you sure you want to delete this comment?"
2200
  msgstr ""
2201
 
2202
+ #: app/main/RTMedia.php:1045
2203
  msgid "Are you sure you want to delete this Album?"
2204
  msgstr ""
2205
 
2206
+ #: app/main/RTMedia.php:1046
2207
  msgid "Drop files here"
2208
  msgstr ""
2209
 
2210
+ #: app/main/RTMedia.php:1047
2211
  msgid "album created successfully."
2212
  msgstr ""
2213
 
2214
+ #: app/main/RTMedia.php:1048
2215
  msgid "Something went wrong. Please try again."
2216
  msgstr ""
2217
 
2218
+ #: app/main/RTMedia.php:1049
2219
  msgid "Enter an album name."
2220
  msgstr ""
2221
 
2222
+ #: app/main/RTMedia.php:1050
2223
  msgid "Max file Size Limit : "
2224
  msgstr ""
2225
 
2226
+ #: app/main/RTMedia.php:1051
2227
  msgid "Allowed File Formats"
2228
  msgstr ""
2229
 
2230
+ #: app/main/RTMedia.php:1052 templates/media/album-single-edit.php:73
2231
  msgid "Select All Visible"
2232
  msgstr ""
2233
 
2234
+ #: app/main/RTMedia.php:1053
2235
  msgid "Unselect All Visible"
2236
  msgstr ""
2237
 
2238
+ #: app/main/RTMedia.php:1054
2239
  msgid "Please select some media."
2240
  msgstr ""
2241
 
2242
+ #: app/main/RTMedia.php:1055
2243
  msgid "Are you sure you want to delete the selected media?"
2244
  msgstr ""
2245
 
2246
+ #: app/main/RTMedia.php:1056
2247
  msgid "Are you sure you want to move the selected media?"
2248
  msgstr ""
2249
 
2250
+ #: app/main/RTMedia.php:1057
2251
  msgid "Waiting"
2252
  msgstr ""
2253
 
2254
+ #: app/main/RTMedia.php:1058
2255
  msgid "Uploaded"
2256
  msgstr ""
2257
 
2258
+ #: app/main/RTMedia.php:1059
2259
  msgid "Uploading"
2260
  msgstr ""
2261
 
2262
+ #: app/main/RTMedia.php:1060
2263
  msgid "Failed"
2264
  msgstr ""
2265
 
2266
+ #: app/main/RTMedia.php:1061
2267
  msgid "Close"
2268
  msgstr ""
2269
 
2270
+ #: app/main/RTMedia.php:1062
2271
  #: app/main/controllers/media/RTMediaGalleryItemAction.php:63
2272
  #: app/main/controllers/media/RTMediaGalleryItemAction.php:80
2273
  #: app/main/controllers/template/rtmedia-functions.php:1163
2275
  msgid "Edit"
2276
  msgstr ""
2277
 
2278
+ #: app/main/RTMedia.php:1063
2279
  #: app/main/controllers/media/RTMediaGalleryItemAction.php:67
2280
  #: app/main/controllers/media/RTMediaGalleryItemAction.php:80
2281
  #: app/main/controllers/template/rtmedia-functions.php:2078
2284
  msgid "Delete"
2285
  msgstr ""
2286
 
2287
+ #: app/main/RTMedia.php:1064 templates/media/media-single-edit.php:8
2288
  msgid "Edit Media"
2289
  msgstr ""
2290
 
2291
+ #: app/main/RTMedia.php:1065
2292
  msgid "Remove from queue"
2293
  msgstr ""
2294
 
2295
+ #: app/main/RTMedia.php:1066
2296
  msgid "Add more files"
2297
  msgstr ""
2298
 
2299
+ #: app/main/RTMedia.php:1067
2300
  msgid "File not supported"
2301
  msgstr ""
2302
 
2303
+ #: app/main/RTMedia.php:1068
2304
  msgid "more"
2305
  msgstr ""
2306
 
2307
+ #: app/main/RTMedia.php:1069
2308
  msgid "less"
2309
  msgstr ""
2310
 
2311
+ #: app/main/RTMedia.php:1070
2312
  msgid "Read more"
2313
  msgstr ""
2314
 
2315
+ #: app/main/RTMedia.php:1071
2316
  msgid "Show less"
2317
  msgstr ""
2318
 
2319
+ #: app/main/RTMedia.php:1073
2320
  msgid "This media is uploaded. Are you sure you want to delete this media?"
2321
  msgstr ""
2322
 
2323
+ #: app/main/RTMedia.php:1081
2324
  msgid "Featured media set successfully."
2325
  msgstr ""
2326
 
2327
+ #: app/main/RTMedia.php:1082
2328
  msgid "Featured media removed successfully."
2329
  msgstr ""
2330
 
2331
+ #: app/main/RTMedia.php:1084
2332
  msgid "Title:"
2333
  msgstr ""
2334
 
2335
+ #: app/main/RTMedia.php:1085
2336
  msgid "Description:"
2337
  msgstr ""
2338
 
2339
+ #: app/main/RTMedia.php:1087 templates/media/media-gallery.php:103
2340
  msgid "Oops !! There's no media found for the request !!"
2341
  msgstr ""
2342
 
2343
+ #: app/main/RTMedia.php:1091
2344
  msgid "Edit File Name"
2345
  msgstr ""
2346
 
2347
+ #: app/main/RTMedia.php:1099
2348
  msgid "Privacy updated successfully."
2349
  msgstr ""
2350
 
2351
+ #: app/main/RTMedia.php:1100
2352
  msgid "Couldn't change privacy, please try again."
2353
  msgstr ""
2354
 
2355
+ #: app/main/RTMedia.php:1101
2356
  msgid "file deleted successfully."
2357
  msgstr ""
2358
 
2359
+ #: app/main/RTMedia.php:1138
2360
  msgid "There are some uploads in progress. Do you want to cancel them?"
2361
  msgstr ""
2362
 
2363
+ #: app/main/RTMedia.php:1239
2364
  msgid "Adding media in Comments is not allowed"
2365
  msgstr ""
2366
 
lib/media-element/mediaelement-and-player.js CHANGED
@@ -1,4379 +1,8508 @@
1
  /*!
2
- * MediaElement.js
3
- * HTML5 <video> and <audio> shim and player
4
- * http://mediaelementjs.com/
5
- *
6
- * Creates a JavaScript object that mimics HTML5 MediaElement API
7
- * for browsers that don't understand HTML5 or can't play the provided codec
8
- * Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
9
- *
10
- * Copyright 2010-2012, John Dyer (http://j.hn)
11
- * Dual licensed under the MIT or GPL Version 2 licenses.
12
- *
13
- */
14
- // Namespace
15
- var mejs = mejs || {};
16
-
17
- // version number
18
- mejs.version = '2.9.5';
19
-
20
- // player number (for missing, same id attr)
21
- mejs.meIndex = 0;
22
-
23
- // media types accepted by plugins
24
- mejs.plugins = {
25
- silverlight: [
26
- {version: [3,0], types: ['video/mp4','video/m4v','video/mov','video/wmv','audio/wma','audio/m4a','audio/mp3','audio/wav','audio/mpeg']}
27
- ],
28
- flash: [
29
- {version: [9,0,124], types: ['video/mp4','video/m4v','video/mov','video/flv','video/rtmp','video/x-flv','audio/flv','audio/x-flv','audio/mp3','audio/m4a','audio/mpeg', 'video/youtube', 'video/x-youtube']}
30
- //,{version: [12,0], types: ['video/webm']} // for future reference (hopefully!)
31
- ],
32
- youtube: [
33
- {version: null, types: ['video/youtube', 'video/x-youtube']}
34
- ],
35
- vimeo: [
36
- {version: null, types: ['video/vimeo']}
37
- ]
38
- };
39
-
40
- /*
41
- Utility methods
42
- */
43
- mejs.Utility = {
44
- encodeUrl: function(url) {
45
- return encodeURIComponent(url); //.replace(/\?/gi,'%3F').replace(/=/gi,'%3D').replace(/&/gi,'%26');
46
- },
47
- escapeHTML: function(s) {
48
- return s.toString().split('&').join('&amp;').split('<').join('&lt;').split('"').join('&quot;');
49
- },
50
- absolutizeUrl: function(url) {
51
- var el = document.createElement('div');
52
- el.innerHTML = '<a href="' + this.escapeHTML(url) + '">x</a>';
53
- return el.firstChild.href;
54
- },
55
- getScriptPath: function(scriptNames) {
56
- var
57
- i = 0,
58
- j,
59
- path = '',
60
- name = '',
61
- script,
62
- scripts = document.getElementsByTagName('script'),
63
- il = scripts.length,
64
- jl = scriptNames.length;
65
-
66
- for (; i < il; i++) {
67
- script = scripts[i].src;
68
- for (j = 0; j < jl; j++) {
69
- name = scriptNames[j];
70
- if (script.indexOf(name) > -1) {
71
- path = script.substring(0, script.indexOf(name));
72
- break;
73
- }
74
- }
75
- if (path !== '') {
76
- break;
77
- }
78
- }
79
- return path;
80
- },
81
- secondsToTimeCode: function(time, forceHours, showFrameCount, fps) {
82
- //add framecount
83
- if (typeof showFrameCount == 'undefined') {
84
- showFrameCount=false;
85
- } else if(typeof fps == 'undefined') {
86
- fps = 25;
87
- }
88
-
89
- var hours = Math.floor(time / 3600) % 24,
90
- minutes = Math.floor(time / 60) % 60,
91
- seconds = Math.floor(time % 60),
92
- frames = Math.floor(((time % 1)*fps).toFixed(3)),
93
- result =
94
- ( (forceHours || hours > 0) ? (hours < 10 ? '0' + hours : hours) + ':' : '')
95
- + (minutes < 10 ? '0' + minutes : minutes) + ':'
96
- + (seconds < 10 ? '0' + seconds : seconds)
97
- + ((showFrameCount) ? ':' + (frames < 10 ? '0' + frames : frames) : '');
98
-
99
- return result;
100
- },
101
-
102
- timeCodeToSeconds: function(hh_mm_ss_ff, forceHours, showFrameCount, fps){
103
- if (typeof showFrameCount == 'undefined') {
104
- showFrameCount=false;
105
- } else if(typeof fps == 'undefined') {
106
- fps = 25;
107
- }
108
-
109
- var tc_array = hh_mm_ss_ff.split(":"),
110
- tc_hh = parseInt(tc_array[0], 10),
111
- tc_mm = parseInt(tc_array[1], 10),
112
- tc_ss = parseInt(tc_array[2], 10),
113
- tc_ff = 0,
114
- tc_in_seconds = 0;
115
-
116
- if (showFrameCount) {
117
- tc_ff = parseInt(tc_array[3])/fps;
118
- }
119
-
120
- tc_in_seconds = ( tc_hh * 3600 ) + ( tc_mm * 60 ) + tc_ss + tc_ff;
121
-
122
- return tc_in_seconds;
123
- },
124
-
125
 
126
- convertSMPTEtoSeconds: function (SMPTE) {
127
- if (typeof SMPTE != 'string')
128
- return false;
 
 
129
 
130
- SMPTE = SMPTE.replace(',', '.');
131
-
132
- var secs = 0,
133
- decimalLen = (SMPTE.indexOf('.') != -1) ? SMPTE.split('.')[1].length : 0,
134
- multiplier = 1;
135
-
136
- SMPTE = SMPTE.split(':').reverse();
137
-
138
- for (var i = 0; i < SMPTE.length; i++) {
139
- multiplier = 1;
140
- if (i > 0) {
141
- multiplier = Math.pow(60, i);
142
- }
143
- secs += Number(SMPTE[i]) * multiplier;
144
- }
145
- return Number(secs.toFixed(decimalLen));
146
- },
147
-
148
- /* borrowed from SWFObject: http://code.google.com/p/swfobject/source/browse/trunk/swfobject/src/swfobject.js#474 */
149
- removeSwf: function(id) {
150
- var obj = document.getElementById(id);
151
- if (obj && obj.nodeName == "OBJECT") {
152
- if (mejs.MediaFeatures.isIE) {
153
- obj.style.display = "none";
154
- (function(){
155
- if (obj.readyState == 4) {
156
- mejs.Utility.removeObjectInIE(id);
157
- } else {
158
- setTimeout(arguments.callee, 10);
159
- }
160
- })();
161
- } else {
162
- obj.parentNode.removeChild(obj);
163
- }
164
- }
165
- },
166
- removeObjectInIE: function(id) {
167
- var obj = document.getElementById(id);
168
- if (obj) {
169
- for (var i in obj) {
170
- if (typeof obj[i] == "function") {
171
- obj[i] = null;
172
- }
173
- }
174
- obj.parentNode.removeChild(obj);
175
- }
176
- }
177
- };
178
 
 
 
 
 
179
 
180
- // Core detector, plugins are added below
181
- mejs.PluginDetector = {
 
 
182
 
183
- // main public function to test a plug version number PluginDetector.hasPluginVersion('flash',[9,0,125]);
184
- hasPluginVersion: function(plugin, v) {
185
- var pv = this.plugins[plugin];
186
- v[1] = v[1] || 0;
187
- v[2] = v[2] || 0;
188
- return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
189
- },
 
 
 
 
 
 
 
 
 
190
 
191
- // cached values
192
- nav: window.navigator,
193
- ua: window.navigator.userAgent.toLowerCase(),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
194
 
195
- // stored version numbers
196
- plugins: [],
197
 
198
- // runs detectPlugin() and stores the version number
199
- addPlugin: function(p, pluginName, mimeType, activeX, axDetect) {
200
- this.plugins[p] = this.detectPlugin(pluginName, mimeType, activeX, axDetect);
201
- },
202
 
203
- // get the version number from the mimetype (all but IE) or ActiveX (IE)
204
- detectPlugin: function(pluginName, mimeType, activeX, axDetect) {
205
 
206
- var version = [0,0,0],
207
- description,
208
- i,
209
- ax;
210
 
211
- // Firefox, Webkit, Opera
212
- if (typeof(this.nav.plugins) != 'undefined' && typeof this.nav.plugins[pluginName] == 'object') {
213
- description = this.nav.plugins[pluginName].description;
214
- if (description && !(typeof this.nav.mimeTypes != 'undefined' && this.nav.mimeTypes[mimeType] && !this.nav.mimeTypes[mimeType].enabledPlugin)) {
215
- version = description.replace(pluginName, '').replace(/^\s+/,'').replace(/\sr/gi,'.').split('.');
216
- for (i=0; i<version.length; i++) {
217
- version[i] = parseInt(version[i].match(/\d+/), 10);
218
- }
219
- }
220
- // Internet Explorer / ActiveX
221
- } else if (typeof(window.ActiveXObject) != 'undefined') {
222
- try {
223
- ax = new ActiveXObject(activeX);
224
- if (ax) {
225
- version = axDetect(ax);
226
- }
227
- }
228
- catch (e) { }
229
- }
230
- return version;
231
- }
232
- };
233
 
234
- // Add Flash detection
235
- mejs.PluginDetector.addPlugin('flash','Shockwave Flash','application/x-shockwave-flash','ShockwaveFlash.ShockwaveFlash', function(ax) {
236
- // adapted from SWFObject
237
- var version = [],
238
- d = ax.GetVariable("$version");
239
- if (d) {
240
- d = d.split(" ")[1].split(",");
241
- version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
242
- }
243
- return version;
244
- });
245
 
246
- // Add Silverlight detection
247
- mejs.PluginDetector.addPlugin('silverlight','Silverlight Plug-In','application/x-silverlight-2','AgControl.AgControl', function (ax) {
248
- // Silverlight cannot report its version number to IE
249
- // but it does have a isVersionSupported function, so we have to loop through it to get a version number.
250
- // adapted from http://www.silverlightversion.com/
251
- var v = [0,0,0,0],
252
- loopMatch = function(ax, v, i, n) {
253
- while(ax.isVersionSupported(v[0]+ "."+ v[1] + "." + v[2] + "." + v[3])){
254
- v[i]+=n;
255
- }
256
- v[i] -= n;
257
- };
258
- loopMatch(ax, v, 0, 1);
259
- loopMatch(ax, v, 1, 1);
260
- loopMatch(ax, v, 2, 10000); // the third place in the version number is usually 5 digits (4.0.xxxxx)
261
- loopMatch(ax, v, 2, 1000);
262
- loopMatch(ax, v, 2, 100);
263
- loopMatch(ax, v, 2, 10);
264
- loopMatch(ax, v, 2, 1);
265
- loopMatch(ax, v, 3, 1);
266
-
267
- return v;
268
- });
269
- // add adobe acrobat
270
- /*
271
- PluginDetector.addPlugin('acrobat','Adobe Acrobat','application/pdf','AcroPDF.PDF', function (ax) {
272
- var version = [],
273
- d = ax.GetVersions().split(',')[0].split('=')[1].split('.');
274
 
275
- if (d) {
276
- version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
 
277
  }
278
- return version;
279
- });
280
- */
281
- // necessary detection (fixes for <IE9)
282
- mejs.MediaFeatures = {
283
- init: function() {
284
- var
285
- t = this,
286
- d = document,
287
- nav = mejs.PluginDetector.nav,
288
- ua = mejs.PluginDetector.ua.toLowerCase(),
289
- i,
290
- v,
291
- html5Elements = ['source','track','audio','video'];
292
-
293
- // detect browsers (only the ones that have some kind of quirk we need to work around)
294
- t.isiPad = (ua.match(/ipad/i) !== null);
295
- t.isiPhone = (ua.match(/iphone/i) !== null);
296
- t.isiOS = t.isiPhone || t.isiPad;
297
- t.isAndroid = (ua.match(/android/i) !== null);
298
- t.isBustedAndroid = (ua.match(/android 2\.[12]/) !== null);
299
- t.isIE = (nav.appName.toLowerCase().indexOf("microsoft") != -1);
300
- t.isChrome = (ua.match(/chrome/gi) !== null);
301
- t.isFirefox = (ua.match(/firefox/gi) !== null);
302
- t.isWebkit = (ua.match(/webkit/gi) !== null);
303
- t.isGecko = (ua.match(/gecko/gi) !== null) && !t.isWebkit;
304
- t.isOpera = (ua.match(/opera/gi) !== null);
305
- t.hasTouch = ('ontouchstart' in window);
306
-
307
- // create HTML5 media elements for IE before 9, get a <video> element for fullscreen detection
308
- for (i=0; i<html5Elements.length; i++) {
309
- v = document.createElement(html5Elements[i]);
310
- }
311
-
312
- t.supportsMediaTag = (typeof v.canPlayType !== 'undefined' || t.isBustedAndroid);
313
-
314
- // detect native JavaScript fullscreen (Safari/Firefox only, Chrome still fails)
315
-
316
- // iOS
317
- t.hasSemiNativeFullScreen = (typeof v.webkitEnterFullscreen !== 'undefined');
318
-
319
- // Webkit/firefox
320
- t.hasWebkitNativeFullScreen = (typeof v.webkitRequestFullScreen !== 'undefined');
321
- t.hasMozNativeFullScreen = (typeof v.mozRequestFullScreen !== 'undefined');
322
-
323
- t.hasTrueNativeFullScreen = (t.hasWebkitNativeFullScreen || t.hasMozNativeFullScreen);
324
- t.nativeFullScreenEnabled = t.hasTrueNativeFullScreen;
325
- if (t.hasMozNativeFullScreen) {
326
- t.nativeFullScreenEnabled = v.mozFullScreenEnabled;
327
- }
328
-
329
-
330
- if (this.isChrome) {
331
- t.hasSemiNativeFullScreen = false;
332
- }
333
-
334
- if (t.hasTrueNativeFullScreen) {
335
- t.fullScreenEventName = (t.hasWebkitNativeFullScreen) ? 'webkitfullscreenchange' : 'mozfullscreenchange';
336
-
337
-
338
- t.isFullScreen = function() {
339
- if (v.mozRequestFullScreen) {
340
- return d.mozFullScreen;
341
- } else if (v.webkitRequestFullScreen) {
342
- return d.webkitIsFullScreen;
343
- }
344
- }
345
-
346
- t.requestFullScreen = function(el) {
347
-
348
- if (t.hasWebkitNativeFullScreen) {
349
- el.webkitRequestFullScreen();
350
- } else if (t.hasMozNativeFullScreen) {
351
- el.mozRequestFullScreen();
352
- }
353
- }
354
-
355
- t.cancelFullScreen = function() {
356
- if (t.hasWebkitNativeFullScreen) {
357
- document.webkitCancelFullScreen();
358
- } else if (t.hasMozNativeFullScreen) {
359
- document.mozCancelFullScreen();
360
- }
361
- }
362
-
363
- }
364
-
365
-
366
- // OS X 10.5 can't do this even if it says it can :(
367
- if (t.hasSemiNativeFullScreen && ua.match(/mac os x 10_5/i)) {
368
- t.hasNativeFullScreen = false;
369
- t.hasSemiNativeFullScreen = false;
370
- }
371
-
372
- }
373
- };
374
- mejs.MediaFeatures.init();
375
-
376
-
377
- /*
378
- extension methods to <video> or <audio> object to bring it into parity with PluginMediaElement (see below)
379
- */
380
- mejs.HtmlMediaElement = {
381
- pluginType: 'native',
382
- isFullScreen: false,
383
-
384
- setCurrentTime: function (time) {
385
- this.currentTime = time;
386
- },
387
 
388
- setMuted: function (muted) {
389
- this.muted = muted;
390
- },
391
 
392
- setVolume: function (volume) {
393
- this.volume = volume;
394
- },
395
 
396
- // for parity with the plugin versions
397
- stop: function () {
398
- this.pause();
399
- },
400
 
401
- // This can be a url string
402
- // or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
403
- setSrc: function (url) {
404
-
405
- // Fix for IE9 which can't set .src when there are <source> elements. Awesome, right?
406
- var
407
- existingSources = this.getElementsByTagName('source');
408
- while (existingSources.length > 0){
409
- this.removeChild(existingSources[0]);
410
- }
411
-
412
- if (typeof url == 'string') {
413
- this.src = url;
414
- } else {
415
- var i, media;
416
 
417
- for (i=0; i<url.length; i++) {
418
- media = url[i];
419
- if (this.canPlayType(media.type)) {
420
- this.src = media.src;
421
- }
422
- }
423
  }
424
- },
425
-
426
- setVideoSize: function (width, height) {
427
- this.width = width;
428
- this.height = height;
429
  }
430
- };
431
 
432
- /*
433
- Mimics the <video/audio> element by calling Flash's External Interface or Silverlights [ScriptableMember]
434
- */
435
- mejs.PluginMediaElement = function (pluginid, pluginType, mediaUrl) {
436
- this.id = pluginid;
437
- this.pluginType = pluginType;
438
- this.src = mediaUrl;
439
- this.events = {};
440
  };
441
 
442
- // JavaScript values and ExternalInterface methods that match HTML5 video properties methods
443
- // http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/video/FLVPlayback.html
444
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html
445
- mejs.PluginMediaElement.prototype = {
446
 
447
- // special
448
- pluginElement: null,
449
- pluginType: '',
450
- isFullScreen: false,
451
 
452
- // not implemented :(
453
- playbackRate: -1,
454
- defaultPlaybackRate: -1,
455
- seekable: [],
456
- played: [],
457
 
458
- // HTML5 read-only properties
459
- paused: true,
460
- ended: false,
461
- seeking: false,
462
- duration: 0,
463
- error: null,
464
- tagName: '',
465
-
466
- // HTML5 get/set properties, but only set (updated by event handlers)
467
- muted: false,
468
- volume: 1,
469
- currentTime: 0,
470
-
471
- // HTML5 methods
472
- play: function () {
473
- if (this.pluginApi != null) {
474
- if (this.pluginType == 'youtube') {
475
- this.pluginApi.playVideo();
476
- } else {
477
- this.pluginApi.playMedia();
478
- }
479
- this.paused = false;
480
- }
481
- },
482
- load: function () {
483
- if (this.pluginApi != null) {
484
- if (this.pluginType == 'youtube') {
485
- } else {
486
- this.pluginApi.loadMedia();
487
- }
488
-
489
- this.paused = false;
490
- }
491
- },
492
- pause: function () {
493
- if (this.pluginApi != null) {
494
- if (this.pluginType == 'youtube') {
495
- this.pluginApi.pauseVideo();
496
- } else {
497
- this.pluginApi.pauseMedia();
498
- }
499
-
500
-
501
- this.paused = true;
502
- }
503
- },
504
- stop: function () {
505
- if (this.pluginApi != null) {
506
- if (this.pluginType == 'youtube') {
507
- this.pluginApi.stopVideo();
508
- } else {
509
- this.pluginApi.stopMedia();
510
- }
511
- this.paused = true;
512
- }
513
- },
514
- canPlayType: function(type) {
515
- var i,
516
- j,
517
- pluginInfo,
518
- pluginVersions = mejs.plugins[this.pluginType];
519
-
520
- for (i=0; i<pluginVersions.length; i++) {
521
- pluginInfo = pluginVersions[i];
522
-
523
- // test if user has the correct plugin version
524
- if (mejs.PluginDetector.hasPluginVersion(this.pluginType, pluginInfo.version)) {
525
-
526
- // test for plugin playback types
527
- for (j=0; j<pluginInfo.types.length; j++) {
528
- // find plugin that can play the type
529
- if (type == pluginInfo.types[j]) {
530
- return true;
531
- }
532
- }
533
- }
534
- }
535
 
536
- return false;
537
- },
538
-
539
- positionFullscreenButton: function(x,y,visibleAndAbove) {
540
- if (this.pluginApi != null && this.pluginApi.positionFullscreenButton) {
541
- this.pluginApi.positionFullscreenButton(x,y,visibleAndAbove);
542
- }
543
- },
544
-
545
- hideFullscreenButton: function() {
546
- if (this.pluginApi != null && this.pluginApi.hideFullscreenButton) {
547
- this.pluginApi.hideFullscreenButton();
548
- }
549
- },
550
-
551
-
552
- // custom methods since not all JavaScript implementations support get/set
553
-
554
- // This can be a url string
555
- // or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
556
- setSrc: function (url) {
557
- if (typeof url == 'string') {
558
- this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(url));
559
- this.src = mejs.Utility.absolutizeUrl(url);
560
- } else {
561
- var i, media;
562
 
563
- for (i=0; i<url.length; i++) {
564
- media = url[i];
565
- if (this.canPlayType(media.type)) {
566
- this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(media.src));
567
- this.src = mejs.Utility.absolutizeUrl(url);
568
- }
569
- }
570
- }
571
 
572
- },
573
- setCurrentTime: function (time) {
574
- if (this.pluginApi != null) {
575
- if (this.pluginType == 'youtube') {
576
- this.pluginApi.seekTo(time);
577
- } else {
578
- this.pluginApi.setCurrentTime(time);
579
- }
580
-
581
-
582
-
583
- this.currentTime = time;
584
- }
585
- },
586
- setVolume: function (volume) {
587
- if (this.pluginApi != null) {
588
- // same on YouTube and MEjs
589
- if (this.pluginType == 'youtube') {
590
- this.pluginApi.setVolume(volume * 100);
591
- } else {
592
- this.pluginApi.setVolume(volume);
593
- }
594
- this.volume = volume;
595
- }
596
- },
597
- setMuted: function (muted) {
598
- if (this.pluginApi != null) {
599
- if (this.pluginType == 'youtube') {
600
- if (muted) {
601
- this.pluginApi.mute();
602
- } else {
603
- this.pluginApi.unMute();
604
- }
605
- this.muted = muted;
606
- this.dispatchEvent('volumechange');
607
- } else {
608
- this.pluginApi.setMuted(muted);
609
  }
610
- this.muted = muted;
611
- }
612
- },
613
 
614
- // additional non-HTML5 methods
615
- setVideoSize: function (width, height) {
616
-
617
- //if (this.pluginType == 'flash' || this.pluginType == 'silverlight') {
618
- if ( this.pluginElement.style) {
619
- this.pluginElement.style.width = width + 'px';
620
- this.pluginElement.style.height = height + 'px';
621
- }
622
- if (this.pluginApi != null && this.pluginApi.setVideoSize) {
623
- this.pluginApi.setVideoSize(width, height);
624
- }
625
- //}
626
- },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
627
 
628
- setFullscreen: function (fullscreen) {
629
- if (this.pluginApi != null && this.pluginApi.setFullscreen) {
630
- this.pluginApi.setFullscreen(fullscreen);
631
- }
632
- },
633
-
634
- enterFullScreen: function() {
635
- if (this.pluginApi != null && this.pluginApi.setFullscreen) {
636
- this.setFullscreen(true);
637
- }
638
-
639
- },
640
-
641
- exitFullScreen: function() {
642
- if (this.pluginApi != null && this.pluginApi.setFullscreen) {
643
- this.setFullscreen(false);
644
- }
645
- },
646
 
647
- // start: fake events
648
- addEventListener: function (eventName, callback, bubble) {
649
- this.events[eventName] = this.events[eventName] || [];
650
- this.events[eventName].push(callback);
651
- },
652
- removeEventListener: function (eventName, callback) {
653
- if (!eventName) { this.events = {}; return true; }
654
- var callbacks = this.events[eventName];
655
- if (!callbacks) return true;
656
- if (!callback) { this.events[eventName] = []; return true; }
657
- for (i = 0; i < callbacks.length; i++) {
658
- if (callbacks[i] === callback) {
659
- this.events[eventName].splice(i, 1);
660
- return true;
661
  }
662
  }
663
- return false;
664
- },
665
- dispatchEvent: function (eventName) {
666
- var i,
667
- args,
668
- callbacks = this.events[eventName];
669
 
670
- if (callbacks) {
671
- args = Array.prototype.slice.call(arguments, 1);
672
- for (i = 0; i < callbacks.length; i++) {
673
- callbacks[i].apply(null, args);
 
674
  }
675
  }
676
- },
677
- // end: fake events
678
-
679
- // fake DOM attribute methods
680
- attributes: {},
681
- hasAttribute: function(name){
682
- return (name in this.attributes);
683
- },
684
- removeAttribute: function(name){
685
- delete this.attributes[name];
686
- },
687
- getAttribute: function(name){
688
- if (this.hasAttribute(name)) {
689
- return this.attributes[name];
690
  }
691
- return '';
692
- },
693
- setAttribute: function(name, value){
694
- this.attributes[name] = value;
695
- },
696
 
697
- remove: function() {
698
- mejs.Utility.removeSwf(this.pluginElement.id);
699
  }
 
 
700
  };
701
 
702
- // Handles calls from Flash/Silverlight and reports them as native <video/audio> events and properties
703
- mejs.MediaPluginBridge = {
704
 
705
- pluginMediaElements:{},
706
- htmlMediaElements:{},
 
707
 
708
- registerPluginElement: function (id, pluginMediaElement, htmlMediaElement) {
709
- this.pluginMediaElements[id] = pluginMediaElement;
710
- this.htmlMediaElements[id] = htmlMediaElement;
711
- },
712
 
713
- // when Flash/Silverlight is ready, it calls out to this method
714
- initPlugin: function (id) {
715
 
716
- var pluginMediaElement = this.pluginMediaElements[id],
717
- htmlMediaElement = this.htmlMediaElements[id];
 
718
 
719
- if (pluginMediaElement) {
720
- // find the javascript bridge
721
- switch (pluginMediaElement.pluginType) {
722
- case "flash":
723
- pluginMediaElement.pluginElement = pluginMediaElement.pluginApi = document.getElementById(id);
724
- break;
725
- case "silverlight":
726
- pluginMediaElement.pluginElement = document.getElementById(pluginMediaElement.id);
727
- pluginMediaElement.pluginApi = pluginMediaElement.pluginElement.Content.MediaElementJS;
728
- break;
729
- }
730
-
731
- if (pluginMediaElement.pluginApi != null && pluginMediaElement.success) {
732
- pluginMediaElement.success(pluginMediaElement, htmlMediaElement);
733
- }
734
- }
735
- },
736
 
737
- // receives events from Flash/Silverlight and sends them out as HTML5 media events
738
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html
739
- fireEvent: function (id, eventName, values) {
740
 
741
- var
742
- e,
743
- i,
744
- bufferedTime,
745
- pluginMediaElement = this.pluginMediaElements[id];
746
 
747
- pluginMediaElement.ended = false;
748
- pluginMediaElement.paused = true;
749
 
750
- // fake event object to mimic real HTML media event.
751
- e = {
752
- type: eventName,
753
- target: pluginMediaElement
754
- };
755
 
756
- // attach all values to element and event object
757
- for (i in values) {
758
- pluginMediaElement[i] = values[i];
759
- e[i] = values[i];
760
- }
761
 
762
- // fake the newer W3C buffered TimeRange (loaded and total have been removed)
763
- bufferedTime = values.bufferedTime || 0;
764
 
765
- e.target.buffered = e.buffered = {
766
- start: function(index) {
767
- return 0;
768
- },
769
- end: function (index) {
770
- return bufferedTime;
771
- },
772
- length: 1
773
- };
774
 
775
- pluginMediaElement.dispatchEvent(e.type, e);
776
- }
777
- };
778
 
779
- /*
780
- Default options
781
- */
782
- mejs.MediaElementDefaults = {
783
- // allows testing on HTML5, flash, silverlight
784
- // auto: attempts to detect what the browser can do
785
- // auto_plugin: prefer plugins and then attempt native HTML5
786
- // native: forces HTML5 playback
787
- // shim: disallows HTML5, will attempt either Flash or Silverlight
788
- // none: forces fallback view
789
- mode: 'auto',
790
- // remove or reorder to change plugin priority and availability
791
- plugins: ['flash','silverlight','youtube','vimeo'],
792
- // shows debug errors on screen
793
- enablePluginDebug: false,
794
- // overrides the type specified, useful for dynamic instantiation
795
- type: '',
796
- // path to Flash and Silverlight plugins
797
- pluginPath: mejs.Utility.getScriptPath(['mediaelement.js','mediaelement.min.js','mediaelement-and-player.js','mediaelement-and-player.min.js']),
798
- // name of flash file
799
- flashName: 'flashmediaelement.swf',
800
- // streamer for RTMP streaming
801
- flashStreamer: '',
802
- // turns on the smoothing filter in Flash
803
- enablePluginSmoothing: false,
804
- // name of silverlight file
805
- silverlightName: 'silverlightmediaelement.xap',
806
- // default if the <video width> is not specified
807
- defaultVideoWidth: 480,
808
- // default if the <video height> is not specified
809
- defaultVideoHeight: 270,
810
- // overrides <video width>
811
- pluginWidth: -1,
812
- // overrides <video height>
813
- pluginHeight: -1,
814
- // additional plugin variables in 'key=value' form
815
- pluginVars: [],
816
- // rate in milliseconds for Flash and Silverlight to fire the timeupdate event
817
- // larger number is less accurate, but less strain on plugin->JavaScript bridge
818
- timerRate: 250,
819
- // initial volume for player
820
- startVolume: 0.8,
821
- success: function () { },
822
- error: function () { }
823
- };
824
 
825
- /*
826
- Determines if a browser supports the <video> or <audio> element
827
- and returns either the native element or a Flash/Silverlight version that
828
- mimics HTML5 MediaElement
829
- */
830
- mejs.MediaElement = function (el, o) {
831
- return mejs.HtmlMediaElementShim.create(el,o);
832
- };
833
 
834
- mejs.HtmlMediaElementShim = {
835
-
836
- create: function(el, o) {
837
- var
838
- options = mejs.MediaElementDefaults,
839
- htmlMediaElement = (typeof(el) == 'string') ? document.getElementById(el) : el,
840
- tagName = htmlMediaElement.tagName.toLowerCase(),
841
- isMediaTag = (tagName === 'audio' || tagName === 'video'),
842
- src = (isMediaTag) ? htmlMediaElement.getAttribute('src') : htmlMediaElement.getAttribute('href'),
843
- poster = htmlMediaElement.getAttribute('poster'),
844
- autoplay = htmlMediaElement.getAttribute('autoplay'),
845
- preload = htmlMediaElement.getAttribute('preload'),
846
- controls = htmlMediaElement.getAttribute('controls'),
847
- playback,
848
- prop;
849
-
850
- // extend options
851
- for (prop in o) {
852
- options[prop] = o[prop];
853
- }
854
-
855
- // clean up attributes
856
- src = (typeof src == 'undefined' || src === null || src == '') ? null : src;
857
- poster = (typeof poster == 'undefined' || poster === null) ? '' : poster;
858
- preload = (typeof preload == 'undefined' || preload === null || preload === 'false') ? 'none' : preload;
859
- autoplay = !(typeof autoplay == 'undefined' || autoplay === null || autoplay === 'false');
860
- controls = !(typeof controls == 'undefined' || controls === null || controls === 'false');
861
-
862
- // test for HTML5 and plugin capabilities
863
- playback = this.determinePlayback(htmlMediaElement, options, mejs.MediaFeatures.supportsMediaTag, isMediaTag, src);
864
- playback.url = (playback.url !== null) ? mejs.Utility.absolutizeUrl(playback.url) : '';
865
-
866
- if (playback.method == 'native') {
867
- // second fix for android
868
- if (mejs.MediaFeatures.isBustedAndroid) {
869
- htmlMediaElement.src = playback.url;
870
- htmlMediaElement.addEventListener('click', function() {
871
- htmlMediaElement.play();
872
- }, false);
873
- }
874
-
875
- // add methods to native HTMLMediaElement
876
- return this.updateNative(playback, options, autoplay, preload);
877
- } else if (playback.method !== '') {
878
- // create plugin to mimic HTMLMediaElement
879
-
880
- return this.createPlugin( playback, options, poster, autoplay, preload, controls);
881
- } else {
882
- // boo, no HTML5, no Flash, no Silverlight.
883
- this.createErrorMessage( playback, options, poster );
884
-
885
- return this;
886
- }
887
- },
888
-
889
- determinePlayback: function(htmlMediaElement, options, supportsMediaTag, isMediaTag, src) {
890
- var
891
- mediaFiles = [],
892
- i,
893
- j,
894
- k,
895
- l,
896
- n,
897
- type,
898
- result = { method: '', url: '', htmlMediaElement: htmlMediaElement, isVideo: (htmlMediaElement.tagName.toLowerCase() != 'audio')},
899
- pluginName,
900
- pluginVersions,
901
- pluginInfo,
902
- dummy;
903
-
904
- // STEP 1: Get URL and type from <video src> or <source src>
905
-
906
- // supplied type overrides <video type> and <source type>
907
- if (typeof options.type != 'undefined' && options.type !== '') {
908
-
909
- // accept either string or array of types
910
- if (typeof options.type == 'string') {
911
- mediaFiles.push({type:options.type, url:src});
912
- } else {
913
-
914
- for (i=0; i<options.type.length; i++) {
915
- mediaFiles.push({type:options.type[i], url:src});
916
- }
917
- }
918
 
919
- // test for src attribute first
920
- } else if (src !== null) {
921
- type = this.formatType(src, htmlMediaElement.getAttribute('type'));
922
- mediaFiles.push({type:type, url:src});
923
 
924
- // then test for <source> elements
925
- } else {
926
- // test <source> types to see if they are usable
927
- for (i = 0; i < htmlMediaElement.childNodes.length; i++) {
928
- n = htmlMediaElement.childNodes[i];
929
- if (n.nodeType == 1 && n.tagName.toLowerCase() == 'source') {
930
- src = n.getAttribute('src');
931
- type = this.formatType(src, n.getAttribute('type'));
932
- mediaFiles.push({type:type, url:src});
933
- }
934
- }
935
- }
936
-
937
- // in the case of dynamicly created players
938
- // check for audio types
939
- if (!isMediaTag && mediaFiles.length > 0 && mediaFiles[0].url !== null && this.getTypeFromFile(mediaFiles[0].url).indexOf('audio') > -1) {
940
- result.isVideo = false;
941
- }
942
-
943
-
944
- // STEP 2: Test for playback method
945
-
946
- // special case for Android which sadly doesn't implement the canPlayType function (always returns '')
947
- if (mejs.MediaFeatures.isBustedAndroid) {
948
- htmlMediaElement.canPlayType = function(type) {
949
- return (type.match(/video\/(mp4|m4v)/gi) !== null) ? 'maybe' : '';
950
- };
951
- }
952
-
953
 
954
- // test for native playback first
955
- if (supportsMediaTag && (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'native')) {
956
-
957
- if (!isMediaTag) {
958
 
959
- // create a real HTML5 Media Element
960
- dummy = document.createElement( result.isVideo ? 'video' : 'audio');
961
- htmlMediaElement.parentNode.insertBefore(dummy, htmlMediaElement);
962
- htmlMediaElement.style.display = 'none';
963
-
964
- // use this one from now on
965
- result.htmlMediaElement = htmlMediaElement = dummy;
966
- }
967
-
968
- for (i=0; i<mediaFiles.length; i++) {
969
- // normal check
970
- if (htmlMediaElement.canPlayType(mediaFiles[i].type).replace(/no/, '') !== ''
971
- // special case for Mac/Safari 5.0.3 which answers '' to canPlayType('audio/mp3') but 'maybe' to canPlayType('audio/mpeg')
972
- || htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/mp3/,'mpeg')).replace(/no/, '') !== '') {
973
- result.method = 'native';
974
- result.url = mediaFiles[i].url;
975
- break;
976
- }
977
- }
978
-
979
- if (result.method === 'native') {
980
- if (result.url !== null) {
981
- htmlMediaElement.src = result.url;
982
- }
983
-
984
- // if `auto_plugin` mode, then cache the native result but try plugins.
985
- if (options.mode !== 'auto_plugin') {
986
- return result;
987
- }
988
- }
989
- }
990
 
991
- // if native playback didn't work, then test plugins
992
- if (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'shim') {
993
- for (i=0; i<mediaFiles.length; i++) {
994
- type = mediaFiles[i].type;
995
 
996
- // test all plugins in order of preference [silverlight, flash]
997
- for (j=0; j<options.plugins.length; j++) {
998
 
999
- pluginName = options.plugins[j];
1000
-
1001
- // test version of plugin (for future features)
1002
- pluginVersions = mejs.plugins[pluginName];
1003
-
1004
- for (k=0; k<pluginVersions.length; k++) {
1005
- pluginInfo = pluginVersions[k];
1006
-
1007
- // test if user has the correct plugin version
1008
-
1009
- // for youtube/vimeo
1010
- if (pluginInfo.version == null ||
1011
-
1012
- mejs.PluginDetector.hasPluginVersion(pluginName, pluginInfo.version)) {
1013
-
1014
- // test for plugin playback types
1015
- for (l=0; l<pluginInfo.types.length; l++) {
1016
- // find plugin that can play the type
1017
- if (type == pluginInfo.types[l]) {
1018
- result.method = pluginName;
1019
- result.url = mediaFiles[i].url;
1020
- return result;
1021
- }
1022
- }
1023
- }
1024
- }
1025
- }
1026
- }
1027
- }
1028
-
1029
- // at this point, being in 'auto_plugin' mode implies that we tried plugins but failed.
1030
- // if we have native support then return that.
1031
- if (options.mode === 'auto_plugin' && result.method === 'native') {
1032
- return result;
1033
- }
1034
 
1035
- // what if there's nothing to play? just grab the first available
1036
- if (result.method === '' && mediaFiles.length > 0) {
1037
- result.url = mediaFiles[0].url;
1038
- }
1039
 
1040
- return result;
1041
- },
1042
 
1043
- formatType: function(url, type) {
1044
- var ext;
1045
 
1046
- // if no type is supplied, fake it with the extension
1047
- if (url && !type) {
1048
- return this.getTypeFromFile(url);
1049
- } else {
1050
- // only return the mime part of the type in case the attribute contains the codec
1051
- // see http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element
1052
- // `video/mp4; codecs="avc1.42E01E, mp4a.40.2"` becomes `video/mp4`
1053
-
1054
- if (type && ~type.indexOf(';')) {
1055
- return type.substr(0, type.indexOf(';'));
1056
- } else {
1057
- return type;
1058
- }
1059
- }
1060
- },
1061
-
1062
- getTypeFromFile: function(url) {
1063
- var ext = url.substring(url.lastIndexOf('.') + 1);
1064
- return (/(mp4|m4v|ogg|ogv|webm|webmv|flv|wmv|mpeg|mov)/gi.test(ext) ? 'video' : 'audio') + '/' + this.getTypeFromExtension(ext);
1065
- },
1066
-
1067
- getTypeFromExtension: function(ext) {
1068
-
1069
- switch (ext) {
1070
- case 'mp4':
1071
- case 'm4v':
1072
- return 'mp4';
1073
- case 'webm':
1074
- case 'webma':
1075
- case 'webmv':
1076
- return 'webm';
1077
- case 'ogg':
1078
- case 'oga':
1079
- case 'ogv':
1080
- return 'ogg';
1081
- default:
1082
- return ext;
1083
- }
1084
- },
1085
 
1086
- createErrorMessage: function(playback, options, poster) {
1087
- var
1088
- htmlMediaElement = playback.htmlMediaElement,
1089
- errorContainer = document.createElement('div');
1090
-
1091
- errorContainer.className = 'me-cannotplay';
1092
 
1093
- try {
1094
- errorContainer.style.width = htmlMediaElement.width + 'px';
1095
- errorContainer.style.height = htmlMediaElement.height + 'px';
1096
- } catch (e) {}
 
 
1097
 
1098
- errorContainer.innerHTML = (poster !== '') ?
1099
- '<a href="' + playback.url + '"><img src="' + poster + '" width="100%" height="100%" /></a>' :
1100
- '<a href="' + playback.url + '"><span>Download File</span></a>';
1101
 
1102
- htmlMediaElement.parentNode.insertBefore(errorContainer, htmlMediaElement);
1103
- htmlMediaElement.style.display = 'none';
1104
 
1105
- options.error(htmlMediaElement);
1106
- },
1107
 
1108
- createPlugin:function(playback, options, poster, autoplay, preload, controls) {
1109
- var
1110
- htmlMediaElement = playback.htmlMediaElement,
1111
- width = 1,
1112
- height = 1,
1113
- pluginid = 'me_' + playback.method + '_' + (mejs.meIndex++),
1114
- pluginMediaElement = new mejs.PluginMediaElement(pluginid, playback.method, playback.url),
1115
- container = document.createElement('div'),
1116
- specialIEContainer,
1117
- node,
1118
- initVars;
1119
-
1120
- // copy tagName from html media element
1121
- pluginMediaElement.tagName = htmlMediaElement.tagName
1122
-
1123
- // copy attributes from html media element to plugin media element
1124
- for (var i = 0; i < htmlMediaElement.attributes.length; i++) {
1125
- var attribute = htmlMediaElement.attributes[i];
1126
- if (attribute.specified == true) {
1127
- pluginMediaElement.setAttribute(attribute.name, attribute.value);
1128
- }
1129
- }
1130
-
1131
- // check for placement inside a <p> tag (sometimes WYSIWYG editors do this)
1132
- node = htmlMediaElement.parentNode;
1133
- while (node !== null && node.tagName.toLowerCase() != 'body') {
1134
- if (node.parentNode.tagName.toLowerCase() == 'p') {
1135
- node.parentNode.parentNode.insertBefore(node, node.parentNode);
1136
- break;
1137
- }
1138
- node = node.parentNode;
1139
- }
1140
 
1141
- if (playback.isVideo) {
1142
- width = (options.videoWidth > 0) ? options.videoWidth : (htmlMediaElement.getAttribute('width') !== null) ? htmlMediaElement.getAttribute('width') : options.defaultVideoWidth;
1143
- height = (options.videoHeight > 0) ? options.videoHeight : (htmlMediaElement.getAttribute('height') !== null) ? htmlMediaElement.getAttribute('height') : options.defaultVideoHeight;
1144
-
1145
- // in case of '%' make sure it's encoded
1146
- width = mejs.Utility.encodeUrl(width);
1147
- height = mejs.Utility.encodeUrl(height);
1148
-
1149
- } else {
1150
- if (options.enablePluginDebug) {
1151
- width = 320;
1152
- height = 240;
1153
- }
1154
- }
1155
 
1156
- // register plugin
1157
- pluginMediaElement.success = options.success;
1158
- mejs.MediaPluginBridge.registerPluginElement(pluginid, pluginMediaElement, htmlMediaElement);
1159
 
1160
- // add container (must be added to DOM before inserting HTML for IE)
1161
- container.className = 'me-plugin';
1162
- container.id = pluginid + '_container';
1163
-
1164
- if (playback.isVideo) {
1165
- htmlMediaElement.parentNode.insertBefore(container, htmlMediaElement);
1166
- } else {
1167
- document.body.insertBefore(container, document.body.childNodes[0]);
1168
- }
1169
-
1170
- // flash/silverlight vars
1171
- initVars = [
1172
- 'id=' + pluginid,
1173
- 'isvideo=' + ((playback.isVideo) ? "true" : "false"),
1174
- 'autoplay=' + ((autoplay) ? "true" : "false"),
1175
- 'preload=' + preload,
1176
- 'width=' + width,
1177
- 'startvolume=' + options.startVolume,
1178
- 'timerrate=' + options.timerRate,
1179
- 'flashstreamer=' + options.flashStreamer,
1180
- 'height=' + height];
1181
-
1182
- if (playback.url !== null) {
1183
- if (playback.method == 'flash') {
1184
- initVars.push('file=' + mejs.Utility.encodeUrl(playback.url));
1185
- } else {
1186
- initVars.push('file=' + playback.url);
1187
- }
1188
- }
1189
- if (options.enablePluginDebug) {
1190
- initVars.push('debug=true');
1191
  }
1192
- if (options.enablePluginSmoothing) {
1193
- initVars.push('smoothing=true');
1194
- }
1195
- if (controls) {
1196
- initVars.push('controls=true'); // shows controls in the plugin if desired
1197
- }
1198
- if (options.pluginVars) {
1199
- initVars = initVars.concat(options.pluginVars);
1200
- }
1201
 
1202
- switch (playback.method) {
1203
- case 'silverlight':
1204
- container.innerHTML =
1205
- '<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="' + pluginid + '" name="' + pluginid + '" width="' + width + '" height="' + height + '">' +
1206
- '<param name="initParams" value="' + initVars.join(',') + '" />' +
1207
- '<param name="windowless" value="true" />' +
1208
- '<param name="background" value="black" />' +
1209
- '<param name="minRuntimeVersion" value="3.0.0.0" />' +
1210
- '<param name="autoUpgrade" value="true" />' +
1211
- '<param name="source" value="' + options.pluginPath + options.silverlightName + '" />' +
1212
- '</object>';
1213
- break;
1214
 
1215
- case 'flash':
1216
-
1217
- if (mejs.MediaFeatures.isIE) {
1218
- specialIEContainer = document.createElement('div');
1219
- container.appendChild(specialIEContainer);
1220
- specialIEContainer.outerHTML =
1221
- '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' +
1222
- 'id="' + pluginid + '" width="' + width + '" height="' + height + '">' +
1223
- '<param name="movie" value="' + options.pluginPath + options.flashName + '?x=' + (new Date()) + '" />' +
1224
- '<param name="flashvars" value="' + initVars.join('&amp;') + '" />' +
1225
- '<param name="quality" value="high" />' +
1226
- '<param name="bgcolor" value="#000000" />' +
1227
- '<param name="wmode" value="transparent" />' +
1228
- '<param name="allowScriptAccess" value="always" />' +
1229
- '<param name="allowFullScreen" value="true" />' +
1230
- '</object>';
1231
 
1232
- } else {
 
 
1233
 
1234
- container.innerHTML =
1235
- '<embed id="' + pluginid + '" name="' + pluginid + '" ' +
1236
- 'play="true" ' +
1237
- 'loop="false" ' +
1238
- 'quality="high" ' +
1239
- 'bgcolor="#000000" ' +
1240
- 'wmode="transparent" ' +
1241
- 'allowScriptAccess="always" ' +
1242
- 'allowFullScreen="true" ' +
1243
- 'type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" ' +
1244
- 'src="' + options.pluginPath + options.flashName + '" ' +
1245
- 'flashvars="' + initVars.join('&') + '" ' +
1246
- 'width="' + width + '" ' +
1247
- 'height="' + height + '"></embed>';
1248
- }
1249
  break;
1250
-
1251
- case 'youtube':
1252
-
1253
-
1254
- var
1255
- videoId = playback.url.substr(playback.url.lastIndexOf('=')+1);
1256
- youtubeSettings = {
1257
- container: container,
1258
- containerId: container.id,
1259
- pluginMediaElement: pluginMediaElement,
1260
- pluginId: pluginid,
1261
- videoId: videoId,
1262
- height: height,
1263
- width: width
1264
- };
1265
-
1266
- if (mejs.PluginDetector.hasPluginVersion('flash', [10,0,0]) ) {
1267
- mejs.YouTubeApi.createFlash(youtubeSettings);
1268
- } else {
1269
- mejs.YouTubeApi.enqueueIframe(youtubeSettings);
1270
  }
1271
-
1272
- break;
1273
-
1274
- // DEMO Code. Does NOT work.
1275
- case 'vimeo':
1276
- //console.log('vimeoid');
1277
-
1278
- pluginMediaElement.vimeoid = playback.url.substr(playback.url.lastIndexOf('/')+1);
1279
-
1280
- container.innerHTML =
1281
- '<object width="' + width + '" height="' + height + '">' +
1282
- '<param name="allowfullscreen" value="true" />' +
1283
- '<param name="allowscriptaccess" value="always" />' +
1284
- '<param name="flashvars" value="api=1" />' +
1285
- '<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=' + pluginMediaElement.vimeoid + '&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" />' +
1286
- '<embed src="//vimeo.com/moogaloop.swf?api=1&amp;clip_id=' + pluginMediaElement.vimeoid + '&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="' + width + '" height="' + height + '"></embed>' +
1287
- '</object>';
1288
-
1289
- break;
1290
- }
1291
- // hide original element
1292
- htmlMediaElement.style.display = 'none';
1293
-
1294
- // FYI: options.success will be fired by the MediaPluginBridge
1295
-
1296
- return pluginMediaElement;
1297
- },
1298
 
1299
- updateNative: function(playback, options, autoplay, preload) {
1300
-
1301
- var htmlMediaElement = playback.htmlMediaElement,
1302
- m;
1303
-
1304
-
1305
- // add methods to video object to bring it into parity with Flash Object
1306
- for (m in mejs.HtmlMediaElement) {
1307
- htmlMediaElement[m] = mejs.HtmlMediaElement[m];
1308
- }
1309
-
1310
- /*
1311
- Chrome now supports preload="none"
1312
- if (mejs.MediaFeatures.isChrome) {
1313
-
1314
- // special case to enforce preload attribute (Chrome doesn't respect this)
1315
- if (preload === 'none' && !autoplay) {
1316
-
1317
- // forces the browser to stop loading (note: fails in IE9)
1318
- htmlMediaElement.src = '';
1319
- htmlMediaElement.load();
1320
- htmlMediaElement.canceledPreload = true;
1321
-
1322
- htmlMediaElement.addEventListener('play',function() {
1323
- if (htmlMediaElement.canceledPreload) {
1324
- htmlMediaElement.src = playback.url;
1325
- htmlMediaElement.load();
1326
- htmlMediaElement.play();
1327
- htmlMediaElement.canceledPreload = false;
1328
  }
1329
- }, false);
1330
- // for some reason Chrome forgets how to autoplay sometimes.
1331
- } else if (autoplay) {
1332
- htmlMediaElement.load();
1333
- htmlMediaElement.play();
1334
- }
1335
  }
1336
- */
1337
-
1338
- // fire success code
1339
- options.success(htmlMediaElement, htmlMediaElement);
1340
-
1341
- return htmlMediaElement;
1342
  }
1343
- };
1344
 
1345
- /*
1346
- - test on IE (object vs. embed)
1347
- - determine when to use iframe (Firefox, Safari, Mobile) vs. Flash (Chrome, IE)
1348
- - fullscreen?
1349
- */
 
1350
 
1351
- // YouTube Flash and Iframe API
1352
- mejs.YouTubeApi = {
1353
- isIframeStarted: false,
1354
- isIframeLoaded: false,
1355
- loadIframeApi: function() {
1356
- if (!this.isIframeStarted) {
1357
- var tag = document.createElement('script');
1358
- tag.src = "http://www.youtube.com/player_api";
1359
- var firstScriptTag = document.getElementsByTagName('script')[0];
1360
- firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
1361
- this.isIframeStarted = true;
 
 
1362
  }
1363
- },
1364
- iframeQueue: [],
1365
- enqueueIframe: function(yt) {
1366
-
1367
- if (this.isLoaded) {
1368
- this.createIframe(yt);
1369
- } else {
1370
- this.loadIframeApi();
1371
- this.iframeQueue.push(yt);
1372
  }
1373
- },
1374
- createIframe: function(settings) {
1375
-
1376
- var
1377
- pluginMediaElement = settings.pluginMediaElement,
1378
- player = new YT.Player(settings.containerId, {
1379
- height: settings.height,
1380
- width: settings.width,
1381
- videoId: settings.videoId,
1382
- playerVars: {controls:0},
1383
- events: {
1384
- 'onReady': function() {
1385
-
1386
- // hook up iframe object to MEjs
1387
- settings.pluginMediaElement.pluginApi = player;
1388
-
1389
- // init mejs
1390
- mejs.MediaPluginBridge.initPlugin(settings.pluginId);
1391
-
1392
- // create timer
1393
- setInterval(function() {
1394
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
1395
- }, 250);
1396
- },
1397
- 'onStateChange': function(e) {
1398
-
1399
- mejs.YouTubeApi.handleStateChange(e.data, player, pluginMediaElement);
1400
-
1401
- }
 
1402
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1403
  });
1404
  },
1405
-
1406
- createEvent: function (player, pluginMediaElement, eventName) {
1407
- var obj = {
1408
- type: eventName,
1409
- target: pluginMediaElement
1410
- };
1411
 
1412
- if (player && player.getDuration) {
1413
-
1414
- // time
1415
- pluginMediaElement.currentTime = obj.currentTime = player.getCurrentTime();
1416
- pluginMediaElement.duration = obj.duration = player.getDuration();
1417
-
1418
- // state
1419
- obj.paused = pluginMediaElement.paused;
1420
- obj.ended = pluginMediaElement.ended;
1421
-
1422
- // sound
1423
- obj.muted = player.isMuted();
1424
- obj.volume = player.getVolume() / 100;
1425
-
1426
- // progress
1427
- obj.bytesTotal = player.getVideoBytesTotal();
1428
- obj.bufferedBytes = player.getVideoBytesLoaded();
1429
-
1430
- // fake the W3C buffered TimeRange
1431
- var bufferedTime = obj.bufferedBytes / obj.bytesTotal * obj.duration;
1432
-
1433
- obj.target.buffered = obj.buffered = {
1434
- start: function(index) {
1435
- return 0;
1436
- },
1437
- end: function (index) {
1438
- return bufferedTime;
1439
- },
1440
- length: 1
1441
  };
1442
-
1443
- }
1444
-
1445
- // send event up the chain
1446
- pluginMediaElement.dispatchEvent(obj.type, obj);
1447
- },
1448
-
1449
- iFrameReady: function() {
1450
-
1451
- this.isLoaded = true;
1452
- this.isIframeLoaded = true;
1453
-
1454
- while (this.iframeQueue.length > 0) {
1455
- var settings = this.iframeQueue.pop();
1456
- this.createIframe(settings);
1457
- }
1458
- },
1459
-
1460
- // FLASH!
1461
- flashPlayers: {},
1462
- createFlash: function(settings) {
1463
-
1464
- this.flashPlayers[settings.pluginId] = settings;
1465
-
1466
- /*
1467
- settings.container.innerHTML =
1468
- '<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0" ' +
1469
- 'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; ">' +
1470
- '<param name="allowScriptAccess" value="always">' +
1471
- '<param name="wmode" value="transparent">' +
1472
- '</object>';
1473
- */
1474
-
1475
- var specialIEContainer,
1476
- youtubeUrl = 'http://www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0';
1477
-
1478
- if (mejs.MediaFeatures.isIE) {
1479
-
1480
- specialIEContainer = document.createElement('div');
1481
- settings.container.appendChild(specialIEContainer);
1482
- specialIEContainer.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' +
1483
- 'id="' + settings.pluginId + '" width="' + settings.width + '" height="' + settings.height + '">' +
1484
- '<param name="movie" value="' + youtubeUrl + '" />' +
1485
- '<param name="wmode" value="transparent" />' +
1486
- '<param name="allowScriptAccess" value="always" />' +
1487
- '<param name="allowFullScreen" value="true" />' +
1488
- '</object>';
1489
- } else {
1490
- settings.container.innerHTML =
1491
- '<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="' + youtubeUrl + '" ' +
1492
- 'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; ">' +
1493
- '<param name="allowScriptAccess" value="always">' +
1494
- '<param name="wmode" value="transparent">' +
1495
- '</object>';
1496
- }
1497
-
1498
  },
1499
-
1500
- flashReady: function(id) {
1501
- var
1502
- settings = this.flashPlayers[id],
1503
- player = document.getElementById(id),
1504
- pluginMediaElement = settings.pluginMediaElement;
1505
-
1506
- // hook up and return to MediaELementPlayer.success
1507
- pluginMediaElement.pluginApi =
1508
- pluginMediaElement.pluginElement = player;
1509
- mejs.MediaPluginBridge.initPlugin(id);
1510
-
1511
- // load the youtube video
1512
- player.cueVideoById(settings.videoId);
1513
-
1514
- var callbackName = settings.containerId + '_callback'
1515
-
1516
- window[callbackName] = function(e) {
1517
- mejs.YouTubeApi.handleStateChange(e, player, pluginMediaElement);
1518
- }
1519
-
1520
- player.addEventListener('onStateChange', callbackName);
1521
-
1522
- setInterval(function() {
1523
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
1524
- }, 250);
1525
  },
1526
-
1527
- handleStateChange: function(youTubeState, player, pluginMediaElement) {
1528
- switch (youTubeState) {
1529
- case -1: // not started
1530
- pluginMediaElement.paused = true;
1531
- pluginMediaElement.ended = true;
1532
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'loadedmetadata');
1533
- //createYouTubeEvent(player, pluginMediaElement, 'loadeddata');
1534
- break;
1535
- case 0:
1536
- pluginMediaElement.paused = false;
1537
- pluginMediaElement.ended = true;
1538
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'ended');
1539
- break;
1540
- case 1:
1541
- pluginMediaElement.paused = false;
1542
- pluginMediaElement.ended = false;
1543
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'play');
1544
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'playing');
1545
- break;
1546
- case 2:
1547
- pluginMediaElement.paused = true;
1548
- pluginMediaElement.ended = false;
1549
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'pause');
1550
- break;
1551
- case 3: // buffering
1552
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'progress');
1553
- break;
1554
- case 5:
1555
- // cued?
1556
- break;
1557
-
1558
- }
1559
-
1560
- }
1561
- }
1562
- // IFRAME
1563
- function onYouTubePlayerAPIReady() {
1564
- mejs.YouTubeApi.iFrameReady();
1565
- }
1566
- // FLASH
1567
- function onYouTubePlayerReady(id) {
1568
- mejs.YouTubeApi.flashReady(id);
1569
- }
1570
 
1571
- window.mejs = mejs;
1572
- window.MediaElement = mejs.MediaElement;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1573
 
 
 
 
1574
 
1575
- /*!
1576
- * MediaElementPlayer
1577
- * http://mediaelementjs.com/
1578
- *
1579
- * Creates a controller bar for HTML5 <video> add <audio> tags
1580
- * using jQuery and MediaElement.js (HTML5 Flash/Silverlight wrapper)
1581
- *
1582
- * Copyright 2010-2012, John Dyer (http://j.hn/)
1583
- * Dual licensed under the MIT or GPL Version 2 licenses.
1584
- *
1585
- */
1586
- if (typeof jQuery != 'undefined') {
1587
- mejs.$ = jQuery;
1588
- } else if (typeof ender != 'undefined') {
1589
- mejs.$ = ender;
1590
- }
1591
- (function ($) {
1592
 
1593
- // default player values
1594
- mejs.MepDefaults = {
1595
- // url to poster (to fix iOS 3.x)
1596
- poster: '',
1597
- // default if the <video width> is not specified
1598
- defaultVideoWidth: 480,
1599
- // default if the <video height> is not specified
1600
- defaultVideoHeight: 270,
1601
- // if set, overrides <video width>
1602
- videoWidth: -1,
1603
- // if set, overrides <video height>
1604
- videoHeight: -1,
1605
- // default if the user doesn't specify
1606
- defaultAudioWidth: 400,
1607
- // default if the user doesn't specify
1608
- defaultAudioHeight: 30,
1609
-
1610
- // default amount to move back when back key is pressed
1611
- defaultSeekBackwardInterval: function(media) {
1612
- return (media.duration * 0.05);
1613
- },
1614
- // default amount to move forward when forward key is pressed
1615
- defaultSeekForwardInterval: function(media) {
1616
- return (media.duration * 0.05);
1617
- },
1618
-
1619
- // width of audio player
1620
- audioWidth: -1,
1621
- // height of audio player
1622
- audioHeight: -1,
1623
- // initial volume when the player starts (overrided by user cookie)
1624
- startVolume: 0.8,
1625
- // useful for <audio> player loops
1626
- loop: false,
1627
- // resize to media dimensions
1628
- enableAutosize: true,
1629
- // forces the hour marker (##:00:00)
1630
- alwaysShowHours: false,
1631
-
1632
- // show framecount in timecode (##:00:00:00)
1633
- showTimecodeFrameCount: false,
1634
- // used when showTimecodeFrameCount is set to true
1635
- framesPerSecond: 25,
1636
-
1637
- // automatically calculate the width of the progress bar based on the sizes of other elements
1638
- autosizeProgress : true,
1639
- // Hide controls when playing and mouse is not over the video
1640
- alwaysShowControls: false,
1641
- // force iPad's native controls
1642
- iPadUseNativeControls: false,
1643
- // force iPhone's native controls
1644
- iPhoneUseNativeControls: false,
1645
- // force Android's native controls
1646
- AndroidUseNativeControls: false,
1647
- // features to show
1648
- features: ['playpause','current','progress','duration','tracks','volume','fullscreen'],
1649
- // only for dynamic
1650
- isVideo: true,
1651
-
1652
- // turns keyboard support on and off for this instance
1653
- enableKeyboard: true,
1654
-
1655
- // whenthis player starts, it will pause other players
1656
- pauseOtherPlayers: true,
1657
-
1658
- // array of keyboard actions such as play pause
1659
- keyActions: [
1660
- {
1661
- keys: [
1662
- 32, // SPACE
1663
- 179 // GOOGLE play/pause button
1664
- ],
1665
- action: function(player, media) {
1666
- if (media.paused || media.ended) {
1667
- media.play();
1668
- } else {
1669
- media.pause();
1670
- }
1671
- }
1672
- },
1673
- {
1674
- keys: [38], // UP
1675
- action: function(player, media) {
1676
- var newVolume = Math.min(media.volume + 0.1, 1);
1677
- media.setVolume(newVolume);
1678
- }
1679
- },
1680
- {
1681
- keys: [40], // DOWN
1682
- action: function(player, media) {
1683
- var newVolume = Math.max(media.volume - 0.1, 0);
1684
- media.setVolume(newVolume);
1685
- }
1686
- },
1687
- {
1688
- keys: [
1689
- 37, // LEFT
1690
- 227 // Google TV rewind
1691
- ],
1692
- action: function(player, media) {
1693
- if (!isNaN(media.duration) && media.duration > 0) {
1694
- if (player.isVideo) {
1695
- player.showControls();
1696
- player.startControlsTimer();
1697
- }
1698
-
1699
- // 5%
1700
- var newTime = Math.max(media.currentTime - player.options.defaultSeekBackwardInterval(media), 0);
1701
- media.setCurrentTime(newTime);
1702
- }
1703
- }
1704
- },
1705
- {
1706
- keys: [
1707
- 39, // RIGHT
1708
- 228 // Google TV forward
1709
- ],
1710
- action: function(player, media) {
1711
- if (!isNaN(media.duration) && media.duration > 0) {
1712
- if (player.isVideo) {
1713
- player.showControls();
1714
- player.startControlsTimer();
1715
- }
1716
-
1717
- // 5%
1718
- var newTime = Math.min(media.currentTime + player.options.defaultSeekForwardInterval(media), media.duration);
1719
- media.setCurrentTime(newTime);
1720
- }
1721
- }
1722
- },
1723
- {
1724
- keys: [70], // f
1725
- action: function(player, media) {
1726
- if (typeof player.enterFullScreen != 'undefined') {
1727
- if (player.isFullScreen) {
1728
- player.exitFullScreen();
1729
- } else {
1730
- player.enterFullScreen();
1731
  }
 
1732
  }
 
1733
  }
1734
- }
1735
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1736
  };
1737
 
1738
- mejs.mepIndex = 0;
1739
-
1740
- mejs.players = [];
1741
 
1742
- // wraps a MediaElement object in player controls
1743
- mejs.MediaElementPlayer = function(node, o) {
1744
- // enforce object, even without "new" (via John Resig)
1745
- if ( !(this instanceof mejs.MediaElementPlayer) ) {
1746
- return new mejs.MediaElementPlayer(node, o);
1747
- }
1748
 
1749
- var t = this;
1750
-
1751
- // these will be reset after the MediaElement.success fires
1752
- t.$media = t.$node = $(node);
1753
- t.node = t.media = t.$media[0];
1754
-
1755
- // check for existing player
1756
- if (typeof t.node.player != 'undefined') {
1757
- return t.node.player;
1758
- } else {
1759
- // attach player to DOM node for reference
1760
- t.node.player = t;
 
1761
  }
1762
-
1763
-
1764
- // try to get options from data-mejsoptions
1765
- if (typeof o == 'undefined') {
1766
- o = t.$node.data('mejsoptions');
1767
- }
1768
-
1769
- // extend default options
1770
- t.options = $.extend({},mejs.MepDefaults,o);
1771
-
1772
- // add to player array (for focus events)
1773
- mejs.players.push(t);
1774
-
1775
- // start up
1776
- t.init();
1777
 
1778
- return t;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1779
  };
1780
 
1781
- // actual player
1782
- mejs.MediaElementPlayer.prototype = {
1783
-
1784
- hasFocus: false,
1785
-
1786
- controlsAreVisible: true,
1787
-
1788
- init: function() {
1789
-
1790
- var
1791
- t = this,
1792
- mf = mejs.MediaFeatures,
1793
- // options for MediaElement (shim)
1794
- meOptions = $.extend(true, {}, t.options, {
1795
- success: function(media, domNode) { t.meReady(media, domNode); },
1796
- error: function(e) { t.handleError(e);}
1797
- }),
1798
- tagName = t.media.tagName.toLowerCase();
1799
-
1800
- t.isDynamic = (tagName !== 'audio' && tagName !== 'video');
1801
-
1802
- if (t.isDynamic) {
1803
- // get video from src or href?
1804
- t.isVideo = t.options.isVideo;
1805
- } else {
1806
- t.isVideo = (tagName !== 'audio' && t.options.isVideo);
1807
  }
1808
-
1809
- // use native controls in iPad, iPhone, and Android
1810
- if ((mf.isiPad && t.options.iPadUseNativeControls) || (mf.isiPhone && t.options.iPhoneUseNativeControls)) {
1811
-
1812
- // add controls and stop
1813
- t.$media.attr('controls', 'controls');
1814
 
1815
- // attempt to fix iOS 3 bug
1816
- //t.$media.removeAttr('poster');
1817
- // no Issue found on iOS3 -ttroxell
 
 
 
 
 
1818
 
1819
- // override Apple's autoplay override for iPads
1820
- if (mf.isiPad && t.media.getAttribute('autoplay') !== null) {
1821
- t.media.load();
1822
- t.media.play();
1823
- }
1824
-
1825
- } else if (mf.isAndroid && t.AndroidUseNativeControls) {
1826
-
1827
- // leave default player
1828
 
1829
- } else {
 
 
 
 
 
 
 
 
 
 
 
 
 
1830
 
1831
- // DESKTOP: use MediaElementPlayer controls
1832
-
1833
- // remove native controls
1834
- t.$media.removeAttr('controls');
1835
-
1836
- // unique ID
1837
- t.id = 'mep_' + mejs.mepIndex++;
1838
-
1839
- // build container
1840
- t.container =
1841
- $('<div id="' + t.id + '" class="mejs-container">'+
1842
- '<div class="mejs-inner">'+
1843
- '<div class="mejs-mediaelement"></div>'+
1844
- '<div class="mejs-layers"></div>'+
1845
- '<div class="mejs-controls"></div>'+
1846
- '<div class="mejs-clear"></div>'+
1847
- '</div>' +
1848
- '</div>')
1849
- .addClass(t.$media[0].className)
1850
- .insertBefore(t.$media);
1851
-
1852
- // add classes for user and content
1853
- t.container.addClass(
1854
- (mf.isAndroid ? 'mejs-android ' : '') +
1855
- (mf.isiOS ? 'mejs-ios ' : '') +
1856
- (mf.isiPad ? 'mejs-ipad ' : '') +
1857
- (mf.isiPhone ? 'mejs-iphone ' : '') +
1858
- (t.isVideo ? 'mejs-video ' : 'mejs-audio ')
1859
- );
1860
-
1861
-
1862
- // move the <video/video> tag into the right spot
1863
- if (mf.isiOS) {
1864
-
1865
- // sadly, you can't move nodes in iOS, so we have to destroy and recreate it!
1866
- var $newMedia = t.$media.clone();
1867
-
1868
- t.container.find('.mejs-mediaelement').append($newMedia);
1869
-
1870
- t.$media.remove();
1871
- t.$node = t.$media = $newMedia;
1872
- t.node = t.media = $newMedia[0]
1873
-
1874
- } else {
1875
-
1876
- // normal way of moving it into place (doesn't work on iOS)
1877
- t.container.find('.mejs-mediaelement').append(t.$media);
1878
- }
1879
-
1880
- // find parts
1881
- t.controls = t.container.find('.mejs-controls');
1882
- t.layers = t.container.find('.mejs-layers');
1883
 
1884
- // determine the size
1885
-
1886
- /* size priority:
1887
- (1) videoWidth (forced),
1888
- (2) style="width;height;"
1889
- (3) width attribute,
1890
- (4) defaultVideoWidth (for unspecified cases)
1891
- */
1892
-
1893
- var tagType = (t.isVideo ? 'video' : 'audio'),
1894
- capsTagName = tagType.substring(0,1).toUpperCase() + tagType.substring(1);
1895
-
1896
-
1897
- if (t.options[tagType + 'Width'] > 0 || t.options[tagType + 'Width'].toString().indexOf('%') > -1) {
1898
- t.width = t.options[tagType + 'Width'];
1899
- } else if (t.media.style.width !== '' && t.media.style.width !== null) {
1900
- t.width = t.media.style.width;
1901
- } else if (t.media.getAttribute('width') !== null) {
1902
- t.width = t.$media.attr('width');
1903
- } else {
1904
- t.width = t.options['default' + capsTagName + 'Width'];
1905
- }
1906
-
1907
- if (t.options[tagType + 'Height'] > 0 || t.options[tagType + 'Height'].toString().indexOf('%') > -1) {
1908
- t.height = t.options[tagType + 'Height'];
1909
- } else if (t.media.style.height !== '' && t.media.style.height !== null) {
1910
- t.height = t.media.style.height;
1911
- } else if (t.$media[0].getAttribute('height') !== null) {
1912
- t.height = t.$media.attr('height');
1913
- } else {
1914
- t.height = t.options['default' + capsTagName + 'Height'];
1915
- }
1916
 
1917
- // set the size, while we wait for the plugins to load below
1918
- t.setPlayerSize(t.width, t.height);
1919
-
1920
- // create MediaElementShim
1921
- meOptions.pluginWidth = t.height;
1922
- meOptions.pluginHeight = t.width;
1923
- }
1924
-
1925
-
1926
 
1927
- // create MediaElement shim
1928
- mejs.MediaElement(t.$media[0], meOptions);
1929
- },
1930
-
1931
- showControls: function(doAnimation) {
1932
- var t = this;
1933
-
1934
- doAnimation = typeof doAnimation == 'undefined' || doAnimation;
1935
-
1936
- if (t.controlsAreVisible)
1937
- return;
1938
-
1939
- if (doAnimation) {
1940
- t.controls
1941
- .css('visibility','visible')
1942
- .stop(true, true).fadeIn(200, function() {t.controlsAreVisible = true;});
1943
-
1944
- // any additional controls people might add and want to hide
1945
- t.container.find('.mejs-control')
1946
- .css('visibility','visible')
1947
- .stop(true, true).fadeIn(200, function() {t.controlsAreVisible = true;});
1948
-
1949
- } else {
1950
- t.controls
1951
- .css('visibility','visible')
1952
- .css('display','block');
1953
-
1954
- // any additional controls people might add and want to hide
1955
- t.container.find('.mejs-control')
1956
- .css('visibility','visible')
1957
- .css('display','block');
1958
-
1959
- t.controlsAreVisible = true;
1960
- }
1961
-
1962
- t.setControlsSize();
1963
-
1964
- },
1965
 
1966
- hideControls: function(doAnimation) {
1967
- var t = this;
1968
-
1969
- doAnimation = typeof doAnimation == 'undefined' || doAnimation;
1970
-
1971
- if (!t.controlsAreVisible)
1972
- return;
1973
-
1974
- if (doAnimation) {
1975
- // fade out main controls
1976
- t.controls.stop(true, true).fadeOut(200, function() {
1977
- $(this)
1978
- .css('visibility','hidden')
1979
- .css('display','block');
1980
-
1981
- t.controlsAreVisible = false;
1982
- });
1983
-
1984
- // any additional controls people might add and want to hide
1985
- t.container.find('.mejs-control').stop(true, true).fadeOut(200, function() {
1986
- $(this)
1987
- .css('visibility','hidden')
1988
- .css('display','block');
1989
- });
1990
- } else {
1991
-
1992
- // hide main controls
1993
- t.controls
1994
- .css('visibility','hidden')
1995
- .css('display','block');
1996
-
1997
- // hide others
1998
- t.container.find('.mejs-control')
1999
- .css('visibility','hidden')
2000
- .css('display','block');
2001
-
2002
- t.controlsAreVisible = false;
2003
- }
2004
- },
2005
 
2006
- controlsTimer: null,
 
 
2007
 
2008
- startControlsTimer: function(timeout) {
2009
 
2010
- var t = this;
2011
-
2012
- timeout = typeof timeout != 'undefined' ? timeout : 1500;
2013
 
2014
- t.killControlsTimer('start');
2015
 
2016
- t.controlsTimer = setTimeout(function() {
2017
- //console.log('timer fired');
2018
- t.hideControls();
2019
- t.killControlsTimer('hide');
2020
- }, timeout);
2021
- },
2022
 
2023
- killControlsTimer: function(src) {
2024
 
2025
- var t = this;
 
 
2026
 
2027
- if (t.controlsTimer !== null) {
2028
- clearTimeout(t.controlsTimer);
2029
- delete t.controlsTimer;
2030
- t.controlsTimer = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2031
  }
2032
- },
2033
-
2034
- controlsEnabled: true,
2035
-
2036
- disableControls: function() {
2037
- var t= this;
2038
-
2039
- t.killControlsTimer();
2040
- t.hideControls(false);
2041
- this.controlsEnabled = false;
2042
- },
2043
-
2044
- enableControls: function() {
2045
- var t= this;
2046
-
2047
- t.showControls(false);
2048
-
2049
- t.controlsEnabled = true;
2050
- },
2051
-
2052
 
2053
- // Sets up all controls and events
2054
- meReady: function(media, domNode) {
2055
-
2056
-
2057
- var t = this,
2058
- mf = mejs.MediaFeatures,
2059
- autoplayAttr = domNode.getAttribute('autoplay'),
2060
- autoplay = !(typeof autoplayAttr == 'undefined' || autoplayAttr === null || autoplayAttr === 'false'),
2061
- featureIndex,
2062
- feature;
2063
-
2064
- // make sure it can't create itself again if a plugin reloads
2065
- if (t.created)
2066
- return;
2067
- else
2068
- t.created = true;
2069
 
2070
- t.media = media;
2071
- t.domNode = domNode;
2072
-
2073
- if (!(mf.isAndroid && t.options.AndroidUseNativeControls) && !(mf.isiPad && t.options.iPadUseNativeControls) && !(mf.isiPhone && t.options.iPhoneUseNativeControls)) {
2074
-
2075
- // two built in features
2076
- t.buildposter(t, t.controls, t.layers, t.media);
2077
- t.buildkeyboard(t, t.controls, t.layers, t.media);
2078
- t.buildoverlays(t, t.controls, t.layers, t.media);
2079
-
2080
- // grab for use by features
2081
- t.findTracks();
2082
-
2083
- // add user-defined features/controls
2084
- for (featureIndex in t.options.features) {
2085
- feature = t.options.features[featureIndex];
2086
- if (t['build' + feature]) {
2087
- try {
2088
- t['build' + feature](t, t.controls, t.layers, t.media);
2089
- } catch (e) {
2090
- // TODO: report control error
2091
- //throw e;
2092
- //console.log('error building ' + feature);
2093
- //console.log(e);
2094
  }
2095
  }
2096
- }
 
2097
 
2098
- t.container.trigger('controlsready');
2099
-
2100
- // reset all layers and controls
2101
- t.setPlayerSize(t.width, t.height);
2102
- t.setControlsSize();
2103
-
2104
 
2105
- // controls fade
2106
- if (t.isVideo) {
2107
-
2108
- if (mejs.MediaFeatures.hasTouch) {
2109
-
2110
- // for touch devices (iOS, Android)
2111
- // show/hide without animation on touch
2112
-
2113
- t.$media.bind('touchstart', function() {
2114
-
2115
-
2116
- // toggle controls
2117
- if (t.controlsAreVisible) {
2118
- t.hideControls(false);
2119
- } else {
2120
- if (t.controlsEnabled) {
2121
- t.showControls(false);
2122
- }
2123
- }
2124
- });
2125
-
2126
- } else {
2127
- // click controls
2128
- var clickElement = (t.media.pluginType == 'native') ? t.$media : $(t.media.pluginElement);
2129
-
2130
- // click to play/pause
2131
- clickElement.click(function() {
2132
- if (media.paused) {
2133
- media.play();
2134
- } else {
2135
- media.pause();
2136
- }
2137
- });
2138
-
2139
-
2140
- // show/hide controls
2141
- t.container
2142
- .bind('mouseenter mouseover', function () {
2143
- if (t.controlsEnabled) {
2144
- if (!t.options.alwaysShowControls) {
2145
- t.killControlsTimer('enter');
2146
- t.showControls();
2147
- t.startControlsTimer(2500);
2148
- }
2149
- }
2150
- })
2151
- .bind('mousemove', function() {
2152
- if (t.controlsEnabled) {
2153
- if (!t.controlsAreVisible) {
2154
- t.showControls();
2155
- }
2156
- //t.killControlsTimer('move');
2157
- if (!t.options.alwaysShowControls) {
2158
- t.startControlsTimer(2500);
2159
- }
2160
- }
2161
- })
2162
- .bind('mouseleave', function () {
2163
- if (t.controlsEnabled) {
2164
- if (!t.media.paused && !t.options.alwaysShowControls) {
2165
- t.startControlsTimer(1000);
2166
- }
2167
- }
2168
- });
2169
- }
2170
-
2171
- // check for autoplay
2172
- if (autoplay && !t.options.alwaysShowControls) {
2173
- t.hideControls();
2174
- }
2175
 
2176
- // resizer
2177
- if (t.options.enableAutosize) {
2178
- t.media.addEventListener('loadedmetadata', function(e) {
2179
- // if the <video height> was not set and the options.videoHeight was not set
2180
- // then resize to the real dimensions
2181
- if (t.options.videoHeight <= 0 && t.domNode.getAttribute('height') === null && !isNaN(e.target.videoHeight)) {
2182
- t.setPlayerSize(e.target.videoWidth, e.target.videoHeight);
2183
- t.setControlsSize();
2184
- t.media.setVideoSize(e.target.videoWidth, e.target.videoHeight);
2185
- }
2186
- }, false);
2187
  }
2188
  }
2189
-
2190
- // EVENTS
2191
 
2192
- // FOCUS: when a video starts playing, it takes focus from other players (possibily pausing them)
2193
- media.addEventListener('play', function() {
2194
-
2195
- // go through all other players
2196
- for (var i=0, il=mejs.players.length; i<il; i++) {
2197
- var p = mejs.players[i];
2198
- if (p.id != t.id && t.options.pauseOtherPlayers && !p.paused && !p.ended) {
2199
- p.pause();
2200
- }
2201
- p.hasFocus = false;
2202
- }
2203
-
2204
- t.hasFocus = true;
2205
- },false);
2206
-
2207
 
2208
- // ended for all
2209
- t.media.addEventListener('ended', function (e) {
2210
- try{
2211
- t.media.setCurrentTime(0);
2212
- } catch (exp) {
2213
-
2214
- }
2215
- t.media.pause();
2216
-
2217
- if (t.setProgressRail)
2218
- t.setProgressRail();
2219
- if (t.setCurrentRail)
2220
- t.setCurrentRail();
2221
 
2222
- if (t.options.loop) {
2223
- t.media.play();
2224
- } else if (!t.options.alwaysShowControls && t.controlsEnabled) {
2225
- t.showControls();
2226
- }
2227
- }, false);
2228
-
2229
- // resize on the first play
2230
- t.media.addEventListener('loadedmetadata', function(e) {
2231
- if (t.updateDuration) {
2232
- t.updateDuration();
2233
- }
2234
- if (t.updateCurrent) {
2235
- t.updateCurrent();
2236
- }
2237
-
2238
- if (!t.isFullScreen) {
2239
- t.setPlayerSize(t.width, t.height);
2240
- t.setControlsSize();
2241
- }
2242
- }, false);
2243
 
 
 
2244
 
2245
- // webkit has trouble doing this without a delay
2246
- setTimeout(function () {
2247
- t.setPlayerSize(t.width, t.height);
2248
- t.setControlsSize();
2249
- }, 50);
2250
-
2251
- // adjust controls whenever window sizes (used to be in fullscreen only)
2252
- $(window).resize(function() {
2253
-
2254
- // don't resize for fullscreen mode
2255
- if ( !(t.isFullScreen || (mejs.MediaFeatures.hasTrueNativeFullScreen && document.webkitIsFullScreen)) ) {
2256
- t.setPlayerSize(t.width, t.height);
2257
- }
2258
-
2259
- // always adjust controls
2260
- t.setControlsSize();
2261
- });
2262
 
2263
- // TEMP: needs to be moved somewhere else
2264
- if (t.media.pluginType == 'youtube') {
2265
- t.container.find('.mejs-overlay-play').hide();
2266
- }
2267
- }
2268
-
2269
- // force autoplay for HTML5
2270
- if (autoplay && media.pluginType == 'native') {
2271
- media.load();
2272
- media.play();
2273
- }
2274
 
 
 
2275
 
2276
- if (t.options.success) {
2277
-
2278
- if (typeof t.options.success == 'string') {
2279
- window[t.options.success](t.media, t.domNode, t);
2280
- } else {
2281
- t.options.success(t.media, t.domNode, t);
2282
- }
2283
- }
2284
- },
2285
 
2286
- handleError: function(e) {
2287
- var t = this;
2288
-
2289
- t.controls.hide();
2290
-
2291
- // Tell user that the file cannot be played
2292
- if (t.options.error) {
2293
- t.options.error(e);
2294
- }
2295
- },
2296
 
2297
- setPlayerSize: function(width,height) {
2298
- var t = this;
2299
 
2300
- if (typeof width != 'undefined')
2301
- t.width = width;
2302
-
2303
- if (typeof height != 'undefined')
2304
- t.height = height;
2305
 
2306
- // detect 100% mode
2307
- if (t.height.toString().indexOf('%') > 0 || t.$node.css('max-width') === '100%') {
2308
-
2309
- // do we have the native dimensions yet?
2310
- var
2311
- nativeWidth = (t.media.videoWidth && t.media.videoWidth > 0) ? t.media.videoWidth : t.options.defaultVideoWidth,
2312
- nativeHeight = (t.media.videoHeight && t.media.videoHeight > 0) ? t.media.videoHeight : t.options.defaultVideoHeight,
2313
- parentWidth = t.container.parent().width(),
2314
- newHeight = parseInt(parentWidth * nativeHeight/nativeWidth, 10);
2315
-
2316
- if (t.container.parent()[0].tagName.toLowerCase() === 'body') { // && t.container.siblings().count == 0) {
2317
- parentWidth = $(window).width();
2318
- newHeight = $(window).height();
2319
- }
2320
-
2321
- if ( newHeight != 0 ) {
2322
- // set outer container size
2323
- t.container
2324
- .width(parentWidth)
2325
- .height(newHeight);
2326
-
2327
- // set native <video>
2328
- t.$media
2329
- .width('100%')
2330
- .height('100%');
2331
-
2332
- // set shims
2333
- t.container.find('object, embed, iframe')
2334
- .width('100%')
2335
- .height('100%');
2336
-
2337
- // if shim is ready, send the size to the embeded plugin
2338
- if (t.isVideo) {
2339
- if (t.media.setVideoSize) {
2340
- t.media.setVideoSize(parentWidth, newHeight);
2341
- }
2342
- }
2343
-
2344
- // set the layers
2345
- t.layers.children('.mejs-layer')
2346
- .width('100%')
2347
- .height('100%');
2348
- }
2349
-
2350
-
2351
- } else {
2352
 
2353
- t.container
2354
- .width(t.width)
2355
- .height(t.height);
2356
-
2357
- t.layers.children('.mejs-layer')
2358
- .width(t.width)
2359
- .height(t.height);
2360
-
2361
- }
2362
- },
2363
 
2364
- setControlsSize: function() {
2365
- var t = this,
2366
- usedWidth = 0,
2367
- railWidth = 0,
2368
- rail = t.controls.find('.mejs-time-rail'),
2369
- total = t.controls.find('.mejs-time-total'),
2370
- current = t.controls.find('.mejs-time-current'),
2371
- loaded = t.controls.find('.mejs-time-loaded'),
2372
- others = rail.siblings();
2373
-
2374
-
2375
- // allow the size to come from custom CSS
2376
- if (t.options && !t.options.autosizeProgress) {
2377
- // Also, frontends devs can be more flexible
2378
- // due the opportunity of absolute positioning.
2379
- railWidth = parseInt(rail.css('width'));
2380
- }
2381
-
2382
- // attempt to autosize
2383
- if (railWidth === 0 || !railWidth) {
2384
-
2385
- // find the size of all the other controls besides the rail
2386
- others.each(function() {
2387
- if ($(this).css('position') != 'absolute') {
2388
- usedWidth += $(this).outerWidth(true);
2389
- }
2390
- });
2391
-
2392
- // fit the rail into the remaining space
2393
- railWidth = t.controls.width() - usedWidth - (rail.outerWidth(true) - rail.width());
2394
- }
2395
-
2396
- // outer area
2397
- rail.width(railWidth);
2398
- // dark space
2399
- total.width(railWidth - (total.outerWidth(true) - total.width()));
2400
-
2401
- if (t.setProgressRail)
2402
- t.setProgressRail();
2403
- if (t.setCurrentRail)
2404
- t.setCurrentRail();
2405
- },
2406
 
 
2407
 
2408
- buildposter: function(player, controls, layers, media) {
2409
- var t = this,
2410
- poster =
2411
- $('<div class="mejs-poster mejs-layer">' +
2412
- '</div>')
2413
- .appendTo(layers),
2414
- posterUrl = player.$media.attr('poster');
2415
 
2416
- // prioriy goes to option (this is useful if you need to support iOS 3.x (iOS completely fails with poster)
2417
- if (player.options.poster !== '') {
2418
- posterUrl = player.options.poster;
2419
- }
2420
-
2421
- // second, try the real poster
2422
- if (posterUrl !== '' && posterUrl != null) {
2423
- t.setPoster(posterUrl);
2424
- } else {
2425
- poster.hide();
2426
- }
2427
 
2428
- media.addEventListener('play',function() {
2429
- poster.hide();
2430
- }, false);
2431
- },
2432
-
2433
- setPoster: function(url) {
2434
- var t = this,
2435
- posterDiv = t.container.find('.mejs-poster'),
2436
- posterImg = posterDiv.find('img');
2437
-
2438
- if (posterImg.length == 0) {
2439
- posterImg = $('<img width="100%" height="100%" />').appendTo(posterDiv);
2440
- }
2441
-
2442
- posterImg.attr('src', url);
2443
- },
2444
 
2445
- buildoverlays: function(player, controls, layers, media) {
2446
- if (!player.isVideo)
2447
- return;
2448
 
2449
- var
2450
- loading =
2451
- $('<div class="mejs-overlay mejs-layer">'+
2452
- '<div class="mejs-overlay-loading"><span></span></div>'+
2453
- '</div>')
2454
- .hide() // start out hidden
2455
- .appendTo(layers),
2456
- error =
2457
- $('<div class="mejs-overlay mejs-layer">'+
2458
- '<div class="mejs-overlay-error"></div>'+
2459
- '</div>')
2460
- .hide() // start out hidden
2461
- .appendTo(layers),
2462
- // this needs to come last so it's on top
2463
- bigPlay =
2464
- $('<div class="mejs-overlay mejs-layer mejs-overlay-play">'+
2465
- '<div class="mejs-overlay-button"></div>'+
2466
- '</div>')
2467
- .appendTo(layers)
2468
- .click(function() {
2469
- if (media.paused) {
2470
- media.play();
2471
- } else {
2472
- media.pause();
2473
- }
2474
- });
2475
-
2476
- /*
2477
- if (mejs.MediaFeatures.isiOS || mejs.MediaFeatures.isAndroid) {
2478
- bigPlay.remove();
2479
- loading.remove();
2480
- }
2481
- */
2482
-
2483
-
2484
- // show/hide big play button
2485
- media.addEventListener('play',function() {
2486
- bigPlay.hide();
2487
- loading.hide();
2488
- controls.find('.mejs-time-buffering').hide();
2489
- error.hide();
2490
- }, false);
2491
-
2492
- media.addEventListener('playing', function() {
2493
- bigPlay.hide();
2494
- loading.hide();
2495
- controls.find('.mejs-time-buffering').hide();
2496
- error.hide();
2497
- }, false);
2498
-
2499
- media.addEventListener('seeking', function() {
2500
- loading.show();
2501
- controls.find('.mejs-time-buffering').show();
2502
- }, false);
2503
-
2504
- media.addEventListener('seeked', function() {
2505
- loading.hide();
2506
- controls.find('.mejs-time-buffering').hide();
2507
- }, false);
2508
-
2509
- media.addEventListener('pause',function() {
2510
- if (!mejs.MediaFeatures.isiPhone) {
2511
- bigPlay.show();
2512
- }
2513
- }, false);
2514
-
2515
- media.addEventListener('waiting', function() {
2516
- loading.show();
2517
- controls.find('.mejs-time-buffering').show();
2518
- }, false);
2519
-
2520
-
2521
- // show/hide loading
2522
- media.addEventListener('loadeddata',function() {
2523
- // for some reason Chrome is firing this event
2524
- //if (mejs.MediaFeatures.isChrome && media.getAttribute && media.getAttribute('preload') === 'none')
2525
- // return;
2526
-
2527
- loading.show();
2528
- controls.find('.mejs-time-buffering').show();
2529
- }, false);
2530
- media.addEventListener('canplay',function() {
2531
- loading.hide();
2532
- controls.find('.mejs-time-buffering').hide();
2533
- }, false);
2534
-
2535
- // error handling
2536
- media.addEventListener('error',function() {
2537
- loading.hide();
2538
- controls.find('.mejs-time-buffering').hide();
2539
- error.show();
2540
- error.find('mejs-overlay-error').html("Error loading this resource");
2541
- }, false);
2542
- },
2543
-
2544
- buildkeyboard: function(player, controls, layers, media) {
2545
 
2546
- var t = this;
2547
-
2548
- // listen for key presses
2549
- $(document).keydown(function(e) {
2550
-
2551
- if (player.hasFocus && player.options.enableKeyboard) {
2552
-
2553
- // find a matching key
2554
- for (var i=0, il=player.options.keyActions.length; i<il; i++) {
2555
- var keyAction = player.options.keyActions[i];
2556
-
2557
- for (var j=0, jl=keyAction.keys.length; j<jl; j++) {
2558
- if (e.keyCode == keyAction.keys[j]) {
2559
- e.preventDefault();
2560
- keyAction.action(player, media, e.keyCode);
2561
- return false;
2562
- }
2563
- }
2564
- }
2565
- }
2566
-
2567
- return true;
2568
- });
2569
-
2570
- // check if someone clicked outside a player region, then kill its focus
2571
- $(document).click(function(event) {
2572
- if ($(event.target).closest('.mejs-container').length == 0) {
2573
- player.hasFocus = false;
2574
- }
2575
- });
2576
-
2577
- },
2578
 
2579
- findTracks: function() {
2580
- var t = this,
2581
- tracktags = t.$media.find('track');
2582
 
2583
- // store for use by plugins
2584
- t.tracks = [];
2585
- tracktags.each(function(index, track) {
2586
-
2587
- track = $(track);
2588
-
2589
- t.tracks.push({
2590
- srclang: track.attr('srclang').toLowerCase(),
2591
- src: track.attr('src'),
2592
- kind: track.attr('kind'),
2593
- label: track.attr('label') || '',
2594
- entries: [],
2595
- isLoaded: false
2596
- });
2597
- });
2598
- },
2599
- changeSkin: function(className) {
2600
- this.container[0].className = 'mejs-container ' + className;
2601
- this.setPlayerSize(this.width, this.height);
2602
- this.setControlsSize();
2603
- },
2604
- play: function() {
2605
- this.media.play();
2606
- },
2607
- pause: function() {
2608
- this.media.pause();
2609
- },
2610
- load: function() {
2611
- this.media.load();
2612
- },
2613
- setMuted: function(muted) {
2614
- this.media.setMuted(muted);
2615
- },
2616
- setCurrentTime: function(time) {
2617
- this.media.setCurrentTime(time);
2618
- },
2619
- getCurrentTime: function() {
2620
- return this.media.currentTime;
2621
- },
2622
- setVolume: function(volume) {
2623
- this.media.setVolume(volume);
2624
- },
2625
- getVolume: function() {
2626
- return this.media.volume;
2627
- },
2628
- setSrc: function(src) {
2629
- this.media.setSrc(src);
2630
- },
2631
- remove: function() {
2632
- var t = this;
2633
-
2634
- if (t.media.pluginType === 'flash') {
2635
- t.media.remove();
2636
- } else if (t.media.pluginType === 'native') {
2637
- t.$media.prop('controls', true);
2638
- }
2639
-
2640
- // grab video and put it back in place
2641
- if (!t.isDynamic) {
2642
- t.$node.insertBefore(t.container)
2643
- }
2644
-
2645
- t.container.remove();
2646
- }
2647
- };
2648
 
2649
- // turn into jQuery plugin
2650
- if (typeof jQuery != 'undefined') {
2651
- jQuery.fn.mediaelementplayer = function (options) {
2652
- return this.each(function () {
2653
- new mejs.MediaElementPlayer(this, options);
2654
- });
2655
- };
2656
- }
2657
-
2658
- $(document).ready(function() {
2659
- // auto enable using JSON attribute
2660
- $('.mejs-player').mediaelementplayer();
2661
- });
2662
-
2663
- // push out to window
2664
- window.MediaElementPlayer = mejs.MediaElementPlayer;
2665
 
2666
- })(mejs.$);
 
2667
 
2668
- (function($) {
 
2669
 
2670
- $.extend(mejs.MepDefaults, {
2671
- playpauseText: 'Play/Pause'
2672
- });
2673
 
2674
- // PLAY/pause BUTTON
2675
- $.extend(MediaElementPlayer.prototype, {
2676
- buildplaypause: function(player, controls, layers, media) {
2677
- var
2678
- t = this,
2679
- play =
2680
- $('<div class="mejs-button mejs-playpause-button mejs-play" >' +
2681
- '<button type="button" aria-controls="' + t.id + '" title="' + t.options.playpauseText + '"></button>' +
2682
- '</div>')
2683
- .appendTo(controls)
2684
- .click(function(e) {
2685
- e.preventDefault();
2686
-
2687
- if (media.paused) {
2688
- media.play();
2689
- } else {
2690
- media.pause();
2691
- }
2692
-
2693
- return false;
2694
- });
2695
 
2696
- media.addEventListener('play',function() {
2697
- play.removeClass('mejs-play').addClass('mejs-pause');
2698
- }, false);
2699
- media.addEventListener('playing',function() {
2700
- play.removeClass('mejs-play').addClass('mejs-pause');
2701
- }, false);
2702
 
 
2703
 
2704
- media.addEventListener('pause',function() {
2705
- play.removeClass('mejs-pause').addClass('mejs-play');
2706
- }, false);
2707
- media.addEventListener('paused',function() {
2708
- play.removeClass('mejs-pause').addClass('mejs-play');
2709
- }, false);
2710
  }
2711
- });
2712
-
2713
- })(mejs.$);
2714
- (function($) {
2715
 
2716
- $.extend(mejs.MepDefaults, {
2717
- stopText: 'Stop'
2718
- });
2719
 
2720
- // STOP BUTTON
2721
- $.extend(MediaElementPlayer.prototype, {
2722
- buildstop: function(player, controls, layers, media) {
2723
- var t = this,
2724
- stop =
2725
- $('<div class="mejs-button mejs-stop-button mejs-stop">' +
2726
- '<button type="button" aria-controls="' + t.id + '" title="' + t.options.stopText + '"></button>' +
2727
- '</div>')
2728
- .appendTo(controls)
2729
- .click(function() {
2730
- if (!media.paused) {
2731
- media.pause();
2732
- }
2733
- if (media.currentTime > 0) {
2734
- media.setCurrentTime(0);
2735
- controls.find('.mejs-time-current').width('0px');
2736
- controls.find('.mejs-time-handle').css('left', '0px');
2737
- controls.find('.mejs-time-float-current').html( mejs.Utility.secondsToTimeCode(0) );
2738
- controls.find('.mejs-currenttime').html( mejs.Utility.secondsToTimeCode(0) );
2739
- layers.find('.mejs-poster').show();
2740
- }
2741
- });
2742
- }
2743
- });
2744
-
2745
- })(mejs.$);
2746
- (function($) {
2747
- // progress/loaded bar
2748
- $.extend(MediaElementPlayer.prototype, {
2749
- buildprogress: function(player, controls, layers, media) {
2750
-
2751
- $('<div class="mejs-time-rail">'+
2752
- '<span class="mejs-time-total">'+
2753
- '<span class="mejs-time-buffering"></span>'+
2754
- '<span class="mejs-time-loaded"></span>'+
2755
- '<span class="mejs-time-current"></span>'+
2756
- '<span class="mejs-time-handle"></span>'+
2757
- '<span class="mejs-time-float">' +
2758
- '<span class="mejs-time-float-current">00:00</span>' +
2759
- '<span class="mejs-time-float-corner"></span>' +
2760
- '</span>'+
2761
- '</span>'+
2762
- '</div>')
2763
- .appendTo(controls);
2764
- controls.find('.mejs-time-buffering').hide();
2765
-
2766
- var
2767
- t = this,
2768
- total = controls.find('.mejs-time-total'),
2769
- loaded = controls.find('.mejs-time-loaded'),
2770
- current = controls.find('.mejs-time-current'),
2771
- handle = controls.find('.mejs-time-handle'),
2772
- timefloat = controls.find('.mejs-time-float'),
2773
- timefloatcurrent = controls.find('.mejs-time-float-current'),
2774
- handleMouseMove = function (e) {
2775
- // mouse position relative to the object
2776
- var x = e.pageX,
2777
- offset = total.offset(),
2778
- width = total.outerWidth(),
2779
- percentage = 0,
2780
- newTime = 0,
2781
- pos = x - offset.left;
2782
-
2783
-
2784
- if (x > offset.left && x <= width + offset.left && media.duration) {
2785
- percentage = ((x - offset.left) / width);
2786
- newTime = (percentage <= 0.02) ? 0 : percentage * media.duration;
2787
-
2788
- // seek to where the mouse is
2789
- if (mouseIsDown) {
2790
- media.setCurrentTime(newTime);
2791
- }
2792
 
2793
- // position floating time box
2794
- if (!mejs.MediaFeatures.hasTouch) {
2795
- timefloat.css('left', pos);
2796
- timefloatcurrent.html( mejs.Utility.secondsToTimeCode(newTime) );
2797
- timefloat.show();
2798
- }
2799
- }
2800
- },
2801
- mouseIsDown = false,
2802
- mouseIsOver = false;
2803
-
2804
- // handle clicks
2805
- //controls.find('.mejs-time-rail').delegate('span', 'click', handleMouseMove);
2806
- total
2807
- .bind('mousedown', function (e) {
2808
- // only handle left clicks
2809
- if (e.which === 1) {
2810
- mouseIsDown = true;
2811
- handleMouseMove(e);
2812
- $(document)
2813
- .bind('mousemove.dur', function(e) {
2814
- handleMouseMove(e);
2815
- })
2816
- .bind('mouseup.dur', function (e) {
2817
- mouseIsDown = false;
2818
- timefloat.hide();
2819
- $(document).unbind('.dur');
2820
- });
2821
- return false;
2822
- }
2823
- })
2824
- .bind('mouseenter', function(e) {
2825
- mouseIsOver = true;
2826
- $(document).bind('mousemove.dur', function(e) {
2827
- handleMouseMove(e);
2828
- });
2829
- if (!mejs.MediaFeatures.hasTouch) {
2830
- timefloat.show();
2831
- }
2832
- })
2833
- .bind('mouseleave',function(e) {
2834
- mouseIsOver = false;
2835
- if (!mouseIsDown) {
2836
- $(document).unbind('.dur');
2837
- timefloat.hide();
2838
- }
2839
- });
2840
 
2841
- // loading
2842
- media.addEventListener('progress', function (e) {
2843
- player.setProgressRail(e);
2844
- player.setCurrentRail(e);
2845
- }, false);
2846
 
2847
- // current time
2848
- media.addEventListener('timeupdate', function(e) {
2849
- player.setProgressRail(e);
2850
- player.setCurrentRail(e);
2851
- }, false);
2852
-
2853
-
2854
- // store for later use
2855
- t.loaded = loaded;
2856
- t.total = total;
2857
- t.current = current;
2858
- t.handle = handle;
2859
- },
2860
- setProgressRail: function(e) {
2861
-
2862
- var
2863
- t = this,
2864
- target = (e != undefined) ? e.target : t.media,
2865
- percent = null;
2866
-
2867
- // newest HTML5 spec has buffered array (FF4, Webkit)
2868
- if (target && target.buffered && target.buffered.length > 0 && target.buffered.end && target.duration) {
2869
- // TODO: account for a real array with multiple values (only Firefox 4 has this so far)
2870
- percent = target.buffered.end(0) / target.duration;
2871
- }
2872
- // Some browsers (e.g., FF3.6 and Safari 5) cannot calculate target.bufferered.end()
2873
- // to be anything other than 0. If the byte count is available we use this instead.
2874
- // Browsers that support the else if do not seem to have the bufferedBytes value and
2875
- // should skip to there. Tested in Safari 5, Webkit head, FF3.6, Chrome 6, IE 7/8.
2876
- else if (target && target.bytesTotal != undefined && target.bytesTotal > 0 && target.bufferedBytes != undefined) {
2877
- percent = target.bufferedBytes / target.bytesTotal;
2878
- }
2879
- // Firefox 3 with an Ogg file seems to go this way
2880
- else if (e && e.lengthComputable && e.total != 0) {
2881
- percent = e.loaded/e.total;
2882
  }
 
2883
 
2884
- // finally update the progress bar
2885
- if (percent !== null) {
2886
- percent = Math.min(1, Math.max(0, percent));
2887
- // update loaded bar
2888
- if (t.loaded && t.total) {
2889
- t.loaded.width(t.total.width() * percent);
 
 
 
 
 
 
 
2890
  }
2891
  }
2892
- },
2893
- setCurrentRail: function() {
2894
 
2895
- var t = this;
2896
-
2897
- if (t.media.currentTime != undefined && t.media.duration) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2898
 
2899
- // update bar and handle
2900
- if (t.total && t.handle) {
2901
- var
2902
- newWidth = t.total.width() * t.media.currentTime / t.media.duration,
2903
- handlePos = newWidth - (t.handle.outerWidth(true) / 2);
2904
 
2905
- t.current.width(newWidth);
2906
- t.handle.css('left', handlePos);
2907
  }
2908
- }
2909
 
2910
- }
2911
- });
2912
- })(mejs.$);
2913
- (function($) {
2914
-
2915
- // options
2916
- $.extend(mejs.MepDefaults, {
2917
- duration: -1,
2918
- timeAndDurationSeparator: ' <span> | </span> '
2919
- });
 
 
 
 
 
 
 
 
 
 
2920
 
 
 
 
 
 
 
 
 
 
 
 
 
2921
 
2922
- // current and duration 00:00 / 00:00
2923
- $.extend(MediaElementPlayer.prototype, {
2924
- buildcurrent: function(player, controls, layers, media) {
2925
- var t = this;
2926
-
2927
- $('<div class="mejs-time">'+
2928
- '<span class="mejs-currenttime">' + (player.options.alwaysShowHours ? '00:' : '')
2929
- + (player.options.showTimecodeFrameCount? '00:00:00':'00:00')+ '</span>'+
2930
- '</div>')
2931
- .appendTo(controls);
2932
-
2933
- t.currenttime = t.controls.find('.mejs-currenttime');
2934
-
2935
- media.addEventListener('timeupdate',function() {
2936
- player.updateCurrent();
2937
- }, false);
2938
- },
2939
 
 
 
2940
 
2941
- buildduration: function(player, controls, layers, media) {
2942
- var t = this;
2943
-
2944
- if (controls.children().last().find('.mejs-currenttime').length > 0) {
2945
- $(t.options.timeAndDurationSeparator +
2946
- '<span class="mejs-duration">' +
2947
- (t.options.duration > 0 ?
2948
- mejs.Utility.secondsToTimeCode(t.options.duration, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount, t.options.framesPerSecond || 25) :
2949
- ((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00'))
2950
- ) +
2951
- '</span>')
2952
- .appendTo(controls.find('.mejs-time'));
2953
- } else {
2954
 
2955
- // add class to current time
2956
- controls.find('.mejs-currenttime').parent().addClass('mejs-currenttime-container');
2957
-
2958
- $('<div class="mejs-time mejs-duration-container">'+
2959
- '<span class="mejs-duration">' +
2960
- (t.options.duration > 0 ?
2961
- mejs.Utility.secondsToTimeCode(t.options.duration, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount, t.options.framesPerSecond || 25) :
2962
- ((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00'))
2963
- ) +
2964
- '</span>' +
2965
- '</div>')
2966
- .appendTo(controls);
2967
- }
2968
-
2969
- t.durationD = t.controls.find('.mejs-duration');
2970
-
2971
- media.addEventListener('timeupdate',function() {
2972
- player.updateDuration();
2973
- }, false);
2974
- },
2975
-
2976
- updateCurrent: function() {
2977
- var t = this;
 
 
 
 
 
2978
 
2979
- if (t.currenttime) {
2980
- t.currenttime.html(mejs.Utility.secondsToTimeCode(t.media.currentTime, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount, t.options.framesPerSecond || 25));
 
 
 
 
 
 
 
2981
  }
2982
- },
2983
-
2984
- updateDuration: function() {
2985
- var t = this;
2986
-
2987
- if (t.media.duration && t.durationD) {
2988
- t.durationD.html(mejs.Utility.secondsToTimeCode(t.media.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond || 25));
2989
- }
2990
  }
2991
- });
2992
 
2993
- })(mejs.$);
2994
- (function($) {
 
2995
 
2996
- $.extend(mejs.MepDefaults, {
2997
- muteText: 'Mute Toggle',
2998
- hideVolumeOnTouchDevices: true,
2999
-
3000
- audioVolume: 'horizontal',
3001
- videoVolume: 'vertical'
3002
- });
3003
 
3004
- $.extend(MediaElementPlayer.prototype, {
3005
- buildvolume: function(player, controls, layers, media) {
3006
-
3007
- // Android and iOS don't support volume controls
3008
- if (mejs.MediaFeatures.hasTouch && this.options.hideVolumeOnTouchDevices)
3009
- return;
3010
-
3011
- var t = this,
3012
- mode = (t.isVideo) ? t.options.videoVolume : t.options.audioVolume,
3013
- mute = (mode == 'horizontal') ?
3014
-
3015
- // horizontal version
3016
- $('<div class="mejs-button mejs-volume-button mejs-mute">'+
3017
- '<button type="button" aria-controls="' + t.id + '" title="' + t.options.muteText + '"></button>'+
3018
- '</div>' +
3019
- '<div class="mejs-horizontal-volume-slider">'+ // outer background
3020
- '<div class="mejs-horizontal-volume-total"></div>'+ // line background
3021
- '<div class="mejs-horizontal-volume-current"></div>'+ // current volume
3022
- '<div class="mejs-horizontal-volume-handle"></div>'+ // handle
3023
- '</div>'
3024
- )
3025
- .appendTo(controls) :
3026
-
3027
- // vertical version
3028
- $('<div class="mejs-button mejs-volume-button mejs-mute">'+
3029
- '<button type="button" aria-controls="' + t.id + '" title="' + t.options.muteText + '"></button>'+
3030
- '<div class="mejs-volume-slider">'+ // outer background
3031
- '<div class="mejs-volume-total"></div>'+ // line background
3032
- '<div class="mejs-volume-current"></div>'+ // current volume
3033
- '<div class="mejs-volume-handle"></div>'+ // handle
3034
- '</div>'+
3035
- '</div>')
3036
- .appendTo(controls),
3037
- volumeSlider = t.container.find('.mejs-volume-slider, .mejs-horizontal-volume-slider'),
3038
- volumeTotal = t.container.find('.mejs-volume-total, .mejs-horizontal-volume-total'),
3039
- volumeCurrent = t.container.find('.mejs-volume-current, .mejs-horizontal-volume-current'),
3040
- volumeHandle = t.container.find('.mejs-volume-handle, .mejs-horizontal-volume-handle'),
3041
-
3042
- positionVolumeHandle = function(volume, secondTry) {
3043
-
3044
- if (!volumeSlider.is(':visible') && typeof secondTry != 'undefined') {
3045
- volumeSlider.show();
3046
- positionVolumeHandle(volume, true);
3047
- volumeSlider.hide()
3048
- return;
3049
- }
3050
-
3051
- // correct to 0-1
3052
- volume = Math.max(0,volume);
3053
- volume = Math.min(volume,1);
3054
-
3055
- // ajust mute button style
3056
- if (volume == 0) {
3057
- mute.removeClass('mejs-mute').addClass('mejs-unmute');
3058
- } else {
3059
- mute.removeClass('mejs-unmute').addClass('mejs-mute');
3060
- }
3061
-
3062
- // position slider
3063
- if (mode == 'vertical') {
3064
- var
3065
-
3066
- // height of the full size volume slider background
3067
- totalHeight = volumeTotal.height(),
3068
-
3069
- // top/left of full size volume slider background
3070
- totalPosition = volumeTotal.position(),
3071
-
3072
- // the new top position based on the current volume
3073
- // 70% volume on 100px height == top:30px
3074
- newTop = totalHeight - (totalHeight * volume);
3075
-
3076
- // handle
3077
- volumeHandle.css('top', totalPosition.top + newTop - (volumeHandle.height() / 2));
3078
-
3079
- // show the current visibility
3080
- volumeCurrent.height(totalHeight - newTop );
3081
- volumeCurrent.css('top', totalPosition.top + newTop);
3082
- } else {
3083
- var
3084
-
3085
- // height of the full size volume slider background
3086
- totalWidth = volumeTotal.width(),
3087
-
3088
- // top/left of full size volume slider background
3089
- totalPosition = volumeTotal.position(),
3090
-
3091
- // the new left position based on the current volume
3092
- newLeft = totalWidth * volume;
3093
-
3094
- // handle
3095
- volumeHandle.css('left', totalPosition.left + newLeft - (volumeHandle.width() / 2));
3096
-
3097
- // rezize the current part of the volume bar
3098
- volumeCurrent.width( newLeft );
3099
- }
3100
- },
3101
- handleVolumeMove = function(e) {
3102
-
3103
- var volume = null,
3104
- totalOffset = volumeTotal.offset();
3105
-
3106
- // calculate the new volume based on the moust position
3107
- if (mode == 'vertical') {
3108
-
3109
- var
3110
- railHeight = volumeTotal.height(),
3111
- totalTop = parseInt(volumeTotal.css('top').replace(/px/,''),10),
3112
- newY = e.pageY - totalOffset.top;
3113
-
3114
- volume = (railHeight - newY) / railHeight;
3115
-
3116
- // the controls just hide themselves (usually when mouse moves too far up)
3117
- if (totalOffset.top == 0 || totalOffset.left == 0)
3118
- return;
3119
-
3120
- } else {
3121
- var
3122
- railWidth = volumeTotal.width(),
3123
- newX = e.pageX - totalOffset.left;
3124
-
3125
- volume = newX / railWidth;
3126
- }
3127
-
3128
- // ensure the volume isn't outside 0-1
3129
- volume = Math.max(0,volume);
3130
- volume = Math.min(volume,1);
3131
-
3132
- // position the slider and handle
3133
- positionVolumeHandle(volume);
3134
-
3135
- // set the media object (this will trigger the volumechanged event)
3136
- if (volume == 0) {
3137
- media.setMuted(true);
3138
- } else {
3139
- media.setMuted(false);
3140
  }
3141
- media.setVolume(volume);
3142
- },
3143
- mouseIsDown = false,
3144
- mouseIsOver = false;
3145
 
3146
- // SLIDER
3147
-
3148
- mute
3149
- .hover(function() {
3150
- volumeSlider.show();
3151
- mouseIsOver = true;
3152
- }, function() {
3153
- mouseIsOver = false;
3154
-
3155
- if (!mouseIsDown && mode == 'vertical') {
3156
- volumeSlider.hide();
3157
- }
3158
- });
3159
-
3160
- volumeSlider
3161
- .bind('mouseover', function() {
3162
- mouseIsOver = true;
3163
- })
3164
- .bind('mousedown', function (e) {
3165
- handleVolumeMove(e);
3166
- $(document)
3167
- .bind('mousemove.vol', function(e) {
3168
- handleVolumeMove(e);
3169
- })
3170
- .bind('mouseup.vol', function () {
3171
- mouseIsDown = false;
3172
- $(document).unbind('.vol');
3173
 
3174
- if (!mouseIsOver && mode == 'vertical') {
3175
- volumeSlider.hide();
3176
- }
3177
- });
3178
- mouseIsDown = true;
3179
-
3180
- return false;
3181
- });
3182
 
 
 
 
 
3183
 
3184
- // MUTE button
3185
- mute.find('button').click(function() {
3186
- media.setMuted( !media.muted );
3187
- });
3188
 
3189
- // listen for volume change events from other sources
3190
- media.addEventListener('volumechange', function(e) {
3191
- if (!mouseIsDown) {
3192
- if (media.muted) {
3193
- positionVolumeHandle(0);
3194
- mute.removeClass('mejs-mute').addClass('mejs-unmute');
3195
- } else {
3196
- positionVolumeHandle(media.volume);
3197
- mute.removeClass('mejs-unmute').addClass('mejs-mute');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3198
  }
 
 
 
 
 
3199
  }
3200
- }, false);
 
 
 
 
 
 
 
 
 
3201
 
3202
- if (t.container.is(':visible')) {
3203
- // set initial volume
3204
- positionVolumeHandle(player.options.startVolume);
3205
-
3206
- // shim gets the startvolume as a parameter, but we have to set it on the native <video> and <audio> elements
3207
- if (media.pluginType === 'native') {
3208
- media.setVolume(player.options.startVolume);
3209
  }
3210
  }
3211
- }
3212
- });
3213
-
3214
- })(mejs.$);
3215
-
3216
- (function($) {
3217
-
3218
- $.extend(mejs.MepDefaults, {
3219
- usePluginFullScreen: true,
3220
- newWindowCallback: function() { return '';},
3221
- fullscreenText: 'Fullscreen'
3222
- });
3223
-
3224
- $.extend(MediaElementPlayer.prototype, {
3225
-
3226
- isFullScreen: false,
3227
-
3228
- isNativeFullScreen: false,
3229
-
3230
- docStyleOverflow: null,
3231
-
3232
- isInIframe: false,
3233
-
3234
- buildfullscreen: function(player, controls, layers, media) {
3235
-
3236
- if (!player.isVideo)
3237
- return;
3238
-
3239
- player.isInIframe = (window.location != window.parent.location);
3240
-
3241
- // native events
3242
- if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
3243
-
3244
- // chrome doesn't alays fire this in an iframe
3245
- var target = null;
3246
-
3247
- if (mejs.MediaFeatures.hasMozNativeFullScreen) {
3248
- target = $(document);
3249
  } else {
3250
- target = player.container;
3251
  }
3252
-
3253
- target.bind(mejs.MediaFeatures.fullScreenEventName, function(e) {
3254
-
3255
- if (mejs.MediaFeatures.isFullScreen()) {
3256
- player.isNativeFullScreen = true;
3257
- // reset the controls once we are fully in full screen
3258
- player.setControlsSize();
3259
- } else {
3260
- player.isNativeFullScreen = false;
3261
- // when a user presses ESC
3262
- // make sure to put the player back into place
3263
- player.exitFullScreen();
3264
- }
3265
- });
 
 
 
 
 
 
 
 
3266
  }
3267
 
3268
- var t = this,
3269
- normalHeight = 0,
3270
- normalWidth = 0,
3271
- container = player.container,
3272
- fullscreenBtn =
3273
- $('<div class="mejs-button mejs-fullscreen-button">' +
3274
- '<button type="button" aria-controls="' + t.id + '" title="' + t.options.fullscreenText + '"></button>' +
3275
- '</div>')
3276
- .appendTo(controls);
3277
-
3278
- if (t.media.pluginType === 'native' || (!t.options.usePluginFullScreen && !mejs.MediaFeatures.isFirefox)) {
3279
-
3280
- fullscreenBtn.click(function() {
3281
- var isFullScreen = (mejs.MediaFeatures.hasTrueNativeFullScreen && mejs.MediaFeatures.isFullScreen()) || player.isFullScreen;
3282
-
3283
- if (isFullScreen) {
3284
- player.exitFullScreen();
3285
- } else {
3286
- player.enterFullScreen();
3287
- }
3288
- });
3289
-
3290
- } else {
3291
 
3292
- var hideTimeout = null,
3293
- supportsPointerEvents = (function() {
3294
- // TAKEN FROM MODERNIZR
3295
- var element = document.createElement('x'),
3296
- documentElement = document.documentElement,
3297
- getComputedStyle = window.getComputedStyle,
3298
- supports;
3299
- if(!('pointerEvents' in element.style)){
3300
- return false;
3301
- }
3302
- element.style.pointerEvents = 'auto';
3303
- element.style.pointerEvents = 'x';
3304
- documentElement.appendChild(element);
3305
- supports = getComputedStyle &&
3306
- getComputedStyle(element, '').pointerEvents === 'auto';
3307
- documentElement.removeChild(element);
3308
- return !!supports;
3309
- })();
3310
-
3311
- //console.log('supportsPointerEvents', supportsPointerEvents);
3312
-
3313
- if (supportsPointerEvents && !mejs.MediaFeatures.isOpera) { // opera doesn't allow this :(
3314
-
3315
- // allows clicking through the fullscreen button and controls down directly to Flash
3316
-
3317
- /*
3318
- When a user puts his mouse over the fullscreen button, the controls are disabled
3319
- So we put a div over the video and another one on iether side of the fullscreen button
3320
- that caputre mouse movement
3321
- and restore the controls once the mouse moves outside of the fullscreen button
3322
- */
3323
-
3324
- var fullscreenIsDisabled = false,
3325
- restoreControls = function() {
3326
- if (fullscreenIsDisabled) {
3327
- // hide the hovers
3328
- videoHoverDiv.hide();
3329
- controlsLeftHoverDiv.hide();
3330
- controlsRightHoverDiv.hide();
3331
-
3332
- // restore the control bar
3333
- fullscreenBtn.css('pointer-events', '');
3334
- t.controls.css('pointer-events', '');
3335
-
3336
- // store for later
3337
- fullscreenIsDisabled = false;
3338
- }
3339
- },
3340
- videoHoverDiv = $('<div class="mejs-fullscreen-hover" />').appendTo(t.container).mouseover(restoreControls),
3341
- controlsLeftHoverDiv = $('<div class="mejs-fullscreen-hover" />').appendTo(t.container).mouseover(restoreControls),
3342
- controlsRightHoverDiv = $('<div class="mejs-fullscreen-hover" />').appendTo(t.container).mouseover(restoreControls),
3343
- positionHoverDivs = function() {
3344
- var style = {position: 'absolute', top: 0, left: 0}; //, backgroundColor: '#f00'};
3345
- videoHoverDiv.css(style);
3346
- controlsLeftHoverDiv.css(style);
3347
- controlsRightHoverDiv.css(style);
3348
-
3349
- // over video, but not controls
3350
- videoHoverDiv
3351
- .width( t.container.width() )
3352
- .height( t.container.height() - t.controls.height() );
3353
-
3354
- // over controls, but not the fullscreen button
3355
- var fullScreenBtnOffset = fullscreenBtn.offset().left - t.container.offset().left;
3356
- fullScreenBtnWidth = fullscreenBtn.outerWidth(true);
3357
-
3358
- controlsLeftHoverDiv
3359
- .width( fullScreenBtnOffset )
3360
- .height( t.controls.height() )
3361
- .css({top: t.container.height() - t.controls.height()});
3362
-
3363
- // after the fullscreen button
3364
- controlsRightHoverDiv
3365
- .width( t.container.width() - fullScreenBtnOffset - fullScreenBtnWidth )
3366
- .height( t.controls.height() )
3367
- .css({top: t.container.height() - t.controls.height(),
3368
- left: fullScreenBtnOffset + fullScreenBtnWidth});
3369
- };
3370
-
3371
- $(document).resize(function() {
3372
- positionHoverDivs();
3373
- });
3374
-
3375
- // on hover, kill the fullscreen button's HTML handling, allowing clicks down to Flash
3376
- fullscreenBtn
3377
- .mouseover(function() {
3378
-
3379
- if (!t.isFullScreen) {
3380
-
3381
- var buttonPos = fullscreenBtn.offset(),
3382
- containerPos = player.container.offset();
3383
-
3384
- // move the button in Flash into place
3385
- media.positionFullscreenButton(buttonPos.left - containerPos.left, buttonPos.top - containerPos.top, false);
3386
-
3387
- // allows click through
3388
- fullscreenBtn.css('pointer-events', 'none');
3389
- t.controls.css('pointer-events', 'none');
3390
-
3391
- // show the divs that will restore things
3392
- videoHoverDiv.show();
3393
- controlsRightHoverDiv.show();
3394
- controlsLeftHoverDiv.show();
3395
- positionHoverDivs();
3396
-
3397
- fullscreenIsDisabled = true;
3398
- }
3399
-
3400
- });
3401
-
3402
- // restore controls anytime the user enters or leaves fullscreen
3403
- media.addEventListener('fullscreenchange', function(e) {
3404
- restoreControls();
3405
- });
3406
-
3407
-
3408
- // the mouseout event doesn't work on the fullscren button, because we already killed the pointer-events
3409
- // so we use the document.mousemove event to restore controls when the mouse moves outside the fullscreen button
3410
- /*
3411
- $(document).mousemove(function(e) {
3412
-
3413
- // if the mouse is anywhere but the fullsceen button, then restore it all
3414
- if (fullscreenIsDisabled) {
3415
-
3416
- var fullscreenBtnPos = fullscreenBtn.offset();
3417
-
3418
 
3419
- if (e.pageY < fullscreenBtnPos.top || e.pageY > fullscreenBtnPos.top + fullscreenBtn.outerHeight(true) ||
3420
- e.pageX < fullscreenBtnPos.left || e.pageX > fullscreenBtnPos.left + fullscreenBtn.outerWidth(true)
3421
- ) {
3422
-
3423
- fullscreenBtn.css('pointer-events', '');
3424
- t.controls.css('pointer-events', '');
3425
-
3426
- fullscreenIsDisabled = false;
3427
- }
3428
- }
3429
- });
3430
- */
3431
-
3432
-
3433
- } else {
3434
-
3435
- // the hover state will show the fullscreen button in Flash to hover up and click
3436
-
3437
- fullscreenBtn
3438
- .mouseover(function() {
3439
-
3440
- if (hideTimeout !== null) {
3441
- clearTimeout(hideTimeout);
3442
- delete hideTimeout;
3443
- }
3444
-
3445
- var buttonPos = fullscreenBtn.offset(),
3446
- containerPos = player.container.offset();
3447
-
3448
- media.positionFullscreenButton(buttonPos.left - containerPos.left, buttonPos.top - containerPos.top, true);
3449
-
3450
- })
3451
- .mouseout(function() {
3452
-
3453
- if (hideTimeout !== null) {
3454
- clearTimeout(hideTimeout);
3455
- delete hideTimeout;
3456
- }
3457
-
3458
- hideTimeout = setTimeout(function() {
3459
- media.hideFullscreenButton();
3460
- }, 1500);
3461
-
3462
-
3463
- });
3464
- }
3465
  }
3466
-
3467
- player.fullscreenBtn = fullscreenBtn;
3468
 
3469
- $(document).bind('keydown',function (e) {
3470
- if (((mejs.MediaFeatures.hasTrueNativeFullScreen && mejs.MediaFeatures.isFullScreen()) || t.isFullScreen) && e.keyCode == 27) {
3471
- player.exitFullScreen();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3472
  }
3473
- });
3474
-
 
 
 
 
3475
  },
3476
- enterFullScreen: function() {
3477
-
3478
- var t = this;
3479
-
3480
- // firefox+flash can't adjust plugin sizes without resetting :(
3481
- if (t.media.pluginType !== 'native' && (mejs.MediaFeatures.isFirefox || t.options.usePluginFullScreen)) {
3482
- //t.media.setFullscreen(true);
3483
- //player.isFullScreen = true;
3484
- return;
3485
- }
3486
-
3487
- // store overflow
3488
- docStyleOverflow = document.documentElement.style.overflow;
3489
- // set it to not show scroll bars so 100% will work
3490
- document.documentElement.style.overflow = 'hidden';
3491
-
3492
- // store sizing
3493
- normalHeight = t.container.height();
3494
- normalWidth = t.container.width();
3495
-
3496
- // attempt to do true fullscreen (Safari 5.1 and Firefox Nightly only for now)
3497
- if (t.media.pluginType === 'native') {
3498
- if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
3499
-
3500
- mejs.MediaFeatures.requestFullScreen(t.container[0]);
3501
- //return;
3502
-
3503
- if (t.isInIframe) {
3504
- // sometimes exiting from fullscreen doesn't work
3505
- // notably in Chrome <iframe>. Fixed in version 17
3506
- setTimeout(function checkFullscreen() {
3507
-
3508
- if (t.isNativeFullScreen) {
3509
-
3510
- // check if the video is suddenly not really fullscreen
3511
- if ($(window).width() !== screen.width) {
3512
- // manually exit
3513
- t.exitFullScreen();
3514
- } else {
3515
- // test again
3516
- setTimeout(checkFullscreen, 500);
3517
- }
3518
- }
3519
-
3520
-
3521
- }, 500);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3522
  }
3523
-
3524
- } else if (mejs.MediaFeatures.hasSemiNativeFullScreen) {
3525
- t.media.webkitEnterFullscreen();
 
 
3526
  return;
 
 
 
 
3527
  }
3528
- }
3529
-
3530
- // check for iframe launch
3531
- if (t.isInIframe) {
3532
- var url = t.options.newWindowCallback(this);
3533
-
3534
-
3535
- if (url !== '') {
3536
-
3537
- // launch immediately
3538
- if (!mejs.MediaFeatures.hasTrueNativeFullScreen) {
3539
- t.pause();
3540
- window.open(url, t.id, 'top=0,left=0,width=' + screen.availWidth + ',height=' + screen.availHeight + ',resizable=yes,scrollbars=no,status=no,toolbar=no');
3541
- return;
3542
- } else {
3543
- setTimeout(function() {
3544
- if (!t.isNativeFullScreen) {
 
 
 
 
 
 
 
3545
  t.pause();
3546
- window.open(url, t.id, 'top=0,left=0,width=' + screen.availWidth + ',height=' + screen.availHeight + ',resizable=yes,scrollbars=no,status=no,toolbar=no');
3547
  }
3548
- }, 250);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3549
  }
3550
- }
3551
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3552
  }
3553
-
3554
- // full window code
 
 
3555
 
3556
-
 
 
 
 
3557
 
3558
- // make full size
3559
- t.container
3560
- .addClass('mejs-container-fullscreen')
3561
- .width('100%')
3562
- .height('100%');
3563
- //.css({position: 'fixed', left: 0, top: 0, right: 0, bottom: 0, overflow: 'hidden', width: '100%', height: '100%', 'z-index': 1000});
3564
 
3565
- // Only needed for safari 5.1 native full screen, can cause display issues elsewhere
3566
- // Actually, it seems to be needed for IE8, too
3567
- //if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
3568
- setTimeout(function() {
3569
- t.container.css({width: '100%', height: '100%'});
3570
- t.setControlsSize();
3571
- }, 500);
3572
- //}
3573
-
3574
- if (t.pluginType === 'native') {
3575
- t.$media
3576
- .width('100%')
3577
- .height('100%');
3578
- } else {
3579
- t.container.find('object, embed, iframe')
3580
- .width('100%')
3581
- .height('100%');
3582
-
3583
- //if (!mejs.MediaFeatures.hasTrueNativeFullScreen) {
3584
- t.media.setVideoSize($(window).width(),$(window).height());
3585
- //}
3586
- }
3587
-
3588
- t.layers.children('div')
3589
- .width('100%')
3590
- .height('100%');
3591
 
3592
- if (t.fullscreenBtn) {
3593
- t.fullscreenBtn
3594
- .removeClass('mejs-fullscreen')
3595
- .addClass('mejs-unfullscreen');
3596
- }
3597
 
3598
- t.setControlsSize();
3599
- t.isFullScreen = true;
3600
- },
3601
-
3602
- exitFullScreen: function() {
3603
-
3604
- var t = this;
3605
-
3606
- // firefox can't adjust plugins
3607
- if (t.media.pluginType !== 'native' && mejs.MediaFeatures.isFirefox) {
3608
- t.media.setFullscreen(false);
3609
- //player.isFullScreen = false;
3610
- return;
3611
- }
3612
-
3613
- // come outo of native fullscreen
3614
- if (mejs.MediaFeatures.hasTrueNativeFullScreen && (mejs.MediaFeatures.isFullScreen() || t.isFullScreen)) {
3615
- mejs.MediaFeatures.cancelFullScreen();
3616
- }
3617
-
3618
- // restore scroll bars to document
3619
- document.documentElement.style.overflow = docStyleOverflow;
3620
-
3621
- t.container
3622
- .removeClass('mejs-container-fullscreen')
3623
- .width(normalWidth)
3624
- .height(normalHeight);
3625
- //.css({position: '', left: '', top: '', right: '', bottom: '', overflow: 'inherit', width: normalWidth + 'px', height: normalHeight + 'px', 'z-index': 1});
3626
-
3627
- if (t.pluginType === 'native') {
3628
- t.$media
3629
- .width(normalWidth)
3630
- .height(normalHeight);
3631
- } else {
3632
- t.container.find('object embed')
3633
- .width(normalWidth)
3634
- .height(normalHeight);
3635
-
3636
- t.media.setVideoSize(normalWidth, normalHeight);
3637
- }
3638
 
3639
- t.layers.children('div')
3640
- .width(normalWidth)
3641
- .height(normalHeight);
 
3642
 
3643
- t.fullscreenBtn
3644
- .removeClass('mejs-unfullscreen')
3645
- .addClass('mejs-fullscreen');
3646
 
3647
- t.setControlsSize();
3648
- t.isFullScreen = false;
3649
- }
3650
- });
3651
 
3652
- })(mejs.$);
 
 
 
3653
 
3654
- (function($) {
 
 
 
3655
 
3656
- // add extra default options
3657
- $.extend(mejs.MepDefaults, {
3658
- // this will automatically turn on a <track>
3659
- startLanguage: '',
3660
-
3661
- tracksText: 'Captions/Subtitles'
3662
  });
 
3663
 
3664
- $.extend(MediaElementPlayer.prototype, {
3665
-
3666
- hasChapters: false,
3667
 
3668
- buildtracks: function(player, controls, layers, media) {
3669
- if (!player.isVideo)
3670
- return;
3671
 
3672
- if (player.tracks.length == 0)
3673
- return;
 
3674
 
3675
- var t= this, i, options = '';
3676
-
3677
- player.chapters =
3678
- $('<div class="mejs-chapters mejs-layer"></div>')
3679
- .prependTo(layers).hide();
3680
- player.captions =
3681
- $('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position"><span class="mejs-captions-text"></span></div></div>')
3682
- .prependTo(layers).hide();
3683
- player.captionsText = player.captions.find('.mejs-captions-text');
3684
- player.captionsButton =
3685
- $('<div class="mejs-button mejs-captions-button">'+
3686
- '<button type="button" aria-controls="' + t.id + '" title="' + t.options.tracksText + '"></button>'+
3687
- '<div class="mejs-captions-selector">'+
3688
- '<ul>'+
3689
- '<li>'+
3690
- '<input type="radio" name="' + player.id + '_captions" id="' + player.id + '_captions_none" value="none" checked="checked" />' +
3691
- '<label for="' + player.id + '_captions_none">None</label>'+
3692
- '</li>' +
3693
- '</ul>'+
3694
- '</div>'+
3695
- '</div>')
3696
- .appendTo(controls)
3697
-
3698
- // hover
3699
- .hover(function() {
3700
- $(this).find('.mejs-captions-selector').css('visibility','visible');
3701
- }, function() {
3702
- $(this).find('.mejs-captions-selector').css('visibility','hidden');
3703
- })
3704
-
3705
- // handle clicks to the language radio buttons
3706
- .delegate('input[type=radio]','click',function() {
3707
- lang = this.value;
3708
 
3709
- if (lang == 'none') {
3710
- player.selectedTrack = null;
3711
- } else {
3712
- for (i=0; i<player.tracks.length; i++) {
3713
- if (player.tracks[i].srclang == lang) {
3714
- player.selectedTrack = player.tracks[i];
3715
- player.captions.attr('lang', player.selectedTrack.srclang);
3716
- player.displayCaptions();
3717
- break;
3718
- }
3719
- }
3720
- }
3721
- });
3722
- //.bind('mouseenter', function() {
3723
- // player.captionsButton.find('.mejs-captions-selector').css('visibility','visible')
3724
- //});
3725
-
3726
- if (!player.options.alwaysShowControls) {
3727
- // move with controls
3728
- player.container
3729
- .bind('mouseenter', function () {
3730
- // push captions above controls
3731
- player.container.find('.mejs-captions-position').addClass('mejs-captions-position-hover');
3732
-
3733
- })
3734
- .bind('mouseleave', function () {
3735
- if (!media.paused) {
3736
- // move back to normal place
3737
- player.container.find('.mejs-captions-position').removeClass('mejs-captions-position-hover');
3738
- }
3739
- });
3740
- } else {
3741
- player.container.find('.mejs-captions-position').addClass('mejs-captions-position-hover');
3742
- }
3743
 
3744
- player.trackToLoad = -1;
3745
- player.selectedTrack = null;
3746
- player.isLoadingTrack = false;
 
 
 
 
 
 
 
3747
 
3748
-
3749
 
3750
- // add to list
3751
- for (i=0; i<player.tracks.length; i++) {
3752
- if (player.tracks[i].kind == 'subtitles') {
3753
- player.addTrackButton(player.tracks[i].srclang, player.tracks[i].label);
3754
- }
3755
- }
3756
 
3757
- player.loadNextTrack();
3758
 
 
3759
 
3760
- media.addEventListener('timeupdate',function(e) {
3761
- player.displayCaptions();
3762
- }, false);
3763
 
3764
- media.addEventListener('loadedmetadata', function(e) {
3765
- player.displayChapters();
3766
- }, false);
3767
 
3768
- player.container.hover(
3769
- function () {
3770
- // chapters
3771
- if (player.hasChapters) {
3772
- player.chapters.css('visibility','visible');
3773
- player.chapters.fadeIn(200).height(player.chapters.find('.mejs-chapter').outerHeight());
3774
- }
3775
- },
3776
- function () {
3777
- if (player.hasChapters && !media.paused) {
3778
- player.chapters.fadeOut(200, function() {
3779
- $(this).css('visibility','hidden');
3780
- $(this).css('display','block');
3781
- });
3782
- }
3783
- });
3784
-
3785
- // check for autoplay
3786
- if (player.node.getAttribute('autoplay') !== null) {
3787
- player.chapters.css('visibility','hidden');
3788
- }
3789
- },
3790
 
3791
- loadNextTrack: function() {
3792
- var t = this;
 
 
3793
 
3794
- t.trackToLoad++;
3795
- if (t.trackToLoad < t.tracks.length) {
3796
- t.isLoadingTrack = true;
3797
- t.loadTrack(t.trackToLoad);
3798
- } else {
3799
- // add done?
3800
- t.isLoadingTrack = false;
3801
- }
3802
- },
3803
 
3804
- loadTrack: function(index){
3805
- var
3806
- t = this,
3807
- track = t.tracks[index],
3808
- after = function() {
3809
 
3810
- track.isLoaded = true;
3811
 
3812
- // create button
3813
- //t.addTrackButton(track.srclang);
3814
- t.enableTrackButton(track.srclang, track.label);
3815
 
3816
- t.loadNextTrack();
 
3817
 
3818
- };
3819
 
 
 
 
3820
 
3821
- $.ajax({
3822
- url: track.src,
3823
- dataType: "text",
3824
- success: function(d) {
3825
 
3826
- // parse the loaded file
3827
- if (typeof d == "string" && (/<tt\s+xml/ig).exec(d)) {
3828
- track.entries = mejs.TrackFormatParser.dfxp.parse(d);
3829
- } else {
3830
- track.entries = mejs.TrackFormatParser.webvvt.parse(d);
3831
- }
3832
-
3833
- after();
3834
 
3835
- if (track.kind == 'chapters' && t.media.duration > 0) {
3836
- t.drawChapters(track);
3837
- }
3838
- },
3839
- error: function() {
3840
- t.loadNextTrack();
3841
- }
3842
- });
3843
- },
3844
 
3845
- enableTrackButton: function(lang, label) {
3846
- var t = this;
3847
-
3848
- if (label === '') {
3849
- label = mejs.language.codes[lang] || lang;
3850
- }
3851
 
3852
- t.captionsButton
3853
- .find('input[value=' + lang + ']')
3854
- .prop('disabled',false)
3855
- .siblings('label')
3856
- .html( label );
 
 
3857
 
3858
- // auto select
3859
- if (t.options.startLanguage == lang) {
3860
- $('#' + t.id + '_captions_' + lang).click();
3861
- }
3862
 
3863
- t.adjustLanguageBox();
3864
- },
3865
 
3866
- addTrackButton: function(lang, label) {
3867
- var t = this;
3868
- if (label === '') {
3869
- label = mejs.language.codes[lang] || lang;
3870
- }
3871
 
3872
- t.captionsButton.find('ul').append(
3873
- $('<li>'+
3874
- '<input type="radio" name="' + t.id + '_captions" id="' + t.id + '_captions_' + lang + '" value="' + lang + '" disabled="disabled" />' +
3875
- '<label for="' + t.id + '_captions_' + lang + '">' + label + ' (loading)' + '</label>'+
3876
- '</li>')
3877
- );
3878
 
3879
- t.adjustLanguageBox();
3880
 
3881
- // remove this from the dropdownlist (if it exists)
3882
- t.container.find('.mejs-captions-translations option[value=' + lang + ']').remove();
3883
- },
3884
 
3885
- adjustLanguageBox:function() {
3886
- var t = this;
3887
- // adjust the size of the outer box
3888
- t.captionsButton.find('.mejs-captions-selector').height(
3889
- t.captionsButton.find('.mejs-captions-selector ul').outerHeight(true) +
3890
- t.captionsButton.find('.mejs-captions-translations').outerHeight(true)
3891
- );
3892
- },
 
 
 
 
 
 
 
 
3893
 
3894
- displayCaptions: function() {
 
 
 
 
 
 
 
3895
 
3896
- if (typeof this.tracks == 'undefined')
3897
- return;
3898
 
3899
- var
3900
- t = this,
3901
- i,
3902
- track = t.selectedTrack;
3903
-
3904
- if (track != null && track.isLoaded) {
3905
- for (i=0; i<track.entries.times.length; i++) {
3906
- if (t.media.currentTime >= track.entries.times[i].start && t.media.currentTime <= track.entries.times[i].stop){
3907
- t.captionsText.html(track.entries.text[i]);
3908
- t.captions.show().height(0);
3909
- return; // exit out if one is visible;
3910
- }
3911
- }
3912
- t.captions.hide();
3913
- } else {
3914
- t.captions.hide();
3915
- }
3916
- },
3917
 
3918
- displayChapters: function() {
3919
- var
3920
- t = this,
3921
- i;
3922
 
3923
- for (i=0; i<t.tracks.length; i++) {
3924
- if (t.tracks[i].kind == 'chapters' && t.tracks[i].isLoaded) {
3925
- t.drawChapters(t.tracks[i]);
3926
- t.hasChapters = true;
3927
- break;
3928
- }
3929
- }
3930
- },
3931
 
3932
- drawChapters: function(chapters) {
3933
- var
3934
- t = this,
3935
- i,
3936
- dur,
3937
- //width,
3938
- //left,
3939
- percent = 0,
3940
- usedPercent = 0;
3941
-
3942
- t.chapters.empty();
3943
-
3944
- for (i=0; i<chapters.entries.times.length; i++) {
3945
- dur = chapters.entries.times[i].stop - chapters.entries.times[i].start;
3946
- percent = Math.floor(dur / t.media.duration * 100);
3947
- if (percent + usedPercent > 100 || // too large
3948
- i == chapters.entries.times.length-1 && percent + usedPercent < 100) // not going to fill it in
3949
- {
3950
- percent = 100 - usedPercent;
3951
- }
3952
- //width = Math.floor(t.width * dur / t.media.duration);
3953
- //left = Math.floor(t.width * chapters.entries.times[i].start / t.media.duration);
3954
- //if (left + width > t.width) {
3955
- // width = t.width - left;
3956
- //}
3957
-
3958
- t.chapters.append( $(
3959
- '<div class="mejs-chapter" rel="' + chapters.entries.times[i].start + '" style="left: ' + usedPercent.toString() + '%;width: ' + percent.toString() + '%;">' +
3960
- '<div class="mejs-chapter-block' + ((i==chapters.entries.times.length-1) ? ' mejs-chapter-block-last' : '') + '">' +
3961
- '<span class="ch-title">' + chapters.entries.text[i] + '</span>' +
3962
- '<span class="ch-time">' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].start) + '&ndash;' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].stop) + '</span>' +
3963
- '</div>' +
3964
- '</div>'));
3965
- usedPercent += percent;
3966
- }
3967
-
3968
- t.chapters.find('div.mejs-chapter').click(function() {
3969
- t.media.setCurrentTime( parseFloat( $(this).attr('rel') ) );
3970
- if (t.media.paused) {
3971
- t.media.play();
3972
- }
3973
- });
3974
 
3975
- t.chapters.show();
 
 
 
 
 
3976
  }
 
 
 
 
 
 
 
 
3977
  });
 
 
 
3978
 
 
 
 
 
 
 
 
 
 
 
3979
 
 
 
 
3980
 
3981
- mejs.language = {
3982
- codes: {
3983
- af:'Afrikaans',
3984
- sq:'Albanian',
3985
- ar:'Arabic',
3986
- be:'Belarusian',
3987
- bg:'Bulgarian',
3988
- ca:'Catalan',
3989
- zh:'Chinese',
3990
- 'zh-cn':'Chinese Simplified',
3991
- 'zh-tw':'Chinese Traditional',
3992
- hr:'Croatian',
3993
- cs:'Czech',
3994
- da:'Danish',
3995
- nl:'Dutch',
3996
- en:'English',
3997
- et:'Estonian',
3998
- tl:'Filipino',
3999
- fi:'Finnish',
4000
- fr:'French',
4001
- gl:'Galician',
4002
- de:'German',
4003
- el:'Greek',
4004
- ht:'Haitian Creole',
4005
- iw:'Hebrew',
4006
- hi:'Hindi',
4007
- hu:'Hungarian',
4008
- is:'Icelandic',
4009
- id:'Indonesian',
4010
- ga:'Irish',
4011
- it:'Italian',
4012
- ja:'Japanese',
4013
- ko:'Korean',
4014
- lv:'Latvian',
4015
- lt:'Lithuanian',
4016
- mk:'Macedonian',
4017
- ms:'Malay',
4018
- mt:'Maltese',
4019
- no:'Norwegian',
4020
- fa:'Persian',
4021
- pl:'Polish',
4022
- pt:'Portuguese',
4023
- //'pt-pt':'Portuguese (Portugal)',
4024
- ro:'Romanian',
4025
- ru:'Russian',
4026
- sr:'Serbian',
4027
- sk:'Slovak',
4028
- sl:'Slovenian',
4029
- es:'Spanish',
4030
- sw:'Swahili',
4031
- sv:'Swedish',
4032
- tl:'Tagalog',
4033
- th:'Thai',
4034
- tr:'Turkish',
4035
- uk:'Ukrainian',
4036
- vi:'Vietnamese',
4037
- cy:'Welsh',
4038
- yi:'Yiddish'
4039
  }
4040
- };
4041
 
4042
- /*
4043
- Parses WebVVT format which should be formatted as
4044
- ================================
4045
- WEBVTT
4046
-
4047
- 1
4048
- 00:00:01,1 --> 00:00:05,000
4049
- A line of text
4050
-
4051
- 2
4052
- 00:01:15,1 --> 00:02:05,000
4053
- A second line of text
4054
-
4055
- ===============================
4056
-
4057
- Adapted from: http://www.delphiki.com/html5/playr
4058
- */
4059
- mejs.TrackFormatParser = {
4060
- webvvt: {
4061
- // match start "chapter-" (or anythingelse)
4062
- pattern_identifier: /^([a-zA-z]+-)?[0-9]+$/,
4063
- pattern_timecode: /^([0-9]{2}:[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ([0-9]{2}:[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,
4064
-
4065
- parse: function(trackText) {
4066
- var
4067
- i = 0,
4068
- lines = mejs.TrackFormatParser.split2(trackText, /\r?\n/),
4069
- entries = {text:[], times:[]},
4070
- timecode,
4071
- text;
4072
- for(; i<lines.length; i++) {
4073
- // check for the line number
4074
- if (this.pattern_identifier.exec(lines[i])){
4075
- // skip to the next line where the start --> end time code should be
4076
- i++;
4077
- timecode = this.pattern_timecode.exec(lines[i]);
4078
-
4079
- if (timecode && i<lines.length){
4080
- i++;
4081
- // grab all the (possibly multi-line) text that follows
4082
- text = lines[i];
4083
- i++;
4084
- while(lines[i] !== '' && i<lines.length){
4085
- text = text + '\n' + lines[i];
4086
- i++;
4087
- }
4088
- text = $.trim(text).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
4089
- // Text is in a different array so I can use .join
4090
- entries.text.push(text);
4091
- entries.times.push(
4092
- {
4093
- start: (mejs.Utility.convertSMPTEtoSeconds(timecode[1]) == 0) ? 0.200 : mejs.Utility.convertSMPTEtoSeconds(timecode[1]),
4094
- stop: mejs.Utility.convertSMPTEtoSeconds(timecode[3]),
4095
- settings: timecode[5]
4096
- });
4097
- }
4098
  }
4099
  }
4100
- return entries;
4101
  }
4102
- },
4103
- // Thanks to Justin Capella: https://github.com/johndyer/mediaelement/pull/420
4104
- dfxp: {
4105
- parse: function(trackText) {
4106
- trackText = $(trackText).filter("tt");
4107
- var
4108
- i = 0,
4109
- container = trackText.children("div").eq(0),
4110
- lines = container.find("p"),
4111
- styleNode = trackText.find("#" + container.attr("style")),
4112
- styles,
4113
- begin,
4114
- end,
4115
- text,
4116
- entries = {text:[], times:[]};
4117
-
4118
-
4119
- if (styleNode.length) {
4120
- var attributes = styleNode.removeAttr("id").get(0).attributes;
4121
- if (attributes.length) {
4122
- styles = {};
4123
- for (i = 0; i < attributes.length; i++) {
4124
- styles[attributes[i].name.split(":")[1]] = attributes[i].value;
4125
- }
4126
- }
4127
- }
4128
 
4129
- for(i = 0; i<lines.length; i++) {
4130
- var style;
4131
- var _temp_times = {
4132
- start: null,
4133
- stop: null,
4134
- style: null
4135
- };
4136
- if (lines.eq(i).attr("begin")) _temp_times.start = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i).attr("begin"));
4137
- if (!_temp_times.start && lines.eq(i-1).attr("end")) _temp_times.start = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i-1).attr("end"));
4138
- if (lines.eq(i).attr("end")) _temp_times.stop = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i).attr("end"));
4139
- if (!_temp_times.stop && lines.eq(i+1).attr("begin")) _temp_times.stop = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i+1).attr("begin"));
4140
- if (styles) {
4141
- style = "";
4142
- for (var _style in styles) {
4143
- style += _style + ":" + styles[_style] + ";";
4144
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4145
  }
4146
- if (style) _temp_times.style = style;
4147
- if (_temp_times.start == 0) _temp_times.start = 0.200;
4148
- entries.times.push(_temp_times);
4149
- text = $.trim(lines.eq(i).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
4150
- entries.text.push(text);
4151
- if (entries.times.start == 0) entries.times.start = 2;
4152
  }
4153
- return entries;
4154
  }
4155
- },
4156
- split2: function (text, regex) {
4157
- // normal version for compliant browsers
4158
- // see below for IE fix
4159
- return text.split(regex);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4160
  }
4161
- };
4162
-
4163
- // test for browsers with bad String.split method.
4164
- if ('x\n\ny'.split(/\n/gi).length != 3) {
4165
- // add super slow IE8 and below version
4166
- mejs.TrackFormatParser.split2 = function(text, regex) {
4167
- var
4168
- parts = [],
4169
- chunk = '',
4170
- i;
4171
-
4172
- for (i=0; i<text.length; i++) {
4173
- chunk += text.substring(i,i+1);
4174
- if (regex.test(chunk)) {
4175
- parts.push(chunk.replace(regex, ''));
4176
- chunk = '';
4177
- }
4178
- }
4179
- parts.push(chunk);
4180
- return parts;
4181
- }
4182
- }
4183
-
4184
- })(mejs.$);
4185
-
4186
- /*
4187
- * ContextMenu Plugin
4188
- *
4189
- *
4190
- */
4191
-
4192
- (function($) {
4193
-
4194
- $.extend(mejs.MepDefaults,
4195
- { 'contextMenuItems': [
4196
- // demo of a fullscreen option
4197
- {
4198
- render: function(player) {
4199
-
4200
- // check for fullscreen plugin
4201
- if (typeof player.enterFullScreen == 'undefined')
4202
- return null;
4203
-
4204
- if (player.isFullScreen) {
4205
- return "Turn off Fullscreen";
4206
- } else {
4207
- return "Go Fullscreen";
4208
- }
4209
- },
4210
- click: function(player) {
4211
- if (player.isFullScreen) {
4212
- player.exitFullScreen();
4213
- } else {
4214
- player.enterFullScreen();
4215
- }
4216
  }
4217
  }
4218
- ,
4219
- // demo of a mute/unmute button
4220
- {
4221
- render: function(player) {
4222
- if (player.media.muted) {
4223
- return "Unmute";
4224
- } else {
4225
- return "Mute";
4226
- }
4227
- },
4228
- click: function(player) {
4229
- if (player.media.muted) {
4230
- player.setMuted(false);
4231
- } else {
4232
- player.setMuted(true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4233
  }
4234
  }
4235
- },
4236
- // separator
4237
- {
4238
- isSeparator: true
4239
- }
4240
- ,
4241
- // demo of simple download video
4242
- {
4243
- render: function(player) {
4244
- return "Download Video";
4245
- },
4246
- click: function(player) {
4247
- window.location.href = player.media.currentSrc;
4248
- }
4249
- }
4250
- ]}
4251
- );
4252
-
4253
-
4254
- $.extend(MediaElementPlayer.prototype, {
4255
- buildcontextmenu: function(player, controls, layers, media) {
4256
-
4257
- // create context menu
4258
- player.contextMenu = $('<div class="mejs-contextmenu"></div>')
4259
- .appendTo($('body'))
4260
- .hide();
4261
-
4262
- // create events for showing context menu
4263
- player.container.bind('contextmenu', function(e) {
4264
- if (player.isContextMenuEnabled) {
4265
- e.preventDefault();
4266
- player.renderContextMenu(e.clientX-1, e.clientY-1);
4267
- return false;
4268
- }
4269
- });
4270
- player.container.bind('click', function() {
4271
- player.contextMenu.hide();
4272
- });
4273
- player.contextMenu.bind('mouseleave', function() {
4274
 
4275
- //console.log('context hover out');
4276
- player.startContextMenuTimer();
4277
-
4278
- });
4279
- },
4280
-
4281
- isContextMenuEnabled: true,
4282
- enableContextMenu: function() {
4283
- this.isContextMenuEnabled = true;
4284
- },
4285
- disableContextMenu: function() {
4286
- this.isContextMenuEnabled = false;
4287
- },
4288
-
4289
- contextMenuTimeout: null,
4290
- startContextMenuTimer: function() {
4291
- //console.log('startContextMenuTimer');
4292
-
4293
- var t = this;
4294
-
4295
- t.killContextMenuTimer();
4296
-
4297
- t.contextMenuTimer = setTimeout(function() {
4298
- t.hideContextMenu();
4299
- t.killContextMenuTimer();
4300
- }, 750);
4301
- },
4302
- killContextMenuTimer: function() {
4303
- var timer = this.contextMenuTimer;
4304
-
4305
- //console.log('killContextMenuTimer', timer);
4306
-
4307
- if (timer != null) {
4308
- clearTimeout(timer);
4309
- delete timer;
4310
- timer = null;
4311
- }
4312
- },
4313
-
4314
- hideContextMenu: function() {
4315
- this.contextMenu.hide();
4316
- },
4317
-
4318
- renderContextMenu: function(x,y) {
4319
-
4320
- // alway re-render the items so that things like "turn fullscreen on" and "turn fullscreen off" are always written correctly
4321
- var t = this,
4322
- html = '',
4323
- items = t.options.contextMenuItems;
4324
-
4325
- for (var i=0, il=items.length; i<il; i++) {
4326
-
4327
- if (items[i].isSeparator) {
4328
- html += '<div class="mejs-contextmenu-separator"></div>';
4329
- } else {
4330
-
4331
- var rendered = items[i].render(t);
4332
-
4333
- // render can return null if the item doesn't need to be used at the moment
4334
- if (rendered != null) {
4335
- html += '<div class="mejs-contextmenu-item" data-itemindex="' + i + '" id="element-' + (Math.random()*1000000) + '">' + rendered + '</div>';
4336
- }
4337
- }
4338
  }
4339
-
4340
- // position and show the context menu
4341
- t.contextMenu
4342
- .empty()
4343
- .append($(html))
4344
- .css({top:y, left:x})
4345
- .show();
4346
-
4347
- // bind events
4348
- t.contextMenu.find('.mejs-contextmenu-item').each(function() {
4349
-
4350
- // which one is this?
4351
- var $dom = $(this),
4352
- itemIndex = parseInt( $dom.data('itemindex'), 10 ),
4353
- item = t.options.contextMenuItems[itemIndex];
4354
-
4355
- // bind extra functionality?
4356
- if (typeof item.show != 'undefined')
4357
- item.show( $dom , t);
4358
-
4359
- // bind click action
4360
- $dom.click(function() {
4361
- // perform click action
4362
- if (typeof item.click != 'undefined')
4363
- item.click(t);
4364
-
4365
- // close
4366
- t.contextMenu.hide();
4367
- });
4368
- });
4369
-
4370
- // stop the controls from hiding
4371
- setTimeout(function() {
4372
- t.killControlsTimer('rev3');
4373
- }, 100);
4374
-
4375
  }
4376
- });
4377
-
4378
- })(mejs.$);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4379
 
 
1
  /*!
2
+ * MediaElement.js
3
+ * http://www.mediaelementjs.com/
4
+ *
5
+ * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
+ * using a variety of technologies (pure JavaScript, Flash, iframe)
7
+ *
8
+ * Copyright 2010-2017, John Dyer (http://j.hn/)
9
+ * License: MIT
10
+ *
11
+ */(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
+ },{}],2:[function(_dereq_,module,exports){
14
+ (function (global){
15
+ var topLevel = typeof global !== 'undefined' ? global :
16
+ typeof window !== 'undefined' ? window : {}
17
+ var minDoc = _dereq_(1);
18
 
19
+ var doccy;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
+ if (typeof document !== 'undefined') {
22
+ doccy = document;
23
+ } else {
24
+ doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];
25
 
26
+ if (!doccy) {
27
+ doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;
28
+ }
29
+ }
30
 
31
+ module.exports = doccy;
32
+
33
+ }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
34
+ },{"1":1}],3:[function(_dereq_,module,exports){
35
+ (function (global){
36
+ var win;
37
+
38
+ if (typeof window !== "undefined") {
39
+ win = window;
40
+ } else if (typeof global !== "undefined") {
41
+ win = global;
42
+ } else if (typeof self !== "undefined"){
43
+ win = self;
44
+ } else {
45
+ win = {};
46
+ }
47
 
48
+ module.exports = win;
49
+
50
+ }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
51
+ },{}],4:[function(_dereq_,module,exports){
52
+ (function (root) {
53
+
54
+ // Store setTimeout reference so promise-polyfill will be unaffected by
55
+ // other code modifying setTimeout (like sinon.useFakeTimers())
56
+ var setTimeoutFunc = setTimeout;
57
+
58
+ function noop() {}
59
+
60
+ // Polyfill for Function.prototype.bind
61
+ function bind(fn, thisArg) {
62
+ return function () {
63
+ fn.apply(thisArg, arguments);
64
+ };
65
+ }
66
+
67
+ function Promise(fn) {
68
+ if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');
69
+ if (typeof fn !== 'function') throw new TypeError('not a function');
70
+ this._state = 0;
71
+ this._handled = false;
72
+ this._value = undefined;
73
+ this._deferreds = [];
74
+
75
+ doResolve(fn, this);
76
+ }
77
+
78
+ function handle(self, deferred) {
79
+ while (self._state === 3) {
80
+ self = self._value;
81
+ }
82
+ if (self._state === 0) {
83
+ self._deferreds.push(deferred);
84
+ return;
85
+ }
86
+ self._handled = true;
87
+ Promise._immediateFn(function () {
88
+ var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;
89
+ if (cb === null) {
90
+ (self._state === 1 ? resolve : reject)(deferred.promise, self._value);
91
+ return;
92
+ }
93
+ var ret;
94
+ try {
95
+ ret = cb(self._value);
96
+ } catch (e) {
97
+ reject(deferred.promise, e);
98
+ return;
99
+ }
100
+ resolve(deferred.promise, ret);
101
+ });
102
+ }
103
+
104
+ function resolve(self, newValue) {
105
+ try {
106
+ // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure
107
+ if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');
108
+ if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {
109
+ var then = newValue.then;
110
+ if (newValue instanceof Promise) {
111
+ self._state = 3;
112
+ self._value = newValue;
113
+ finale(self);
114
+ return;
115
+ } else if (typeof then === 'function') {
116
+ doResolve(bind(then, newValue), self);
117
+ return;
118
+ }
119
+ }
120
+ self._state = 1;
121
+ self._value = newValue;
122
+ finale(self);
123
+ } catch (e) {
124
+ reject(self, e);
125
+ }
126
+ }
127
+
128
+ function reject(self, newValue) {
129
+ self._state = 2;
130
+ self._value = newValue;
131
+ finale(self);
132
+ }
133
+
134
+ function finale(self) {
135
+ if (self._state === 2 && self._deferreds.length === 0) {
136
+ Promise._immediateFn(function() {
137
+ if (!self._handled) {
138
+ Promise._unhandledRejectionFn(self._value);
139
+ }
140
+ });
141
+ }
142
+
143
+ for (var i = 0, len = self._deferreds.length; i < len; i++) {
144
+ handle(self, self._deferreds[i]);
145
+ }
146
+ self._deferreds = null;
147
+ }
148
+
149
+ function Handler(onFulfilled, onRejected, promise) {
150
+ this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
151
+ this.onRejected = typeof onRejected === 'function' ? onRejected : null;
152
+ this.promise = promise;
153
+ }
154
+
155
+ /**
156
+ * Take a potentially misbehaving resolver function and make sure
157
+ * onFulfilled and onRejected are only called once.
158
+ *
159
+ * Makes no guarantees about asynchrony.
160
+ */
161
+ function doResolve(fn, self) {
162
+ var done = false;
163
+ try {
164
+ fn(function (value) {
165
+ if (done) return;
166
+ done = true;
167
+ resolve(self, value);
168
+ }, function (reason) {
169
+ if (done) return;
170
+ done = true;
171
+ reject(self, reason);
172
+ });
173
+ } catch (ex) {
174
+ if (done) return;
175
+ done = true;
176
+ reject(self, ex);
177
+ }
178
+ }
179
+
180
+ Promise.prototype['catch'] = function (onRejected) {
181
+ return this.then(null, onRejected);
182
+ };
183
+
184
+ Promise.prototype.then = function (onFulfilled, onRejected) {
185
+ var prom = new (this.constructor)(noop);
186
+
187
+ handle(this, new Handler(onFulfilled, onRejected, prom));
188
+ return prom;
189
+ };
190
+
191
+ Promise.all = function (arr) {
192
+ var args = Array.prototype.slice.call(arr);
193
+
194
+ return new Promise(function (resolve, reject) {
195
+ if (args.length === 0) return resolve([]);
196
+ var remaining = args.length;
197
+
198
+ function res(i, val) {
199
+ try {
200
+ if (val && (typeof val === 'object' || typeof val === 'function')) {
201
+ var then = val.then;
202
+ if (typeof then === 'function') {
203
+ then.call(val, function (val) {
204
+ res(i, val);
205
+ }, reject);
206
+ return;
207
+ }
208
+ }
209
+ args[i] = val;
210
+ if (--remaining === 0) {
211
+ resolve(args);
212
+ }
213
+ } catch (ex) {
214
+ reject(ex);
215
+ }
216
+ }
217
+
218
+ for (var i = 0; i < args.length; i++) {
219
+ res(i, args[i]);
220
+ }
221
+ });
222
+ };
223
+
224
+ Promise.resolve = function (value) {
225
+ if (value && typeof value === 'object' && value.constructor === Promise) {
226
+ return value;
227
+ }
228
+
229
+ return new Promise(function (resolve) {
230
+ resolve(value);
231
+ });
232
+ };
233
+
234
+ Promise.reject = function (value) {
235
+ return new Promise(function (resolve, reject) {
236
+ reject(value);
237
+ });
238
+ };
239
+
240
+ Promise.race = function (values) {
241
+ return new Promise(function (resolve, reject) {
242
+ for (var i = 0, len = values.length; i < len; i++) {
243
+ values[i].then(resolve, reject);
244
+ }
245
+ });
246
+ };
247
+
248
+ // Use polyfill for setImmediate for performance gains
249
+ Promise._immediateFn = (typeof setImmediate === 'function' && function (fn) { setImmediate(fn); }) ||
250
+ function (fn) {
251
+ setTimeoutFunc(fn, 0);
252
+ };
253
+
254
+ Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {
255
+ if (typeof console !== 'undefined' && console) {
256
+ console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console
257
+ }
258
+ };
259
+
260
+ /**
261
+ * Set the immediate function to execute callbacks
262
+ * @param fn {function} Function to execute
263
+ * @deprecated
264
+ */
265
+ Promise._setImmediateFn = function _setImmediateFn(fn) {
266
+ Promise._immediateFn = fn;
267
+ };
268
+
269
+ /**
270
+ * Change the function to execute on unhandled rejection
271
+ * @param {function} fn Function to execute on unhandled rejection
272
+ * @deprecated
273
+ */
274
+ Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {
275
+ Promise._unhandledRejectionFn = fn;
276
+ };
277
+
278
+ if (typeof module !== 'undefined' && module.exports) {
279
+ module.exports = Promise;
280
+ } else if (!root.Promise) {
281
+ root.Promise = Promise;
282
+ }
283
+
284
+ })(this);
285
+
286
+ },{}],5:[function(_dereq_,module,exports){
287
+ 'use strict';
288
+
289
+ Object.defineProperty(exports, "__esModule", {
290
+ value: true
291
+ });
292
 
293
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
 
294
 
295
+ var _mejs = _dereq_(7);
 
 
 
296
 
297
+ var _mejs2 = _interopRequireDefault(_mejs);
 
298
 
299
+ var _en = _dereq_(15);
 
 
 
300
 
301
+ var _general = _dereq_(27);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
 
303
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
 
 
 
 
 
 
304
 
305
+ var i18n = { lang: 'en', en: _en.EN };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
306
 
307
+ i18n.language = function () {
308
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
309
+ args[_key] = arguments[_key];
310
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
 
312
+ if (args !== null && args !== undefined && args.length) {
 
 
313
 
314
+ if (typeof args[0] !== 'string') {
315
+ throw new TypeError('Language code must be a string value');
316
+ }
317
 
318
+ if (!/^[a-z]{2,3}((\-|_)[a-z]{2})?$/i.test(args[0])) {
319
+ throw new TypeError('Language code must have format 2-3 letters and. optionally, hyphen, underscore followed by 2 more letters');
320
+ }
 
321
 
322
+ i18n.lang = args[0];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
323
 
324
+ if (i18n[args[0]] === undefined) {
325
+ args[1] = args[1] !== null && args[1] !== undefined && _typeof(args[1]) === 'object' ? args[1] : {};
326
+ i18n[args[0]] = !(0, _general.isObjectEmpty)(args[1]) ? args[1] : _en.EN;
327
+ } else if (args[1] !== null && args[1] !== undefined && _typeof(args[1]) === 'object') {
328
+ i18n[args[0]] = args[1];
 
329
  }
 
 
 
 
 
330
  }
 
331
 
332
+ return i18n.lang;
 
 
 
 
 
 
 
333
  };
334
 
335
+ i18n.t = function (message) {
336
+ var pluralParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
 
 
337
 
 
 
 
 
338
 
339
+ if (typeof message === 'string' && message.length) {
 
 
 
 
340
 
341
+ var str = void 0,
342
+ pluralForm = void 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
 
344
+ var language = i18n.language();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
345
 
346
+ var _plural = function _plural(input, number, form) {
 
 
 
 
 
 
 
347
 
348
+ if ((typeof input === 'undefined' ? 'undefined' : _typeof(input)) !== 'object' || typeof number !== 'number' || typeof form !== 'number') {
349
+ return input;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
350
  }
 
 
 
351
 
352
+ var _pluralForms = function () {
353
+ return [function () {
354
+ return arguments.length <= 1 ? undefined : arguments[1];
355
+ }, function () {
356
+ return (arguments.length <= 0 ? undefined : arguments[0]) === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
357
+ }, function () {
358
+ return (arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
359
+ }, function () {
360
+ if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) {
361
+ return arguments.length <= 1 ? undefined : arguments[1];
362
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) !== 0) {
363
+ return arguments.length <= 2 ? undefined : arguments[2];
364
+ } else {
365
+ return arguments.length <= 3 ? undefined : arguments[3];
366
+ }
367
+ }, function () {
368
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1 || (arguments.length <= 0 ? undefined : arguments[0]) === 11) {
369
+ return arguments.length <= 1 ? undefined : arguments[1];
370
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2 || (arguments.length <= 0 ? undefined : arguments[0]) === 12) {
371
+ return arguments.length <= 2 ? undefined : arguments[2];
372
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 2 && (arguments.length <= 0 ? undefined : arguments[0]) < 20) {
373
+ return arguments.length <= 3 ? undefined : arguments[3];
374
+ } else {
375
+ return arguments.length <= 4 ? undefined : arguments[4];
376
+ }
377
+ }, function () {
378
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
379
+ return arguments.length <= 1 ? undefined : arguments[1];
380
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 > 0 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 20) {
381
+ return arguments.length <= 2 ? undefined : arguments[2];
382
+ } else {
383
+ return arguments.length <= 3 ? undefined : arguments[3];
384
+ }
385
+ }, function () {
386
+ if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) {
387
+ return arguments.length <= 1 ? undefined : arguments[1];
388
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
389
+ return arguments.length <= 2 ? undefined : arguments[2];
390
+ } else {
391
+ return [3];
392
+ }
393
+ }, function () {
394
+ if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) {
395
+ return arguments.length <= 1 ? undefined : arguments[1];
396
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
397
+ return arguments.length <= 2 ? undefined : arguments[2];
398
+ } else {
399
+ return arguments.length <= 3 ? undefined : arguments[3];
400
+ }
401
+ }, function () {
402
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
403
+ return arguments.length <= 1 ? undefined : arguments[1];
404
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) <= 4) {
405
+ return arguments.length <= 2 ? undefined : arguments[2];
406
+ } else {
407
+ return arguments.length <= 3 ? undefined : arguments[3];
408
+ }
409
+ }, function () {
410
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
411
+ return arguments.length <= 1 ? undefined : arguments[1];
412
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
413
+ return arguments.length <= 2 ? undefined : arguments[2];
414
+ } else {
415
+ return arguments.length <= 3 ? undefined : arguments[3];
416
+ }
417
+ }, function () {
418
+ if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 1) {
419
+ return arguments.length <= 2 ? undefined : arguments[2];
420
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 2) {
421
+ return arguments.length <= 3 ? undefined : arguments[3];
422
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 3 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 === 4) {
423
+ return arguments.length <= 4 ? undefined : arguments[4];
424
+ } else {
425
+ return arguments.length <= 1 ? undefined : arguments[1];
426
+ }
427
+ }, function () {
428
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
429
+ return arguments.length <= 1 ? undefined : arguments[1];
430
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
431
+ return arguments.length <= 2 ? undefined : arguments[2];
432
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 2 && (arguments.length <= 0 ? undefined : arguments[0]) < 7) {
433
+ return arguments.length <= 3 ? undefined : arguments[3];
434
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 6 && (arguments.length <= 0 ? undefined : arguments[0]) < 11) {
435
+ return arguments.length <= 4 ? undefined : arguments[4];
436
+ } else {
437
+ return arguments.length <= 5 ? undefined : arguments[5];
438
+ }
439
+ }, function () {
440
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 0) {
441
+ return arguments.length <= 1 ? undefined : arguments[1];
442
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
443
+ return arguments.length <= 2 ? undefined : arguments[2];
444
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
445
+ return arguments.length <= 3 ? undefined : arguments[3];
446
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 3 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 <= 10) {
447
+ return arguments.length <= 4 ? undefined : arguments[4];
448
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 11) {
449
+ return arguments.length <= 5 ? undefined : arguments[5];
450
+ } else {
451
+ return arguments.length <= 6 ? undefined : arguments[6];
452
+ }
453
+ }, function () {
454
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
455
+ return arguments.length <= 1 ? undefined : arguments[1];
456
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 > 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 11) {
457
+ return arguments.length <= 2 ? undefined : arguments[2];
458
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 > 10 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 20) {
459
+ return arguments.length <= 3 ? undefined : arguments[3];
460
+ } else {
461
+ return arguments.length <= 4 ? undefined : arguments[4];
462
+ }
463
+ }, function () {
464
+ if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1) {
465
+ return arguments.length <= 1 ? undefined : arguments[1];
466
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 2) {
467
+ return arguments.length <= 2 ? undefined : arguments[2];
468
+ } else {
469
+ return arguments.length <= 3 ? undefined : arguments[3];
470
+ }
471
+ }, function () {
472
+ return (arguments.length <= 0 ? undefined : arguments[0]) !== 11 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
473
+ }, function () {
474
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
475
+ return arguments.length <= 1 ? undefined : arguments[1];
476
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
477
+ return arguments.length <= 2 ? undefined : arguments[2];
478
+ } else {
479
+ return arguments.length <= 3 ? undefined : arguments[3];
480
+ }
481
+ }, function () {
482
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
483
+ return arguments.length <= 1 ? undefined : arguments[1];
484
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
485
+ return arguments.length <= 2 ? undefined : arguments[2];
486
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) !== 8 && (arguments.length <= 0 ? undefined : arguments[0]) !== 11) {
487
+ return arguments.length <= 3 ? undefined : arguments[3];
488
+ } else {
489
+ return arguments.length <= 4 ? undefined : arguments[4];
490
+ }
491
+ }, function () {
492
+ return (arguments.length <= 0 ? undefined : arguments[0]) === 0 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
493
+ }, function () {
494
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
495
+ return arguments.length <= 1 ? undefined : arguments[1];
496
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
497
+ return arguments.length <= 2 ? undefined : arguments[2];
498
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 3) {
499
+ return arguments.length <= 3 ? undefined : arguments[3];
500
+ } else {
501
+ return arguments.length <= 4 ? undefined : arguments[4];
502
+ }
503
+ }, function () {
504
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 0) {
505
+ return arguments.length <= 1 ? undefined : arguments[1];
506
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
507
+ return arguments.length <= 2 ? undefined : arguments[2];
508
+ } else {
509
+ return arguments.length <= 3 ? undefined : arguments[3];
510
+ }
511
+ }];
512
+ }();
513
 
514
+ return _pluralForms[form].apply(null, [number].concat(input));
515
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
516
 
517
+ if (i18n[language] !== undefined) {
518
+ str = i18n[language][message];
519
+ if (pluralParam !== null && typeof pluralParam === 'number') {
520
+ pluralForm = i18n[language]['mejs.plural-form'];
521
+ str = _plural.apply(null, [str, pluralParam, pluralForm]);
 
 
 
 
 
 
 
 
 
522
  }
523
  }
 
 
 
 
 
 
524
 
525
+ if (!str && i18n.en) {
526
+ str = i18n.en[message];
527
+ if (pluralParam !== null && typeof pluralParam === 'number') {
528
+ pluralForm = i18n.en['mejs.plural-form'];
529
+ str = _plural.apply(null, [str, pluralParam, pluralForm]);
530
  }
531
  }
532
+
533
+ str = str || message;
534
+
535
+ if (pluralParam !== null && typeof pluralParam === 'number') {
536
+ str = str.replace('%1', pluralParam);
 
 
 
 
 
 
 
 
 
537
  }
 
 
 
 
 
538
 
539
+ return (0, _general.escapeHTML)(str);
 
540
  }
541
+
542
+ return message;
543
  };
544
 
545
+ _mejs2.default.i18n = i18n;
 
546
 
547
+ if (typeof mejsL10n !== 'undefined') {
548
+ _mejs2.default.i18n.language(mejsL10n.language, mejsL10n.strings);
549
+ }
550
 
551
+ exports.default = i18n;
 
 
 
552
 
553
+ },{"15":15,"27":27,"7":7}],6:[function(_dereq_,module,exports){
554
+ 'use strict';
555
 
556
+ Object.defineProperty(exports, "__esModule", {
557
+ value: true
558
+ });
559
 
560
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
561
 
562
+ var _window = _dereq_(3);
 
 
563
 
564
+ var _window2 = _interopRequireDefault(_window);
 
 
 
 
565
 
566
+ var _document = _dereq_(2);
 
567
 
568
+ var _document2 = _interopRequireDefault(_document);
 
 
 
 
569
 
570
+ var _mejs = _dereq_(7);
 
 
 
 
571
 
572
+ var _mejs2 = _interopRequireDefault(_mejs);
 
573
 
574
+ var _general = _dereq_(27);
 
 
 
 
 
 
 
 
575
 
576
+ var _media2 = _dereq_(28);
 
 
577
 
578
+ var _renderer = _dereq_(8);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
579
 
580
+ var _constants = _dereq_(25);
 
 
 
 
 
 
 
581
 
582
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
583
 
584
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
 
 
585
 
586
+ var MediaElement = function MediaElement(idOrNode, options, sources) {
587
+ var _this = this;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
588
 
589
+ _classCallCheck(this, MediaElement);
 
 
 
590
 
591
+ var t = this;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
592
 
593
+ sources = Array.isArray(sources) ? sources : null;
 
 
 
594
 
595
+ t.defaults = {
596
+ renderers: [],
597
 
598
+ fakeNodeName: 'mediaelementwrapper',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
599
 
600
+ pluginPath: 'build/',
 
 
 
601
 
602
+ shimScriptAccess: 'sameDomain'
603
+ };
604
 
605
+ options = Object.assign(t.defaults, options);
 
606
 
607
+ t.mediaElement = _document2.default.createElement(options.fakeNodeName);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
608
 
609
+ var id = idOrNode,
610
+ error = false;
 
 
 
 
611
 
612
+ if (typeof idOrNode === 'string') {
613
+ t.mediaElement.originalNode = _document2.default.getElementById(idOrNode);
614
+ } else {
615
+ t.mediaElement.originalNode = idOrNode;
616
+ id = idOrNode.id;
617
+ }
618
 
619
+ if (t.mediaElement.originalNode === undefined || t.mediaElement.originalNode === null) {
620
+ return null;
621
+ }
622
 
623
+ t.mediaElement.options = options;
624
+ id = id || 'mejs_' + Math.random().toString().slice(2);
625
 
626
+ t.mediaElement.originalNode.setAttribute('id', id + '_from_mejs');
 
627
 
628
+ var tagName = t.mediaElement.originalNode.tagName.toLowerCase();
629
+ if (['video', 'audio'].indexOf(tagName) > -1 && !t.mediaElement.originalNode.getAttribute('preload')) {
630
+ t.mediaElement.originalNode.setAttribute('preload', 'none');
631
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
632
 
633
+ t.mediaElement.originalNode.parentNode.insertBefore(t.mediaElement, t.mediaElement.originalNode);
 
 
 
 
 
 
 
 
 
 
 
 
 
634
 
635
+ t.mediaElement.appendChild(t.mediaElement.originalNode);
 
 
636
 
637
+ var processURL = function processURL(url, type) {
638
+ if (_window2.default.location.protocol === 'https:' && url.indexOf('http:') === 0 && _constants.IS_IOS && _mejs2.default.html5media.mediaTypes.indexOf(type) > -1) {
639
+ var xhr = new XMLHttpRequest();
640
+ xhr.onreadystatechange = function () {
641
+ if (this.readyState === 4 && this.status === 200) {
642
+ var _url = _window2.default.URL || _window2.default.webkitURL,
643
+ blobUrl = _url.createObjectURL(this.response);
644
+ t.mediaElement.originalNode.setAttribute('src', blobUrl);
645
+ return blobUrl;
646
+ }
647
+ return url;
648
+ };
649
+ xhr.open('GET', url);
650
+ xhr.responseType = 'blob';
651
+ xhr.send();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
652
  }
 
 
 
 
 
 
 
 
 
653
 
654
+ return url;
655
+ };
 
 
 
 
 
 
 
 
 
 
656
 
657
+ var mediaFiles = void 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
658
 
659
+ if (sources !== null) {
660
+ mediaFiles = sources;
661
+ } else if (t.mediaElement.originalNode !== null) {
662
 
663
+ mediaFiles = [];
664
+
665
+ switch (t.mediaElement.originalNode.nodeName.toLowerCase()) {
666
+ case 'iframe':
667
+ mediaFiles.push({
668
+ type: '',
669
+ src: t.mediaElement.originalNode.getAttribute('src')
670
+ });
 
 
 
 
 
 
 
671
  break;
672
+ case 'audio':
673
+ case 'video':
674
+ var _sources = t.mediaElement.originalNode.children.length,
675
+ nodeSource = t.mediaElement.originalNode.getAttribute('src');
676
+
677
+ if (nodeSource) {
678
+ var node = t.mediaElement.originalNode,
679
+ type = (0, _media2.formatType)(nodeSource, node.getAttribute('type'));
680
+ mediaFiles.push({
681
+ type: type,
682
+ src: processURL(nodeSource, type)
683
+ });
 
 
 
 
 
 
 
 
684
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
685
 
686
+ for (var i = 0; i < _sources; i++) {
687
+ var n = t.mediaElement.originalNode.children[i];
688
+ if (n.tagName.toLowerCase() === 'source') {
689
+ var src = n.getAttribute('src'),
690
+ _type = (0, _media2.formatType)(src, n.getAttribute('type'));
691
+ mediaFiles.push({ type: _type, src: processURL(src, _type) });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
692
  }
693
+ }
694
+ break;
 
 
 
 
695
  }
 
 
 
 
 
 
696
  }
 
697
 
698
+ t.mediaElement.id = id;
699
+ t.mediaElement.renderers = {};
700
+ t.mediaElement.events = {};
701
+ t.mediaElement.promises = [];
702
+ t.mediaElement.renderer = null;
703
+ t.mediaElement.rendererName = null;
704
 
705
+ t.mediaElement.changeRenderer = function (rendererName, mediaFiles) {
706
+
707
+ var t = _this,
708
+ media = Object.keys(mediaFiles[0]).length > 2 ? mediaFiles[0] : mediaFiles[0].src;
709
+
710
+ if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && t.mediaElement.renderer.name === rendererName) {
711
+ t.mediaElement.renderer.pause();
712
+ if (t.mediaElement.renderer.stop) {
713
+ t.mediaElement.renderer.stop();
714
+ }
715
+ t.mediaElement.renderer.show();
716
+ t.mediaElement.renderer.setSrc(media);
717
+ return true;
718
  }
719
+
720
+ if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) {
721
+ t.mediaElement.renderer.pause();
722
+ if (t.mediaElement.renderer.stop) {
723
+ t.mediaElement.renderer.stop();
724
+ }
725
+ t.mediaElement.renderer.hide();
 
 
726
  }
727
+
728
+ var newRenderer = t.mediaElement.renderers[rendererName],
729
+ newRendererType = null;
730
+
731
+ if (newRenderer !== undefined && newRenderer !== null) {
732
+ newRenderer.show();
733
+ newRenderer.setSrc(media);
734
+ t.mediaElement.renderer = newRenderer;
735
+ t.mediaElement.rendererName = rendererName;
736
+ return true;
737
+ }
738
+
739
+ var rendererArray = t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : _renderer.renderer.order;
740
+
741
+ for (var _i = 0, total = rendererArray.length; _i < total; _i++) {
742
+ var index = rendererArray[_i];
743
+
744
+ if (index === rendererName) {
745
+ var rendererList = _renderer.renderer.renderers;
746
+ newRendererType = rendererList[index];
747
+
748
+ var renderOptions = Object.assign(newRendererType.options, t.mediaElement.options);
749
+ newRenderer = newRendererType.create(t.mediaElement, renderOptions, mediaFiles);
750
+ newRenderer.name = rendererName;
751
+
752
+ t.mediaElement.renderers[newRendererType.name] = newRenderer;
753
+ t.mediaElement.renderer = newRenderer;
754
+ t.mediaElement.rendererName = rendererName;
755
+ newRenderer.show();
756
+ return true;
757
  }
758
+ }
759
+
760
+ return false;
761
+ };
762
+
763
+ t.mediaElement.setSize = function (width, height) {
764
+ if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) {
765
+ t.mediaElement.renderer.setSize(width, height);
766
+ }
767
+ };
768
+
769
+ t.mediaElement.generateError = function (message, urlList) {
770
+ message = message || '';
771
+ urlList = Array.isArray(urlList) ? urlList : [];
772
+ var event = (0, _general.createEvent)('error', t.mediaElement);
773
+ event.message = message;
774
+ event.urls = urlList;
775
+ t.mediaElement.dispatchEvent(event);
776
+ error = true;
777
+ };
778
+
779
+ var props = _mejs2.default.html5media.properties,
780
+ methods = _mejs2.default.html5media.methods,
781
+ addProperty = function addProperty(obj, name, onGet, onSet) {
782
+ var oldValue = obj[name];
783
+ var getFn = function getFn() {
784
+ return onGet.apply(obj, [oldValue]);
785
+ },
786
+ setFn = function setFn(newValue) {
787
+ oldValue = onSet.apply(obj, [newValue]);
788
+ return oldValue;
789
+ };
790
+
791
+ Object.defineProperty(obj, name, {
792
+ get: getFn,
793
+ set: setFn
794
  });
795
  },
796
+ assignGettersSetters = function assignGettersSetters(propName) {
797
+ if (propName !== 'src') {
 
 
 
 
798
 
799
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1),
800
+ getFn = function getFn() {
801
+ return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['get' + capName] === 'function' ? t.mediaElement.renderer['get' + capName]() : null;
802
+ },
803
+ setFn = function setFn(value) {
804
+ if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['set' + capName] === 'function') {
805
+ t.mediaElement.renderer['set' + capName](value);
806
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
807
  };
808
+
809
+ addProperty(t.mediaElement, propName, getFn, setFn);
810
+ t.mediaElement['get' + capName] = getFn;
811
+ t.mediaElement['set' + capName] = setFn;
812
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
813
  },
814
+ getSrc = function getSrc() {
815
+ return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null ? t.mediaElement.renderer.getSrc() : null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
816
  },
817
+ setSrc = function setSrc(value) {
818
+ var mediaFiles = [];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
819
 
820
+ if (typeof value === 'string') {
821
+ mediaFiles.push({
822
+ src: value,
823
+ type: value ? (0, _media2.getTypeFromFile)(value) : ''
824
+ });
825
+ } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src !== undefined) {
826
+ var _src = (0, _media2.absolutizeUrl)(value.src),
827
+ _type2 = value.type,
828
+ media = Object.assign(value, {
829
+ src: _src,
830
+ type: (_type2 === '' || _type2 === null || _type2 === undefined) && _src ? (0, _media2.getTypeFromFile)(_src) : _type2
831
+ });
832
+ mediaFiles.push(media);
833
+ } else if (Array.isArray(value)) {
834
+ for (var _i2 = 0, total = value.length; _i2 < total; _i2++) {
835
+
836
+ var _src2 = (0, _media2.absolutizeUrl)(value[_i2].src),
837
+ _type3 = value[_i2].type,
838
+ _media = Object.assign(value[_i2], {
839
+ src: _src2,
840
+ type: (_type3 === '' || _type3 === null || _type3 === undefined) && _src2 ? (0, _media2.getTypeFromFile)(_src2) : _type3
841
+ });
842
 
843
+ mediaFiles.push(_media);
844
+ }
845
+ }
846
 
847
+ var renderInfo = _renderer.renderer.select(mediaFiles, t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : []),
848
+ event = void 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
849
 
850
+ if (!t.mediaElement.paused) {
851
+ t.mediaElement.pause();
852
+ event = (0, _general.createEvent)('pause', t.mediaElement);
853
+ t.mediaElement.dispatchEvent(event);
854
+ }
855
+ t.mediaElement.originalNode.src = mediaFiles[0].src || '';
856
+
857
+ if (renderInfo === null && mediaFiles[0].src) {
858
+ t.mediaElement.generateError('No renderer found', mediaFiles);
859
+ return;
860
+ }
861
+
862
+ return mediaFiles[0].src ? t.mediaElement.changeRenderer(renderInfo.rendererName, mediaFiles) : null;
863
+ },
864
+ triggerAction = function triggerAction(methodName, args) {
865
+ try {
866
+ if (methodName === 'play' && t.mediaElement.rendererName === 'native_dash') {
867
+ var response = t.mediaElement.renderer[methodName](args);
868
+ if (response && typeof response.then === 'function') {
869
+ response.catch(function () {
870
+ if (t.mediaElement.paused) {
871
+ setTimeout(function () {
872
+ var tmpResponse = t.mediaElement.renderer.play();
873
+ if (tmpResponse !== undefined) {
874
+ tmpResponse.catch(function () {
875
+ if (!t.mediaElement.renderer.paused) {
876
+ t.mediaElement.renderer.pause();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
877
  }
878
+ });
879
  }
880
+ }, 150);
881
  }
882
+ });
883
+ }
884
+ } else {
885
+ t.mediaElement.renderer[methodName](args);
886
+ }
887
+ } catch (e) {
888
+ t.mediaElement.generateError(e, mediaFiles);
889
+ }
890
+ },
891
+ assignMethods = function assignMethods(methodName) {
892
+ t.mediaElement[methodName] = function () {
893
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
894
+ args[_key] = arguments[_key];
895
+ }
896
+
897
+ if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer[methodName] === 'function') {
898
+ if (t.mediaElement.promises.length) {
899
+ Promise.all(t.mediaElement.promises).then(function () {
900
+ triggerAction(methodName, args);
901
+ }).catch(function (e) {
902
+ t.mediaElement.generateError(e, mediaFiles);
903
+ });
904
+ } else {
905
+ triggerAction(methodName, args);
906
+ }
907
+ }
908
+ return null;
909
+ };
910
  };
911
 
912
+ addProperty(t.mediaElement, 'src', getSrc, setSrc);
913
+ t.mediaElement.getSrc = getSrc;
914
+ t.mediaElement.setSrc = setSrc;
915
 
916
+ for (var _i3 = 0, total = props.length; _i3 < total; _i3++) {
917
+ assignGettersSetters(props[_i3]);
918
+ }
 
 
 
919
 
920
+ for (var _i4 = 0, _total = methods.length; _i4 < _total; _i4++) {
921
+ assignMethods(methods[_i4]);
922
+ }
923
+
924
+ t.mediaElement.addEventListener = function (eventName, callback) {
925
+ t.mediaElement.events[eventName] = t.mediaElement.events[eventName] || [];
926
+
927
+ t.mediaElement.events[eventName].push(callback);
928
+ };
929
+ t.mediaElement.removeEventListener = function (eventName, callback) {
930
+ if (!eventName) {
931
+ t.mediaElement.events = {};
932
+ return true;
933
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
934
 
935
+ var callbacks = t.mediaElement.events[eventName];
936
+
937
+ if (!callbacks) {
938
+ return true;
939
+ }
940
+
941
+ if (!callback) {
942
+ t.mediaElement.events[eventName] = [];
943
+ return true;
944
+ }
945
+
946
+ for (var _i5 = 0; _i5 < callbacks.length; _i5++) {
947
+ if (callbacks[_i5] === callback) {
948
+ t.mediaElement.events[eventName].splice(_i5, 1);
949
+ return true;
950
+ }
951
+ }
952
+ return false;
953
  };
954
 
955
+ t.mediaElement.dispatchEvent = function (event) {
956
+ var callbacks = t.mediaElement.events[event.type];
957
+ if (callbacks) {
958
+ for (var _i6 = 0; _i6 < callbacks.length; _i6++) {
959
+ callbacks[_i6].apply(null, [event]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
960
  }
961
+ }
962
+ };
 
 
 
 
963
 
964
+ t.mediaElement.destroy = function () {
965
+ var mediaElement = t.mediaElement.originalNode.cloneNode(true);
966
+ var wrapper = t.mediaElement.parentElement;
967
+ mediaElement.removeAttribute('id');
968
+ mediaElement.remove();
969
+ t.mediaElement.remove();
970
+ wrapper.append(mediaElement);
971
+ };
972
 
973
+ if (mediaFiles.length) {
974
+ t.mediaElement.src = mediaFiles;
975
+ }
 
 
 
 
 
 
976
 
977
+ if (t.mediaElement.promises.length) {
978
+ Promise.all(t.mediaElement.promises).then(function () {
979
+ if (t.mediaElement.options.success) {
980
+ t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode);
981
+ }
982
+ }).catch(function () {
983
+ if (error && t.mediaElement.options.error) {
984
+ t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode);
985
+ }
986
+ });
987
+ } else {
988
+ if (t.mediaElement.options.success) {
989
+ t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode);
990
+ }
991
 
992
+ if (error && t.mediaElement.options.error) {
993
+ t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode);
994
+ }
995
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
996
 
997
+ return t.mediaElement;
998
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
999
 
1000
+ _window2.default.MediaElement = MediaElement;
1001
+ _mejs2.default.MediaElement = MediaElement;
 
 
 
 
 
 
 
1002
 
1003
+ exports.default = MediaElement;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1004
 
1005
+ },{"2":2,"25":25,"27":27,"28":28,"3":3,"7":7,"8":8}],7:[function(_dereq_,module,exports){
1006
+ 'use strict';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1007
 
1008
+ Object.defineProperty(exports, "__esModule", {
1009
+ value: true
1010
+ });
1011
 
1012
+ var _window = _dereq_(3);
1013
 
1014
+ var _window2 = _interopRequireDefault(_window);
 
 
1015
 
1016
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1017
 
1018
+ var mejs = {};
 
 
 
 
 
1019
 
1020
+ mejs.version = '4.2.8';
1021
 
1022
+ mejs.html5media = {
1023
+ properties: ['volume', 'src', 'currentTime', 'muted', 'duration', 'paused', 'ended', 'buffered', 'error', 'networkState', 'readyState', 'seeking', 'seekable', 'currentSrc', 'preload', 'bufferedBytes', 'bufferedTime', 'initialTime', 'startOffsetTime', 'defaultPlaybackRate', 'playbackRate', 'played', 'autoplay', 'loop', 'controls'],
1024
+ readOnlyProperties: ['duration', 'paused', 'ended', 'buffered', 'error', 'networkState', 'readyState', 'seeking', 'seekable'],
1025
 
1026
+ methods: ['load', 'play', 'pause', 'canPlayType'],
1027
+
1028
+ events: ['loadstart', 'durationchange', 'loadedmetadata', 'loadeddata', 'progress', 'canplay', 'canplaythrough', 'suspend', 'abort', 'error', 'emptied', 'stalled', 'play', 'playing', 'pause', 'waiting', 'seeking', 'seeked', 'timeupdate', 'ended', 'ratechange', 'volumechange'],
1029
+
1030
+ mediaTypes: ['audio/mp3', 'audio/ogg', 'audio/oga', 'audio/wav', 'audio/x-wav', 'audio/wave', 'audio/x-pn-wav', 'audio/mpeg', 'audio/mp4', 'video/mp4', 'video/webm', 'video/ogg', 'video/ogv']
1031
+ };
1032
+
1033
+ _window2.default.mejs = mejs;
1034
+
1035
+ exports.default = mejs;
1036
+
1037
+ },{"3":3}],8:[function(_dereq_,module,exports){
1038
+ 'use strict';
1039
+
1040
+ Object.defineProperty(exports, "__esModule", {
1041
+ value: true
1042
+ });
1043
+ exports.renderer = undefined;
1044
+
1045
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
1046
+
1047
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
1048
+
1049
+ var _mejs = _dereq_(7);
1050
+
1051
+ var _mejs2 = _interopRequireDefault(_mejs);
1052
+
1053
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1054
+
1055
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1056
+
1057
+ var Renderer = function () {
1058
+ function Renderer() {
1059
+ _classCallCheck(this, Renderer);
1060
+
1061
+ this.renderers = {};
1062
+ this.order = [];
1063
+ }
1064
+
1065
+ _createClass(Renderer, [{
1066
+ key: 'add',
1067
+ value: function add(renderer) {
1068
+ if (renderer.name === undefined) {
1069
+ throw new TypeError('renderer must contain at least `name` property');
1070
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1071
 
1072
+ this.renderers[renderer.name] = renderer;
1073
+ this.order.push(renderer.name);
1074
+ }
1075
+ }, {
1076
+ key: 'select',
1077
+ value: function select(mediaFiles) {
1078
+ var renderers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
 
 
 
 
 
 
 
 
 
1079
 
1080
+ var renderersLength = renderers.length;
1081
+
1082
+ renderers = renderers.length ? renderers : this.order;
1083
+
1084
+ if (!renderersLength) {
1085
+ var rendererIndicator = [/^(html5|native)/i, /^flash/i, /iframe$/i],
1086
+ rendererRanking = function rendererRanking(renderer) {
1087
+ for (var i = 0, total = rendererIndicator.length; i < total; i++) {
1088
+ if (rendererIndicator[i].test(renderer)) {
1089
+ return i;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1090
  }
1091
  }
1092
+ return rendererIndicator.length;
1093
+ };
1094
 
1095
+ renderers.sort(function (a, b) {
1096
+ return rendererRanking(a) - rendererRanking(b);
1097
+ });
1098
+ }
 
 
1099
 
1100
+ for (var i = 0, total = renderers.length; i < total; i++) {
1101
+ var key = renderers[i],
1102
+ _renderer = this.renderers[key];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1103
 
1104
+ if (_renderer !== null && _renderer !== undefined) {
1105
+ for (var j = 0, jl = mediaFiles.length; j < jl; j++) {
1106
+ if (typeof _renderer.canPlayType === 'function' && typeof mediaFiles[j].type === 'string' && _renderer.canPlayType(mediaFiles[j].type)) {
1107
+ return {
1108
+ rendererName: _renderer.name,
1109
+ src: mediaFiles[j].src
1110
+ };
1111
+ }
 
 
 
1112
  }
1113
  }
1114
+ }
 
1115
 
1116
+ return null;
1117
+ }
1118
+ }, {
1119
+ key: 'order',
1120
+ set: function set(order) {
1121
+ if (!Array.isArray(order)) {
1122
+ throw new TypeError('order must be an array of strings.');
1123
+ }
 
 
 
 
 
 
 
1124
 
1125
+ this._order = order;
1126
+ },
1127
+ get: function get() {
1128
+ return this._order;
1129
+ }
1130
+ }, {
1131
+ key: 'renderers',
1132
+ set: function set(renderers) {
1133
+ if (renderers !== null && (typeof renderers === 'undefined' ? 'undefined' : _typeof(renderers)) !== 'object') {
1134
+ throw new TypeError('renderers must be an array of objects.');
1135
+ }
 
 
1136
 
1137
+ this._renderers = renderers;
1138
+ },
1139
+ get: function get() {
1140
+ return this._renderers;
1141
+ }
1142
+ }]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1143
 
1144
+ return Renderer;
1145
+ }();
1146
 
1147
+ var renderer = exports.renderer = new Renderer();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1148
 
1149
+ _mejs2.default.Renderers = renderer;
 
 
 
 
 
 
 
 
 
 
1150
 
1151
+ },{"7":7}],9:[function(_dereq_,module,exports){
1152
+ 'use strict';
1153
 
1154
+ var _window = _dereq_(3);
 
 
 
 
 
 
 
 
1155
 
1156
+ var _window2 = _interopRequireDefault(_window);
 
 
 
 
 
 
 
 
 
1157
 
1158
+ var _document = _dereq_(2);
 
1159
 
1160
+ var _document2 = _interopRequireDefault(_document);
 
 
 
 
1161
 
1162
+ var _i18n = _dereq_(5);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1163
 
1164
+ var _i18n2 = _interopRequireDefault(_i18n);
 
 
 
 
 
 
 
 
 
1165
 
1166
+ var _player = _dereq_(16);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1167
 
1168
+ var _player2 = _interopRequireDefault(_player);
1169
 
1170
+ var _constants = _dereq_(25);
 
 
 
 
 
 
1171
 
1172
+ var Features = _interopRequireWildcard(_constants);
 
 
 
 
 
 
 
 
 
 
1173
 
1174
+ var _general = _dereq_(27);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1175
 
1176
+ var _dom = _dereq_(26);
 
 
1177
 
1178
+ var _media = _dereq_(28);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1179
 
1180
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1181
 
1182
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
1183
 
1184
+ Object.assign(_player.config, {
1185
+ usePluginFullScreen: true,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1186
 
1187
+ fullscreenText: null,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1188
 
1189
+ useFakeFullscreen: false
1190
+ });
1191
 
1192
+ Object.assign(_player2.default.prototype, {
1193
+ isFullScreen: false,
1194
 
1195
+ isNativeFullScreen: false,
 
 
1196
 
1197
+ isInIframe: false,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1198
 
1199
+ isPluginClickThroughCreated: false,
 
 
 
 
 
1200
 
1201
+ fullscreenMode: '',
1202
 
1203
+ containerSizeTimeout: null,
1204
+
1205
+ buildfullscreen: function buildfullscreen(player) {
1206
+ if (!player.isVideo) {
1207
+ return;
 
1208
  }
 
 
 
 
1209
 
1210
+ player.isInIframe = _window2.default.location !== _window2.default.parent.location;
 
 
1211
 
1212
+ player.detectFullscreenMode();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1213
 
1214
+ var t = this,
1215
+ fullscreenTitle = (0, _general.isString)(t.options.fullscreenText) ? t.options.fullscreenText : _i18n2.default.t('mejs.fullscreen'),
1216
+ fullscreenBtn = _document2.default.createElement('div');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1217
 
1218
+ fullscreenBtn.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'fullscreen-button';
1219
+ fullscreenBtn.innerHTML = '<button type="button" aria-controls="' + t.id + '" title="' + fullscreenTitle + '" aria-label="' + fullscreenTitle + '" tabindex="0"></button>';
1220
+ t.addControlElement(fullscreenBtn, 'fullscreen');
 
 
1221
 
1222
+ fullscreenBtn.addEventListener('click', function () {
1223
+ var isFullScreen = Features.HAS_TRUE_NATIVE_FULLSCREEN && Features.IS_FULLSCREEN || player.isFullScreen;
1224
+
1225
+ if (isFullScreen) {
1226
+ player.exitFullScreen();
1227
+ } else {
1228
+ player.enterFullScreen();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1229
  }
1230
+ });
1231
 
1232
+ player.fullscreenBtn = fullscreenBtn;
1233
+
1234
+ t.options.keyActions.push({
1235
+ keys: [70],
1236
+ action: function action(player, media, key, event) {
1237
+ if (!event.ctrlKey) {
1238
+ if (typeof player.enterFullScreen !== 'undefined') {
1239
+ if (player.isFullScreen) {
1240
+ player.exitFullScreen();
1241
+ } else {
1242
+ player.enterFullScreen();
1243
+ }
1244
+ }
1245
  }
1246
  }
1247
+ });
 
1248
 
1249
+ t.exitFullscreenCallback = function (e) {
1250
+ var key = e.which || e.keyCode || 0;
1251
+ if (key === 27 && (Features.HAS_TRUE_NATIVE_FULLSCREEN && Features.IS_FULLSCREEN || t.isFullScreen)) {
1252
+ player.exitFullScreen();
1253
+ }
1254
+ };
1255
+
1256
+ t.globalBind('keydown', t.exitFullscreenCallback);
1257
+
1258
+ t.normalHeight = 0;
1259
+ t.normalWidth = 0;
1260
+
1261
+ if (Features.HAS_TRUE_NATIVE_FULLSCREEN) {
1262
+ var fullscreenChanged = function fullscreenChanged() {
1263
+ if (player.isFullScreen) {
1264
+ if (Features.isFullScreen()) {
1265
+ player.isNativeFullScreen = true;
1266
 
1267
+ player.setControlsSize();
1268
+ } else {
1269
+ player.isNativeFullScreen = false;
 
 
1270
 
1271
+ player.exitFullScreen();
1272
+ }
1273
  }
1274
+ };
1275
 
1276
+ player.globalBind(Features.FULLSCREEN_EVENT_NAME, fullscreenChanged);
1277
+ }
1278
+ },
1279
+ cleanfullscreen: function cleanfullscreen(player) {
1280
+ player.exitFullScreen();
1281
+ player.globalUnbind('keydown', player.exitFullscreenCallback);
1282
+ },
1283
+ detectFullscreenMode: function detectFullscreenMode() {
1284
+ var t = this,
1285
+ isNative = t.media.rendererName !== null && /(native|html5)/i.test(t.media.rendererName);
1286
+
1287
+ var mode = '';
1288
+
1289
+ if (Features.HAS_TRUE_NATIVE_FULLSCREEN && isNative) {
1290
+ mode = 'native-native';
1291
+ } else if (Features.HAS_TRUE_NATIVE_FULLSCREEN && !isNative) {
1292
+ mode = 'plugin-native';
1293
+ } else if (t.usePluginFullScreen && Features.SUPPORT_POINTER_EVENTS) {
1294
+ mode = 'plugin-click';
1295
+ }
1296
 
1297
+ t.fullscreenMode = mode;
1298
+ return mode;
1299
+ },
1300
+ enterFullScreen: function enterFullScreen() {
1301
+ var t = this,
1302
+ isNative = t.media.rendererName !== null && /(html5|native)/i.test(t.media.rendererName),
1303
+ containerStyles = getComputedStyle(t.getElement(t.container));
1304
+
1305
+ if (t.options.useFakeFullscreen === false && Features.IS_IOS && Features.HAS_IOS_FULLSCREEN && typeof t.media.originalNode.webkitEnterFullscreen === 'function' && t.media.originalNode.canPlayType((0, _media.getTypeFromFile)(t.media.getSrc()))) {
1306
+ t.media.originalNode.webkitEnterFullscreen();
1307
+ return;
1308
+ }
1309
 
1310
+ (0, _dom.addClass)(_document2.default.documentElement, t.options.classPrefix + 'fullscreen');
1311
+ (0, _dom.addClass)(t.getElement(t.container), t.options.classPrefix + 'container-fullscreen');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1312
 
1313
+ t.normalHeight = parseFloat(containerStyles.height);
1314
+ t.normalWidth = parseFloat(containerStyles.width);
1315
 
1316
+ if (t.fullscreenMode === 'native-native' || t.fullscreenMode === 'plugin-native') {
1317
+ Features.requestFullScreen(t.getElement(t.container));
 
 
 
 
 
 
 
 
 
 
 
1318
 
1319
+ if (t.isInIframe) {
1320
+ setTimeout(function checkFullscreen() {
1321
+
1322
+ if (t.isNativeFullScreen) {
1323
+ var percentErrorMargin = 0.002,
1324
+ windowWidth = _window2.default.innerWidth || _document2.default.documentElement.clientWidth || _document2.default.body.clientWidth,
1325
+ screenWidth = screen.width,
1326
+ absDiff = Math.abs(screenWidth - windowWidth),
1327
+ marginError = screenWidth * percentErrorMargin;
1328
+
1329
+ if (absDiff > marginError) {
1330
+ t.exitFullScreen();
1331
+ } else {
1332
+ setTimeout(checkFullscreen, 500);
1333
+ }
1334
+ }
1335
+ }, 1000);
1336
+ }
1337
+ }
1338
+
1339
+ t.getElement(t.container).style.width = '100%';
1340
+ t.getElement(t.container).style.height = '100%';
1341
+
1342
+ t.containerSizeTimeout = setTimeout(function () {
1343
+ t.getElement(t.container).style.width = '100%';
1344
+ t.getElement(t.container).style.height = '100%';
1345
+ t.setControlsSize();
1346
+ }, 500);
1347
 
1348
+ if (isNative) {
1349
+ t.node.style.width = '100%';
1350
+ t.node.style.height = '100%';
1351
+ } else {
1352
+ var elements = t.getElement(t.container).querySelectorAll('embed, object, video'),
1353
+ _total = elements.length;
1354
+ for (var i = 0; i < _total; i++) {
1355
+ elements[i].style.width = '100%';
1356
+ elements[i].style.height = '100%';
1357
  }
 
 
 
 
 
 
 
 
1358
  }
 
1359
 
1360
+ if (t.options.setDimensions && typeof t.media.setSize === 'function') {
1361
+ t.media.setSize(screen.width, screen.height);
1362
+ }
1363
 
1364
+ var layers = t.getElement(t.layers).children,
1365
+ total = layers.length;
1366
+ for (var _i = 0; _i < total; _i++) {
1367
+ layers[_i].style.width = '100%';
1368
+ layers[_i].style.height = '100%';
1369
+ }
 
1370
 
1371
+ if (t.fullscreenBtn) {
1372
+ (0, _dom.removeClass)(t.fullscreenBtn, t.options.classPrefix + 'fullscreen');
1373
+ (0, _dom.addClass)(t.fullscreenBtn, t.options.classPrefix + 'unfullscreen');
1374
+ }
1375
+
1376
+ t.setControlsSize();
1377
+ t.isFullScreen = true;
1378
+
1379
+ var zoomFactor = Math.min(screen.width / t.width, screen.height / t.height),
1380
+ captionText = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'captions-text');
1381
+ if (captionText) {
1382
+ captionText.style.fontSize = zoomFactor * 100 + '%';
1383
+ captionText.style.lineHeight = 'normal';
1384
+ t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'captions-position').style.bottom = (screen.height - t.normalHeight) / 2 - t.getElement(t.controls).offsetHeight / 2 + zoomFactor + 15 + 'px';
1385
+ }
1386
+ var event = (0, _general.createEvent)('enteredfullscreen', t.getElement(t.container));
1387
+ t.getElement(t.container).dispatchEvent(event);
1388
+ },
1389
+ exitFullScreen: function exitFullScreen() {
1390
+ var t = this,
1391
+ isNative = t.media.rendererName !== null && /(native|html5)/i.test(t.media.rendererName);
1392
+
1393
+ clearTimeout(t.containerSizeTimeout);
1394
+
1395
+ if (Features.HAS_TRUE_NATIVE_FULLSCREEN && (Features.IS_FULLSCREEN || t.isFullScreen)) {
1396
+ Features.cancelFullScreen();
1397
+ }
1398
+
1399
+ (0, _dom.removeClass)(_document2.default.documentElement, t.options.classPrefix + 'fullscreen');
1400
+ (0, _dom.removeClass)(t.getElement(t.container), t.options.classPrefix + 'container-fullscreen');
1401
+
1402
+ if (t.options.setDimensions) {
1403
+ t.getElement(t.container).style.width = t.normalWidth + 'px';
1404
+ t.getElement(t.container).style.height = t.normalHeight + 'px';
1405
+
1406
+ if (isNative) {
1407
+ t.node.style.width = t.normalWidth + 'px';
1408
+ t.node.style.height = t.normalHeight + 'px';
1409
+ } else {
1410
+ var elements = t.getElement(t.container).querySelectorAll('embed, object, video'),
1411
+ _total2 = elements.length;
1412
+ for (var i = 0; i < _total2; i++) {
1413
+ elements[i].style.width = t.normalWidth + 'px';
1414
+ elements[i].style.height = t.normalHeight + 'px';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1415
  }
1416
+ }
 
 
 
1417
 
1418
+ if (typeof t.media.setSize === 'function') {
1419
+ t.media.setSize(t.normalWidth, t.normalHeight);
1420
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1421
 
1422
+ var layers = t.getElement(t.layers).children,
1423
+ total = layers.length;
1424
+ for (var _i2 = 0; _i2 < total; _i2++) {
1425
+ layers[_i2].style.width = t.normalWidth + 'px';
1426
+ layers[_i2].style.height = t.normalHeight + 'px';
1427
+ }
1428
+ }
 
1429
 
1430
+ if (t.fullscreenBtn) {
1431
+ (0, _dom.removeClass)(t.fullscreenBtn, t.options.classPrefix + 'unfullscreen');
1432
+ (0, _dom.addClass)(t.fullscreenBtn, t.options.classPrefix + 'fullscreen');
1433
+ }
1434
 
1435
+ t.setControlsSize();
1436
+ t.isFullScreen = false;
 
 
1437
 
1438
+ var captionText = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'captions-text');
1439
+ if (captionText) {
1440
+ captionText.style.fontSize = '';
1441
+ captionText.style.lineHeight = '';
1442
+ t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'captions-position').style.bottom = '';
1443
+ }
1444
+ var event = (0, _general.createEvent)('exitedfullscreen', t.getElement(t.container));
1445
+ t.getElement(t.container).dispatchEvent(event);
1446
+ }
1447
+ });
1448
+
1449
+ },{"16":16,"2":2,"25":25,"26":26,"27":27,"28":28,"3":3,"5":5}],10:[function(_dereq_,module,exports){
1450
+ 'use strict';
1451
+
1452
+ var _document = _dereq_(2);
1453
+
1454
+ var _document2 = _interopRequireDefault(_document);
1455
+
1456
+ var _player = _dereq_(16);
1457
+
1458
+ var _player2 = _interopRequireDefault(_player);
1459
+
1460
+ var _i18n = _dereq_(5);
1461
+
1462
+ var _i18n2 = _interopRequireDefault(_i18n);
1463
+
1464
+ var _general = _dereq_(27);
1465
+
1466
+ var _dom = _dereq_(26);
1467
+
1468
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1469
+
1470
+ Object.assign(_player.config, {
1471
+ playText: null,
1472
+
1473
+ pauseText: null
1474
+ });
1475
+
1476
+ Object.assign(_player2.default.prototype, {
1477
+ buildplaypause: function buildplaypause(player, controls, layers, media) {
1478
+ var t = this,
1479
+ op = t.options,
1480
+ playTitle = (0, _general.isString)(op.playText) ? op.playText : _i18n2.default.t('mejs.play'),
1481
+ pauseTitle = (0, _general.isString)(op.pauseText) ? op.pauseText : _i18n2.default.t('mejs.pause'),
1482
+ play = _document2.default.createElement('div');
1483
+
1484
+ play.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'playpause-button ' + t.options.classPrefix + 'play';
1485
+ play.innerHTML = '<button type="button" aria-controls="' + t.id + '" title="' + playTitle + '" aria-label="' + pauseTitle + '" tabindex="0"></button>';
1486
+ play.addEventListener('click', function () {
1487
+ if (t.paused) {
1488
+ t.play();
1489
+ } else {
1490
+ t.pause();
1491
+ }
1492
+ });
1493
+
1494
+ var playBtn = play.querySelector('button');
1495
+ t.addControlElement(play, 'playpause');
1496
+
1497
+ function togglePlayPause(which) {
1498
+ if ('play' === which) {
1499
+ (0, _dom.removeClass)(play, t.options.classPrefix + 'play');
1500
+ (0, _dom.removeClass)(play, t.options.classPrefix + 'replay');
1501
+ (0, _dom.addClass)(play, t.options.classPrefix + 'pause');
1502
+ playBtn.setAttribute('title', pauseTitle);
1503
+ playBtn.setAttribute('aria-label', pauseTitle);
1504
+ } else {
1505
+
1506
+ (0, _dom.removeClass)(play, t.options.classPrefix + 'pause');
1507
+ (0, _dom.removeClass)(play, t.options.classPrefix + 'replay');
1508
+ (0, _dom.addClass)(play, t.options.classPrefix + 'play');
1509
+ playBtn.setAttribute('title', playTitle);
1510
+ playBtn.setAttribute('aria-label', playTitle);
1511
+ }
1512
+ }
1513
+
1514
+ togglePlayPause('pse');
1515
+
1516
+ media.addEventListener('loadedmetadata', function () {
1517
+ if (media.rendererName.indexOf('flash') === -1) {
1518
+ togglePlayPause('pse');
1519
+ }
1520
+ });
1521
+ media.addEventListener('play', function () {
1522
+ togglePlayPause('play');
1523
+ });
1524
+ media.addEventListener('playing', function () {
1525
+ togglePlayPause('play');
1526
+ });
1527
+ media.addEventListener('pause', function () {
1528
+ togglePlayPause('pse');
1529
+ });
1530
+ media.addEventListener('ended', function () {
1531
+ if (!player.options.loop) {
1532
+ (0, _dom.removeClass)(play, t.options.classPrefix + 'pause');
1533
+ (0, _dom.removeClass)(play, t.options.classPrefix + 'play');
1534
+ (0, _dom.addClass)(play, t.options.classPrefix + 'replay');
1535
+ playBtn.setAttribute('title', playTitle);
1536
+ playBtn.setAttribute('aria-label', playTitle);
1537
+ }
1538
+ });
1539
+ }
1540
+ });
1541
+
1542
+ },{"16":16,"2":2,"26":26,"27":27,"5":5}],11:[function(_dereq_,module,exports){
1543
+ 'use strict';
1544
+
1545
+ var _document = _dereq_(2);
1546
+
1547
+ var _document2 = _interopRequireDefault(_document);
1548
+
1549
+ var _player = _dereq_(16);
1550
+
1551
+ var _player2 = _interopRequireDefault(_player);
1552
+
1553
+ var _i18n = _dereq_(5);
1554
+
1555
+ var _i18n2 = _interopRequireDefault(_i18n);
1556
+
1557
+ var _constants = _dereq_(25);
1558
+
1559
+ var _time = _dereq_(30);
1560
+
1561
+ var _dom = _dereq_(26);
1562
+
1563
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1564
+
1565
+ Object.assign(_player.config, {
1566
+ enableProgressTooltip: true,
1567
+
1568
+ useSmoothHover: true,
1569
+
1570
+ forceLive: false
1571
+ });
1572
+
1573
+ Object.assign(_player2.default.prototype, {
1574
+ buildprogress: function buildprogress(player, controls, layers, media) {
1575
+
1576
+ var lastKeyPressTime = 0,
1577
+ mouseIsDown = false,
1578
+ startedPaused = false;
1579
+
1580
+ var t = this,
1581
+ autoRewindInitial = player.options.autoRewind,
1582
+ tooltip = player.options.enableProgressTooltip ? '<span class="' + t.options.classPrefix + 'time-float">' + ('<span class="' + t.options.classPrefix + 'time-float-current">00:00</span>') + ('<span class="' + t.options.classPrefix + 'time-float-corner"></span>') + '</span>' : '',
1583
+ rail = _document2.default.createElement('div');
1584
+
1585
+ rail.className = t.options.classPrefix + 'time-rail';
1586
+ rail.innerHTML = '<span class="' + t.options.classPrefix + 'time-total ' + t.options.classPrefix + 'time-slider">' + ('<span class="' + t.options.classPrefix + 'time-buffering"></span>') + ('<span class="' + t.options.classPrefix + 'time-loaded"></span>') + ('<span class="' + t.options.classPrefix + 'time-current"></span>') + ('<span class="' + t.options.classPrefix + 'time-hovered no-hover"></span>') + ('<span class="' + t.options.classPrefix + 'time-handle"><span class="' + t.options.classPrefix + 'time-handle-content"></span></span>') + ('' + tooltip) + '</span>';
1587
+
1588
+ t.addControlElement(rail, 'progress');
1589
+
1590
+ t.options.keyActions.push({
1591
+ keys: [37, 227],
1592
+ action: function action(player) {
1593
+ if (!isNaN(player.duration) && player.duration > 0) {
1594
+ if (player.isVideo) {
1595
+ player.showControls();
1596
+ player.startControlsTimer();
1597
  }
1598
+
1599
+ player.getElement(player.container).querySelector('.' + _player.config.classPrefix + 'time-total').focus();
1600
+
1601
+ var newTime = Math.max(player.currentTime - player.options.defaultSeekBackwardInterval(player), 0);
1602
+ player.setCurrentTime(newTime);
1603
  }
1604
+ }
1605
+ }, {
1606
+ keys: [39, 228],
1607
+ action: function action(player) {
1608
+
1609
+ if (!isNaN(player.duration) && player.duration > 0) {
1610
+ if (player.isVideo) {
1611
+ player.showControls();
1612
+ player.startControlsTimer();
1613
+ }
1614
 
1615
+ player.getElement(player.container).querySelector('.' + _player.config.classPrefix + 'time-total').focus();
1616
+
1617
+ var newTime = Math.min(player.currentTime + player.options.defaultSeekForwardInterval(player), player.duration);
1618
+ player.setCurrentTime(newTime);
 
 
 
1619
  }
1620
  }
1621
+ });
1622
+
1623
+ t.rail = controls.querySelector('.' + t.options.classPrefix + 'time-rail');
1624
+ t.total = controls.querySelector('.' + t.options.classPrefix + 'time-total');
1625
+ t.loaded = controls.querySelector('.' + t.options.classPrefix + 'time-loaded');
1626
+ t.current = controls.querySelector('.' + t.options.classPrefix + 'time-current');
1627
+ t.handle = controls.querySelector('.' + t.options.classPrefix + 'time-handle');
1628
+ t.timefloat = controls.querySelector('.' + t.options.classPrefix + 'time-float');
1629
+ t.timefloatcurrent = controls.querySelector('.' + t.options.classPrefix + 'time-float-current');
1630
+ t.slider = controls.querySelector('.' + t.options.classPrefix + 'time-slider');
1631
+ t.hovered = controls.querySelector('.' + t.options.classPrefix + 'time-hovered');
1632
+ t.buffer = controls.querySelector('.' + t.options.classPrefix + 'time-buffering');
1633
+ t.newTime = 0;
1634
+ t.forcedHandlePause = false;
1635
+ t.setTransformStyle = function (element, value) {
1636
+ element.style.transform = value;
1637
+ element.style.webkitTransform = value;
1638
+ element.style.MozTransform = value;
1639
+ element.style.msTransform = value;
1640
+ element.style.OTransform = value;
1641
+ };
1642
+
1643
+ t.buffer.style.display = 'none';
1644
+
1645
+ var handleMouseMove = function handleMouseMove(e) {
1646
+ var totalStyles = getComputedStyle(t.total),
1647
+ offsetStyles = (0, _dom.offset)(t.total),
1648
+ width = t.total.offsetWidth,
1649
+ transform = function () {
1650
+ if (totalStyles.webkitTransform !== undefined) {
1651
+ return 'webkitTransform';
1652
+ } else if (totalStyles.mozTransform !== undefined) {
1653
+ return 'mozTransform ';
1654
+ } else if (totalStyles.oTransform !== undefined) {
1655
+ return 'oTransform';
1656
+ } else if (totalStyles.msTransform !== undefined) {
1657
+ return 'msTransform';
 
1658
  } else {
1659
+ return 'transform';
1660
  }
1661
+ }(),
1662
+ cssMatrix = function () {
1663
+ if ('WebKitCSSMatrix' in window) {
1664
+ return 'WebKitCSSMatrix';
1665
+ } else if ('MSCSSMatrix' in window) {
1666
+ return 'MSCSSMatrix';
1667
+ } else if ('CSSMatrix' in window) {
1668
+ return 'CSSMatrix';
1669
+ }
1670
+ }();
1671
+
1672
+ var percentage = 0,
1673
+ leftPos = 0,
1674
+ pos = 0,
1675
+ x = void 0;
1676
+
1677
+ if (e.originalEvent && e.originalEvent.changedTouches) {
1678
+ x = e.originalEvent.changedTouches[0].pageX;
1679
+ } else if (e.changedTouches) {
1680
+ x = e.changedTouches[0].pageX;
1681
+ } else {
1682
+ x = e.pageX;
1683
  }
1684
 
1685
+ if (t.getDuration()) {
1686
+ if (x < offsetStyles.left) {
1687
+ x = offsetStyles.left;
1688
+ } else if (x > width + offsetStyles.left) {
1689
+ x = width + offsetStyles.left;
1690
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1691
 
1692
+ pos = x - offsetStyles.left;
1693
+ percentage = pos / width;
1694
+ t.newTime = percentage <= 0.02 ? 0 : percentage * t.getDuration();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1695
 
1696
+ if (mouseIsDown && t.getCurrentTime() !== null && t.newTime.toFixed(4) !== t.getCurrentTime().toFixed(4)) {
1697
+ t.setCurrentRailHandle(t.newTime);
1698
+ t.updateCurrent(t.newTime);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1699
  }
 
 
1700
 
1701
+ if (!_constants.IS_IOS && !_constants.IS_ANDROID) {
1702
+ if (pos < 0) {
1703
+ pos = 0;
1704
+ }
1705
+ if (t.options.useSmoothHover && cssMatrix !== null && typeof window[cssMatrix] !== 'undefined') {
1706
+ var matrix = new window[cssMatrix](getComputedStyle(t.handle)[transform]),
1707
+ handleLocation = matrix.m41,
1708
+ hoverScaleX = pos / parseFloat(getComputedStyle(t.total).width) - handleLocation / parseFloat(getComputedStyle(t.total).width);
1709
+
1710
+ t.hovered.style.left = handleLocation + 'px';
1711
+ t.setTransformStyle(t.hovered, 'scaleX(' + hoverScaleX + ')');
1712
+ t.hovered.setAttribute('pos', pos);
1713
+
1714
+ if (hoverScaleX >= 0) {
1715
+ (0, _dom.removeClass)(t.hovered, 'negative');
1716
+ } else {
1717
+ (0, _dom.addClass)(t.hovered, 'negative');
1718
+ }
1719
+ }
1720
+
1721
+ if (t.timefloat) {
1722
+ var half = t.timefloat.offsetWidth / 2,
1723
+ offsetContainer = mejs.Utils.offset(t.getElement(t.container)),
1724
+ tooltipStyles = getComputedStyle(t.timefloat);
1725
+
1726
+ if (x - offsetContainer.left < t.timefloat.offsetWidth) {
1727
+ leftPos = half;
1728
+ } else if (x - offsetContainer.left >= t.getElement(t.container).offsetWidth - half) {
1729
+ leftPos = t.total.offsetWidth - half;
1730
+ } else {
1731
+ leftPos = pos;
1732
+ }
1733
+
1734
+ if ((0, _dom.hasClass)(t.getElement(t.container), t.options.classPrefix + 'long-video')) {
1735
+ leftPos += parseFloat(tooltipStyles.marginLeft) / 2 + t.timefloat.offsetWidth / 2;
1736
+ }
1737
+
1738
+ t.timefloat.style.left = leftPos + 'px';
1739
+ t.timefloatcurrent.innerHTML = (0, _time.secondsToTimeCode)(t.newTime, player.options.alwaysShowHours, player.options.showTimecodeFrameCount, player.options.framesPerSecond, player.options.secondsDecimalLength, player.options.timeFormat);
1740
+ t.timefloat.style.display = 'block';
1741
+ }
1742
  }
1743
+ } else if (!_constants.IS_IOS && !_constants.IS_ANDROID && t.timefloat) {
1744
+ leftPos = t.timefloat.offsetWidth + width >= t.getElement(t.container).offsetWidth ? t.timefloat.offsetWidth / 2 : 0;
1745
+ t.timefloat.style.left = leftPos + 'px';
1746
+ t.timefloat.style.left = leftPos + 'px';
1747
+ t.timefloat.style.display = 'block';
1748
+ }
1749
  },
1750
+ updateSlider = function updateSlider() {
1751
+ var seconds = t.getCurrentTime(),
1752
+ timeSliderText = _i18n2.default.t('mejs.time-slider'),
1753
+ time = (0, _time.secondsToTimeCode)(seconds, player.options.alwaysShowHours, player.options.showTimecodeFrameCount, player.options.framesPerSecond, player.options.secondsDecimalLength, player.options.timeFormat),
1754
+ duration = t.getDuration();
1755
+
1756
+ t.slider.setAttribute('role', 'slider');
1757
+ t.slider.tabIndex = 0;
1758
+
1759
+ if (media.paused) {
1760
+ t.slider.setAttribute('aria-label', timeSliderText);
1761
+ t.slider.setAttribute('aria-valuemin', 0);
1762
+ t.slider.setAttribute('aria-valuemax', duration);
1763
+ t.slider.setAttribute('aria-valuenow', seconds);
1764
+ t.slider.setAttribute('aria-valuetext', time);
1765
+ } else {
1766
+ t.slider.removeAttribute('aria-label');
1767
+ t.slider.removeAttribute('aria-valuemin');
1768
+ t.slider.removeAttribute('aria-valuemax');
1769
+ t.slider.removeAttribute('aria-valuenow');
1770
+ t.slider.removeAttribute('aria-valuetext');
1771
+ }
1772
+ },
1773
+ restartPlayer = function restartPlayer() {
1774
+ if (new Date() - lastKeyPressTime >= 1000) {
1775
+ t.play();
1776
+ }
1777
+ },
1778
+ handleMouseup = function handleMouseup() {
1779
+ if (mouseIsDown && t.getCurrentTime() !== null && t.newTime.toFixed(4) !== t.getCurrentTime().toFixed(4)) {
1780
+ t.setCurrentTime(t.newTime);
1781
+ t.setCurrentRail();
1782
+ t.updateCurrent(t.newTime);
1783
+ }
1784
+ if (t.forcedHandlePause) {
1785
+ t.slider.focus();
1786
+ t.play();
1787
+ }
1788
+ t.forcedHandlePause = false;
1789
+ };
1790
+
1791
+ t.slider.addEventListener('focus', function () {
1792
+ player.options.autoRewind = false;
1793
+ });
1794
+ t.slider.addEventListener('blur', function () {
1795
+ player.options.autoRewind = autoRewindInitial;
1796
+ });
1797
+ t.slider.addEventListener('keydown', function (e) {
1798
+ if (new Date() - lastKeyPressTime >= 1000) {
1799
+ startedPaused = t.paused;
1800
+ }
1801
+
1802
+ if (t.options.keyActions.length) {
1803
+
1804
+ var keyCode = e.which || e.keyCode || 0,
1805
+ duration = t.getDuration(),
1806
+ seekForward = player.options.defaultSeekForwardInterval(media),
1807
+ seekBackward = player.options.defaultSeekBackwardInterval(media);
1808
+
1809
+ var seekTime = t.getCurrentTime();
1810
+ var volume = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'volume-slider');
1811
+
1812
+ if (keyCode === 38 || keyCode === 40) {
1813
+ if (volume) {
1814
+ volume.style.display = 'block';
1815
+ }
1816
+ if (t.isVideo) {
1817
+ t.showControls();
1818
+ t.startControlsTimer();
1819
  }
1820
+
1821
+ var newVolume = keyCode === 38 ? Math.min(t.volume + 0.1, 1) : Math.max(t.volume - 0.1, 0),
1822
+ mutePlayer = newVolume <= 0;
1823
+ t.setVolume(newVolume);
1824
+ t.setMuted(mutePlayer);
1825
  return;
1826
+ } else {
1827
+ if (volume) {
1828
+ volume.style.display = 'none';
1829
+ }
1830
  }
1831
+
1832
+ switch (keyCode) {
1833
+ case 37:
1834
+ if (t.getDuration() !== Infinity) {
1835
+ seekTime -= seekBackward;
1836
+ }
1837
+ break;
1838
+ case 39:
1839
+ if (t.getDuration() !== Infinity) {
1840
+ seekTime += seekForward;
1841
+ }
1842
+ break;
1843
+ case 36:
1844
+ seekTime = 0;
1845
+ break;
1846
+ case 35:
1847
+ seekTime = duration;
1848
+ break;
1849
+ case 13:
1850
+ case 32:
1851
+ if (_constants.IS_FIREFOX) {
1852
+ if (t.paused) {
1853
+ t.play();
1854
+ } else {
1855
  t.pause();
 
1856
  }
1857
+ }
1858
+ return;
1859
+ default:
1860
+ return;
1861
+ }
1862
+
1863
+ seekTime = seekTime < 0 ? 0 : seekTime >= duration ? duration : Math.floor(seekTime);
1864
+ lastKeyPressTime = new Date();
1865
+ if (!startedPaused) {
1866
+ player.pause();
1867
+ }
1868
+
1869
+ if (seekTime < t.getDuration() && !startedPaused) {
1870
+ setTimeout(restartPlayer, 1100);
1871
+ }
1872
+
1873
+ t.setCurrentTime(seekTime);
1874
+ player.showControls();
1875
+
1876
+ e.preventDefault();
1877
+ e.stopPropagation();
1878
+ }
1879
+ });
1880
+
1881
+ var events = ['mousedown', 'touchstart'];
1882
+
1883
+ t.slider.addEventListener('dragstart', function () {
1884
+ return false;
1885
+ });
1886
+
1887
+ for (var i = 0, total = events.length; i < total; i++) {
1888
+ t.slider.addEventListener(events[i], function (e) {
1889
+ t.forcedHandlePause = false;
1890
+ if (t.getDuration() !== Infinity) {
1891
+ if (e.which === 1 || e.which === 0) {
1892
+ if (!t.paused) {
1893
+ t.pause();
1894
+ t.forcedHandlePause = true;
1895
+ }
1896
+
1897
+ mouseIsDown = true;
1898
+ handleMouseMove(e);
1899
+ var endEvents = ['mouseup', 'touchend'];
1900
+
1901
+ for (var j = 0, totalEvents = endEvents.length; j < totalEvents; j++) {
1902
+ t.getElement(t.container).addEventListener(endEvents[j], function (event) {
1903
+ var target = event.target;
1904
+ if (target === t.slider || target.closest('.' + t.options.classPrefix + 'time-slider')) {
1905
+ handleMouseMove(event);
1906
+ }
1907
+ });
1908
+ }
1909
+ t.globalBind('mouseup.dur touchend.dur', function () {
1910
+ handleMouseup();
1911
+ mouseIsDown = false;
1912
+ if (t.timefloat) {
1913
+ t.timefloat.style.display = 'none';
1914
+ }
1915
+ });
1916
+ }
1917
+ }
1918
+ }, _constants.SUPPORT_PASSIVE_EVENT && events[i] === 'touchstart' ? { passive: true } : false);
1919
+ }
1920
+ t.slider.addEventListener('mouseenter', function (e) {
1921
+ if (e.target === t.slider && t.getDuration() !== Infinity) {
1922
+ t.getElement(t.container).addEventListener('mousemove', function (event) {
1923
+ var target = event.target;
1924
+ if (target === t.slider || target.closest('.' + t.options.classPrefix + 'time-slider')) {
1925
+ handleMouseMove(event);
1926
+ }
1927
+ });
1928
+ if (t.timefloat && !_constants.IS_IOS && !_constants.IS_ANDROID) {
1929
+ t.timefloat.style.display = 'block';
1930
+ }
1931
+ if (t.hovered && !_constants.IS_IOS && !_constants.IS_ANDROID && t.options.useSmoothHover) {
1932
+ (0, _dom.removeClass)(t.hovered, 'no-hover');
1933
+ }
1934
+ }
1935
+ });
1936
+ t.slider.addEventListener('mouseleave', function () {
1937
+ if (t.getDuration() !== Infinity) {
1938
+ if (!mouseIsDown) {
1939
+ if (t.timefloat) {
1940
+ t.timefloat.style.display = 'none';
1941
+ }
1942
+ if (t.hovered && t.options.useSmoothHover) {
1943
+ (0, _dom.addClass)(t.hovered, 'no-hover');
1944
+ }
1945
+ }
1946
+ }
1947
+ });
1948
+
1949
+ t.broadcastCallback = function (e) {
1950
+ var broadcast = controls.querySelector('.' + t.options.classPrefix + 'broadcast');
1951
+ if (!t.options.forceLive && t.getDuration() !== Infinity) {
1952
+ if (broadcast) {
1953
+ t.slider.style.display = '';
1954
+ broadcast.remove();
1955
+ }
1956
+
1957
+ player.setProgressRail(e);
1958
+ if (!t.forcedHandlePause) {
1959
+ player.setCurrentRail(e);
1960
+ }
1961
+ updateSlider();
1962
+ } else if (!broadcast || t.options.forceLive) {
1963
+ var label = _document2.default.createElement('span');
1964
+ label.className = t.options.classPrefix + 'broadcast';
1965
+ label.innerText = _i18n2.default.t('mejs.live-broadcast');
1966
+ t.slider.style.display = 'none';
1967
+ t.rail.appendChild(label);
1968
+ }
1969
+ };
1970
+
1971
+ media.addEventListener('progress', t.broadcastCallback);
1972
+ media.addEventListener('timeupdate', t.broadcastCallback);
1973
+ media.addEventListener('play', function () {
1974
+ t.buffer.style.display = 'none';
1975
+ });
1976
+ media.addEventListener('playing', function () {
1977
+ t.buffer.style.display = 'none';
1978
+ });
1979
+ media.addEventListener('seeking', function () {
1980
+ t.buffer.style.display = '';
1981
+ });
1982
+ media.addEventListener('seeked', function () {
1983
+ t.buffer.style.display = 'none';
1984
+ });
1985
+ media.addEventListener('pause', function () {
1986
+ t.buffer.style.display = 'none';
1987
+ });
1988
+ media.addEventListener('waiting', function () {
1989
+ t.buffer.style.display = '';
1990
+ });
1991
+ media.addEventListener('loadeddata', function () {
1992
+ t.buffer.style.display = '';
1993
+ });
1994
+ media.addEventListener('canplay', function () {
1995
+ t.buffer.style.display = 'none';
1996
+ });
1997
+ media.addEventListener('error', function () {
1998
+ t.buffer.style.display = 'none';
1999
+ });
2000
+
2001
+ t.getElement(t.container).addEventListener('controlsresize', function (e) {
2002
+ if (t.getDuration() !== Infinity) {
2003
+ player.setProgressRail(e);
2004
+ if (!t.forcedHandlePause) {
2005
+ player.setCurrentRail(e);
2006
+ }
2007
+ }
2008
+ });
2009
+ },
2010
+ cleanprogress: function cleanprogress(player, controls, layers, media) {
2011
+ media.removeEventListener('progress', player.broadcastCallback);
2012
+ media.removeEventListener('timeupdate', player.broadcastCallback);
2013
+ if (player.rail) {
2014
+ player.rail.remove();
2015
+ }
2016
+ },
2017
+ setProgressRail: function setProgressRail(e) {
2018
+ var t = this,
2019
+ target = e !== undefined ? e.detail.target || e.target : t.media;
2020
+
2021
+ var percent = null;
2022
+
2023
+ if (target && target.buffered && target.buffered.length > 0 && target.buffered.end && t.getDuration()) {
2024
+ percent = target.buffered.end(target.buffered.length - 1) / t.getDuration();
2025
+ } else if (target && target.bytesTotal !== undefined && target.bytesTotal > 0 && target.bufferedBytes !== undefined) {
2026
+ percent = target.bufferedBytes / target.bytesTotal;
2027
+ } else if (e && e.lengthComputable && e.total !== 0) {
2028
+ percent = e.loaded / e.total;
2029
+ }
2030
+
2031
+ if (percent !== null) {
2032
+ percent = Math.min(1, Math.max(0, percent));
2033
+
2034
+ if (t.loaded) {
2035
+ t.setTransformStyle(t.loaded, 'scaleX(' + percent + ')');
2036
+ }
2037
+ }
2038
+ },
2039
+ setCurrentRailHandle: function setCurrentRailHandle(fakeTime) {
2040
+ var t = this;
2041
+ t.setCurrentRailMain(t, fakeTime);
2042
+ },
2043
+ setCurrentRail: function setCurrentRail() {
2044
+ var t = this;
2045
+ t.setCurrentRailMain(t);
2046
+ },
2047
+ setCurrentRailMain: function setCurrentRailMain(t, fakeTime) {
2048
+ if (t.getCurrentTime() !== undefined && t.getDuration()) {
2049
+ var nTime = typeof fakeTime === 'undefined' ? t.getCurrentTime() : fakeTime;
2050
+
2051
+ if (t.total && t.handle) {
2052
+ var tW = parseFloat(getComputedStyle(t.total).width);
2053
+
2054
+ var newWidth = Math.round(tW * nTime / t.getDuration()),
2055
+ handlePos = newWidth - Math.round(t.handle.offsetWidth / 2);
2056
+
2057
+ handlePos = handlePos < 0 ? 0 : handlePos;
2058
+ t.setTransformStyle(t.current, 'scaleX(' + newWidth / tW + ')');
2059
+ t.setTransformStyle(t.handle, 'translateX(' + handlePos + 'px)');
2060
+
2061
+ if (t.options.useSmoothHover && !(0, _dom.hasClass)(t.hovered, 'no-hover')) {
2062
+ var pos = parseInt(t.hovered.getAttribute('pos'), 10);
2063
+ pos = isNaN(pos) ? 0 : pos;
2064
+
2065
+ var hoverScaleX = pos / tW - handlePos / tW;
2066
+
2067
+ t.hovered.style.left = handlePos + 'px';
2068
+ t.setTransformStyle(t.hovered, 'scaleX(' + hoverScaleX + ')');
2069
+
2070
+ if (hoverScaleX >= 0) {
2071
+ (0, _dom.removeClass)(t.hovered, 'negative');
2072
+ } else {
2073
+ (0, _dom.addClass)(t.hovered, 'negative');
2074
+ }
2075
+ }
2076
+ }
2077
+ }
2078
+ }
2079
+ });
2080
+
2081
+ },{"16":16,"2":2,"25":25,"26":26,"30":30,"5":5}],12:[function(_dereq_,module,exports){
2082
+ 'use strict';
2083
+
2084
+ var _document = _dereq_(2);
2085
+
2086
+ var _document2 = _interopRequireDefault(_document);
2087
+
2088
+ var _player = _dereq_(16);
2089
+
2090
+ var _player2 = _interopRequireDefault(_player);
2091
+
2092
+ var _time = _dereq_(30);
2093
+
2094
+ var _dom = _dereq_(26);
2095
+
2096
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2097
+
2098
+ Object.assign(_player.config, {
2099
+ duration: 0,
2100
+
2101
+ timeAndDurationSeparator: '<span> | </span>'
2102
+ });
2103
+
2104
+ Object.assign(_player2.default.prototype, {
2105
+ buildcurrent: function buildcurrent(player, controls, layers, media) {
2106
+ var t = this,
2107
+ time = _document2.default.createElement('div');
2108
+
2109
+ time.className = t.options.classPrefix + 'time';
2110
+ time.setAttribute('role', 'timer');
2111
+ time.setAttribute('aria-live', 'off');
2112
+ time.innerHTML = '<span class="' + t.options.classPrefix + 'currenttime">' + (0, _time.secondsToTimeCode)(0, player.options.alwaysShowHours, player.options.showTimecodeFrameCount, player.options.framesPerSecond, player.options.secondsDecimalLength, player.options.timeFormat) + '</span>';
2113
+
2114
+ t.addControlElement(time, 'current');
2115
+ player.updateCurrent();
2116
+ t.updateTimeCallback = function () {
2117
+ if (t.controlsAreVisible) {
2118
+ player.updateCurrent();
2119
+ }
2120
+ };
2121
+ media.addEventListener('timeupdate', t.updateTimeCallback);
2122
+ },
2123
+ cleancurrent: function cleancurrent(player, controls, layers, media) {
2124
+ media.removeEventListener('timeupdate', player.updateTimeCallback);
2125
+ },
2126
+ buildduration: function buildduration(player, controls, layers, media) {
2127
+ var t = this,
2128
+ currTime = controls.lastChild.querySelector('.' + t.options.classPrefix + 'currenttime');
2129
+
2130
+ if (currTime) {
2131
+ controls.querySelector('.' + t.options.classPrefix + 'time').innerHTML += t.options.timeAndDurationSeparator + '<span class="' + t.options.classPrefix + 'duration">' + ((0, _time.secondsToTimeCode)(t.options.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat) + '</span>');
2132
+ } else {
2133
+ if (controls.querySelector('.' + t.options.classPrefix + 'currenttime')) {
2134
+ (0, _dom.addClass)(controls.querySelector('.' + t.options.classPrefix + 'currenttime').parentNode, t.options.classPrefix + 'currenttime-container');
2135
+ }
2136
+
2137
+ var duration = _document2.default.createElement('div');
2138
+ duration.className = t.options.classPrefix + 'time ' + t.options.classPrefix + 'duration-container';
2139
+ duration.innerHTML = '<span class="' + t.options.classPrefix + 'duration">' + ((0, _time.secondsToTimeCode)(t.options.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat) + '</span>');
2140
+
2141
+ t.addControlElement(duration, 'duration');
2142
+ }
2143
+
2144
+ t.updateDurationCallback = function () {
2145
+ if (t.controlsAreVisible) {
2146
+ player.updateDuration();
2147
+ }
2148
+ };
2149
+
2150
+ media.addEventListener('timeupdate', t.updateDurationCallback);
2151
+ },
2152
+ cleanduration: function cleanduration(player, controls, layers, media) {
2153
+ media.removeEventListener('timeupdate', player.updateDurationCallback);
2154
+ },
2155
+ updateCurrent: function updateCurrent() {
2156
+ var t = this;
2157
+
2158
+ var currentTime = t.getCurrentTime();
2159
+
2160
+ if (isNaN(currentTime)) {
2161
+ currentTime = 0;
2162
+ }
2163
+
2164
+ var timecode = (0, _time.secondsToTimeCode)(currentTime, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat);
2165
+
2166
+ if (timecode.length > 5) {
2167
+ (0, _dom.addClass)(t.getElement(t.container), t.options.classPrefix + 'long-video');
2168
+ } else {
2169
+ (0, _dom.removeClass)(t.getElement(t.container), t.options.classPrefix + 'long-video');
2170
+ }
2171
+
2172
+ if (t.getElement(t.controls).querySelector('.' + t.options.classPrefix + 'currenttime')) {
2173
+ t.getElement(t.controls).querySelector('.' + t.options.classPrefix + 'currenttime').innerText = timecode;
2174
+ }
2175
+ },
2176
+ updateDuration: function updateDuration() {
2177
+ var t = this;
2178
+
2179
+ var duration = t.getDuration();
2180
+
2181
+ if (isNaN(duration) || duration === Infinity || duration < 0) {
2182
+ t.media.duration = t.options.duration = duration = 0;
2183
+ }
2184
+
2185
+ if (t.options.duration > 0) {
2186
+ duration = t.options.duration;
2187
+ }
2188
+
2189
+ var timecode = (0, _time.secondsToTimeCode)(duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat);
2190
+
2191
+ if (timecode.length > 5) {
2192
+ (0, _dom.addClass)(t.getElement(t.container), t.options.classPrefix + 'long-video');
2193
+ } else {
2194
+ (0, _dom.removeClass)(t.getElement(t.container), t.options.classPrefix + 'long-video');
2195
+ }
2196
+
2197
+ if (t.getElement(t.controls).querySelector('.' + t.options.classPrefix + 'duration') && duration > 0) {
2198
+ t.getElement(t.controls).querySelector('.' + t.options.classPrefix + 'duration').innerHTML = timecode;
2199
+ }
2200
+ }
2201
+ });
2202
+
2203
+ },{"16":16,"2":2,"26":26,"30":30}],13:[function(_dereq_,module,exports){
2204
+ 'use strict';
2205
+
2206
+ var _document = _dereq_(2);
2207
+
2208
+ var _document2 = _interopRequireDefault(_document);
2209
+
2210
+ var _mejs = _dereq_(7);
2211
+
2212
+ var _mejs2 = _interopRequireDefault(_mejs);
2213
+
2214
+ var _i18n = _dereq_(5);
2215
+
2216
+ var _i18n2 = _interopRequireDefault(_i18n);
2217
+
2218
+ var _player = _dereq_(16);
2219
+
2220
+ var _player2 = _interopRequireDefault(_player);
2221
+
2222
+ var _time = _dereq_(30);
2223
+
2224
+ var _general = _dereq_(27);
2225
+
2226
+ var _dom = _dereq_(26);
2227
+
2228
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2229
+
2230
+ Object.assign(_player.config, {
2231
+ startLanguage: '',
2232
+
2233
+ tracksText: null,
2234
+
2235
+ chaptersText: null,
2236
+
2237
+ tracksAriaLive: false,
2238
+
2239
+ hideCaptionsButtonWhenEmpty: true,
2240
+
2241
+ toggleCaptionsButtonWhenOnlyOne: false,
2242
+
2243
+ slidesSelector: ''
2244
+ });
2245
+
2246
+ Object.assign(_player2.default.prototype, {
2247
+ hasChapters: false,
2248
+
2249
+ buildtracks: function buildtracks(player, controls, layers, media) {
2250
+
2251
+ this.findTracks();
2252
+
2253
+ if (!player.tracks.length && (!player.trackFiles || !player.trackFiles.length === 0)) {
2254
+ return;
2255
+ }
2256
+
2257
+ var t = this,
2258
+ attr = t.options.tracksAriaLive ? ' role="log" aria-live="assertive" aria-atomic="false"' : '',
2259
+ tracksTitle = (0, _general.isString)(t.options.tracksText) ? t.options.tracksText : _i18n2.default.t('mejs.captions-subtitles'),
2260
+ chaptersTitle = (0, _general.isString)(t.options.chaptersText) ? t.options.chaptersText : _i18n2.default.t('mejs.captions-chapters'),
2261
+ total = player.trackFiles === null ? player.tracks.length : player.trackFiles.length;
2262
+
2263
+ if (t.domNode.textTracks) {
2264
+ for (var i = t.domNode.textTracks.length - 1; i >= 0; i--) {
2265
+ t.domNode.textTracks[i].mode = 'hidden';
2266
+ }
2267
+ }
2268
+
2269
+ t.cleartracks(player);
2270
+
2271
+ player.captions = _document2.default.createElement('div');
2272
+ player.captions.className = t.options.classPrefix + 'captions-layer ' + t.options.classPrefix + 'layer';
2273
+ player.captions.innerHTML = '<div class="' + t.options.classPrefix + 'captions-position ' + t.options.classPrefix + 'captions-position-hover"' + attr + '>' + ('<span class="' + t.options.classPrefix + 'captions-text"></span>') + '</div>';
2274
+ player.captions.style.display = 'none';
2275
+ layers.insertBefore(player.captions, layers.firstChild);
2276
+
2277
+ player.captionsText = player.captions.querySelector('.' + t.options.classPrefix + 'captions-text');
2278
+
2279
+ player.captionsButton = _document2.default.createElement('div');
2280
+ player.captionsButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'captions-button';
2281
+ player.captionsButton.innerHTML = '<button type="button" aria-controls="' + t.id + '" title="' + tracksTitle + '" aria-label="' + tracksTitle + '" tabindex="0"></button>' + ('<div class="' + t.options.classPrefix + 'captions-selector ' + t.options.classPrefix + 'offscreen">') + ('<ul class="' + t.options.classPrefix + 'captions-selector-list">') + ('<li class="' + t.options.classPrefix + 'captions-selector-list-item">') + ('<input type="radio" class="' + t.options.classPrefix + 'captions-selector-input" ') + ('name="' + player.id + '_captions" id="' + player.id + '_captions_none" ') + 'value="none" checked disabled>' + ('<label class="' + t.options.classPrefix + 'captions-selector-label ') + (t.options.classPrefix + 'captions-selected" ') + ('for="' + player.id + '_captions_none">' + _i18n2.default.t('mejs.none') + '</label>') + '</li>' + '</ul>' + '</div>';
2282
+
2283
+ t.addControlElement(player.captionsButton, 'tracks');
2284
+
2285
+ player.captionsButton.querySelector('.' + t.options.classPrefix + 'captions-selector-input').disabled = false;
2286
+
2287
+ player.chaptersButton = _document2.default.createElement('div');
2288
+ player.chaptersButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'chapters-button';
2289
+ player.chaptersButton.innerHTML = '<button type="button" aria-controls="' + t.id + '" title="' + chaptersTitle + '" aria-label="' + chaptersTitle + '" tabindex="0"></button>' + ('<div class="' + t.options.classPrefix + 'chapters-selector ' + t.options.classPrefix + 'offscreen">') + ('<ul class="' + t.options.classPrefix + 'chapters-selector-list"></ul>') + '</div>';
2290
+
2291
+ var subtitleCount = 0;
2292
+
2293
+ for (var _i = 0; _i < total; _i++) {
2294
+ var kind = player.tracks[_i].kind,
2295
+ src = player.tracks[_i].src;
2296
+ if (src.trim()) {
2297
+ if (kind === 'subtitles' || kind === 'captions') {
2298
+ subtitleCount++;
2299
+ } else if (kind === 'chapters' && !controls.querySelector('.' + t.options.classPrefix + 'chapter-selector')) {
2300
+ player.captionsButton.parentNode.insertBefore(player.chaptersButton, player.captionsButton);
2301
+ }
2302
+ }
2303
+ }
2304
+
2305
+ player.trackToLoad = -1;
2306
+ player.selectedTrack = null;
2307
+ player.isLoadingTrack = false;
2308
+
2309
+ for (var _i2 = 0; _i2 < total; _i2++) {
2310
+ var _kind = player.tracks[_i2].kind;
2311
+ if (player.tracks[_i2].src.trim() && (_kind === 'subtitles' || _kind === 'captions')) {
2312
+ player.addTrackButton(player.tracks[_i2].trackId, player.tracks[_i2].srclang, player.tracks[_i2].label);
2313
+ }
2314
+ }
2315
+
2316
+ player.loadNextTrack();
2317
+
2318
+ var inEvents = ['mouseenter', 'focusin'],
2319
+ outEvents = ['mouseleave', 'focusout'];
2320
+
2321
+ if (t.options.toggleCaptionsButtonWhenOnlyOne && subtitleCount === 1) {
2322
+ player.captionsButton.addEventListener('click', function (e) {
2323
+ var trackId = 'none';
2324
+ if (player.selectedTrack === null) {
2325
+ trackId = player.tracks[0].trackId;
2326
+ }
2327
+ var keyboard = e.keyCode || e.which;
2328
+ player.setTrack(trackId, typeof keyboard !== 'undefined');
2329
+ });
2330
+ } else {
2331
+ var labels = player.captionsButton.querySelectorAll('.' + t.options.classPrefix + 'captions-selector-label'),
2332
+ captions = player.captionsButton.querySelectorAll('input[type=radio]');
2333
+
2334
+ for (var _i3 = 0, _total = inEvents.length; _i3 < _total; _i3++) {
2335
+ player.captionsButton.addEventListener(inEvents[_i3], function () {
2336
+ (0, _dom.removeClass)(this.querySelector('.' + t.options.classPrefix + 'captions-selector'), t.options.classPrefix + 'offscreen');
2337
+ });
2338
+ }
2339
+
2340
+ for (var _i4 = 0, _total2 = outEvents.length; _i4 < _total2; _i4++) {
2341
+ player.captionsButton.addEventListener(outEvents[_i4], function () {
2342
+ (0, _dom.addClass)(this.querySelector('.' + t.options.classPrefix + 'captions-selector'), t.options.classPrefix + 'offscreen');
2343
+ });
2344
+ }
2345
+
2346
+ for (var _i5 = 0, _total3 = captions.length; _i5 < _total3; _i5++) {
2347
+ captions[_i5].addEventListener('click', function (e) {
2348
+ var keyboard = e.keyCode || e.which;
2349
+ player.setTrack(this.value, typeof keyboard !== 'undefined');
2350
+ });
2351
+ }
2352
+
2353
+ for (var _i6 = 0, _total4 = labels.length; _i6 < _total4; _i6++) {
2354
+ labels[_i6].addEventListener('click', function (e) {
2355
+ var radio = (0, _dom.siblings)(this, function (el) {
2356
+ return el.tagName === 'INPUT';
2357
+ })[0],
2358
+ event = (0, _general.createEvent)('click', radio);
2359
+ radio.dispatchEvent(event);
2360
+ e.preventDefault();
2361
+ });
2362
+ }
2363
+
2364
+ player.captionsButton.addEventListener('keydown', function (e) {
2365
+ e.stopPropagation();
2366
+ });
2367
+ }
2368
+
2369
+ for (var _i7 = 0, _total5 = inEvents.length; _i7 < _total5; _i7++) {
2370
+ player.chaptersButton.addEventListener(inEvents[_i7], function () {
2371
+ if (this.querySelector('.' + t.options.classPrefix + 'chapters-selector-list').children.length) {
2372
+ (0, _dom.removeClass)(this.querySelector('.' + t.options.classPrefix + 'chapters-selector'), t.options.classPrefix + 'offscreen');
2373
+ }
2374
+ });
2375
+ }
2376
+
2377
+ for (var _i8 = 0, _total6 = outEvents.length; _i8 < _total6; _i8++) {
2378
+ player.chaptersButton.addEventListener(outEvents[_i8], function () {
2379
+ (0, _dom.addClass)(this.querySelector('.' + t.options.classPrefix + 'chapters-selector'), t.options.classPrefix + 'offscreen');
2380
+ });
2381
+ }
2382
+
2383
+ player.chaptersButton.addEventListener('keydown', function (e) {
2384
+ e.stopPropagation();
2385
+ });
2386
+
2387
+ if (!player.options.alwaysShowControls) {
2388
+ player.getElement(player.container).addEventListener('controlsshown', function () {
2389
+ (0, _dom.addClass)(player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover');
2390
+ });
2391
+
2392
+ player.getElement(player.container).addEventListener('controlshidden', function () {
2393
+ if (!media.paused) {
2394
+ (0, _dom.removeClass)(player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover');
2395
+ }
2396
+ });
2397
+ } else {
2398
+ (0, _dom.addClass)(player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover');
2399
+ }
2400
+
2401
+ media.addEventListener('timeupdate', function () {
2402
+ player.displayCaptions();
2403
+ });
2404
+
2405
+ if (player.options.slidesSelector !== '') {
2406
+ player.slidesContainer = _document2.default.querySelectorAll(player.options.slidesSelector);
2407
+
2408
+ media.addEventListener('timeupdate', function () {
2409
+ player.displaySlides();
2410
+ });
2411
+ }
2412
+ },
2413
+ cleartracks: function cleartracks(player) {
2414
+ if (player) {
2415
+ if (player.captions) {
2416
+ player.captions.remove();
2417
+ }
2418
+ if (player.chapters) {
2419
+ player.chapters.remove();
2420
+ }
2421
+ if (player.captionsText) {
2422
+ player.captionsText.remove();
2423
+ }
2424
+ if (player.captionsButton) {
2425
+ player.captionsButton.remove();
2426
+ }
2427
+ if (player.chaptersButton) {
2428
+ player.chaptersButton.remove();
2429
+ }
2430
+ }
2431
+ },
2432
+ rebuildtracks: function rebuildtracks() {
2433
+ var t = this;
2434
+ t.findTracks();
2435
+ t.buildtracks(t, t.getElement(t.controls), t.getElement(t.layers), t.media);
2436
+ },
2437
+ findTracks: function findTracks() {
2438
+ var t = this,
2439
+ tracktags = t.trackFiles === null ? t.node.querySelectorAll('track') : t.trackFiles,
2440
+ total = tracktags.length;
2441
+
2442
+ t.tracks = [];
2443
+ for (var i = 0; i < total; i++) {
2444
+ var track = tracktags[i],
2445
+ srclang = track.getAttribute('srclang').toLowerCase() || '',
2446
+ trackId = t.id + '_track_' + i + '_' + track.getAttribute('kind') + '_' + srclang;
2447
+ t.tracks.push({
2448
+ trackId: trackId,
2449
+ srclang: srclang,
2450
+ src: track.getAttribute('src'),
2451
+ kind: track.getAttribute('kind'),
2452
+ label: track.getAttribute('label') || '',
2453
+ entries: [],
2454
+ isLoaded: false
2455
+ });
2456
+ }
2457
+ },
2458
+ setTrack: function setTrack(trackId, setByKeyboard) {
2459
+
2460
+ var t = this,
2461
+ radios = t.captionsButton.querySelectorAll('input[type="radio"]'),
2462
+ captions = t.captionsButton.querySelectorAll('.' + t.options.classPrefix + 'captions-selected'),
2463
+ track = t.captionsButton.querySelector('input[value="' + trackId + '"]');
2464
+
2465
+ for (var i = 0, total = radios.length; i < total; i++) {
2466
+ radios[i].checked = false;
2467
+ }
2468
+
2469
+ for (var _i9 = 0, _total7 = captions.length; _i9 < _total7; _i9++) {
2470
+ (0, _dom.removeClass)(captions[_i9], t.options.classPrefix + 'captions-selected');
2471
+ }
2472
+
2473
+ track.checked = true;
2474
+ var labels = (0, _dom.siblings)(track, function (el) {
2475
+ return (0, _dom.hasClass)(el, t.options.classPrefix + 'captions-selector-label');
2476
+ });
2477
+ for (var _i10 = 0, _total8 = labels.length; _i10 < _total8; _i10++) {
2478
+ (0, _dom.addClass)(labels[_i10], t.options.classPrefix + 'captions-selected');
2479
+ }
2480
+
2481
+ if (trackId === 'none') {
2482
+ t.selectedTrack = null;
2483
+ (0, _dom.removeClass)(t.captionsButton, t.options.classPrefix + 'captions-enabled');
2484
+ } else {
2485
+ for (var _i11 = 0, _total9 = t.tracks.length; _i11 < _total9; _i11++) {
2486
+ var _track = t.tracks[_i11];
2487
+ if (_track.trackId === trackId) {
2488
+ if (t.selectedTrack === null) {
2489
+ (0, _dom.addClass)(t.captionsButton, t.options.classPrefix + 'captions-enabled');
2490
+ }
2491
+ t.selectedTrack = _track;
2492
+ t.captions.setAttribute('lang', t.selectedTrack.srclang);
2493
+ t.displayCaptions();
2494
+ break;
2495
+ }
2496
+ }
2497
+ }
2498
+
2499
+ var event = (0, _general.createEvent)('captionschange', t.media);
2500
+ event.detail.caption = t.selectedTrack;
2501
+ t.media.dispatchEvent(event);
2502
+
2503
+ if (!setByKeyboard) {
2504
+ setTimeout(function () {
2505
+ t.getElement(t.container).focus();
2506
+ }, 500);
2507
+ }
2508
+ },
2509
+ loadNextTrack: function loadNextTrack() {
2510
+ var t = this;
2511
+
2512
+ t.trackToLoad++;
2513
+ if (t.trackToLoad < t.tracks.length) {
2514
+ t.isLoadingTrack = true;
2515
+ t.loadTrack(t.trackToLoad);
2516
+ } else {
2517
+ t.isLoadingTrack = false;
2518
+ t.checkForTracks();
2519
+ }
2520
+ },
2521
+ loadTrack: function loadTrack(index) {
2522
+ var t = this,
2523
+ track = t.tracks[index];
2524
+
2525
+ if (track !== undefined && (track.src !== undefined || track.src !== "")) {
2526
+ (0, _dom.ajax)(track.src, 'text', function (d) {
2527
+ track.entries = typeof d === 'string' && /<tt\s+xml/ig.exec(d) ? _mejs2.default.TrackFormatParser.dfxp.parse(d) : _mejs2.default.TrackFormatParser.webvtt.parse(d);
2528
+
2529
+ track.isLoaded = true;
2530
+ t.enableTrackButton(track);
2531
+ t.loadNextTrack();
2532
+
2533
+ if (track.kind === 'slides') {
2534
+ t.setupSlides(track);
2535
+ } else if (track.kind === 'chapters' && !t.hasChapters) {
2536
+ t.drawChapters(track);
2537
+ t.hasChapters = true;
2538
+ }
2539
+ }, function () {
2540
+ t.removeTrackButton(track.trackId);
2541
+ t.loadNextTrack();
2542
+ });
2543
+ }
2544
+ },
2545
+ enableTrackButton: function enableTrackButton(track) {
2546
+ var t = this,
2547
+ lang = track.srclang,
2548
+ target = _document2.default.getElementById('' + track.trackId);
2549
+
2550
+ if (!target) {
2551
+ return;
2552
+ }
2553
+
2554
+ var label = track.label;
2555
+
2556
+ if (label === '') {
2557
+ label = _i18n2.default.t(_mejs2.default.language.codes[lang]) || lang;
2558
+ }
2559
+ target.disabled = false;
2560
+ var targetSiblings = (0, _dom.siblings)(target, function (el) {
2561
+ return (0, _dom.hasClass)(el, t.options.classPrefix + 'captions-selector-label');
2562
+ });
2563
+ for (var i = 0, total = targetSiblings.length; i < total; i++) {
2564
+ targetSiblings[i].innerHTML = label;
2565
+ }
2566
+
2567
+ if (t.options.startLanguage === lang) {
2568
+ target.checked = true;
2569
+ var event = (0, _general.createEvent)('click', target);
2570
+ target.dispatchEvent(event);
2571
+ }
2572
+ },
2573
+ removeTrackButton: function removeTrackButton(trackId) {
2574
+ var element = _document2.default.getElementById('' + trackId);
2575
+ if (element) {
2576
+ var button = element.closest('li');
2577
+ if (button) {
2578
+ button.remove();
2579
+ }
2580
+ }
2581
+ },
2582
+ addTrackButton: function addTrackButton(trackId, lang, label) {
2583
+ var t = this;
2584
+ if (label === '') {
2585
+ label = _i18n2.default.t(_mejs2.default.language.codes[lang]) || lang;
2586
+ }
2587
+
2588
+ t.captionsButton.querySelector('ul').innerHTML += '<li class="' + t.options.classPrefix + 'captions-selector-list-item">' + ('<input type="radio" class="' + t.options.classPrefix + 'captions-selector-input" ') + ('name="' + t.id + '_captions" id="' + trackId + '" value="' + trackId + '" disabled>') + ('<label class="' + t.options.classPrefix + 'captions-selector-label"') + ('for="' + trackId + '">' + label + ' (loading)</label>') + '</li>';
2589
+ },
2590
+ checkForTracks: function checkForTracks() {
2591
+ var t = this;
2592
+
2593
+ var hasSubtitles = false;
2594
+
2595
+ if (t.options.hideCaptionsButtonWhenEmpty) {
2596
+ for (var i = 0, total = t.tracks.length; i < total; i++) {
2597
+ var kind = t.tracks[i].kind;
2598
+ if ((kind === 'subtitles' || kind === 'captions') && t.tracks[i].isLoaded) {
2599
+ hasSubtitles = true;
2600
+ break;
2601
+ }
2602
+ }
2603
+
2604
+ t.captionsButton.style.display = hasSubtitles ? '' : 'none';
2605
+ t.setControlsSize();
2606
+ }
2607
+ },
2608
+ displayCaptions: function displayCaptions() {
2609
+ if (this.tracks === undefined) {
2610
+ return;
2611
+ }
2612
+
2613
+ var t = this,
2614
+ track = t.selectedTrack,
2615
+ sanitize = function sanitize(html) {
2616
+ var div = _document2.default.createElement('div');
2617
+ div.innerHTML = html;
2618
+
2619
+ var scripts = div.getElementsByTagName('script');
2620
+ var i = scripts.length;
2621
+ while (i--) {
2622
+ scripts[i].remove();
2623
+ }
2624
+
2625
+ var allElements = div.getElementsByTagName('*');
2626
+ for (var _i12 = 0, n = allElements.length; _i12 < n; _i12++) {
2627
+ var attributesObj = allElements[_i12].attributes,
2628
+ attributes = Array.prototype.slice.call(attributesObj);
2629
+
2630
+ for (var j = 0, total = attributes.length; j < total; j++) {
2631
+ if (attributes[j].name.startsWith('on') || attributes[j].value.startsWith('javascript')) {
2632
+ allElements[_i12].remove();
2633
+ } else if (attributes[j].name === 'style') {
2634
+ allElements[_i12].removeAttribute(attributes[j].name);
2635
+ }
2636
+ }
2637
+ }
2638
+ return div.innerHTML;
2639
+ };
2640
+
2641
+ if (track !== null && track.isLoaded) {
2642
+ var i = t.searchTrackPosition(track.entries, t.media.currentTime);
2643
+ if (i > -1) {
2644
+ t.captionsText.innerHTML = sanitize(track.entries[i].text);
2645
+ t.captionsText.className = t.options.classPrefix + 'captions-text ' + (track.entries[i].identifier || '');
2646
+ t.captions.style.display = '';
2647
+ t.captions.style.height = '0px';
2648
+ return;
2649
+ }
2650
+ t.captions.style.display = 'none';
2651
+ } else {
2652
+ t.captions.style.display = 'none';
2653
+ }
2654
+ },
2655
+ setupSlides: function setupSlides(track) {
2656
+ var t = this;
2657
+ t.slides = track;
2658
+ t.slides.entries.imgs = [t.slides.entries.length];
2659
+ t.showSlide(0);
2660
+ },
2661
+ showSlide: function showSlide(index) {
2662
+ var _this = this;
2663
+
2664
+ var t = this;
2665
+
2666
+ if (t.tracks === undefined || t.slidesContainer === undefined) {
2667
+ return;
2668
+ }
2669
+
2670
+ var url = t.slides.entries[index].text;
2671
+
2672
+ var img = t.slides.entries[index].imgs;
2673
+
2674
+ if (img === undefined || img.fadeIn === undefined) {
2675
+ var image = _document2.default.createElement('img');
2676
+ image.src = url;
2677
+ image.addEventListener('load', function () {
2678
+ var self = _this,
2679
+ visible = (0, _dom.siblings)(self, function (el) {
2680
+ return visible(el);
2681
+ });
2682
+ self.style.display = 'none';
2683
+ t.slidesContainer.innerHTML += self.innerHTML;
2684
+ (0, _dom.fadeIn)(t.slidesContainer.querySelector(image));
2685
+ for (var i = 0, total = visible.length; i < total; i++) {
2686
+ (0, _dom.fadeOut)(visible[i], 400);
2687
+ }
2688
+ });
2689
+ t.slides.entries[index].imgs = img = image;
2690
+ } else if (!(0, _dom.visible)(img)) {
2691
+ var _visible = (0, _dom.siblings)(self, function (el) {
2692
+ return _visible(el);
2693
+ });
2694
+ (0, _dom.fadeIn)(t.slidesContainer.querySelector(img));
2695
+ for (var i = 0, total = _visible.length; i < total; i++) {
2696
+ (0, _dom.fadeOut)(_visible[i]);
2697
+ }
2698
+ }
2699
+ },
2700
+ displaySlides: function displaySlides() {
2701
+ var t = this;
2702
+
2703
+ if (this.slides === undefined) {
2704
+ return;
2705
+ }
2706
+
2707
+ var slides = t.slides,
2708
+ i = t.searchTrackPosition(slides.entries, t.media.currentTime);
2709
+
2710
+ if (i > -1) {
2711
+ t.showSlide(i);
2712
+ }
2713
+ },
2714
+ drawChapters: function drawChapters(chapters) {
2715
+ var t = this,
2716
+ total = chapters.entries.length;
2717
+
2718
+ if (!total) {
2719
+ return;
2720
+ }
2721
+
2722
+ t.chaptersButton.querySelector('ul').innerHTML = '';
2723
+
2724
+ for (var i = 0; i < total; i++) {
2725
+ t.chaptersButton.querySelector('ul').innerHTML += '<li class="' + t.options.classPrefix + 'chapters-selector-list-item" ' + 'role="menuitemcheckbox" aria-live="polite" aria-disabled="false" aria-checked="false">' + ('<input type="radio" class="' + t.options.classPrefix + 'captions-selector-input" ') + ('name="' + t.id + '_chapters" id="' + t.id + '_chapters_' + i + '" value="' + chapters.entries[i].start + '" disabled>') + ('<label class="' + t.options.classPrefix + 'chapters-selector-label"') + ('for="' + t.id + '_chapters_' + i + '">' + chapters.entries[i].text + '</label>') + '</li>';
2726
+ }
2727
+
2728
+ var radios = t.chaptersButton.querySelectorAll('input[type="radio"]'),
2729
+ labels = t.chaptersButton.querySelectorAll('.' + t.options.classPrefix + 'chapters-selector-label');
2730
+
2731
+ for (var _i13 = 0, _total10 = radios.length; _i13 < _total10; _i13++) {
2732
+ radios[_i13].disabled = false;
2733
+ radios[_i13].checked = false;
2734
+ radios[_i13].addEventListener('click', function (e) {
2735
+ var self = this,
2736
+ listItems = t.chaptersButton.querySelectorAll('li'),
2737
+ label = (0, _dom.siblings)(self, function (el) {
2738
+ return (0, _dom.hasClass)(el, t.options.classPrefix + 'chapters-selector-label');
2739
+ })[0];
2740
+
2741
+ self.checked = true;
2742
+ self.parentNode.setAttribute('aria-checked', true);
2743
+ (0, _dom.addClass)(label, t.options.classPrefix + 'chapters-selected');
2744
+ (0, _dom.removeClass)(t.chaptersButton.querySelector('.' + t.options.classPrefix + 'chapters-selected'), t.options.classPrefix + 'chapters-selected');
2745
+
2746
+ for (var _i14 = 0, _total11 = listItems.length; _i14 < _total11; _i14++) {
2747
+ listItems[_i14].setAttribute('aria-checked', false);
2748
+ }
2749
+
2750
+ var keyboard = e.keyCode || e.which;
2751
+ if (typeof keyboard === 'undefined') {
2752
+ setTimeout(function () {
2753
+ t.getElement(t.container).focus();
2754
+ }, 500);
2755
+ }
2756
+
2757
+ t.media.setCurrentTime(parseFloat(self.value));
2758
+ if (t.media.paused) {
2759
+ t.media.play();
2760
+ }
2761
+ });
2762
+ }
2763
+
2764
+ for (var _i15 = 0, _total12 = labels.length; _i15 < _total12; _i15++) {
2765
+ labels[_i15].addEventListener('click', function (e) {
2766
+ var radio = (0, _dom.siblings)(this, function (el) {
2767
+ return el.tagName === 'INPUT';
2768
+ })[0],
2769
+ event = (0, _general.createEvent)('click', radio);
2770
+ radio.dispatchEvent(event);
2771
+ e.preventDefault();
2772
+ });
2773
+ }
2774
+ },
2775
+ searchTrackPosition: function searchTrackPosition(tracks, currentTime) {
2776
+ var lo = 0,
2777
+ hi = tracks.length - 1,
2778
+ mid = void 0,
2779
+ start = void 0,
2780
+ stop = void 0;
2781
+
2782
+ while (lo <= hi) {
2783
+ mid = lo + hi >> 1;
2784
+ start = tracks[mid].start;
2785
+ stop = tracks[mid].stop;
2786
+
2787
+ if (currentTime >= start && currentTime < stop) {
2788
+ return mid;
2789
+ } else if (start < currentTime) {
2790
+ lo = mid + 1;
2791
+ } else if (start > currentTime) {
2792
+ hi = mid - 1;
2793
+ }
2794
+ }
2795
+
2796
+ return -1;
2797
+ }
2798
+ });
2799
+
2800
+ _mejs2.default.language = {
2801
+ codes: {
2802
+ af: 'mejs.afrikaans',
2803
+ sq: 'mejs.albanian',
2804
+ ar: 'mejs.arabic',
2805
+ be: 'mejs.belarusian',
2806
+ bg: 'mejs.bulgarian',
2807
+ ca: 'mejs.catalan',
2808
+ zh: 'mejs.chinese',
2809
+ 'zh-cn': 'mejs.chinese-simplified',
2810
+ 'zh-tw': 'mejs.chines-traditional',
2811
+ hr: 'mejs.croatian',
2812
+ cs: 'mejs.czech',
2813
+ da: 'mejs.danish',
2814
+ nl: 'mejs.dutch',
2815
+ en: 'mejs.english',
2816
+ et: 'mejs.estonian',
2817
+ fl: 'mejs.filipino',
2818
+ fi: 'mejs.finnish',
2819
+ fr: 'mejs.french',
2820
+ gl: 'mejs.galician',
2821
+ de: 'mejs.german',
2822
+ el: 'mejs.greek',
2823
+ ht: 'mejs.haitian-creole',
2824
+ iw: 'mejs.hebrew',
2825
+ hi: 'mejs.hindi',
2826
+ hu: 'mejs.hungarian',
2827
+ is: 'mejs.icelandic',
2828
+ id: 'mejs.indonesian',
2829
+ ga: 'mejs.irish',
2830
+ it: 'mejs.italian',
2831
+ ja: 'mejs.japanese',
2832
+ ko: 'mejs.korean',
2833
+ lv: 'mejs.latvian',
2834
+ lt: 'mejs.lithuanian',
2835
+ mk: 'mejs.macedonian',
2836
+ ms: 'mejs.malay',
2837
+ mt: 'mejs.maltese',
2838
+ no: 'mejs.norwegian',
2839
+ fa: 'mejs.persian',
2840
+ pl: 'mejs.polish',
2841
+ pt: 'mejs.portuguese',
2842
+ ro: 'mejs.romanian',
2843
+ ru: 'mejs.russian',
2844
+ sr: 'mejs.serbian',
2845
+ sk: 'mejs.slovak',
2846
+ sl: 'mejs.slovenian',
2847
+ es: 'mejs.spanish',
2848
+ sw: 'mejs.swahili',
2849
+ sv: 'mejs.swedish',
2850
+ tl: 'mejs.tagalog',
2851
+ th: 'mejs.thai',
2852
+ tr: 'mejs.turkish',
2853
+ uk: 'mejs.ukrainian',
2854
+ vi: 'mejs.vietnamese',
2855
+ cy: 'mejs.welsh',
2856
+ yi: 'mejs.yiddish'
2857
+ }
2858
+ };
2859
+
2860
+ _mejs2.default.TrackFormatParser = {
2861
+ webvtt: {
2862
+ pattern: /^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,
2863
+
2864
+ parse: function parse(trackText) {
2865
+ var lines = trackText.split(/\r?\n/),
2866
+ entries = [];
2867
+
2868
+ var timecode = void 0,
2869
+ text = void 0,
2870
+ identifier = void 0;
2871
+
2872
+ for (var i = 0, total = lines.length; i < total; i++) {
2873
+ timecode = this.pattern.exec(lines[i]);
2874
+
2875
+ if (timecode && i < lines.length) {
2876
+ if (i - 1 >= 0 && lines[i - 1] !== '') {
2877
+ identifier = lines[i - 1];
2878
+ }
2879
+ i++;
2880
+
2881
+ text = lines[i];
2882
+ i++;
2883
+ while (lines[i] !== '' && i < lines.length) {
2884
+ text = text + '\n' + lines[i];
2885
+ i++;
2886
+ }
2887
+ text = text.trim().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
2888
+ entries.push({
2889
+ identifier: identifier,
2890
+ start: (0, _time.convertSMPTEtoSeconds)(timecode[1]) === 0 ? 0.200 : (0, _time.convertSMPTEtoSeconds)(timecode[1]),
2891
+ stop: (0, _time.convertSMPTEtoSeconds)(timecode[3]),
2892
+ text: text,
2893
+ settings: timecode[5]
2894
+ });
2895
+ }
2896
+ identifier = '';
2897
+ }
2898
+ return entries;
2899
+ }
2900
+ },
2901
+
2902
+ dfxp: {
2903
+ parse: function parse(trackText) {
2904
+ trackText = $(trackText).filter('tt');
2905
+ var container = trackText.firstChild,
2906
+ lines = container.querySelectorAll('p'),
2907
+ styleNode = trackText.getElementById('' + container.attr('style')),
2908
+ entries = [];
2909
+
2910
+ var styles = void 0;
2911
+
2912
+ if (styleNode.length) {
2913
+ styleNode.removeAttribute('id');
2914
+ var attributes = styleNode.attributes;
2915
+ if (attributes.length) {
2916
+ styles = {};
2917
+ for (var i = 0, total = attributes.length; i < total; i++) {
2918
+ styles[attributes[i].name.split(":")[1]] = attributes[i].value;
2919
+ }
2920
+ }
2921
+ }
2922
+
2923
+ for (var _i16 = 0, _total13 = lines.length; _i16 < _total13; _i16++) {
2924
+ var style = void 0,
2925
+ _temp = {
2926
+ start: null,
2927
+ stop: null,
2928
+ style: null,
2929
+ text: null
2930
+ };
2931
+
2932
+ if (lines.eq(_i16).attr('begin')) {
2933
+ _temp.start = (0, _time.convertSMPTEtoSeconds)(lines.eq(_i16).attr('begin'));
2934
+ }
2935
+ if (!_temp.start && lines.eq(_i16 - 1).attr('end')) {
2936
+ _temp.start = (0, _time.convertSMPTEtoSeconds)(lines.eq(_i16 - 1).attr('end'));
2937
+ }
2938
+ if (lines.eq(_i16).attr('end')) {
2939
+ _temp.stop = (0, _time.convertSMPTEtoSeconds)(lines.eq(_i16).attr('end'));
2940
+ }
2941
+ if (!_temp.stop && lines.eq(_i16 + 1).attr('begin')) {
2942
+ _temp.stop = (0, _time.convertSMPTEtoSeconds)(lines.eq(_i16 + 1).attr('begin'));
2943
+ }
2944
+
2945
+ if (styles) {
2946
+ style = '';
2947
+ for (var _style in styles) {
2948
+ style += _style + ':' + styles[_style] + ';';
2949
+ }
2950
+ }
2951
+ if (style) {
2952
+ _temp.style = style;
2953
+ }
2954
+ if (_temp.start === 0) {
2955
+ _temp.start = 0.200;
2956
+ }
2957
+ _temp.text = lines.eq(_i16).innerHTML.trim().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
2958
+ entries.push(_temp);
2959
+ }
2960
+ return entries;
2961
+ }
2962
+ }
2963
+ };
2964
+
2965
+ },{"16":16,"2":2,"26":26,"27":27,"30":30,"5":5,"7":7}],14:[function(_dereq_,module,exports){
2966
+ 'use strict';
2967
+
2968
+ var _document = _dereq_(2);
2969
+
2970
+ var _document2 = _interopRequireDefault(_document);
2971
+
2972
+ var _player = _dereq_(16);
2973
+
2974
+ var _player2 = _interopRequireDefault(_player);
2975
+
2976
+ var _i18n = _dereq_(5);
2977
+
2978
+ var _i18n2 = _interopRequireDefault(_i18n);
2979
+
2980
+ var _constants = _dereq_(25);
2981
+
2982
+ var _general = _dereq_(27);
2983
+
2984
+ var _dom = _dereq_(26);
2985
+
2986
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2987
+
2988
+ Object.assign(_player.config, {
2989
+ muteText: null,
2990
+
2991
+ unmuteText: null,
2992
+
2993
+ allyVolumeControlText: null,
2994
+
2995
+ hideVolumeOnTouchDevices: true,
2996
+
2997
+ audioVolume: 'horizontal',
2998
+
2999
+ videoVolume: 'vertical',
3000
+
3001
+ startVolume: 0.8
3002
+ });
3003
+
3004
+ Object.assign(_player2.default.prototype, {
3005
+ buildvolume: function buildvolume(player, controls, layers, media) {
3006
+ if ((_constants.IS_ANDROID || _constants.IS_IOS) && this.options.hideVolumeOnTouchDevices) {
3007
+ return;
3008
+ }
3009
+
3010
+ var t = this,
3011
+ mode = t.isVideo ? t.options.videoVolume : t.options.audioVolume,
3012
+ muteText = (0, _general.isString)(t.options.muteText) ? t.options.muteText : _i18n2.default.t('mejs.mute'),
3013
+ unmuteText = (0, _general.isString)(t.options.unmuteText) ? t.options.unmuteText : _i18n2.default.t('mejs.unmute'),
3014
+ volumeControlText = (0, _general.isString)(t.options.allyVolumeControlText) ? t.options.allyVolumeControlText : _i18n2.default.t('mejs.volume-help-text'),
3015
+ mute = _document2.default.createElement('div');
3016
+
3017
+ mute.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'volume-button ' + t.options.classPrefix + 'mute';
3018
+ mute.innerHTML = mode === 'horizontal' ? '<button type="button" aria-controls="' + t.id + '" title="' + muteText + '" aria-label="' + muteText + '" tabindex="0"></button>' : '<button type="button" aria-controls="' + t.id + '" title="' + muteText + '" aria-label="' + muteText + '" tabindex="0"></button>' + ('<a href="javascript:void(0);" class="' + t.options.classPrefix + 'volume-slider" ') + ('aria-label="' + _i18n2.default.t('mejs.volume-slider') + '" aria-valuemin="0" aria-valuemax="100" role="slider" ') + 'aria-orientation="vertical">' + ('<span class="' + t.options.classPrefix + 'offscreen">' + volumeControlText + '</span>') + ('<div class="' + t.options.classPrefix + 'volume-total">') + ('<div class="' + t.options.classPrefix + 'volume-current"></div>') + ('<div class="' + t.options.classPrefix + 'volume-handle"></div>') + '</div>' + '</a>';
3019
+
3020
+ t.addControlElement(mute, 'volume');
3021
+
3022
+ t.options.keyActions.push({
3023
+ keys: [38],
3024
+ action: function action(player) {
3025
+ var volumeSlider = player.getElement(player.container).querySelector('.' + _player.config.classPrefix + 'volume-slider');
3026
+ if (volumeSlider || player.getElement(player.container).querySelector('.' + _player.config.classPrefix + 'volume-slider').matches(':focus')) {
3027
+ volumeSlider.style.display = 'block';
3028
+ }
3029
+ if (player.isVideo) {
3030
+ player.showControls();
3031
+ player.startControlsTimer();
3032
+ }
3033
+
3034
+ var newVolume = Math.min(player.volume + 0.1, 1);
3035
+ player.setVolume(newVolume);
3036
+ if (newVolume > 0) {
3037
+ player.setMuted(false);
3038
+ }
3039
+ }
3040
+ }, {
3041
+ keys: [40],
3042
+ action: function action(player) {
3043
+ var volumeSlider = player.getElement(player.container).querySelector('.' + _player.config.classPrefix + 'volume-slider');
3044
+ if (volumeSlider) {
3045
+ volumeSlider.style.display = 'block';
3046
+ }
3047
+
3048
+ if (player.isVideo) {
3049
+ player.showControls();
3050
+ player.startControlsTimer();
3051
+ }
3052
+
3053
+ var newVolume = Math.max(player.volume - 0.1, 0);
3054
+ player.setVolume(newVolume);
3055
+
3056
+ if (newVolume <= 0.1) {
3057
+ player.setMuted(true);
3058
+ }
3059
+ }
3060
+ }, {
3061
+ keys: [77],
3062
+ action: function action(player) {
3063
+ player.getElement(player.container).querySelector('.' + _player.config.classPrefix + 'volume-slider').style.display = 'block';
3064
+ if (player.isVideo) {
3065
+ player.showControls();
3066
+ player.startControlsTimer();
3067
+ }
3068
+ if (player.media.muted) {
3069
+ player.setMuted(false);
3070
+ } else {
3071
+ player.setMuted(true);
3072
+ }
3073
+ }
3074
+ });
3075
+
3076
+ if (mode === 'horizontal') {
3077
+ var anchor = _document2.default.createElement('a');
3078
+ anchor.className = t.options.classPrefix + 'horizontal-volume-slider';
3079
+ anchor.href = 'javascript:void(0);';
3080
+ anchor.setAttribute('aria-label', _i18n2.default.t('mejs.volume-slider'));
3081
+ anchor.setAttribute('aria-valuemin', 0);
3082
+ anchor.setAttribute('aria-valuemax', 100);
3083
+ anchor.setAttribute('role', 'slider');
3084
+ anchor.innerHTML += '<span class="' + t.options.classPrefix + 'offscreen">' + volumeControlText + '</span>' + ('<div class="' + t.options.classPrefix + 'horizontal-volume-total">') + ('<div class="' + t.options.classPrefix + 'horizontal-volume-current"></div>') + ('<div class="' + t.options.classPrefix + 'horizontal-volume-handle"></div>') + '</div>';
3085
+ mute.parentNode.insertBefore(anchor, mute.nextSibling);
3086
+ }
3087
+
3088
+ var mouseIsDown = false,
3089
+ mouseIsOver = false,
3090
+ modified = false,
3091
+ updateVolumeSlider = function updateVolumeSlider() {
3092
+ var volume = Math.floor(media.volume * 100);
3093
+ volumeSlider.setAttribute('aria-valuenow', volume);
3094
+ volumeSlider.setAttribute('aria-valuetext', volume + '%');
3095
+ };
3096
+
3097
+ var volumeSlider = mode === 'vertical' ? t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'volume-slider') : t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'horizontal-volume-slider'),
3098
+ volumeTotal = mode === 'vertical' ? t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'volume-total') : t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'horizontal-volume-total'),
3099
+ volumeCurrent = mode === 'vertical' ? t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'volume-current') : t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'horizontal-volume-current'),
3100
+ volumeHandle = mode === 'vertical' ? t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'volume-handle') : t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'horizontal-volume-handle'),
3101
+ positionVolumeHandle = function positionVolumeHandle(volume) {
3102
+
3103
+ if (volume === null || isNaN(volume) || volume === undefined) {
3104
+ return;
3105
+ }
3106
+
3107
+ volume = Math.max(0, volume);
3108
+ volume = Math.min(volume, 1);
3109
+
3110
+ if (volume === 0) {
3111
+ (0, _dom.removeClass)(mute, t.options.classPrefix + 'mute');
3112
+ (0, _dom.addClass)(mute, t.options.classPrefix + 'unmute');
3113
+ var button = mute.firstElementChild;
3114
+ button.setAttribute('title', unmuteText);
3115
+ button.setAttribute('aria-label', unmuteText);
3116
+ } else {
3117
+ (0, _dom.removeClass)(mute, t.options.classPrefix + 'unmute');
3118
+ (0, _dom.addClass)(mute, t.options.classPrefix + 'mute');
3119
+ var _button = mute.firstElementChild;
3120
+ _button.setAttribute('title', muteText);
3121
+ _button.setAttribute('aria-label', muteText);
3122
+ }
3123
+
3124
+ var volumePercentage = volume * 100 + '%',
3125
+ volumeStyles = getComputedStyle(volumeHandle);
3126
+
3127
+ if (mode === 'vertical') {
3128
+ volumeCurrent.style.bottom = 0;
3129
+ volumeCurrent.style.height = volumePercentage;
3130
+ volumeHandle.style.bottom = volumePercentage;
3131
+ volumeHandle.style.marginBottom = -parseFloat(volumeStyles.height) / 2 + 'px';
3132
+ } else {
3133
+ volumeCurrent.style.left = 0;
3134
+ volumeCurrent.style.width = volumePercentage;
3135
+ volumeHandle.style.left = volumePercentage;
3136
+ volumeHandle.style.marginLeft = -parseFloat(volumeStyles.width) / 2 + 'px';
3137
+ }
3138
+ },
3139
+ handleVolumeMove = function handleVolumeMove(e) {
3140
+ var totalOffset = (0, _dom.offset)(volumeTotal),
3141
+ volumeStyles = getComputedStyle(volumeTotal);
3142
+
3143
+ modified = true;
3144
+
3145
+ var volume = null;
3146
+
3147
+ if (mode === 'vertical') {
3148
+ var railHeight = parseFloat(volumeStyles.height),
3149
+ newY = e.pageY - totalOffset.top;
3150
+
3151
+ volume = (railHeight - newY) / railHeight;
3152
+
3153
+ if (totalOffset.top === 0 || totalOffset.left === 0) {
3154
+ return;
3155
+ }
3156
+ } else {
3157
+ var railWidth = parseFloat(volumeStyles.width),
3158
+ newX = e.pageX - totalOffset.left;
3159
+
3160
+ volume = newX / railWidth;
3161
+ }
3162
+
3163
+ volume = Math.max(0, volume);
3164
+ volume = Math.min(volume, 1);
3165
+
3166
+ positionVolumeHandle(volume);
3167
+
3168
+ t.setMuted(volume === 0);
3169
+ t.setVolume(volume);
3170
+
3171
+ e.preventDefault();
3172
+ e.stopPropagation();
3173
+ },
3174
+ toggleMute = function toggleMute() {
3175
+ if (t.muted) {
3176
+ positionVolumeHandle(0);
3177
+ (0, _dom.removeClass)(mute, t.options.classPrefix + 'mute');
3178
+ (0, _dom.addClass)(mute, t.options.classPrefix + 'unmute');
3179
+ } else {
3180
+ positionVolumeHandle(media.volume);
3181
+ (0, _dom.removeClass)(mute, t.options.classPrefix + 'unmute');
3182
+ (0, _dom.addClass)(mute, t.options.classPrefix + 'mute');
3183
+ }
3184
+ };
3185
+
3186
+ player.getElement(player.container).addEventListener('keydown', function (e) {
3187
+ var hasFocus = !!e.target.closest('.' + t.options.classPrefix + 'container');
3188
+ if (!hasFocus && mode === 'vertical') {
3189
+ volumeSlider.style.display = 'none';
3190
+ }
3191
+ });
3192
+
3193
+ mute.addEventListener('mouseenter', function (e) {
3194
+ if (e.target === mute) {
3195
+ volumeSlider.style.display = 'block';
3196
+ mouseIsOver = true;
3197
+ e.preventDefault();
3198
+ e.stopPropagation();
3199
+ }
3200
+ });
3201
+ mute.addEventListener('focusin', function () {
3202
+ volumeSlider.style.display = 'block';
3203
+ mouseIsOver = true;
3204
+ });
3205
+
3206
+ mute.addEventListener('focusout', function (e) {
3207
+ if ((!e.relatedTarget || e.relatedTarget && !e.relatedTarget.matches('.' + t.options.classPrefix + 'volume-slider')) && mode === 'vertical') {
3208
+ volumeSlider.style.display = 'none';
3209
+ }
3210
+ });
3211
+ mute.addEventListener('mouseleave', function () {
3212
+ mouseIsOver = false;
3213
+ if (!mouseIsDown && mode === 'vertical') {
3214
+ volumeSlider.style.display = 'none';
3215
+ }
3216
+ });
3217
+ mute.addEventListener('focusout', function () {
3218
+ mouseIsOver = false;
3219
+ });
3220
+ mute.addEventListener('keydown', function (e) {
3221
+ if (t.options.keyActions.length) {
3222
+ var keyCode = e.which || e.keyCode || 0,
3223
+ volume = media.volume;
3224
+
3225
+ switch (keyCode) {
3226
+ case 38:
3227
+ volume = Math.min(volume + 0.1, 1);
3228
+ break;
3229
+ case 40:
3230
+ volume = Math.max(0, volume - 0.1);
3231
+ break;
3232
+ default:
3233
+ return true;
3234
+ }
3235
+
3236
+ mouseIsDown = false;
3237
+ positionVolumeHandle(volume);
3238
+ media.setVolume(volume);
3239
+
3240
+ e.preventDefault();
3241
+ e.stopPropagation();
3242
+ }
3243
+ });
3244
+ mute.querySelector('button').addEventListener('click', function () {
3245
+ media.setMuted(!media.muted);
3246
+ var event = (0, _general.createEvent)('volumechange', media);
3247
+ media.dispatchEvent(event);
3248
+ });
3249
+
3250
+ volumeSlider.addEventListener('dragstart', function () {
3251
+ return false;
3252
+ });
3253
+
3254
+ volumeSlider.addEventListener('mouseover', function () {
3255
+ mouseIsOver = true;
3256
+ });
3257
+ volumeSlider.addEventListener('focusin', function () {
3258
+ volumeSlider.style.display = 'block';
3259
+ mouseIsOver = true;
3260
+ });
3261
+ volumeSlider.addEventListener('focusout', function () {
3262
+ mouseIsOver = false;
3263
+ if (!mouseIsDown && mode === 'vertical') {
3264
+ volumeSlider.style.display = 'none';
3265
+ }
3266
+ });
3267
+ volumeSlider.addEventListener('mousedown', function (e) {
3268
+ handleVolumeMove(e);
3269
+ t.globalBind('mousemove.vol', function (event) {
3270
+ var target = event.target;
3271
+ if (mouseIsDown && (target === volumeSlider || target.closest(mode === 'vertical' ? '.' + t.options.classPrefix + 'volume-slider' : '.' + t.options.classPrefix + 'horizontal-volume-slider'))) {
3272
+ handleVolumeMove(event);
3273
+ }
3274
+ });
3275
+ t.globalBind('mouseup.vol', function () {
3276
+ mouseIsDown = false;
3277
+ if (!mouseIsOver && mode === 'vertical') {
3278
+ volumeSlider.style.display = 'none';
3279
+ }
3280
+ });
3281
+ mouseIsDown = true;
3282
+ e.preventDefault();
3283
+ e.stopPropagation();
3284
+ });
3285
+
3286
+ media.addEventListener('volumechange', function (e) {
3287
+ if (!mouseIsDown) {
3288
+ toggleMute();
3289
+ }
3290
+ updateVolumeSlider(e);
3291
+ });
3292
+
3293
+ var rendered = false;
3294
+ media.addEventListener('rendererready', function () {
3295
+ if (!modified) {
3296
+ setTimeout(function () {
3297
+ rendered = true;
3298
+ if (player.options.startVolume === 0 || media.originalNode.muted) {
3299
+ media.setMuted(true);
3300
+ player.options.startVolume = 0;
3301
+ }
3302
+ media.setVolume(player.options.startVolume);
3303
+ t.setControlsSize();
3304
+ }, 250);
3305
+ }
3306
+ });
3307
+
3308
+ media.addEventListener('loadedmetadata', function () {
3309
+ setTimeout(function () {
3310
+ if (!modified && !rendered) {
3311
+ if (player.options.startVolume === 0 || media.originalNode.muted) {
3312
+ media.setMuted(true);
3313
+ }
3314
+ media.setVolume(player.options.startVolume);
3315
+ t.setControlsSize();
3316
+ }
3317
+ rendered = false;
3318
+ }, 250);
3319
+ });
3320
+
3321
+ if (player.options.startVolume === 0 || media.originalNode.muted) {
3322
+ media.setMuted(true);
3323
+ player.options.startVolume = 0;
3324
+ toggleMute();
3325
+ }
3326
+
3327
+ t.getElement(t.container).addEventListener('controlsresize', function () {
3328
+ toggleMute();
3329
+ });
3330
+ }
3331
+ });
3332
+
3333
+ },{"16":16,"2":2,"25":25,"26":26,"27":27,"5":5}],15:[function(_dereq_,module,exports){
3334
+ 'use strict';
3335
+
3336
+ Object.defineProperty(exports, "__esModule", {
3337
+ value: true
3338
+ });
3339
+ var EN = exports.EN = {
3340
+ 'mejs.plural-form': 1,
3341
+
3342
+ 'mejs.download-file': 'Download File',
3343
+
3344
+ 'mejs.install-flash': 'You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/',
3345
+
3346
+ 'mejs.fullscreen': 'Fullscreen',
3347
+
3348
+ 'mejs.play': 'Play',
3349
+ 'mejs.pause': 'Pause',
3350
+
3351
+ 'mejs.time-slider': 'Time Slider',
3352
+ 'mejs.time-help-text': 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.',
3353
+ 'mejs.live-broadcast': 'Live Broadcast',
3354
+
3355
+ 'mejs.volume-help-text': 'Use Up/Down Arrow keys to increase or decrease volume.',
3356
+ 'mejs.unmute': 'Unmute',
3357
+ 'mejs.mute': 'Mute',
3358
+ 'mejs.volume-slider': 'Volume Slider',
3359
+
3360
+ 'mejs.video-player': 'Video Player',
3361
+ 'mejs.audio-player': 'Audio Player',
3362
+
3363
+ 'mejs.captions-subtitles': 'Captions/Subtitles',
3364
+ 'mejs.captions-chapters': 'Chapters',
3365
+ 'mejs.none': 'None',
3366
+ 'mejs.afrikaans': 'Afrikaans',
3367
+ 'mejs.albanian': 'Albanian',
3368
+ 'mejs.arabic': 'Arabic',
3369
+ 'mejs.belarusian': 'Belarusian',
3370
+ 'mejs.bulgarian': 'Bulgarian',
3371
+ 'mejs.catalan': 'Catalan',
3372
+ 'mejs.chinese': 'Chinese',
3373
+ 'mejs.chinese-simplified': 'Chinese (Simplified)',
3374
+ 'mejs.chinese-traditional': 'Chinese (Traditional)',
3375
+ 'mejs.croatian': 'Croatian',
3376
+ 'mejs.czech': 'Czech',
3377
+ 'mejs.danish': 'Danish',
3378
+ 'mejs.dutch': 'Dutch',
3379
+ 'mejs.english': 'English',
3380
+ 'mejs.estonian': 'Estonian',
3381
+ 'mejs.filipino': 'Filipino',
3382
+ 'mejs.finnish': 'Finnish',
3383
+ 'mejs.french': 'French',
3384
+ 'mejs.galician': 'Galician',
3385
+ 'mejs.german': 'German',
3386
+ 'mejs.greek': 'Greek',
3387
+ 'mejs.haitian-creole': 'Haitian Creole',
3388
+ 'mejs.hebrew': 'Hebrew',
3389
+ 'mejs.hindi': 'Hindi',
3390
+ 'mejs.hungarian': 'Hungarian',
3391
+ 'mejs.icelandic': 'Icelandic',
3392
+ 'mejs.indonesian': 'Indonesian',
3393
+ 'mejs.irish': 'Irish',
3394
+ 'mejs.italian': 'Italian',
3395
+ 'mejs.japanese': 'Japanese',
3396
+ 'mejs.korean': 'Korean',
3397
+ 'mejs.latvian': 'Latvian',
3398
+ 'mejs.lithuanian': 'Lithuanian',
3399
+ 'mejs.macedonian': 'Macedonian',
3400
+ 'mejs.malay': 'Malay',
3401
+ 'mejs.maltese': 'Maltese',
3402
+ 'mejs.norwegian': 'Norwegian',
3403
+ 'mejs.persian': 'Persian',
3404
+ 'mejs.polish': 'Polish',
3405
+ 'mejs.portuguese': 'Portuguese',
3406
+ 'mejs.romanian': 'Romanian',
3407
+ 'mejs.russian': 'Russian',
3408
+ 'mejs.serbian': 'Serbian',
3409
+ 'mejs.slovak': 'Slovak',
3410
+ 'mejs.slovenian': 'Slovenian',
3411
+ 'mejs.spanish': 'Spanish',
3412
+ 'mejs.swahili': 'Swahili',
3413
+ 'mejs.swedish': 'Swedish',
3414
+ 'mejs.tagalog': 'Tagalog',
3415
+ 'mejs.thai': 'Thai',
3416
+ 'mejs.turkish': 'Turkish',
3417
+ 'mejs.ukrainian': 'Ukrainian',
3418
+ 'mejs.vietnamese': 'Vietnamese',
3419
+ 'mejs.welsh': 'Welsh',
3420
+ 'mejs.yiddish': 'Yiddish'
3421
+ };
3422
+
3423
+ },{}],16:[function(_dereq_,module,exports){
3424
+ 'use strict';
3425
+
3426
+ Object.defineProperty(exports, "__esModule", {
3427
+ value: true
3428
+ });
3429
+ exports.config = undefined;
3430
+
3431
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
3432
+
3433
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
3434
+
3435
+ var _window = _dereq_(3);
3436
+
3437
+ var _window2 = _interopRequireDefault(_window);
3438
+
3439
+ var _document = _dereq_(2);
3440
+
3441
+ var _document2 = _interopRequireDefault(_document);
3442
+
3443
+ var _mejs = _dereq_(7);
3444
+
3445
+ var _mejs2 = _interopRequireDefault(_mejs);
3446
+
3447
+ var _mediaelement = _dereq_(6);
3448
+
3449
+ var _mediaelement2 = _interopRequireDefault(_mediaelement);
3450
+
3451
+ var _default = _dereq_(17);
3452
+
3453
+ var _default2 = _interopRequireDefault(_default);
3454
+
3455
+ var _i18n = _dereq_(5);
3456
+
3457
+ var _i18n2 = _interopRequireDefault(_i18n);
3458
+
3459
+ var _constants = _dereq_(25);
3460
+
3461
+ var _general = _dereq_(27);
3462
+
3463
+ var _time = _dereq_(30);
3464
+
3465
+ var _media = _dereq_(28);
3466
+
3467
+ var _dom = _dereq_(26);
3468
+
3469
+ var dom = _interopRequireWildcard(_dom);
3470
+
3471
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
3472
+
3473
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3474
+
3475
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3476
+
3477
+ _mejs2.default.mepIndex = 0;
3478
+
3479
+ _mejs2.default.players = {};
3480
+
3481
+ var config = exports.config = {
3482
+ poster: '',
3483
+
3484
+ showPosterWhenEnded: false,
3485
+
3486
+ showPosterWhenPaused: false,
3487
+
3488
+ defaultVideoWidth: 480,
3489
+
3490
+ defaultVideoHeight: 270,
3491
+
3492
+ videoWidth: -1,
3493
+
3494
+ videoHeight: -1,
3495
+
3496
+ defaultAudioWidth: 400,
3497
+
3498
+ defaultAudioHeight: 40,
3499
+
3500
+ defaultSeekBackwardInterval: function defaultSeekBackwardInterval(media) {
3501
+ return media.getDuration() * 0.05;
3502
+ },
3503
+
3504
+ defaultSeekForwardInterval: function defaultSeekForwardInterval(media) {
3505
+ return media.getDuration() * 0.05;
3506
+ },
3507
+
3508
+ setDimensions: true,
3509
+
3510
+ audioWidth: -1,
3511
+
3512
+ audioHeight: -1,
3513
+
3514
+ loop: false,
3515
+
3516
+ autoRewind: true,
3517
+
3518
+ enableAutosize: true,
3519
+
3520
+ timeFormat: '',
3521
+
3522
+ alwaysShowHours: false,
3523
+
3524
+ showTimecodeFrameCount: false,
3525
+
3526
+ framesPerSecond: 25,
3527
+
3528
+ alwaysShowControls: false,
3529
+
3530
+ hideVideoControlsOnLoad: false,
3531
+
3532
+ hideVideoControlsOnPause: false,
3533
+
3534
+ clickToPlayPause: true,
3535
+
3536
+ controlsTimeoutDefault: 1500,
3537
+
3538
+ controlsTimeoutMouseEnter: 2500,
3539
+
3540
+ controlsTimeoutMouseLeave: 1000,
3541
+
3542
+ iPadUseNativeControls: false,
3543
+
3544
+ iPhoneUseNativeControls: false,
3545
+
3546
+ AndroidUseNativeControls: false,
3547
+
3548
+ features: ['playpause', 'current', 'progress', 'duration', 'tracks', 'volume', 'fullscreen'],
3549
+
3550
+ useDefaultControls: false,
3551
+
3552
+ isVideo: true,
3553
+
3554
+ stretching: 'auto',
3555
+
3556
+ classPrefix: 'mejs__',
3557
+
3558
+ enableKeyboard: true,
3559
+
3560
+ pauseOtherPlayers: true,
3561
+
3562
+ secondsDecimalLength: 0,
3563
+
3564
+ customError: null,
3565
+
3566
+ keyActions: [{
3567
+ keys: [32, 179],
3568
+ action: function action(player) {
3569
+
3570
+ if (!_constants.IS_FIREFOX) {
3571
+ if (player.paused || player.ended) {
3572
+ player.play();
3573
+ } else {
3574
+ player.pause();
3575
+ }
3576
+ }
3577
+ }
3578
+ }]
3579
+ };
3580
+
3581
+ _mejs2.default.MepDefaults = config;
3582
+
3583
+ var MediaElementPlayer = function () {
3584
+ function MediaElementPlayer(node, o) {
3585
+ _classCallCheck(this, MediaElementPlayer);
3586
+
3587
+ var t = this,
3588
+ element = typeof node === 'string' ? _document2.default.getElementById(node) : node;
3589
+
3590
+ if (!(t instanceof MediaElementPlayer)) {
3591
+ return new MediaElementPlayer(element, o);
3592
+ }
3593
+
3594
+ t.node = t.media = element;
3595
+
3596
+ if (!t.node) {
3597
+ return;
3598
+ }
3599
+
3600
+ if (t.media.player) {
3601
+ return t.media.player;
3602
+ }
3603
+
3604
+ t.hasFocus = false;
3605
+
3606
+ t.controlsAreVisible = true;
3607
+
3608
+ t.controlsEnabled = true;
3609
+
3610
+ t.controlsTimer = null;
3611
+
3612
+ t.currentMediaTime = 0;
3613
+
3614
+ t.proxy = null;
3615
+
3616
+ if (o === undefined) {
3617
+ var options = t.node.getAttribute('data-mejsoptions');
3618
+ o = options ? JSON.parse(options) : {};
3619
+ }
3620
+
3621
+ t.options = Object.assign({}, config, o);
3622
+
3623
+ if (t.options.loop && !t.media.getAttribute('loop')) {
3624
+ t.media.loop = true;
3625
+ t.node.loop = true;
3626
+ } else if (t.media.loop) {
3627
+ t.options.loop = true;
3628
+ }
3629
+
3630
+ if (!t.options.timeFormat) {
3631
+ t.options.timeFormat = 'mm:ss';
3632
+ if (t.options.alwaysShowHours) {
3633
+ t.options.timeFormat = 'hh:mm:ss';
3634
+ }
3635
+ if (t.options.showTimecodeFrameCount) {
3636
+ t.options.timeFormat += ':ff';
3637
+ }
3638
+ }
3639
+
3640
+ (0, _time.calculateTimeFormat)(0, t.options, t.options.framesPerSecond || 25);
3641
+
3642
+ t.id = 'mep_' + _mejs2.default.mepIndex++;
3643
+
3644
+ _mejs2.default.players[t.id] = t;
3645
+
3646
+ t.init();
3647
+
3648
+ return t;
3649
+ }
3650
+
3651
+ _createClass(MediaElementPlayer, [{
3652
+ key: 'getElement',
3653
+ value: function getElement(element) {
3654
+ return element;
3655
+ }
3656
+ }, {
3657
+ key: 'init',
3658
+ value: function init() {
3659
+ var t = this,
3660
+ playerOptions = Object.assign({}, t.options, {
3661
+ success: function success(media, domNode) {
3662
+ t._meReady(media, domNode);
3663
+ },
3664
+ error: function error(e) {
3665
+ t._handleError(e);
3666
+ }
3667
+ }),
3668
+ tagName = t.node.tagName.toLowerCase();
3669
+
3670
+ t.isDynamic = tagName !== 'audio' && tagName !== 'video' && tagName !== 'iframe';
3671
+ t.isVideo = t.isDynamic ? t.options.isVideo : tagName !== 'audio' && t.options.isVideo;
3672
+ t.mediaFiles = null;
3673
+ t.trackFiles = null;
3674
+
3675
+ if (_constants.IS_IPAD && t.options.iPadUseNativeControls || _constants.IS_IPHONE && t.options.iPhoneUseNativeControls) {
3676
+ t.node.setAttribute('controls', true);
3677
+
3678
+ if (_constants.IS_IPAD && t.node.getAttribute('autoplay')) {
3679
+ t.play();
3680
+ }
3681
+ } else if ((t.isVideo || !t.isVideo && (t.options.features.length || t.options.useDefaultControls)) && !(_constants.IS_ANDROID && t.options.AndroidUseNativeControls)) {
3682
+ t.node.removeAttribute('controls');
3683
+ var videoPlayerTitle = t.isVideo ? _i18n2.default.t('mejs.video-player') : _i18n2.default.t('mejs.audio-player');
3684
+
3685
+ var offscreen = _document2.default.createElement('span');
3686
+ offscreen.className = t.options.classPrefix + 'offscreen';
3687
+ offscreen.innerText = videoPlayerTitle;
3688
+ t.media.parentNode.insertBefore(offscreen, t.media);
3689
+
3690
+ t.container = _document2.default.createElement('div');
3691
+ t.getElement(t.container).id = t.id;
3692
+ t.getElement(t.container).className = t.options.classPrefix + 'container ' + t.options.classPrefix + 'container-keyboard-inactive ' + t.media.className;
3693
+ t.getElement(t.container).tabIndex = 0;
3694
+ t.getElement(t.container).setAttribute('role', 'application');
3695
+ t.getElement(t.container).setAttribute('aria-label', videoPlayerTitle);
3696
+ t.getElement(t.container).innerHTML = '<div class="' + t.options.classPrefix + 'inner">' + ('<div class="' + t.options.classPrefix + 'mediaelement"></div>') + ('<div class="' + t.options.classPrefix + 'layers"></div>') + ('<div class="' + t.options.classPrefix + 'controls"></div>') + '</div>';
3697
+ t.getElement(t.container).addEventListener('focus', function (e) {
3698
+ if (!t.controlsAreVisible && !t.hasFocus && t.controlsEnabled) {
3699
+ t.showControls(true);
3700
+
3701
+ var btnSelector = (0, _general.isNodeAfter)(e.relatedTarget, t.getElement(t.container)) ? '.' + t.options.classPrefix + 'controls .' + t.options.classPrefix + 'button:last-child > button' : '.' + t.options.classPrefix + 'playpause-button > button',
3702
+ button = t.getElement(t.container).querySelector(btnSelector);
3703
+
3704
+ button.focus();
3705
+ }
3706
+ });
3707
+ t.node.parentNode.insertBefore(t.getElement(t.container), t.node);
3708
+
3709
+ if (!t.options.features.length && !t.options.useDefaultControls) {
3710
+ t.getElement(t.container).style.background = 'transparent';
3711
+ t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'controls').style.display = 'none';
3712
+ }
3713
+
3714
+ if (t.isVideo && t.options.stretching === 'fill' && !dom.hasClass(t.getElement(t.container).parentNode, t.options.classPrefix + 'fill-container')) {
3715
+ t.outerContainer = t.media.parentNode;
3716
+
3717
+ var wrapper = _document2.default.createElement('div');
3718
+ wrapper.className = t.options.classPrefix + 'fill-container';
3719
+ t.getElement(t.container).parentNode.insertBefore(wrapper, t.getElement(t.container));
3720
+ wrapper.appendChild(t.getElement(t.container));
3721
+ }
3722
+
3723
+ if (_constants.IS_ANDROID) {
3724
+ dom.addClass(t.getElement(t.container), t.options.classPrefix + 'android');
3725
+ }
3726
+ if (_constants.IS_IOS) {
3727
+ dom.addClass(t.getElement(t.container), t.options.classPrefix + 'ios');
3728
+ }
3729
+ if (_constants.IS_IPAD) {
3730
+ dom.addClass(t.getElement(t.container), t.options.classPrefix + 'ipad');
3731
+ }
3732
+ if (_constants.IS_IPHONE) {
3733
+ dom.addClass(t.getElement(t.container), t.options.classPrefix + 'iphone');
3734
+ }
3735
+ dom.addClass(t.getElement(t.container), t.isVideo ? t.options.classPrefix + 'video' : t.options.classPrefix + 'audio');
3736
+
3737
+ if (_constants.IS_SAFARI && !_constants.IS_IOS) {
3738
+
3739
+ dom.addClass(t.getElement(t.container), t.options.classPrefix + 'hide-cues');
3740
+
3741
+ var cloneNode = t.node.cloneNode(),
3742
+ children = t.node.children,
3743
+ mediaFiles = [],
3744
+ tracks = [];
3745
+
3746
+ for (var i = 0, total = children.length; i < total; i++) {
3747
+ var childNode = children[i];
3748
+
3749
+ (function () {
3750
+ switch (childNode.tagName.toLowerCase()) {
3751
+ case 'source':
3752
+ var elements = {};
3753
+ Array.prototype.slice.call(childNode.attributes).forEach(function (item) {
3754
+ elements[item.name] = item.value;
3755
+ });
3756
+ elements.type = (0, _media.formatType)(elements.src, elements.type);
3757
+ mediaFiles.push(elements);
3758
+ break;
3759
+ case 'track':
3760
+ childNode.mode = 'hidden';
3761
+ tracks.push(childNode);
3762
+ break;
3763
+ default:
3764
+ cloneNode.appendChild(childNode);
3765
+ break;
3766
+ }
3767
+ })();
3768
+ }
3769
+
3770
+ t.node.remove();
3771
+ t.node = t.media = cloneNode;
3772
+
3773
+ if (mediaFiles.length) {
3774
+ t.mediaFiles = mediaFiles;
3775
+ }
3776
+ if (tracks.length) {
3777
+ t.trackFiles = tracks;
3778
+ }
3779
+ }
3780
+
3781
+ t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'mediaelement').appendChild(t.node);
3782
+
3783
+ t.media.player = t;
3784
+
3785
+ t.controls = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'controls');
3786
+ t.layers = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'layers');
3787
+
3788
+ var tagType = t.isVideo ? 'video' : 'audio',
3789
+ capsTagName = tagType.substring(0, 1).toUpperCase() + tagType.substring(1);
3790
+
3791
+ if (t.options[tagType + 'Width'] > 0 || t.options[tagType + 'Width'].toString().indexOf('%') > -1) {
3792
+ t.width = t.options[tagType + 'Width'];
3793
+ } else if (t.node.style.width !== '' && t.node.style.width !== null) {
3794
+ t.width = t.node.style.width;
3795
+ } else if (t.node.getAttribute('width')) {
3796
+ t.width = t.node.getAttribute('width');
3797
+ } else {
3798
+ t.width = t.options['default' + capsTagName + 'Width'];
3799
+ }
3800
+
3801
+ if (t.options[tagType + 'Height'] > 0 || t.options[tagType + 'Height'].toString().indexOf('%') > -1) {
3802
+ t.height = t.options[tagType + 'Height'];
3803
+ } else if (t.node.style.height !== '' && t.node.style.height !== null) {
3804
+ t.height = t.node.style.height;
3805
+ } else if (t.node.getAttribute('height')) {
3806
+ t.height = t.node.getAttribute('height');
3807
+ } else {
3808
+ t.height = t.options['default' + capsTagName + 'Height'];
3809
+ }
3810
+
3811
+ t.initialAspectRatio = t.height >= t.width ? t.width / t.height : t.height / t.width;
3812
+
3813
+ t.setPlayerSize(t.width, t.height);
3814
+
3815
+ playerOptions.pluginWidth = t.width;
3816
+ playerOptions.pluginHeight = t.height;
3817
+ } else if (!t.isVideo && !t.options.features.length && !t.options.useDefaultControls) {
3818
+ t.node.style.display = 'none';
3819
+ }
3820
+
3821
+ _mejs2.default.MepDefaults = playerOptions;
3822
+
3823
+ new _mediaelement2.default(t.media, playerOptions, t.mediaFiles);
3824
+
3825
+ if (t.getElement(t.container) !== undefined && t.options.features.length && t.controlsAreVisible && !t.options.hideVideoControlsOnLoad) {
3826
+ var event = (0, _general.createEvent)('controlsshown', t.getElement(t.container));
3827
+ t.getElement(t.container).dispatchEvent(event);
3828
+ }
3829
+ }
3830
+ }, {
3831
+ key: 'showControls',
3832
+ value: function showControls(doAnimation) {
3833
+ var t = this;
3834
+
3835
+ doAnimation = doAnimation === undefined || doAnimation;
3836
+
3837
+ if (t.controlsAreVisible || !t.isVideo) {
3838
+ return;
3839
+ }
3840
+
3841
+ if (doAnimation) {
3842
+ (function () {
3843
+ dom.fadeIn(t.getElement(t.controls), 200, function () {
3844
+ dom.removeClass(t.getElement(t.controls), t.options.classPrefix + 'offscreen');
3845
+ var event = (0, _general.createEvent)('controlsshown', t.getElement(t.container));
3846
+ t.getElement(t.container).dispatchEvent(event);
3847
+ });
3848
+
3849
+ var controls = t.getElement(t.container).querySelectorAll('.' + t.options.classPrefix + 'control');
3850
+
3851
+ var _loop = function _loop(i, total) {
3852
+ dom.fadeIn(controls[i], 200, function () {
3853
+ dom.removeClass(controls[i], t.options.classPrefix + 'offscreen');
3854
+ });
3855
+ };
3856
+
3857
+ for (var i = 0, total = controls.length; i < total; i++) {
3858
+ _loop(i, total);
3859
+ }
3860
+ })();
3861
+ } else {
3862
+ dom.removeClass(t.getElement(t.controls), t.options.classPrefix + 'offscreen');
3863
+ t.getElement(t.controls).style.display = '';
3864
+ t.getElement(t.controls).style.opacity = 1;
3865
+
3866
+ var controls = t.getElement(t.container).querySelectorAll('.' + t.options.classPrefix + 'control');
3867
+ for (var i = 0, total = controls.length; i < total; i++) {
3868
+ dom.removeClass(controls[i], t.options.classPrefix + 'offscreen');
3869
+ controls[i].style.display = '';
3870
+ }
3871
+
3872
+ var event = (0, _general.createEvent)('controlsshown', t.getElement(t.container));
3873
+ t.getElement(t.container).dispatchEvent(event);
3874
+ }
3875
+
3876
+ t.controlsAreVisible = true;
3877
+ t.setControlsSize();
3878
+ }
3879
+ }, {
3880
+ key: 'hideControls',
3881
+ value: function hideControls(doAnimation, forceHide) {
3882
+ var t = this;
3883
+
3884
+ doAnimation = doAnimation === undefined || doAnimation;
3885
+
3886
+ if (forceHide !== true && (!t.controlsAreVisible || t.options.alwaysShowControls || t.paused && t.readyState === 4 && (!t.options.hideVideoControlsOnLoad && t.currentTime <= 0 || !t.options.hideVideoControlsOnPause && t.currentTime > 0) || t.isVideo && !t.options.hideVideoControlsOnLoad && !t.readyState || t.ended)) {
3887
+ return;
3888
+ }
3889
+
3890
+ if (doAnimation) {
3891
+ (function () {
3892
+ dom.fadeOut(t.getElement(t.controls), 200, function () {
3893
+ dom.addClass(t.getElement(t.controls), t.options.classPrefix + 'offscreen');
3894
+ t.getElement(t.controls).style.display = '';
3895
+ var event = (0, _general.createEvent)('controlshidden', t.getElement(t.container));
3896
+ t.getElement(t.container).dispatchEvent(event);
3897
+ });
3898
+
3899
+ var controls = t.getElement(t.container).querySelectorAll('.' + t.options.classPrefix + 'control');
3900
+
3901
+ var _loop2 = function _loop2(i, total) {
3902
+ dom.fadeOut(controls[i], 200, function () {
3903
+ dom.addClass(controls[i], t.options.classPrefix + 'offscreen');
3904
+ controls[i].style.display = '';
3905
+ });
3906
+ };
3907
+
3908
+ for (var i = 0, total = controls.length; i < total; i++) {
3909
+ _loop2(i, total);
3910
+ }
3911
+ })();
3912
+ } else {
3913
+ dom.addClass(t.getElement(t.controls), t.options.classPrefix + 'offscreen');
3914
+ t.getElement(t.controls).style.display = '';
3915
+ t.getElement(t.controls).style.opacity = 0;
3916
+
3917
+ var controls = t.getElement(t.container).querySelectorAll('.' + t.options.classPrefix + 'control');
3918
+ for (var i = 0, total = controls.length; i < total; i++) {
3919
+ dom.addClass(controls[i], t.options.classPrefix + 'offscreen');
3920
+ controls[i].style.display = '';
3921
+ }
3922
+
3923
+ var event = (0, _general.createEvent)('controlshidden', t.getElement(t.container));
3924
+ t.getElement(t.container).dispatchEvent(event);
3925
+ }
3926
+
3927
+ t.controlsAreVisible = false;
3928
+ }
3929
+ }, {
3930
+ key: 'startControlsTimer',
3931
+ value: function startControlsTimer(timeout) {
3932
+ var t = this;
3933
+
3934
+ timeout = typeof timeout !== 'undefined' ? timeout : t.options.controlsTimeoutDefault;
3935
+
3936
+ t.killControlsTimer('start');
3937
+
3938
+ t.controlsTimer = setTimeout(function () {
3939
+ t.hideControls();
3940
+ t.killControlsTimer('hide');
3941
+ }, timeout);
3942
+ }
3943
+ }, {
3944
+ key: 'killControlsTimer',
3945
+ value: function killControlsTimer() {
3946
+ var t = this;
3947
+
3948
+ if (t.controlsTimer !== null) {
3949
+ clearTimeout(t.controlsTimer);
3950
+ delete t.controlsTimer;
3951
+ t.controlsTimer = null;
3952
+ }
3953
+ }
3954
+ }, {
3955
+ key: 'disableControls',
3956
+ value: function disableControls() {
3957
+ var t = this;
3958
+
3959
+ t.killControlsTimer();
3960
+ t.controlsEnabled = false;
3961
+ t.hideControls(false, true);
3962
+ }
3963
+ }, {
3964
+ key: 'enableControls',
3965
+ value: function enableControls() {
3966
+ var t = this;
3967
+
3968
+ t.controlsEnabled = true;
3969
+ t.showControls(false);
3970
+ }
3971
+ }, {
3972
+ key: '_setDefaultPlayer',
3973
+ value: function _setDefaultPlayer() {
3974
+ var t = this;
3975
+ if (t.proxy) {
3976
+ t.proxy.pause();
3977
+ }
3978
+ t.proxy = new _default2.default(t);
3979
+ t.media.addEventListener('loadedmetadata', function () {
3980
+ if (t.getCurrentTime() > 0 && t.currentMediaTime > 0) {
3981
+ t.setCurrentTime(t.currentMediaTime);
3982
+ if (!_constants.IS_IOS && !_constants.IS_ANDROID) {
3983
+ t.play();
3984
+ }
3985
+ }
3986
+ });
3987
+ }
3988
+ }, {
3989
+ key: '_meReady',
3990
+ value: function _meReady(media, domNode) {
3991
+ var t = this,
3992
+ autoplayAttr = domNode.getAttribute('autoplay'),
3993
+ autoplay = !(autoplayAttr === undefined || autoplayAttr === null || autoplayAttr === 'false'),
3994
+ isNative = media.rendererName !== null && /(native|html5)/i.test(t.media.rendererName);
3995
+
3996
+ if (t.getElement(t.controls)) {
3997
+ t.enableControls();
3998
+ }
3999
+
4000
+ if (t.getElement(t.container) && t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'overlay-play')) {
4001
+ t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'overlay-play').style.display = '';
4002
+ }
4003
+
4004
+ if (t.created) {
4005
+ return;
4006
+ }
4007
+
4008
+ t.created = true;
4009
+ t.media = media;
4010
+ t.domNode = domNode;
4011
+
4012
+ if (!(_constants.IS_ANDROID && t.options.AndroidUseNativeControls) && !(_constants.IS_IPAD && t.options.iPadUseNativeControls) && !(_constants.IS_IPHONE && t.options.iPhoneUseNativeControls)) {
4013
+ if (!t.isVideo && !t.options.features.length && !t.options.useDefaultControls) {
4014
+ if (autoplay && isNative) {
4015
+ t.play();
4016
+ }
4017
+
4018
+ if (t.options.success) {
4019
+
4020
+ if (typeof t.options.success === 'string') {
4021
+ _window2.default[t.options.success](t.media, t.domNode, t);
4022
+ } else {
4023
+ t.options.success(t.media, t.domNode, t);
4024
+ }
4025
+ }
4026
+
4027
+ return;
4028
+ }
4029
+
4030
+ t.featurePosition = {};
4031
+
4032
+ t._setDefaultPlayer();
4033
+
4034
+ t.buildposter(t, t.getElement(t.controls), t.getElement(t.layers), t.media);
4035
+ t.buildkeyboard(t, t.getElement(t.controls), t.getElement(t.layers), t.media);
4036
+ t.buildoverlays(t, t.getElement(t.controls), t.getElement(t.layers), t.media);
4037
+
4038
+ if (t.options.useDefaultControls) {
4039
+ var defaultControls = ['playpause', 'current', 'progress', 'duration', 'tracks', 'volume', 'fullscreen'];
4040
+ t.options.features = defaultControls.concat(t.options.features.filter(function (item) {
4041
+ return defaultControls.indexOf(item) === -1;
4042
+ }));
4043
+ }
4044
+
4045
+ t.buildfeatures(t, t.getElement(t.controls), t.getElement(t.layers), t.media);
4046
+
4047
+ var event = (0, _general.createEvent)('controlsready', t.getElement(t.container));
4048
+ t.getElement(t.container).dispatchEvent(event);
4049
+
4050
+ t.setPlayerSize(t.width, t.height);
4051
+ t.setControlsSize();
4052
+
4053
+ if (t.isVideo) {
4054
+ t.clickToPlayPauseCallback = function () {
4055
+
4056
+ if (t.options.clickToPlayPause) {
4057
+ var button = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'overlay-button'),
4058
+ pressed = button.getAttribute('aria-pressed');
4059
+
4060
+ if (t.paused && pressed) {
4061
+ t.pause();
4062
+ } else if (t.paused) {
4063
+ t.play();
4064
+ } else {
4065
+ t.pause();
4066
+ }
4067
+
4068
+ button.setAttribute('aria-pressed', !pressed);
4069
+ t.getElement(t.container).focus();
4070
+ }
4071
+ };
4072
+
4073
+ t.createIframeLayer();
4074
+
4075
+ t.media.addEventListener('click', t.clickToPlayPauseCallback);
4076
+
4077
+ if ((_constants.IS_ANDROID || _constants.IS_IOS) && !t.options.alwaysShowControls) {
4078
+ t.node.addEventListener('touchstart', function () {
4079
+ if (t.controlsAreVisible) {
4080
+ t.hideControls(false);
4081
+ } else {
4082
+ if (t.controlsEnabled) {
4083
+ t.showControls(false);
4084
+ }
4085
+ }
4086
+ }, _constants.SUPPORT_PASSIVE_EVENT ? { passive: true } : false);
4087
+ } else {
4088
+ t.getElement(t.container).addEventListener('mouseenter', function () {
4089
+ if (t.controlsEnabled) {
4090
+ if (!t.options.alwaysShowControls) {
4091
+ t.killControlsTimer('enter');
4092
+ t.showControls();
4093
+ t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
4094
+ }
4095
+ }
4096
+ });
4097
+ t.getElement(t.container).addEventListener('mousemove', function () {
4098
+ if (t.controlsEnabled) {
4099
+ if (!t.controlsAreVisible) {
4100
+ t.showControls();
4101
+ }
4102
+ if (!t.options.alwaysShowControls) {
4103
+ t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
4104
+ }
4105
+ }
4106
+ });
4107
+ t.getElement(t.container).addEventListener('mouseleave', function () {
4108
+ if (t.controlsEnabled) {
4109
+ if (!t.paused && !t.options.alwaysShowControls) {
4110
+ t.startControlsTimer(t.options.controlsTimeoutMouseLeave);
4111
+ }
4112
+ }
4113
+ });
4114
+ }
4115
+
4116
+ if (t.options.hideVideoControlsOnLoad) {
4117
+ t.hideControls(false);
4118
+ }
4119
+
4120
+ if (t.options.enableAutosize) {
4121
+ t.media.addEventListener('loadedmetadata', function (e) {
4122
+ var target = e !== undefined ? e.detail.target || e.target : t.media;
4123
+ if (t.options.videoHeight <= 0 && !t.domNode.getAttribute('height') && !t.domNode.style.height && target !== null && !isNaN(target.videoHeight)) {
4124
+ t.setPlayerSize(target.videoWidth, target.videoHeight);
4125
+ t.setControlsSize();
4126
+ t.media.setSize(target.videoWidth, target.videoHeight);
4127
+ }
4128
+ });
4129
+ }
4130
+ }
4131
+
4132
+ t.media.addEventListener('play', function () {
4133
+ t.hasFocus = true;
4134
+
4135
+ for (var playerIndex in _mejs2.default.players) {
4136
+ if (_mejs2.default.players.hasOwnProperty(playerIndex)) {
4137
+ var p = _mejs2.default.players[playerIndex];
4138
+
4139
+ if (p.id !== t.id && t.options.pauseOtherPlayers && !p.paused && !p.ended) {
4140
+ p.pause();
4141
+ p.hasFocus = false;
4142
+ }
4143
+ }
4144
+ }
4145
+
4146
+ if (!(_constants.IS_ANDROID || _constants.IS_IOS) && !t.options.alwaysShowControls && t.isVideo) {
4147
+ t.hideControls();
4148
+ }
4149
+ });
4150
+
4151
+ t.media.addEventListener('ended', function () {
4152
+ if (t.options.autoRewind) {
4153
+ try {
4154
+ t.setCurrentTime(0);
4155
+
4156
+ setTimeout(function () {
4157
+ var loadingElement = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'overlay-loading');
4158
+ if (loadingElement && loadingElement.parentNode) {
4159
+ loadingElement.parentNode.style.display = 'none';
4160
+ }
4161
+ }, 20);
4162
+ } catch (exp) {
4163
+
4164
+ }
4165
+ }
4166
+
4167
+ if (typeof t.media.renderer.stop === 'function') {
4168
+ t.media.renderer.stop();
4169
+ } else {
4170
+ t.pause();
4171
+ }
4172
+
4173
+ if (t.setProgressRail) {
4174
+ t.setProgressRail();
4175
+ }
4176
+ if (t.setCurrentRail) {
4177
+ t.setCurrentRail();
4178
+ }
4179
+
4180
+ if (t.options.loop) {
4181
+ t.play();
4182
+ } else if (!t.options.alwaysShowControls && t.controlsEnabled) {
4183
+ t.showControls();
4184
+ }
4185
+ });
4186
+
4187
+ t.media.addEventListener('loadedmetadata', function () {
4188
+
4189
+ (0, _time.calculateTimeFormat)(t.getDuration(), t.options, t.options.framesPerSecond || 25);
4190
+
4191
+ if (t.updateDuration) {
4192
+ t.updateDuration();
4193
+ }
4194
+ if (t.updateCurrent) {
4195
+ t.updateCurrent();
4196
+ }
4197
+
4198
+ if (!t.isFullScreen) {
4199
+ t.setPlayerSize(t.width, t.height);
4200
+ t.setControlsSize();
4201
+ }
4202
+ });
4203
+
4204
+ var duration = null;
4205
+ t.media.addEventListener('timeupdate', function () {
4206
+ if (!isNaN(t.getDuration()) && duration !== t.getDuration()) {
4207
+ duration = t.getDuration();
4208
+ (0, _time.calculateTimeFormat)(duration, t.options, t.options.framesPerSecond || 25);
4209
+
4210
+ if (t.updateDuration) {
4211
+ t.updateDuration();
4212
+ }
4213
+ if (t.updateCurrent) {
4214
+ t.updateCurrent();
4215
+ }
4216
+
4217
+ t.setControlsSize();
4218
+ }
4219
+ });
4220
+
4221
+ t.getElement(t.container).addEventListener('click', function (e) {
4222
+ dom.addClass(e.currentTarget, t.options.classPrefix + 'container-keyboard-inactive');
4223
+ });
4224
+
4225
+ t.getElement(t.container).addEventListener('focusin', function (e) {
4226
+ dom.removeClass(e.currentTarget, t.options.classPrefix + 'container-keyboard-inactive');
4227
+ if (t.isVideo && !_constants.IS_ANDROID && !_constants.IS_IOS && t.controlsEnabled && !t.options.alwaysShowControls) {
4228
+ t.killControlsTimer('enter');
4229
+ t.showControls();
4230
+ t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
4231
+ }
4232
+ });
4233
+
4234
+ t.getElement(t.container).addEventListener('focusout', function (e) {
4235
+ setTimeout(function () {
4236
+ if (e.relatedTarget) {
4237
+ if (t.keyboardAction && !e.relatedTarget.closest('.' + t.options.classPrefix + 'container')) {
4238
+ t.keyboardAction = false;
4239
+ if (t.isVideo && !t.options.alwaysShowControls && !t.paused) {
4240
+ t.startControlsTimer(t.options.controlsTimeoutMouseLeave);
4241
+ }
4242
+ }
4243
+ }
4244
+ }, 0);
4245
+ });
4246
+
4247
+ setTimeout(function () {
4248
+ t.setPlayerSize(t.width, t.height);
4249
+ t.setControlsSize();
4250
+ }, 0);
4251
+
4252
+ t.globalResizeCallback = function () {
4253
+ if (!(t.isFullScreen || _constants.HAS_TRUE_NATIVE_FULLSCREEN && _document2.default.webkitIsFullScreen)) {
4254
+ t.setPlayerSize(t.width, t.height);
4255
+ }
4256
+
4257
+ t.setControlsSize();
4258
+ };
4259
+
4260
+ t.globalBind('resize', t.globalResizeCallback);
4261
+ }
4262
+
4263
+ if (autoplay && isNative) {
4264
+ t.play();
4265
+ }
4266
+
4267
+ if (t.options.success) {
4268
+ if (typeof t.options.success === 'string') {
4269
+ _window2.default[t.options.success](t.media, t.domNode, t);
4270
+ } else {
4271
+ t.options.success(t.media, t.domNode, t);
4272
+ }
4273
+ }
4274
+ }
4275
+ }, {
4276
+ key: '_handleError',
4277
+ value: function _handleError(e, media, node) {
4278
+ var t = this,
4279
+ play = t.getElement(t.layers).querySelector('.' + t.options.classPrefix + 'overlay-play');
4280
+
4281
+ if (play) {
4282
+ play.style.display = 'none';
4283
+ }
4284
+
4285
+ if (t.options.error) {
4286
+ t.options.error(e, media, node);
4287
+ }
4288
+
4289
+ if (t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'cannotplay')) {
4290
+ t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'cannotplay').remove();
4291
+ }
4292
+
4293
+ var errorContainer = _document2.default.createElement('div');
4294
+ errorContainer.className = t.options.classPrefix + 'cannotplay';
4295
+ errorContainer.style.width = '100%';
4296
+ errorContainer.style.height = '100%';
4297
+
4298
+ var errorContent = typeof t.options.customError === 'function' ? t.options.customError(t.media, t.media.originalNode) : t.options.customError,
4299
+ imgError = '';
4300
+
4301
+ if (!errorContent) {
4302
+ var poster = t.media.originalNode.getAttribute('poster');
4303
+ if (poster) {
4304
+ imgError = '<img src="' + poster + '" alt="' + _mejs2.default.i18n.t('mejs.download-file') + '">';
4305
+ }
4306
+
4307
+ if (e.message) {
4308
+ errorContent = '<p>' + e.message + '</p>';
4309
+ }
4310
+
4311
+ if (e.urls) {
4312
+ for (var i = 0, total = e.urls.length; i < total; i++) {
4313
+ var url = e.urls[i];
4314
+ errorContent += '<a href="' + url.src + '" data-type="' + url.type + '"><span>' + _mejs2.default.i18n.t('mejs.download-file') + ': ' + url.src + '</span></a>';
4315
+ }
4316
+ }
4317
+ }
4318
+
4319
+ if (errorContent && t.getElement(t.layers).querySelector('.' + t.options.classPrefix + 'overlay-error')) {
4320
+ errorContainer.innerHTML = errorContent;
4321
+ t.getElement(t.layers).querySelector('.' + t.options.classPrefix + 'overlay-error').innerHTML = '' + imgError + errorContainer.outerHTML;
4322
+ t.getElement(t.layers).querySelector('.' + t.options.classPrefix + 'overlay-error').parentNode.style.display = 'block';
4323
+ }
4324
+
4325
+ if (t.controlsEnabled) {
4326
+ t.disableControls();
4327
+ }
4328
+ }
4329
+ }, {
4330
+ key: 'setPlayerSize',
4331
+ value: function setPlayerSize(width, height) {
4332
+ var t = this;
4333
+
4334
+ if (!t.options.setDimensions) {
4335
+ return false;
4336
+ }
4337
+
4338
+ if (typeof width !== 'undefined') {
4339
+ t.width = width;
4340
+ }
4341
+
4342
+ if (typeof height !== 'undefined') {
4343
+ t.height = height;
4344
+ }
4345
+
4346
+ switch (t.options.stretching) {
4347
+ case 'fill':
4348
+ if (t.isVideo) {
4349
+ t.setFillMode();
4350
+ } else {
4351
+ t.setDimensions(t.width, t.height);
4352
+ }
4353
+ break;
4354
+ case 'responsive':
4355
+ t.setResponsiveMode();
4356
+ break;
4357
+ case 'none':
4358
+ t.setDimensions(t.width, t.height);
4359
+ break;
4360
+
4361
+ default:
4362
+ if (t.hasFluidMode() === true) {
4363
+ t.setResponsiveMode();
4364
+ } else {
4365
+ t.setDimensions(t.width, t.height);
4366
+ }
4367
+ break;
4368
+ }
4369
+ }
4370
+ }, {
4371
+ key: 'hasFluidMode',
4372
+ value: function hasFluidMode() {
4373
+ var t = this;
4374
+
4375
+ return t.height.toString().indexOf('%') !== -1 || t.node && t.node.style.maxWidth && t.node.style.maxWidth !== 'none' && t.node.style.maxWidth !== t.width || t.node && t.node.currentStyle && t.node.currentStyle.maxWidth === '100%';
4376
+ }
4377
+ }, {
4378
+ key: 'setResponsiveMode',
4379
+ value: function setResponsiveMode() {
4380
+ var t = this,
4381
+ parent = function () {
4382
+
4383
+ var parentEl = void 0,
4384
+ el = t.getElement(t.container);
4385
+
4386
+ while (el) {
4387
+ try {
4388
+ if (_constants.IS_FIREFOX && el.tagName.toLowerCase() === 'html' && _window2.default.self !== _window2.default.top && _window2.default.frameElement !== null) {
4389
+ return _window2.default.frameElement;
4390
+ } else {
4391
+ parentEl = el.parentElement;
4392
+ }
4393
+ } catch (e) {
4394
+ parentEl = el.parentElement;
4395
+ }
4396
+
4397
+ if (parentEl && dom.visible(parentEl)) {
4398
+ return parentEl;
4399
+ }
4400
+ el = parentEl;
4401
+ }
4402
+
4403
+ return null;
4404
+ }(),
4405
+ parentStyles = parent ? getComputedStyle(parent, null) : getComputedStyle(_document2.default.body, null),
4406
+ nativeWidth = function () {
4407
+ if (t.isVideo) {
4408
+ if (t.node.videoWidth && t.node.videoWidth > 0) {
4409
+ return t.node.videoWidth;
4410
+ } else if (t.node.getAttribute('width')) {
4411
+ return t.node.getAttribute('width');
4412
+ } else {
4413
+ return t.options.defaultVideoWidth;
4414
+ }
4415
+ } else {
4416
+ return t.options.defaultAudioWidth;
4417
+ }
4418
+ }(),
4419
+ nativeHeight = function () {
4420
+ if (t.isVideo) {
4421
+ if (t.node.videoHeight && t.node.videoHeight > 0) {
4422
+ return t.node.videoHeight;
4423
+ } else if (t.node.getAttribute('height')) {
4424
+ return t.node.getAttribute('height');
4425
+ } else {
4426
+ return t.options.defaultVideoHeight;
4427
+ }
4428
+ } else {
4429
+ return t.options.defaultAudioHeight;
4430
+ }
4431
+ }(),
4432
+ aspectRatio = function () {
4433
+ var ratio = 1;
4434
+ if (!t.isVideo) {
4435
+ return ratio;
4436
+ }
4437
+
4438
+ if (t.node.videoWidth && t.node.videoWidth > 0 && t.node.videoHeight && t.node.videoHeight > 0) {
4439
+ ratio = t.height >= t.width ? t.node.videoWidth / t.node.videoHeight : t.node.videoHeight / t.node.videoWidth;
4440
+ } else {
4441
+ ratio = t.initialAspectRatio;
4442
+ }
4443
+
4444
+ if (isNaN(ratio) || ratio < 0.01 || ratio > 100) {
4445
+ ratio = 1;
4446
+ }
4447
+
4448
+ return ratio;
4449
+ }(),
4450
+ parentHeight = parseFloat(parentStyles.height);
4451
+
4452
+ var newHeight = void 0,
4453
+ parentWidth = parseFloat(parentStyles.width);
4454
+
4455
+ if (t.isVideo) {
4456
+ if (t.height === '100%') {
4457
+ newHeight = parseFloat(parentWidth * nativeHeight / nativeWidth, 10);
4458
+ } else {
4459
+ newHeight = t.height >= t.width ? parseFloat(parentWidth / aspectRatio, 10) : parseFloat(parentWidth * aspectRatio, 10);
4460
+ }
4461
+ } else {
4462
+ newHeight = nativeHeight;
4463
+ }
4464
+
4465
+ if (isNaN(newHeight)) {
4466
+ newHeight = parentHeight;
4467
+ }
4468
+
4469
+ if (t.getElement(t.container).parentNode.length > 0 && t.getElement(t.container).parentNode.tagName.toLowerCase() === 'body') {
4470
+ parentWidth = _window2.default.innerWidth || _document2.default.documentElement.clientWidth || _document2.default.body.clientWidth;
4471
+ newHeight = _window2.default.innerHeight || _document2.default.documentElement.clientHeight || _document2.default.body.clientHeight;
4472
+ }
4473
+
4474
+ if (newHeight && parentWidth) {
4475
+ t.getElement(t.container).style.width = parentWidth + 'px';
4476
+ t.getElement(t.container).style.height = newHeight + 'px';
4477
+
4478
+ t.node.style.width = '100%';
4479
+ t.node.style.height = '100%';
4480
+
4481
+ if (t.isVideo && t.media.setSize) {
4482
+ t.media.setSize(parentWidth, newHeight);
4483
+ }
4484
+
4485
+ var layerChildren = t.getElement(t.layers).children;
4486
+ for (var i = 0, total = layerChildren.length; i < total; i++) {
4487
+ layerChildren[i].style.width = '100%';
4488
+ layerChildren[i].style.height = '100%';
4489
+ }
4490
+ }
4491
+ }
4492
+ }, {
4493
+ key: 'setFillMode',
4494
+ value: function setFillMode() {
4495
+ var t = this;
4496
+ var isIframe = _window2.default.self !== _window2.default.top && _window2.default.frameElement !== null;
4497
+ var parent = function () {
4498
+ var parentEl = void 0,
4499
+ el = t.getElement(t.container);
4500
+
4501
+ while (el) {
4502
+ try {
4503
+ if (_constants.IS_FIREFOX && el.tagName.toLowerCase() === 'html' && _window2.default.self !== _window2.default.top && _window2.default.frameElement !== null) {
4504
+ return _window2.default.frameElement;
4505
+ } else {
4506
+ parentEl = el.parentElement;
4507
+ }
4508
+ } catch (e) {
4509
+ parentEl = el.parentElement;
4510
+ }
4511
+
4512
+ if (parentEl && dom.visible(parentEl)) {
4513
+ return parentEl;
4514
+ }
4515
+ el = parentEl;
4516
+ }
4517
+
4518
+ return null;
4519
+ }();
4520
+ var parentStyles = parent ? getComputedStyle(parent, null) : getComputedStyle(_document2.default.body, null);
4521
+
4522
+ if (t.node.style.height !== 'none' && t.node.style.height !== t.height) {
4523
+ t.node.style.height = 'auto';
4524
+ }
4525
+ if (t.node.style.maxWidth !== 'none' && t.node.style.maxWidth !== t.width) {
4526
+ t.node.style.maxWidth = 'none';
4527
+ }
4528
+
4529
+ if (t.node.style.maxHeight !== 'none' && t.node.style.maxHeight !== t.height) {
4530
+ t.node.style.maxHeight = 'none';
4531
+ }
4532
+
4533
+ if (t.node.currentStyle) {
4534
+ if (t.node.currentStyle.height === '100%') {
4535
+ t.node.currentStyle.height = 'auto';
4536
+ }
4537
+ if (t.node.currentStyle.maxWidth === '100%') {
4538
+ t.node.currentStyle.maxWidth = 'none';
4539
+ }
4540
+ if (t.node.currentStyle.maxHeight === '100%') {
4541
+ t.node.currentStyle.maxHeight = 'none';
4542
+ }
4543
+ }
4544
+
4545
+ if (!isIframe && !parseFloat(parentStyles.width)) {
4546
+ parent.style.width = t.media.offsetWidth + 'px';
4547
+ }
4548
+
4549
+ if (!isIframe && !parseFloat(parentStyles.height)) {
4550
+ parent.style.height = t.media.offsetHeight + 'px';
4551
+ }
4552
+
4553
+ parentStyles = getComputedStyle(parent);
4554
+
4555
+ var parentWidth = parseFloat(parentStyles.width),
4556
+ parentHeight = parseFloat(parentStyles.height);
4557
+
4558
+ t.setDimensions('100%', '100%');
4559
+
4560
+ var poster = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'poster>img');
4561
+ if (poster) {
4562
+ poster.style.display = '';
4563
+ }
4564
+
4565
+ var targetElement = t.getElement(t.container).querySelectorAll('object, embed, iframe, video'),
4566
+ initHeight = t.height,
4567
+ initWidth = t.width,
4568
+ scaleX1 = parentWidth,
4569
+ scaleY1 = initHeight * parentWidth / initWidth,
4570
+ scaleX2 = initWidth * parentHeight / initHeight,
4571
+ scaleY2 = parentHeight,
4572
+ bScaleOnWidth = scaleX2 > parentWidth === false,
4573
+ finalWidth = bScaleOnWidth ? Math.floor(scaleX1) : Math.floor(scaleX2),
4574
+ finalHeight = bScaleOnWidth ? Math.floor(scaleY1) : Math.floor(scaleY2),
4575
+ width = bScaleOnWidth ? parentWidth + 'px' : finalWidth + 'px',
4576
+ height = bScaleOnWidth ? finalHeight + 'px' : parentHeight + 'px';
4577
+
4578
+ for (var i = 0, total = targetElement.length; i < total; i++) {
4579
+ targetElement[i].style.height = height;
4580
+ targetElement[i].style.width = width;
4581
+ if (t.media.setSize) {
4582
+ t.media.setSize(width, height);
4583
+ }
4584
+
4585
+ targetElement[i].style.marginLeft = Math.floor((parentWidth - finalWidth) / 2) + 'px';
4586
+ targetElement[i].style.marginTop = 0;
4587
+ }
4588
+ }
4589
+ }, {
4590
+ key: 'setDimensions',
4591
+ value: function setDimensions(width, height) {
4592
+ var t = this;
4593
+
4594
+ width = (0, _general.isString)(width) && width.indexOf('%') > -1 ? width : parseFloat(width) + 'px';
4595
+ height = (0, _general.isString)(height) && height.indexOf('%') > -1 ? height : parseFloat(height) + 'px';
4596
+
4597
+ t.getElement(t.container).style.width = width;
4598
+ t.getElement(t.container).style.height = height;
4599
+
4600
+ var layers = t.getElement(t.layers).children;
4601
+ for (var i = 0, total = layers.length; i < total; i++) {
4602
+ layers[i].style.width = width;
4603
+ layers[i].style.height = height;
4604
+ }
4605
+ }
4606
+ }, {
4607
+ key: 'setControlsSize',
4608
+ value: function setControlsSize() {
4609
+ var t = this;
4610
+
4611
+ if (!dom.visible(t.getElement(t.container))) {
4612
+ return;
4613
+ }
4614
+
4615
+ if (t.rail && dom.visible(t.rail)) {
4616
+ var totalStyles = t.total ? getComputedStyle(t.total, null) : null,
4617
+ totalMargin = totalStyles ? parseFloat(totalStyles.marginLeft) + parseFloat(totalStyles.marginRight) : 0,
4618
+ railStyles = getComputedStyle(t.rail),
4619
+ railMargin = parseFloat(railStyles.marginLeft) + parseFloat(railStyles.marginRight);
4620
+
4621
+ var siblingsWidth = 0;
4622
+
4623
+ var siblings = dom.siblings(t.rail, function (el) {
4624
+ return el !== t.rail;
4625
+ }),
4626
+ total = siblings.length;
4627
+ for (var i = 0; i < total; i++) {
4628
+ siblingsWidth += siblings[i].offsetWidth;
4629
+ }
4630
+
4631
+ siblingsWidth += totalMargin + (totalMargin === 0 ? railMargin * 2 : railMargin) + 1;
4632
+
4633
+ t.getElement(t.container).style.minWidth = siblingsWidth + 'px';
4634
+
4635
+ var event = (0, _general.createEvent)('controlsresize', t.getElement(t.container));
4636
+ t.getElement(t.container).dispatchEvent(event);
4637
+ } else {
4638
+ var children = t.getElement(t.controls).children;
4639
+ var minWidth = 0;
4640
+
4641
+ for (var _i = 0, _total = children.length; _i < _total; _i++) {
4642
+ minWidth += children[_i].offsetWidth;
4643
+ }
4644
+
4645
+ t.getElement(t.container).style.minWidth = minWidth + 'px';
4646
+ }
4647
+ }
4648
+ }, {
4649
+ key: 'addControlElement',
4650
+ value: function addControlElement(element, key) {
4651
+
4652
+ var t = this;
4653
+
4654
+ if (t.featurePosition[key] !== undefined) {
4655
+ var child = t.getElement(t.controls).children[t.featurePosition[key] - 1];
4656
+ child.parentNode.insertBefore(element, child.nextSibling);
4657
+ } else {
4658
+ t.getElement(t.controls).appendChild(element);
4659
+ var children = t.getElement(t.controls).children;
4660
+ for (var i = 0, total = children.length; i < total; i++) {
4661
+ if (element === children[i]) {
4662
+ t.featurePosition[key] = i;
4663
+ break;
4664
+ }
4665
+ }
4666
+ }
4667
+ }
4668
+ }, {
4669
+ key: 'createIframeLayer',
4670
+ value: function createIframeLayer() {
4671
+ var t = this;
4672
+
4673
+ if (t.isVideo && t.media.rendererName !== null && t.media.rendererName.indexOf('iframe') > -1 && !_document2.default.getElementById(t.media.id + '-iframe-overlay')) {
4674
+
4675
+ var layer = _document2.default.createElement('div'),
4676
+ target = _document2.default.getElementById(t.media.id + '_' + t.media.rendererName);
4677
+
4678
+ layer.id = t.media.id + '-iframe-overlay';
4679
+ layer.className = t.options.classPrefix + 'iframe-overlay';
4680
+ layer.addEventListener('click', function (e) {
4681
+ if (t.options.clickToPlayPause) {
4682
+ if (t.paused) {
4683
+ t.play();
4684
+ } else {
4685
+ t.pause();
4686
+ }
4687
+
4688
+ e.preventDefault();
4689
+ e.stopPropagation();
4690
+ }
4691
+ });
4692
+
4693
+ target.parentNode.insertBefore(layer, target);
4694
+ }
4695
+ }
4696
+ }, {
4697
+ key: 'resetSize',
4698
+ value: function resetSize() {
4699
+ var t = this;
4700
+
4701
+ setTimeout(function () {
4702
+ t.setPlayerSize(t.width, t.height);
4703
+ t.setControlsSize();
4704
+ }, 50);
4705
+ }
4706
+ }, {
4707
+ key: 'setPoster',
4708
+ value: function setPoster(url) {
4709
+ var t = this;
4710
+
4711
+ if (t.getElement(t.container)) {
4712
+ var posterDiv = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'poster');
4713
+
4714
+ if (!posterDiv) {
4715
+ posterDiv = _document2.default.createElement('div');
4716
+ posterDiv.className = t.options.classPrefix + 'poster ' + t.options.classPrefix + 'layer';
4717
+ t.getElement(t.layers).appendChild(posterDiv);
4718
+ }
4719
+
4720
+ var posterImg = posterDiv.querySelector('img');
4721
+
4722
+ if (!posterImg && url) {
4723
+ posterImg = _document2.default.createElement('img');
4724
+ posterImg.className = t.options.classPrefix + 'poster-img';
4725
+ posterImg.width = '100%';
4726
+ posterImg.height = '100%';
4727
+ posterDiv.style.display = '';
4728
+ posterDiv.appendChild(posterImg);
4729
+ }
4730
+
4731
+ if (url) {
4732
+ posterImg.setAttribute('src', url);
4733
+ posterDiv.style.backgroundImage = 'url("' + url + '")';
4734
+ posterDiv.style.display = '';
4735
+ } else if (posterImg) {
4736
+ posterDiv.style.backgroundImage = 'none';
4737
+ posterDiv.style.display = 'none';
4738
+ posterImg.remove();
4739
+ } else {
4740
+ posterDiv.style.display = 'none';
4741
+ }
4742
+ } else if (_constants.IS_IPAD && t.options.iPadUseNativeControls || _constants.IS_IPHONE && t.options.iPhoneUseNativeControls || _constants.IS_ANDROID && t.options.AndroidUseNativeControls) {
4743
+ t.media.originalNode.poster = url;
4744
+ }
4745
+ }
4746
+ }, {
4747
+ key: 'changeSkin',
4748
+ value: function changeSkin(className) {
4749
+ var t = this;
4750
+
4751
+ t.getElement(t.container).className = t.options.classPrefix + 'container ' + className;
4752
+ t.setPlayerSize(t.width, t.height);
4753
+ t.setControlsSize();
4754
+ }
4755
+ }, {
4756
+ key: 'globalBind',
4757
+ value: function globalBind(events, callback) {
4758
+ var t = this,
4759
+ doc = t.node ? t.node.ownerDocument : _document2.default;
4760
+
4761
+ events = (0, _general.splitEvents)(events, t.id);
4762
+ if (events.d) {
4763
+ var eventList = events.d.split(' ');
4764
+ for (var i = 0, total = eventList.length; i < total; i++) {
4765
+ eventList[i].split('.').reduce(function (part, e) {
4766
+ doc.addEventListener(e, callback, false);
4767
+ return e;
4768
+ }, '');
4769
+ }
4770
+ }
4771
+ if (events.w) {
4772
+ var _eventList = events.w.split(' ');
4773
+ for (var _i2 = 0, _total2 = _eventList.length; _i2 < _total2; _i2++) {
4774
+ _eventList[_i2].split('.').reduce(function (part, e) {
4775
+ _window2.default.addEventListener(e, callback, false);
4776
+ return e;
4777
+ }, '');
4778
+ }
4779
+ }
4780
+ }
4781
+ }, {
4782
+ key: 'globalUnbind',
4783
+ value: function globalUnbind(events, callback) {
4784
+ var t = this,
4785
+ doc = t.node ? t.node.ownerDocument : _document2.default;
4786
+
4787
+ events = (0, _general.splitEvents)(events, t.id);
4788
+ if (events.d) {
4789
+ var eventList = events.d.split(' ');
4790
+ for (var i = 0, total = eventList.length; i < total; i++) {
4791
+ eventList[i].split('.').reduce(function (part, e) {
4792
+ doc.removeEventListener(e, callback, false);
4793
+ return e;
4794
+ }, '');
4795
+ }
4796
+ }
4797
+ if (events.w) {
4798
+ var _eventList2 = events.w.split(' ');
4799
+ for (var _i3 = 0, _total3 = _eventList2.length; _i3 < _total3; _i3++) {
4800
+ _eventList2[_i3].split('.').reduce(function (part, e) {
4801
+ _window2.default.removeEventListener(e, callback, false);
4802
+ return e;
4803
+ }, '');
4804
+ }
4805
+ }
4806
+ }
4807
+ }, {
4808
+ key: 'buildfeatures',
4809
+ value: function buildfeatures(player, controls, layers, media) {
4810
+ var t = this;
4811
+
4812
+ for (var i = 0, total = t.options.features.length; i < total; i++) {
4813
+ var feature = t.options.features[i];
4814
+ if (t['build' + feature]) {
4815
+ try {
4816
+ t['build' + feature](player, controls, layers, media);
4817
+ } catch (e) {
4818
+ console.error('error building ' + feature, e);
4819
+ }
4820
+ }
4821
+ }
4822
+ }
4823
+ }, {
4824
+ key: 'buildposter',
4825
+ value: function buildposter(player, controls, layers, media) {
4826
+ var t = this,
4827
+ poster = _document2.default.createElement('div');
4828
+
4829
+ poster.className = t.options.classPrefix + 'poster ' + t.options.classPrefix + 'layer';
4830
+ layers.appendChild(poster);
4831
+
4832
+ var posterUrl = media.originalNode.getAttribute('poster');
4833
+
4834
+ if (player.options.poster !== '') {
4835
+ if (posterUrl && _constants.IS_IOS) {
4836
+ media.originalNode.removeAttribute('poster');
4837
+ }
4838
+ posterUrl = player.options.poster;
4839
+ }
4840
+
4841
+ if (posterUrl) {
4842
+ t.setPoster(posterUrl);
4843
+ } else if (t.media.renderer !== null && typeof t.media.renderer.getPosterUrl === 'function') {
4844
+ t.setPoster(t.media.renderer.getPosterUrl());
4845
+ } else {
4846
+ poster.style.display = 'none';
4847
+ }
4848
+
4849
+ media.addEventListener('play', function () {
4850
+ poster.style.display = 'none';
4851
+ });
4852
+
4853
+ media.addEventListener('playing', function () {
4854
+ poster.style.display = 'none';
4855
+ });
4856
+
4857
+ if (player.options.showPosterWhenEnded && player.options.autoRewind) {
4858
+ media.addEventListener('ended', function () {
4859
+ poster.style.display = '';
4860
+ });
4861
+ }
4862
+
4863
+ media.addEventListener('error', function () {
4864
+ poster.style.display = 'none';
4865
+ });
4866
+
4867
+ if (player.options.showPosterWhenPaused) {
4868
+ media.addEventListener('pause', function () {
4869
+ if (!player.ended) {
4870
+ poster.style.display = '';
4871
+ }
4872
+ });
4873
+ }
4874
+ }
4875
+ }, {
4876
+ key: 'buildoverlays',
4877
+ value: function buildoverlays(player, controls, layers, media) {
4878
+
4879
+ if (!player.isVideo) {
4880
+ return;
4881
+ }
4882
+
4883
+ var t = this,
4884
+ loading = _document2.default.createElement('div'),
4885
+ error = _document2.default.createElement('div'),
4886
+ bigPlay = _document2.default.createElement('div');
4887
+
4888
+ loading.style.display = 'none';
4889
+ loading.className = t.options.classPrefix + 'overlay ' + t.options.classPrefix + 'layer';
4890
+ loading.innerHTML = '<div class="' + t.options.classPrefix + 'overlay-loading">' + ('<span class="' + t.options.classPrefix + 'overlay-loading-bg-img"></span>') + '</div>';
4891
+ layers.appendChild(loading);
4892
+
4893
+ error.style.display = 'none';
4894
+ error.className = t.options.classPrefix + 'overlay ' + t.options.classPrefix + 'layer';
4895
+ error.innerHTML = '<div class="' + t.options.classPrefix + 'overlay-error"></div>';
4896
+ layers.appendChild(error);
4897
+
4898
+ bigPlay.className = t.options.classPrefix + 'overlay ' + t.options.classPrefix + 'layer ' + t.options.classPrefix + 'overlay-play';
4899
+ bigPlay.innerHTML = '<div class="' + t.options.classPrefix + 'overlay-button" role="button" tabindex="0" ' + ('aria-label="' + _i18n2.default.t('mejs.play') + '" aria-pressed="false"></div>');
4900
+ bigPlay.addEventListener('click', function () {
4901
+ if (t.options.clickToPlayPause) {
4902
+
4903
+ var button = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'overlay-button'),
4904
+ pressed = button.getAttribute('aria-pressed');
4905
+
4906
+ if (t.paused) {
4907
+ t.play();
4908
+ } else {
4909
+ t.pause();
4910
+ }
4911
+
4912
+ button.setAttribute('aria-pressed', !!pressed);
4913
+ t.getElement(t.container).focus();
4914
+ }
4915
+ });
4916
+
4917
+ bigPlay.addEventListener('keydown', function (e) {
4918
+ var keyPressed = e.keyCode || e.which || 0;
4919
+
4920
+ if (keyPressed === 13 || _constants.IS_FIREFOX && keyPressed === 32) {
4921
+ var event = (0, _general.createEvent)('click', bigPlay);
4922
+ bigPlay.dispatchEvent(event);
4923
+ return false;
4924
+ }
4925
+ });
4926
+
4927
+ layers.appendChild(bigPlay);
4928
+
4929
+ if (t.media.rendererName !== null && (/(youtube|facebook)/i.test(t.media.rendererName) && !(t.media.originalNode.getAttribute('poster') || player.options.poster || typeof t.media.renderer.getPosterUrl === 'function' && t.media.renderer.getPosterUrl()) || _constants.IS_STOCK_ANDROID || t.media.originalNode.getAttribute('autoplay'))) {
4930
+ bigPlay.style.display = 'none';
4931
+ }
4932
+
4933
+ var hasError = false;
4934
+
4935
+ media.addEventListener('play', function () {
4936
+ bigPlay.style.display = 'none';
4937
+ loading.style.display = 'none';
4938
+ error.style.display = 'none';
4939
+ hasError = false;
4940
+ });
4941
+ media.addEventListener('playing', function () {
4942
+ bigPlay.style.display = 'none';
4943
+ loading.style.display = 'none';
4944
+ error.style.display = 'none';
4945
+ hasError = false;
4946
+ });
4947
+ media.addEventListener('seeking', function () {
4948
+ bigPlay.style.display = 'none';
4949
+ loading.style.display = '';
4950
+ hasError = false;
4951
+ });
4952
+ media.addEventListener('seeked', function () {
4953
+ bigPlay.style.display = t.paused && !_constants.IS_STOCK_ANDROID ? '' : 'none';
4954
+ loading.style.display = 'none';
4955
+ hasError = false;
4956
+ });
4957
+ media.addEventListener('pause', function () {
4958
+ loading.style.display = 'none';
4959
+ if (!_constants.IS_STOCK_ANDROID && !hasError) {
4960
+ bigPlay.style.display = '';
4961
+ }
4962
+ hasError = false;
4963
+ });
4964
+ media.addEventListener('waiting', function () {
4965
+ loading.style.display = '';
4966
+ hasError = false;
4967
+ });
4968
+
4969
+ media.addEventListener('loadeddata', function () {
4970
+ loading.style.display = '';
4971
+
4972
+ if (_constants.IS_ANDROID) {
4973
+ media.canplayTimeout = setTimeout(function () {
4974
+ if (_document2.default.createEvent) {
4975
+ var evt = _document2.default.createEvent('HTMLEvents');
4976
+ evt.initEvent('canplay', true, true);
4977
+ return media.dispatchEvent(evt);
4978
+ }
4979
+ }, 300);
4980
+ }
4981
+ hasError = false;
4982
+ });
4983
+ media.addEventListener('canplay', function () {
4984
+ loading.style.display = 'none';
4985
+
4986
+ clearTimeout(media.canplayTimeout);
4987
+ hasError = false;
4988
+ });
4989
+
4990
+ media.addEventListener('error', function (e) {
4991
+ t._handleError(e, t.media, t.node);
4992
+ loading.style.display = 'none';
4993
+ bigPlay.style.display = 'none';
4994
+ hasError = true;
4995
+ });
4996
+
4997
+ media.addEventListener('loadedmetadata', function () {
4998
+ if (!t.controlsEnabled) {
4999
+ t.enableControls();
5000
+ }
5001
+ });
5002
+
5003
+ media.addEventListener('keydown', function (e) {
5004
+ t.onkeydown(player, media, e);
5005
+ hasError = false;
5006
+ });
5007
+ }
5008
+ }, {
5009
+ key: 'buildkeyboard',
5010
+ value: function buildkeyboard(player, controls, layers, media) {
5011
+
5012
+ var t = this;
5013
+
5014
+ t.getElement(t.container).addEventListener('keydown', function () {
5015
+ t.keyboardAction = true;
5016
+ });
5017
+
5018
+ t.globalKeydownCallback = function (event) {
5019
+ var container = _document2.default.activeElement.closest('.' + t.options.classPrefix + 'container'),
5020
+ target = t.media.closest('.' + t.options.classPrefix + 'container');
5021
+ t.hasFocus = !!(container && target && container.id === target.id);
5022
+ return t.onkeydown(player, media, event);
5023
+ };
5024
+
5025
+ t.globalClickCallback = function (event) {
5026
+ t.hasFocus = !!event.target.closest('.' + t.options.classPrefix + 'container');
5027
+ };
5028
+
5029
+ t.globalBind('keydown', t.globalKeydownCallback);
5030
+
5031
+ t.globalBind('click', t.globalClickCallback);
5032
+ }
5033
+ }, {
5034
+ key: 'onkeydown',
5035
+ value: function onkeydown(player, media, e) {
5036
+
5037
+ if (player.hasFocus && player.options.enableKeyboard) {
5038
+ for (var i = 0, total = player.options.keyActions.length; i < total; i++) {
5039
+ var keyAction = player.options.keyActions[i];
5040
+
5041
+ for (var j = 0, jl = keyAction.keys.length; j < jl; j++) {
5042
+ if (e.keyCode === keyAction.keys[j]) {
5043
+ keyAction.action(player, media, e.keyCode, e);
5044
+ e.preventDefault();
5045
+ e.stopPropagation();
5046
+ return;
5047
+ }
5048
+ }
5049
+ }
5050
+ }
5051
+
5052
+ return true;
5053
+ }
5054
+ }, {
5055
+ key: 'play',
5056
+ value: function play() {
5057
+ this.proxy.play();
5058
+ }
5059
+ }, {
5060
+ key: 'pause',
5061
+ value: function pause() {
5062
+ this.proxy.pause();
5063
+ }
5064
+ }, {
5065
+ key: 'load',
5066
+ value: function load() {
5067
+ this.proxy.load();
5068
+ }
5069
+ }, {
5070
+ key: 'setCurrentTime',
5071
+ value: function setCurrentTime(time) {
5072
+ this.proxy.setCurrentTime(time);
5073
+ }
5074
+ }, {
5075
+ key: 'getCurrentTime',
5076
+ value: function getCurrentTime() {
5077
+ return this.proxy.currentTime;
5078
+ }
5079
+ }, {
5080
+ key: 'getDuration',
5081
+ value: function getDuration() {
5082
+ return this.proxy.duration;
5083
+ }
5084
+ }, {
5085
+ key: 'setVolume',
5086
+ value: function setVolume(volume) {
5087
+ this.proxy.volume = volume;
5088
+ }
5089
+ }, {
5090
+ key: 'getVolume',
5091
+ value: function getVolume() {
5092
+ return this.proxy.getVolume();
5093
+ }
5094
+ }, {
5095
+ key: 'setMuted',
5096
+ value: function setMuted(value) {
5097
+ this.proxy.setMuted(value);
5098
+ }
5099
+ }, {
5100
+ key: 'setSrc',
5101
+ value: function setSrc(src) {
5102
+ if (!this.controlsEnabled) {
5103
+ this.enableControls();
5104
+ }
5105
+ this.proxy.setSrc(src);
5106
+ }
5107
+ }, {
5108
+ key: 'getSrc',
5109
+ value: function getSrc() {
5110
+ return this.proxy.getSrc();
5111
+ }
5112
+ }, {
5113
+ key: 'canPlayType',
5114
+ value: function canPlayType(type) {
5115
+ return this.proxy.canPlayType(type);
5116
+ }
5117
+ }, {
5118
+ key: 'remove',
5119
+ value: function remove() {
5120
+ var t = this,
5121
+ rendererName = t.media.rendererName,
5122
+ src = t.media.originalNode.src;
5123
+
5124
+ for (var featureIndex in t.options.features) {
5125
+ var feature = t.options.features[featureIndex];
5126
+ if (t['clean' + feature]) {
5127
+ try {
5128
+ t['clean' + feature](t, t.getElement(t.layers), t.getElement(t.controls), t.media);
5129
+ } catch (e) {
5130
+ console.error('error cleaning ' + feature, e);
5131
+ }
5132
+ }
5133
+ }
5134
+
5135
+ var nativeWidth = t.node.getAttribute('width'),
5136
+ nativeHeight = t.node.getAttribute('height');
5137
+
5138
+ if (nativeWidth) {
5139
+ if (nativeWidth.indexOf('%') === -1) {
5140
+ nativeWidth = nativeWidth + 'px';
5141
+ }
5142
+ } else {
5143
+ nativeWidth = 'auto';
5144
+ }
5145
+
5146
+ if (nativeHeight) {
5147
+ if (nativeHeight.indexOf('%') === -1) {
5148
+ nativeHeight = nativeHeight + 'px';
5149
+ }
5150
+ } else {
5151
+ nativeHeight = 'auto';
5152
+ }
5153
+
5154
+ t.node.style.width = nativeWidth;
5155
+ t.node.style.height = nativeHeight;
5156
+
5157
+ t.setPlayerSize(0, 0);
5158
+
5159
+ if (!t.isDynamic) {
5160
+ (function () {
5161
+ t.node.setAttribute('controls', true);
5162
+ t.node.setAttribute('id', t.node.getAttribute('id').replace('_' + rendererName, '').replace('_from_mejs', ''));
5163
+ var poster = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'poster>img');
5164
+ if (poster) {
5165
+ t.node.setAttribute('poster', poster.src);
5166
+ }
5167
+
5168
+ delete t.node.autoplay;
5169
+
5170
+ if (t.media.canPlayType((0, _media.getTypeFromFile)(src)) !== '') {
5171
+ t.node.setAttribute('src', src);
5172
+ }
5173
+
5174
+ if (~rendererName.indexOf('iframe')) {
5175
+ var layer = _document2.default.getElementById(t.media.id + '-iframe-overlay');
5176
+ layer.remove();
5177
+ }
5178
+
5179
+ var node = t.node.cloneNode();
5180
+ node.style.display = '';
5181
+ t.getElement(t.container).parentNode.insertBefore(node, t.getElement(t.container));
5182
+ t.node.remove();
5183
+
5184
+ if (t.mediaFiles) {
5185
+ for (var i = 0, total = t.mediaFiles.length; i < total; i++) {
5186
+ var source = _document2.default.createElement('source');
5187
+ source.setAttribute('src', t.mediaFiles[i].src);
5188
+ source.setAttribute('type', t.mediaFiles[i].type);
5189
+ node.appendChild(source);
5190
+ }
5191
+ }
5192
+ if (t.trackFiles) {
5193
+ var _loop3 = function _loop3(_i4, _total4) {
5194
+ var track = t.trackFiles[_i4];
5195
+ var newTrack = _document2.default.createElement('track');
5196
+ newTrack.kind = track.kind;
5197
+ newTrack.label = track.label;
5198
+ newTrack.srclang = track.srclang;
5199
+ newTrack.src = track.src;
5200
+
5201
+ node.appendChild(newTrack);
5202
+ newTrack.addEventListener('load', function () {
5203
+ this.mode = 'showing';
5204
+ node.textTracks[_i4].mode = 'showing';
5205
+ });
5206
+ };
5207
+
5208
+ for (var _i4 = 0, _total4 = t.trackFiles.length; _i4 < _total4; _i4++) {
5209
+ _loop3(_i4, _total4);
5210
+ }
5211
+ }
5212
+
5213
+ delete t.node;
5214
+ delete t.mediaFiles;
5215
+ delete t.trackFiles;
5216
+ })();
5217
+ } else {
5218
+ t.getElement(t.container).parentNode.insertBefore(t.node, t.getElement(t.container));
5219
+ }
5220
+
5221
+ if (typeof t.media.renderer.destroy === 'function') {
5222
+ t.media.renderer.destroy();
5223
+ }
5224
+
5225
+ delete _mejs2.default.players[t.id];
5226
+
5227
+ if (_typeof(t.getElement(t.container)) === 'object') {
5228
+ var offscreen = t.getElement(t.container).parentNode.querySelector('.' + t.options.classPrefix + 'offscreen');
5229
+ offscreen.remove();
5230
+ t.getElement(t.container).remove();
5231
+ }
5232
+ t.globalUnbind('resize', t.globalResizeCallback);
5233
+ t.globalUnbind('keydown', t.globalKeydownCallback);
5234
+ t.globalUnbind('click', t.globalClickCallback);
5235
+
5236
+ delete t.media.player;
5237
+ }
5238
+ }, {
5239
+ key: 'paused',
5240
+ get: function get() {
5241
+ return this.proxy.paused;
5242
+ }
5243
+ }, {
5244
+ key: 'muted',
5245
+ get: function get() {
5246
+ return this.proxy.muted;
5247
+ },
5248
+ set: function set(muted) {
5249
+ this.setMuted(muted);
5250
+ }
5251
+ }, {
5252
+ key: 'ended',
5253
+ get: function get() {
5254
+ return this.proxy.ended;
5255
+ }
5256
+ }, {
5257
+ key: 'readyState',
5258
+ get: function get() {
5259
+ return this.proxy.readyState;
5260
+ }
5261
+ }, {
5262
+ key: 'currentTime',
5263
+ set: function set(time) {
5264
+ this.setCurrentTime(time);
5265
+ },
5266
+ get: function get() {
5267
+ return this.getCurrentTime();
5268
+ }
5269
+ }, {
5270
+ key: 'duration',
5271
+ get: function get() {
5272
+ return this.getDuration();
5273
+ }
5274
+ }, {
5275
+ key: 'volume',
5276
+ set: function set(volume) {
5277
+ this.setVolume(volume);
5278
+ },
5279
+ get: function get() {
5280
+ return this.getVolume();
5281
+ }
5282
+ }, {
5283
+ key: 'src',
5284
+ set: function set(src) {
5285
+ this.setSrc(src);
5286
+ },
5287
+ get: function get() {
5288
+ return this.getSrc();
5289
+ }
5290
+ }]);
5291
+
5292
+ return MediaElementPlayer;
5293
+ }();
5294
+
5295
+ _window2.default.MediaElementPlayer = MediaElementPlayer;
5296
+ _mejs2.default.MediaElementPlayer = MediaElementPlayer;
5297
+
5298
+ exports.default = MediaElementPlayer;
5299
+
5300
+ },{"17":17,"2":2,"25":25,"26":26,"27":27,"28":28,"3":3,"30":30,"5":5,"6":6,"7":7}],17:[function(_dereq_,module,exports){
5301
+ 'use strict';
5302
+
5303
+ Object.defineProperty(exports, "__esModule", {
5304
+ value: true
5305
+ });
5306
+
5307
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
5308
+
5309
+ var _window = _dereq_(3);
5310
+
5311
+ var _window2 = _interopRequireDefault(_window);
5312
+
5313
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5314
+
5315
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5316
+
5317
+ var DefaultPlayer = function () {
5318
+ function DefaultPlayer(player) {
5319
+ _classCallCheck(this, DefaultPlayer);
5320
+
5321
+ this.media = player.media;
5322
+ this.isVideo = player.isVideo;
5323
+ this.classPrefix = player.options.classPrefix;
5324
+ this.createIframeLayer = function () {
5325
+ return player.createIframeLayer();
5326
+ };
5327
+ this.setPoster = function (url) {
5328
+ return player.setPoster(url);
5329
+ };
5330
+ return this;
5331
+ }
5332
+
5333
+ _createClass(DefaultPlayer, [{
5334
+ key: 'play',
5335
+ value: function play() {
5336
+ this.media.play();
5337
+ }
5338
+ }, {
5339
+ key: 'pause',
5340
+ value: function pause() {
5341
+ this.media.pause();
5342
+ }
5343
+ }, {
5344
+ key: 'load',
5345
+ value: function load() {
5346
+ var t = this;
5347
+
5348
+ if (!t.isLoaded) {
5349
+ t.media.load();
5350
+ }
5351
+
5352
+ t.isLoaded = true;
5353
+ }
5354
+ }, {
5355
+ key: 'setCurrentTime',
5356
+ value: function setCurrentTime(time) {
5357
+ this.media.setCurrentTime(time);
5358
+ }
5359
+ }, {
5360
+ key: 'getCurrentTime',
5361
+ value: function getCurrentTime() {
5362
+ return this.media.currentTime;
5363
+ }
5364
+ }, {
5365
+ key: 'getDuration',
5366
+ value: function getDuration() {
5367
+ return this.media.getDuration();
5368
+ }
5369
+ }, {
5370
+ key: 'setVolume',
5371
+ value: function setVolume(volume) {
5372
+ this.media.setVolume(volume);
5373
+ }
5374
+ }, {
5375
+ key: 'getVolume',
5376
+ value: function getVolume() {
5377
+ return this.media.getVolume();
5378
+ }
5379
+ }, {
5380
+ key: 'setMuted',
5381
+ value: function setMuted(value) {
5382
+ this.media.setMuted(value);
5383
+ }
5384
+ }, {
5385
+ key: 'setSrc',
5386
+ value: function setSrc(src) {
5387
+ var t = this,
5388
+ layer = document.getElementById(t.media.id + '-iframe-overlay');
5389
+
5390
+ if (layer) {
5391
+ layer.remove();
5392
+ }
5393
+
5394
+ t.media.setSrc(src);
5395
+ t.createIframeLayer();
5396
+ if (t.media.renderer !== null && typeof t.media.renderer.getPosterUrl === 'function') {
5397
+ t.setPoster(t.media.renderer.getPosterUrl());
5398
+ }
5399
+ }
5400
+ }, {
5401
+ key: 'getSrc',
5402
+ value: function getSrc() {
5403
+ return this.media.getSrc();
5404
+ }
5405
+ }, {
5406
+ key: 'canPlayType',
5407
+ value: function canPlayType(type) {
5408
+ return this.media.canPlayType(type);
5409
+ }
5410
+ }, {
5411
+ key: 'paused',
5412
+ get: function get() {
5413
+ return this.media.paused;
5414
+ }
5415
+ }, {
5416
+ key: 'muted',
5417
+ set: function set(muted) {
5418
+ this.setMuted(muted);
5419
+ },
5420
+ get: function get() {
5421
+ return this.media.muted;
5422
+ }
5423
+ }, {
5424
+ key: 'ended',
5425
+ get: function get() {
5426
+ return this.media.ended;
5427
+ }
5428
+ }, {
5429
+ key: 'readyState',
5430
+ get: function get() {
5431
+ return this.media.readyState;
5432
+ }
5433
+ }, {
5434
+ key: 'currentTime',
5435
+ set: function set(time) {
5436
+ this.setCurrentTime(time);
5437
+ },
5438
+ get: function get() {
5439
+ return this.getCurrentTime();
5440
+ }
5441
+ }, {
5442
+ key: 'duration',
5443
+ get: function get() {
5444
+ return this.getDuration();
5445
+ }
5446
+ }, {
5447
+ key: 'volume',
5448
+ set: function set(volume) {
5449
+ this.setVolume(volume);
5450
+ },
5451
+ get: function get() {
5452
+ return this.getVolume();
5453
+ }
5454
+ }, {
5455
+ key: 'src',
5456
+ set: function set(src) {
5457
+ this.setSrc(src);
5458
+ },
5459
+ get: function get() {
5460
+ return this.getSrc();
5461
+ }
5462
+ }]);
5463
+
5464
+ return DefaultPlayer;
5465
+ }();
5466
+
5467
+ exports.default = DefaultPlayer;
5468
+
5469
+
5470
+ _window2.default.DefaultPlayer = DefaultPlayer;
5471
+
5472
+ },{"3":3}],18:[function(_dereq_,module,exports){
5473
+ 'use strict';
5474
+
5475
+ var _window = _dereq_(3);
5476
+
5477
+ var _window2 = _interopRequireDefault(_window);
5478
+
5479
+ var _mejs = _dereq_(7);
5480
+
5481
+ var _mejs2 = _interopRequireDefault(_mejs);
5482
+
5483
+ var _player = _dereq_(16);
5484
+
5485
+ var _player2 = _interopRequireDefault(_player);
5486
+
5487
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5488
+
5489
+ if (typeof jQuery !== 'undefined') {
5490
+ _mejs2.default.$ = _window2.default.jQuery = _window2.default.$ = jQuery;
5491
+ } else if (typeof Zepto !== 'undefined') {
5492
+ _mejs2.default.$ = _window2.default.Zepto = _window2.default.$ = Zepto;
5493
+ } else if (typeof ender !== 'undefined') {
5494
+ _mejs2.default.$ = _window2.default.ender = _window2.default.$ = ender;
5495
+ }
5496
+
5497
+ (function ($) {
5498
+ if (typeof $ !== 'undefined') {
5499
+ $.fn.mediaelementplayer = function (options) {
5500
+ if (options === false) {
5501
+ this.each(function () {
5502
+ var player = $(this).data('mediaelementplayer');
5503
+ if (player) {
5504
+ player.remove();
5505
+ }
5506
+ $(this).removeData('mediaelementplayer');
5507
+ });
5508
+ } else {
5509
+ this.each(function () {
5510
+ $(this).data('mediaelementplayer', new _player2.default(this, options));
5511
+ });
5512
+ }
5513
+ return this;
5514
+ };
5515
+
5516
+ $(document).ready(function () {
5517
+ $('.' + _mejs2.default.MepDefaults.classPrefix + 'player').mediaelementplayer();
5518
+ });
5519
+ }
5520
+ })(_mejs2.default.$);
5521
+
5522
+ },{"16":16,"3":3,"7":7}],19:[function(_dereq_,module,exports){
5523
+ 'use strict';
5524
+
5525
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
5526
+
5527
+ var _window = _dereq_(3);
5528
+
5529
+ var _window2 = _interopRequireDefault(_window);
5530
+
5531
+ var _mejs = _dereq_(7);
5532
+
5533
+ var _mejs2 = _interopRequireDefault(_mejs);
5534
+
5535
+ var _renderer = _dereq_(8);
5536
+
5537
+ var _general = _dereq_(27);
5538
+
5539
+ var _media = _dereq_(28);
5540
+
5541
+ var _constants = _dereq_(25);
5542
+
5543
+ var _dom = _dereq_(26);
5544
+
5545
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5546
+
5547
+ var NativeDash = {
5548
+
5549
+ promise: null,
5550
+
5551
+ load: function load(settings) {
5552
+ if (typeof dashjs !== 'undefined') {
5553
+ NativeDash.promise = new Promise(function (resolve) {
5554
+ resolve();
5555
+ }).then(function () {
5556
+ NativeDash._createPlayer(settings);
5557
+ });
5558
+ } else {
5559
+ settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.dashjs.org/latest/dash.all.min.js';
5560
+
5561
+ NativeDash.promise = NativeDash.promise || (0, _dom.loadScript)(settings.options.path);
5562
+ NativeDash.promise.then(function () {
5563
+ NativeDash._createPlayer(settings);
5564
+ });
5565
+ }
5566
+
5567
+ return NativeDash.promise;
5568
+ },
5569
+
5570
+ _createPlayer: function _createPlayer(settings) {
5571
+ var player = dashjs.MediaPlayer().create();
5572
+ _window2.default['__ready__' + settings.id](player);
5573
+ return player;
5574
+ }
5575
+ };
5576
+
5577
+ var DashNativeRenderer = {
5578
+ name: 'native_dash',
5579
+ options: {
5580
+ prefix: 'native_dash',
5581
+ dash: {
5582
+ path: 'https://cdn.dashjs.org/latest/dash.all.min.js',
5583
+ debug: false,
5584
+ drm: {},
5585
+
5586
+ robustnessLevel: ''
5587
+ }
5588
+ },
5589
+
5590
+ canPlayType: function canPlayType(type) {
5591
+ return _constants.HAS_MSE && ['application/dash+xml'].indexOf(type.toLowerCase()) > -1;
5592
+ },
5593
+
5594
+ create: function create(mediaElement, options, mediaFiles) {
5595
+
5596
+ var originalNode = mediaElement.originalNode,
5597
+ id = mediaElement.id + '_' + options.prefix,
5598
+ autoplay = originalNode.autoplay,
5599
+ children = originalNode.children;
5600
+
5601
+ var node = null,
5602
+ dashPlayer = null;
5603
+
5604
+ originalNode.removeAttribute('type');
5605
+ for (var i = 0, total = children.length; i < total; i++) {
5606
+ children[i].removeAttribute('type');
5607
+ }
5608
+
5609
+ node = originalNode.cloneNode(true);
5610
+ options = Object.assign(options, mediaElement.options);
5611
+
5612
+ var props = _mejs2.default.html5media.properties,
5613
+ events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
5614
+ return e !== 'error';
5615
+ }),
5616
+ attachNativeEvents = function attachNativeEvents(e) {
5617
+ var event = (0, _general.createEvent)(e.type, mediaElement);
5618
+ mediaElement.dispatchEvent(event);
5619
+ },
5620
+ assignGettersSetters = function assignGettersSetters(propName) {
5621
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
5622
+
5623
+ node['get' + capName] = function () {
5624
+ return dashPlayer !== null ? node[propName] : null;
5625
+ };
5626
+
5627
+ node['set' + capName] = function (value) {
5628
+ if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
5629
+ if (propName === 'src') {
5630
+ var source = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
5631
+ node[propName] = source;
5632
+ if (dashPlayer !== null) {
5633
+ dashPlayer.reset();
5634
+ for (var _i = 0, _total = events.length; _i < _total; _i++) {
5635
+ node.removeEventListener(events[_i], attachNativeEvents);
5636
+ }
5637
+ dashPlayer = NativeDash._createPlayer({
5638
+ options: options.dash,
5639
+ id: id
5640
+ });
5641
+
5642
+ if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && _typeof(value.drm) === 'object') {
5643
+ dashPlayer.setProtectionData(value.drm);
5644
+ if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) {
5645
+ dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel);
5646
+ }
5647
+ }
5648
+ dashPlayer.attachSource(source);
5649
+ if (autoplay) {
5650
+ dashPlayer.play();
5651
+ }
5652
+ }
5653
+ } else {
5654
+ node[propName] = value;
5655
+ }
5656
+ }
5657
+ };
5658
+ };
5659
+
5660
+ for (var _i2 = 0, _total2 = props.length; _i2 < _total2; _i2++) {
5661
+ assignGettersSetters(props[_i2]);
5662
+ }
5663
+
5664
+ _window2.default['__ready__' + id] = function (_dashPlayer) {
5665
+ mediaElement.dashPlayer = dashPlayer = _dashPlayer;
5666
+
5667
+ var dashEvents = dashjs.MediaPlayer.events,
5668
+ assignEvents = function assignEvents(eventName) {
5669
+ if (eventName === 'loadedmetadata') {
5670
+ dashPlayer.getDebug().setLogToBrowserConsole(options.dash.debug);
5671
+ dashPlayer.initialize();
5672
+ dashPlayer.setScheduleWhilePaused(false);
5673
+ dashPlayer.setFastSwitchEnabled(true);
5674
+ dashPlayer.attachView(node);
5675
+ dashPlayer.setAutoPlay(false);
5676
+
5677
+ if (_typeof(options.dash.drm) === 'object' && !_mejs2.default.Utils.isObjectEmpty(options.dash.drm)) {
5678
+ dashPlayer.setProtectionData(options.dash.drm);
5679
+ if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) {
5680
+ dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel);
5681
+ }
5682
+ }
5683
+ dashPlayer.attachSource(node.getSrc());
5684
+ }
5685
+
5686
+ node.addEventListener(eventName, attachNativeEvents);
5687
+ };
5688
+
5689
+ for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
5690
+ assignEvents(events[_i3]);
5691
+ }
5692
+
5693
+ var assignMdashEvents = function assignMdashEvents(e) {
5694
+ if (e.type.toLowerCase() === 'error') {
5695
+ mediaElement.generateError(e.message, node.src);
5696
+ console.error(e);
5697
+ } else {
5698
+ var _event = (0, _general.createEvent)(e.type, mediaElement);
5699
+ _event.data = e;
5700
+ mediaElement.dispatchEvent(_event);
5701
+ }
5702
+ };
5703
+
5704
+ for (var eventType in dashEvents) {
5705
+ if (dashEvents.hasOwnProperty(eventType)) {
5706
+ dashPlayer.on(dashEvents[eventType], function (e) {
5707
+ return assignMdashEvents(e);
5708
+ });
5709
+ }
5710
+ }
5711
+ };
5712
+
5713
+ if (mediaFiles && mediaFiles.length > 0) {
5714
+ for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) {
5715
+ if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) {
5716
+ node.setAttribute('src', mediaFiles[_i4].src);
5717
+ if (typeof mediaFiles[_i4].drm !== 'undefined') {
5718
+ options.dash.drm = mediaFiles[_i4].drm;
5719
+ }
5720
+ break;
5721
+ }
5722
+ }
5723
+ }
5724
+
5725
+ node.setAttribute('id', id);
5726
+
5727
+ originalNode.parentNode.insertBefore(node, originalNode);
5728
+ originalNode.autoplay = false;
5729
+ originalNode.style.display = 'none';
5730
+
5731
+ node.setSize = function (width, height) {
5732
+ node.style.width = width + 'px';
5733
+ node.style.height = height + 'px';
5734
+ return node;
5735
+ };
5736
+
5737
+ node.hide = function () {
5738
+ node.pause();
5739
+ node.style.display = 'none';
5740
+ return node;
5741
+ };
5742
+
5743
+ node.show = function () {
5744
+ node.style.display = '';
5745
+ return node;
5746
+ };
5747
+
5748
+ node.destroy = function () {
5749
+ if (dashPlayer !== null) {
5750
+ dashPlayer.reset();
5751
+ }
5752
+ };
5753
+
5754
+ var event = (0, _general.createEvent)('rendererready', node);
5755
+ mediaElement.dispatchEvent(event);
5756
+
5757
+ mediaElement.promises.push(NativeDash.load({
5758
+ options: options.dash,
5759
+ id: id
5760
+ }));
5761
+
5762
+ return node;
5763
+ }
5764
+ };
5765
+
5766
+ _media.typeChecks.push(function (url) {
5767
+ return ~url.toLowerCase().indexOf('.mpd') ? 'application/dash+xml' : null;
5768
+ });
5769
+
5770
+ _renderer.renderer.add(DashNativeRenderer);
5771
+
5772
+ },{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],20:[function(_dereq_,module,exports){
5773
+ 'use strict';
5774
+
5775
+ Object.defineProperty(exports, "__esModule", {
5776
+ value: true
5777
+ });
5778
+ exports.PluginDetector = undefined;
5779
+
5780
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
5781
+
5782
+ var _window = _dereq_(3);
5783
+
5784
+ var _window2 = _interopRequireDefault(_window);
5785
+
5786
+ var _document = _dereq_(2);
5787
+
5788
+ var _document2 = _interopRequireDefault(_document);
5789
+
5790
+ var _mejs = _dereq_(7);
5791
+
5792
+ var _mejs2 = _interopRequireDefault(_mejs);
5793
+
5794
+ var _i18n = _dereq_(5);
5795
+
5796
+ var _i18n2 = _interopRequireDefault(_i18n);
5797
+
5798
+ var _renderer = _dereq_(8);
5799
+
5800
+ var _general = _dereq_(27);
5801
+
5802
+ var _constants = _dereq_(25);
5803
+
5804
+ var _media = _dereq_(28);
5805
+
5806
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5807
+
5808
+ var PluginDetector = exports.PluginDetector = {
5809
+ plugins: [],
5810
+
5811
+ hasPluginVersion: function hasPluginVersion(plugin, v) {
5812
+ var pv = PluginDetector.plugins[plugin];
5813
+ v[1] = v[1] || 0;
5814
+ v[2] = v[2] || 0;
5815
+ return pv[0] > v[0] || pv[0] === v[0] && pv[1] > v[1] || pv[0] === v[0] && pv[1] === v[1] && pv[2] >= v[2];
5816
+ },
5817
+
5818
+ addPlugin: function addPlugin(p, pluginName, mimeType, activeX, axDetect) {
5819
+ PluginDetector.plugins[p] = PluginDetector.detectPlugin(pluginName, mimeType, activeX, axDetect);
5820
+ },
5821
+
5822
+ detectPlugin: function detectPlugin(pluginName, mimeType, activeX, axDetect) {
5823
+
5824
+ var version = [0, 0, 0],
5825
+ description = void 0,
5826
+ ax = void 0;
5827
+
5828
+ if (_constants.NAV.plugins !== null && _constants.NAV.plugins !== undefined && _typeof(_constants.NAV.plugins[pluginName]) === 'object') {
5829
+ description = _constants.NAV.plugins[pluginName].description;
5830
+ if (description && !(typeof _constants.NAV.mimeTypes !== 'undefined' && _constants.NAV.mimeTypes[mimeType] && !_constants.NAV.mimeTypes[mimeType].enabledPlugin)) {
5831
+ version = description.replace(pluginName, '').replace(/^\s+/, '').replace(/\sr/gi, '.').split('.');
5832
+ for (var i = 0, total = version.length; i < total; i++) {
5833
+ version[i] = parseInt(version[i].match(/\d+/), 10);
5834
+ }
5835
+ }
5836
+ } else if (_window2.default.ActiveXObject !== undefined) {
5837
+ try {
5838
+ ax = new ActiveXObject(activeX);
5839
+ if (ax) {
5840
+ version = axDetect(ax);
5841
+ }
5842
+ } catch (e) {
5843
+
5844
+ }
5845
+ }
5846
+ return version;
5847
+ }
5848
+ };
5849
+
5850
+ PluginDetector.addPlugin('flash', 'Shockwave Flash', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash', function (ax) {
5851
+ var version = [],
5852
+ d = ax.GetVariable("$version");
5853
+
5854
+ if (d) {
5855
+ d = d.split(" ")[1].split(",");
5856
+ version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
5857
+ }
5858
+ return version;
5859
+ });
5860
+
5861
+ var FlashMediaElementRenderer = {
5862
+ create: function create(mediaElement, options, mediaFiles) {
5863
+
5864
+ var flash = {};
5865
+ var isActive = false;
5866
+
5867
+ flash.options = options;
5868
+ flash.id = mediaElement.id + '_' + flash.options.prefix;
5869
+ flash.mediaElement = mediaElement;
5870
+ flash.flashState = {};
5871
+ flash.flashApi = null;
5872
+ flash.flashApiStack = [];
5873
+
5874
+ var props = _mejs2.default.html5media.properties,
5875
+ assignGettersSetters = function assignGettersSetters(propName) {
5876
+ flash.flashState[propName] = null;
5877
+
5878
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
5879
+
5880
+ flash['get' + capName] = function () {
5881
+ if (flash.flashApi !== null) {
5882
+ if (typeof flash.flashApi['get_' + propName] === 'function') {
5883
+ var value = flash.flashApi['get_' + propName]();
5884
+
5885
+ if (propName === 'buffered') {
5886
+ return {
5887
+ start: function start() {
5888
+ return 0;
5889
+ },
5890
+ end: function end() {
5891
+ return value;
5892
+ },
5893
+ length: 1
5894
+ };
5895
+ }
5896
+ return value;
5897
+ } else {
5898
+ return null;
5899
+ }
5900
+ } else {
5901
+ return null;
5902
+ }
5903
+ };
5904
+
5905
+ flash['set' + capName] = function (value) {
5906
+ if (propName === 'src') {
5907
+ value = (0, _media.absolutizeUrl)(value);
5908
+ }
5909
+
5910
+ if (flash.flashApi !== null && flash.flashApi['set_' + propName] !== undefined) {
5911
+ try {
5912
+ flash.flashApi['set_' + propName](value);
5913
+ } catch (e) {
5914
+
5915
+ }
5916
+ } else {
5917
+ flash.flashApiStack.push({
5918
+ type: 'set',
5919
+ propName: propName,
5920
+ value: value
5921
+ });
5922
+ }
5923
+ };
5924
+ };
5925
+
5926
+ for (var i = 0, total = props.length; i < total; i++) {
5927
+ assignGettersSetters(props[i]);
5928
+ }
5929
+
5930
+ var methods = _mejs2.default.html5media.methods,
5931
+ assignMethods = function assignMethods(methodName) {
5932
+ flash[methodName] = function () {
5933
+ if (isActive) {
5934
+ if (flash.flashApi !== null) {
5935
+ if (flash.flashApi['fire_' + methodName]) {
5936
+ try {
5937
+ flash.flashApi['fire_' + methodName]();
5938
+ } catch (e) {
5939
+
5940
+ }
5941
+ } else {
5942
+
5943
+ }
5944
+ } else {
5945
+ flash.flashApiStack.push({
5946
+ type: 'call',
5947
+ methodName: methodName
5948
+ });
5949
+ }
5950
+ }
5951
+ };
5952
+ };
5953
+ methods.push('stop');
5954
+ for (var _i = 0, _total = methods.length; _i < _total; _i++) {
5955
+ assignMethods(methods[_i]);
5956
+ }
5957
+
5958
+ var initEvents = ['rendererready'];
5959
+
5960
+ for (var _i2 = 0, _total2 = initEvents.length; _i2 < _total2; _i2++) {
5961
+ var event = (0, _general.createEvent)(initEvents[_i2], flash);
5962
+ mediaElement.dispatchEvent(event);
5963
+ }
5964
+
5965
+ _window2.default['__ready__' + flash.id] = function () {
5966
+
5967
+ flash.flashReady = true;
5968
+ flash.flashApi = _document2.default.getElementById('__' + flash.id);
5969
+
5970
+ if (flash.flashApiStack.length) {
5971
+ for (var _i3 = 0, _total3 = flash.flashApiStack.length; _i3 < _total3; _i3++) {
5972
+ var stackItem = flash.flashApiStack[_i3];
5973
+
5974
+ if (stackItem.type === 'set') {
5975
+ var propName = stackItem.propName,
5976
+ capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
5977
+
5978
+ flash['set' + capName](stackItem.value);
5979
+ } else if (stackItem.type === 'call') {
5980
+ flash[stackItem.methodName]();
5981
+ }
5982
+ }
5983
+ }
5984
+ };
5985
+
5986
+ _window2.default['__event__' + flash.id] = function (eventName, message) {
5987
+ var event = (0, _general.createEvent)(eventName, flash);
5988
+ if (message) {
5989
+ try {
5990
+ event.data = JSON.parse(message);
5991
+ event.details.data = JSON.parse(message);
5992
+ } catch (e) {
5993
+ event.message = message;
5994
+ }
5995
+ }
5996
+
5997
+ flash.mediaElement.dispatchEvent(event);
5998
+ };
5999
+
6000
+ flash.flashWrapper = _document2.default.createElement('div');
6001
+
6002
+ if (['always', 'sameDomain'].indexOf(flash.options.shimScriptAccess) === -1) {
6003
+ flash.options.shimScriptAccess = 'sameDomain';
6004
+ }
6005
+
6006
+ var autoplay = mediaElement.originalNode.autoplay,
6007
+ flashVars = ['uid=' + flash.id, 'autoplay=' + autoplay, 'allowScriptAccess=' + flash.options.shimScriptAccess, 'preload=' + (mediaElement.originalNode.getAttribute('preload') || '')],
6008
+ isVideo = mediaElement.originalNode !== null && mediaElement.originalNode.tagName.toLowerCase() === 'video',
6009
+ flashHeight = isVideo ? mediaElement.originalNode.height : 1,
6010
+ flashWidth = isVideo ? mediaElement.originalNode.width : 1;
6011
+
6012
+ if (mediaElement.originalNode.getAttribute('src')) {
6013
+ flashVars.push('src=' + mediaElement.originalNode.getAttribute('src'));
6014
+ }
6015
+
6016
+ if (flash.options.enablePseudoStreaming === true) {
6017
+ flashVars.push('pseudostreamstart=' + flash.options.pseudoStreamingStartQueryParam);
6018
+ flashVars.push('pseudostreamtype=' + flash.options.pseudoStreamingType);
6019
+ }
6020
+
6021
+ if (flash.options.streamDelimiter) {
6022
+ flashVars.push('streamdelimiter=' + encodeURIComponent(flash.options.streamDelimiter));
6023
+ }
6024
+
6025
+ if (flash.options.proxyType) {
6026
+ flashVars.push('proxytype=' + flash.options.proxyType);
6027
+ }
6028
+
6029
+ mediaElement.appendChild(flash.flashWrapper);
6030
+ mediaElement.originalNode.style.display = 'none';
6031
+
6032
+ var settings = [];
6033
+
6034
+ if (_constants.IS_IE || _constants.IS_EDGE) {
6035
+ var specialIEContainer = _document2.default.createElement('div');
6036
+ flash.flashWrapper.appendChild(specialIEContainer);
6037
+
6038
+ if (_constants.IS_EDGE) {
6039
+ settings = ['type="application/x-shockwave-flash"', 'data="' + flash.options.pluginPath + flash.options.filename + '"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '\'"'];
6040
+ } else {
6041
+ settings = ['classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"', 'codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '"'];
6042
+ }
6043
+
6044
+ if (!isVideo) {
6045
+ settings.push('style="clip: rect(0 0 0 0); position: absolute;"');
6046
+ }
6047
+
6048
+ specialIEContainer.outerHTML = '<object ' + settings.join(' ') + '>' + ('<param name="movie" value="' + flash.options.pluginPath + flash.options.filename + '?x=' + new Date() + '" />') + ('<param name="flashvars" value="' + flashVars.join('&amp;') + '" />') + '<param name="quality" value="high" />' + '<param name="bgcolor" value="#000000" />' + '<param name="wmode" value="transparent" />' + ('<param name="allowScriptAccess" value="' + flash.options.shimScriptAccess + '" />') + '<param name="allowFullScreen" value="true" />' + ('<div>' + _i18n2.default.t('mejs.install-flash') + '</div>') + '</object>';
6049
+ } else {
6050
+
6051
+ settings = ['id="__' + flash.id + '"', 'name="__' + flash.id + '"', 'play="true"', 'loop="false"', 'quality="high"', 'bgcolor="#000000"', 'wmode="transparent"', 'allowScriptAccess="' + flash.options.shimScriptAccess + '"', 'allowFullScreen="true"', 'type="application/x-shockwave-flash"', 'pluginspage="//www.macromedia.com/go/getflashplayer"', 'src="' + flash.options.pluginPath + flash.options.filename + '"', 'flashvars="' + flashVars.join('&') + '"'];
6052
+
6053
+ if (isVideo) {
6054
+ settings.push('width="' + flashWidth + '"');
6055
+ settings.push('height="' + flashHeight + '"');
6056
+ } else {
6057
+ settings.push('style="position: fixed; left: -9999em; top: -9999em;"');
6058
+ }
6059
+
6060
+ flash.flashWrapper.innerHTML = '<embed ' + settings.join(' ') + '>';
6061
+ }
6062
+
6063
+ flash.flashNode = flash.flashWrapper.lastChild;
6064
+
6065
+ flash.hide = function () {
6066
+ isActive = false;
6067
+ if (isVideo) {
6068
+ flash.flashNode.style.display = 'none';
6069
+ }
6070
+ };
6071
+ flash.show = function () {
6072
+ isActive = true;
6073
+ if (isVideo) {
6074
+ flash.flashNode.style.display = '';
6075
+ }
6076
+ };
6077
+ flash.setSize = function (width, height) {
6078
+ flash.flashNode.style.width = width + 'px';
6079
+ flash.flashNode.style.height = height + 'px';
6080
+
6081
+ if (flash.flashApi !== null && typeof flash.flashApi.fire_setSize === 'function') {
6082
+ flash.flashApi.fire_setSize(width, height);
6083
+ }
6084
+ };
6085
+
6086
+ flash.destroy = function () {
6087
+ flash.flashNode.remove();
6088
+ };
6089
+
6090
+ if (mediaFiles && mediaFiles.length > 0) {
6091
+ for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) {
6092
+ if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) {
6093
+ flash.setSrc(mediaFiles[_i4].src);
6094
+ break;
6095
+ }
6096
+ }
6097
+ }
6098
+
6099
+ return flash;
6100
+ }
6101
+ };
6102
+
6103
+ var hasFlash = PluginDetector.hasPluginVersion('flash', [10, 0, 0]);
6104
+
6105
+ if (hasFlash) {
6106
+ _media.typeChecks.push(function (url) {
6107
+ url = url.toLowerCase();
6108
+
6109
+ if (url.startsWith('rtmp')) {
6110
+ if (~url.indexOf('.mp3')) {
6111
+ return 'audio/rtmp';
6112
+ } else {
6113
+ return 'video/rtmp';
6114
+ }
6115
+ } else if (/\.og(a|g)/i.test(url)) {
6116
+ return 'audio/ogg';
6117
+ } else if (~url.indexOf('.m3u8')) {
6118
+ return 'application/x-mpegURL';
6119
+ } else if (~url.indexOf('.mpd')) {
6120
+ return 'application/dash+xml';
6121
+ } else if (~url.indexOf('.flv')) {
6122
+ return 'video/flv';
6123
+ } else {
6124
+ return null;
6125
+ }
6126
+ });
6127
+
6128
+ var FlashMediaElementVideoRenderer = {
6129
+ name: 'flash_video',
6130
+ options: {
6131
+ prefix: 'flash_video',
6132
+ filename: 'mediaelement-flash-video.swf',
6133
+ enablePseudoStreaming: false,
6134
+
6135
+ pseudoStreamingStartQueryParam: 'start',
6136
+
6137
+ pseudoStreamingType: 'byte',
6138
+
6139
+ proxyType: '',
6140
+
6141
+ streamDelimiter: ''
6142
+ },
6143
+
6144
+ canPlayType: function canPlayType(type) {
6145
+ return ~['video/mp4', 'video/rtmp', 'audio/rtmp', 'rtmp/mp4', 'audio/mp4', 'video/flv', 'video/x-flv'].indexOf(type.toLowerCase());
6146
+ },
6147
+
6148
+ create: FlashMediaElementRenderer.create
6149
+
6150
+ };
6151
+ _renderer.renderer.add(FlashMediaElementVideoRenderer);
6152
+
6153
+ var FlashMediaElementHlsVideoRenderer = {
6154
+ name: 'flash_hls',
6155
+ options: {
6156
+ prefix: 'flash_hls',
6157
+ filename: 'mediaelement-flash-video-hls.swf'
6158
+ },
6159
+
6160
+ canPlayType: function canPlayType(type) {
6161
+ return ~['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase());
6162
+ },
6163
+
6164
+ create: FlashMediaElementRenderer.create
6165
+ };
6166
+ _renderer.renderer.add(FlashMediaElementHlsVideoRenderer);
6167
+
6168
+ var FlashMediaElementMdashVideoRenderer = {
6169
+ name: 'flash_dash',
6170
+ options: {
6171
+ prefix: 'flash_dash',
6172
+ filename: 'mediaelement-flash-video-mdash.swf'
6173
+ },
6174
+
6175
+ canPlayType: function canPlayType(type) {
6176
+ return ~['application/dash+xml'].indexOf(type.toLowerCase());
6177
+ },
6178
+
6179
+ create: FlashMediaElementRenderer.create
6180
+ };
6181
+ _renderer.renderer.add(FlashMediaElementMdashVideoRenderer);
6182
+
6183
+ var FlashMediaElementAudioRenderer = {
6184
+ name: 'flash_audio',
6185
+ options: {
6186
+ prefix: 'flash_audio',
6187
+ filename: 'mediaelement-flash-audio.swf'
6188
+ },
6189
+
6190
+ canPlayType: function canPlayType(type) {
6191
+ return ~['audio/mp3'].indexOf(type.toLowerCase());
6192
+ },
6193
+
6194
+ create: FlashMediaElementRenderer.create
6195
+ };
6196
+ _renderer.renderer.add(FlashMediaElementAudioRenderer);
6197
+
6198
+ var FlashMediaElementAudioOggRenderer = {
6199
+ name: 'flash_audio_ogg',
6200
+ options: {
6201
+ prefix: 'flash_audio_ogg',
6202
+ filename: 'mediaelement-flash-audio-ogg.swf'
6203
+ },
6204
+
6205
+ canPlayType: function canPlayType(type) {
6206
+ return ~['audio/ogg', 'audio/oga', 'audio/ogv'].indexOf(type.toLowerCase());
6207
+ },
6208
+
6209
+ create: FlashMediaElementRenderer.create
6210
+ };
6211
+ _renderer.renderer.add(FlashMediaElementAudioOggRenderer);
6212
+ }
6213
+
6214
+ },{"2":2,"25":25,"27":27,"28":28,"3":3,"5":5,"7":7,"8":8}],21:[function(_dereq_,module,exports){
6215
+ 'use strict';
6216
+
6217
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
6218
+
6219
+ var _window = _dereq_(3);
6220
+
6221
+ var _window2 = _interopRequireDefault(_window);
6222
+
6223
+ var _mejs = _dereq_(7);
6224
+
6225
+ var _mejs2 = _interopRequireDefault(_mejs);
6226
+
6227
+ var _renderer = _dereq_(8);
6228
+
6229
+ var _general = _dereq_(27);
6230
+
6231
+ var _constants = _dereq_(25);
6232
+
6233
+ var _media = _dereq_(28);
6234
+
6235
+ var _dom = _dereq_(26);
6236
+
6237
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6238
+
6239
+ var NativeFlv = {
6240
+
6241
+ promise: null,
6242
+
6243
+ load: function load(settings) {
6244
+ if (typeof flvjs !== 'undefined') {
6245
+ NativeFlv.promise = new Promise(function (resolve) {
6246
+ resolve();
6247
+ }).then(function () {
6248
+ NativeFlv._createPlayer(settings);
6249
+ });
6250
+ } else {
6251
+ settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/flv.js@latest';
6252
+
6253
+ NativeFlv.promise = NativeFlv.promise || (0, _dom.loadScript)(settings.options.path);
6254
+ NativeFlv.promise.then(function () {
6255
+ NativeFlv._createPlayer(settings);
6256
+ });
6257
+ }
6258
+
6259
+ return NativeFlv.promise;
6260
+ },
6261
+
6262
+ _createPlayer: function _createPlayer(settings) {
6263
+ flvjs.LoggingControl.enableDebug = settings.options.debug;
6264
+ flvjs.LoggingControl.enableVerbose = settings.options.debug;
6265
+ var player = flvjs.createPlayer(settings.options, settings.configs);
6266
+ _window2.default['__ready__' + settings.id](player);
6267
+ return player;
6268
+ }
6269
+ };
6270
+
6271
+ var FlvNativeRenderer = {
6272
+ name: 'native_flv',
6273
+ options: {
6274
+ prefix: 'native_flv',
6275
+ flv: {
6276
+ path: 'https://cdn.jsdelivr.net/npm/flv.js@latest',
6277
+
6278
+ cors: true,
6279
+ debug: false
6280
+ }
6281
+ },
6282
+
6283
+ canPlayType: function canPlayType(type) {
6284
+ return _constants.HAS_MSE && ['video/x-flv', 'video/flv'].indexOf(type.toLowerCase()) > -1;
6285
+ },
6286
+
6287
+ create: function create(mediaElement, options, mediaFiles) {
6288
+
6289
+ var originalNode = mediaElement.originalNode,
6290
+ id = mediaElement.id + '_' + options.prefix;
6291
+
6292
+ var node = null,
6293
+ flvPlayer = null;
6294
+
6295
+ node = originalNode.cloneNode(true);
6296
+ options = Object.assign(options, mediaElement.options);
6297
+
6298
+ var props = _mejs2.default.html5media.properties,
6299
+ events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
6300
+ return e !== 'error';
6301
+ }),
6302
+ attachNativeEvents = function attachNativeEvents(e) {
6303
+ var event = (0, _general.createEvent)(e.type, mediaElement);
6304
+ mediaElement.dispatchEvent(event);
6305
+ },
6306
+ assignGettersSetters = function assignGettersSetters(propName) {
6307
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
6308
+
6309
+ node['get' + capName] = function () {
6310
+ return flvPlayer !== null ? node[propName] : null;
6311
+ };
6312
+
6313
+ node['set' + capName] = function (value) {
6314
+ if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
6315
+ if (propName === 'src') {
6316
+ node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
6317
+ if (flvPlayer !== null) {
6318
+ var _flvOptions = {};
6319
+ _flvOptions.type = 'flv';
6320
+ _flvOptions.url = value;
6321
+ _flvOptions.cors = options.flv.cors;
6322
+ _flvOptions.debug = options.flv.debug;
6323
+ _flvOptions.path = options.flv.path;
6324
+ var _flvConfigs = options.flv.configs;
6325
+
6326
+ flvPlayer.destroy();
6327
+ for (var i = 0, total = events.length; i < total; i++) {
6328
+ node.removeEventListener(events[i], attachNativeEvents);
6329
+ }
6330
+ flvPlayer = NativeFlv._createPlayer({
6331
+ options: _flvOptions,
6332
+ configs: _flvConfigs,
6333
+ id: id
6334
+ });
6335
+ flvPlayer.attachMediaElement(node);
6336
+ flvPlayer.load();
6337
+ }
6338
+ } else {
6339
+ node[propName] = value;
6340
+ }
6341
+ }
6342
+ };
6343
+ };
6344
+
6345
+ for (var i = 0, total = props.length; i < total; i++) {
6346
+ assignGettersSetters(props[i]);
6347
+ }
6348
+
6349
+ _window2.default['__ready__' + id] = function (_flvPlayer) {
6350
+ mediaElement.flvPlayer = flvPlayer = _flvPlayer;
6351
+
6352
+ var flvEvents = flvjs.Events,
6353
+ assignEvents = function assignEvents(eventName) {
6354
+ if (eventName === 'loadedmetadata') {
6355
+ flvPlayer.unload();
6356
+ flvPlayer.detachMediaElement();
6357
+ flvPlayer.attachMediaElement(node);
6358
+ flvPlayer.load();
6359
+ }
6360
+
6361
+ node.addEventListener(eventName, attachNativeEvents);
6362
+ };
6363
+
6364
+ for (var _i = 0, _total = events.length; _i < _total; _i++) {
6365
+ assignEvents(events[_i]);
6366
+ }
6367
+
6368
+ var assignFlvEvents = function assignFlvEvents(name, data) {
6369
+ if (name === 'error') {
6370
+ var message = data[0] + ': ' + data[1] + ' ' + data[2].msg;
6371
+ mediaElement.generateError(message, node.src);
6372
+ } else {
6373
+ var _event = (0, _general.createEvent)(name, mediaElement);
6374
+ _event.data = data;
6375
+ mediaElement.dispatchEvent(_event);
6376
+ }
6377
+ };
6378
+
6379
+ var _loop = function _loop(eventType) {
6380
+ if (flvEvents.hasOwnProperty(eventType)) {
6381
+ flvPlayer.on(flvEvents[eventType], function () {
6382
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
6383
+ args[_key] = arguments[_key];
6384
+ }
6385
+
6386
+ return assignFlvEvents(flvEvents[eventType], args);
6387
+ });
6388
+ }
6389
+ };
6390
+
6391
+ for (var eventType in flvEvents) {
6392
+ _loop(eventType);
6393
+ }
6394
+ };
6395
+
6396
+ if (mediaFiles && mediaFiles.length > 0) {
6397
+ for (var _i2 = 0, _total2 = mediaFiles.length; _i2 < _total2; _i2++) {
6398
+ if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i2].type)) {
6399
+ node.setAttribute('src', mediaFiles[_i2].src);
6400
+ break;
6401
+ }
6402
+ }
6403
+ }
6404
+
6405
+ node.setAttribute('id', id);
6406
+
6407
+ originalNode.parentNode.insertBefore(node, originalNode);
6408
+ originalNode.autoplay = false;
6409
+ originalNode.style.display = 'none';
6410
+
6411
+ var flvOptions = {};
6412
+ flvOptions.type = 'flv';
6413
+ flvOptions.url = node.src;
6414
+ flvOptions.cors = options.flv.cors;
6415
+ flvOptions.debug = options.flv.debug;
6416
+ flvOptions.path = options.flv.path;
6417
+ var flvConfigs = options.flv.configs;
6418
+
6419
+ node.setSize = function (width, height) {
6420
+ node.style.width = width + 'px';
6421
+ node.style.height = height + 'px';
6422
+ return node;
6423
+ };
6424
+
6425
+ node.hide = function () {
6426
+ if (flvPlayer !== null) {
6427
+ flvPlayer.pause();
6428
+ }
6429
+ node.style.display = 'none';
6430
+ return node;
6431
+ };
6432
+
6433
+ node.show = function () {
6434
+ node.style.display = '';
6435
+ return node;
6436
+ };
6437
+
6438
+ node.destroy = function () {
6439
+ if (flvPlayer !== null) {
6440
+ flvPlayer.destroy();
6441
+ }
6442
+ };
6443
+
6444
+ var event = (0, _general.createEvent)('rendererready', node);
6445
+ mediaElement.dispatchEvent(event);
6446
+
6447
+ mediaElement.promises.push(NativeFlv.load({
6448
+ options: flvOptions,
6449
+ configs: flvConfigs,
6450
+ id: id
6451
+ }));
6452
+
6453
+ return node;
6454
+ }
6455
+ };
6456
+
6457
+ _media.typeChecks.push(function (url) {
6458
+ return ~url.toLowerCase().indexOf('.flv') ? 'video/flv' : null;
6459
+ });
6460
+
6461
+ _renderer.renderer.add(FlvNativeRenderer);
6462
+
6463
+ },{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],22:[function(_dereq_,module,exports){
6464
+ 'use strict';
6465
+
6466
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
6467
+
6468
+ var _window = _dereq_(3);
6469
+
6470
+ var _window2 = _interopRequireDefault(_window);
6471
+
6472
+ var _mejs = _dereq_(7);
6473
+
6474
+ var _mejs2 = _interopRequireDefault(_mejs);
6475
+
6476
+ var _renderer = _dereq_(8);
6477
+
6478
+ var _general = _dereq_(27);
6479
+
6480
+ var _constants = _dereq_(25);
6481
+
6482
+ var _media = _dereq_(28);
6483
+
6484
+ var _dom = _dereq_(26);
6485
+
6486
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6487
+
6488
+ var NativeHls = {
6489
+
6490
+ promise: null,
6491
+
6492
+ load: function load(settings) {
6493
+ if (typeof Hls !== 'undefined') {
6494
+ NativeHls.promise = new Promise(function (resolve) {
6495
+ resolve();
6496
+ }).then(function () {
6497
+ NativeHls._createPlayer(settings);
6498
+ });
6499
+ } else {
6500
+ settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/hls.js@latest';
6501
+
6502
+ NativeHls.promise = NativeHls.promise || (0, _dom.loadScript)(settings.options.path);
6503
+ NativeHls.promise.then(function () {
6504
+ NativeHls._createPlayer(settings);
6505
+ });
6506
+ }
6507
+
6508
+ return NativeHls.promise;
6509
+ },
6510
+
6511
+ _createPlayer: function _createPlayer(settings) {
6512
+ var player = new Hls(settings.options);
6513
+ _window2.default['__ready__' + settings.id](player);
6514
+ return player;
6515
+ }
6516
+ };
6517
+
6518
+ var HlsNativeRenderer = {
6519
+ name: 'native_hls',
6520
+ options: {
6521
+ prefix: 'native_hls',
6522
+ hls: {
6523
+ path: 'https://cdn.jsdelivr.net/npm/hls.js@latest',
6524
+
6525
+ autoStartLoad: false,
6526
+ debug: false
6527
+ }
6528
+ },
6529
+
6530
+ canPlayType: function canPlayType(type) {
6531
+ return _constants.HAS_MSE && ['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) > -1;
6532
+ },
6533
+
6534
+ create: function create(mediaElement, options, mediaFiles) {
6535
+
6536
+ var originalNode = mediaElement.originalNode,
6537
+ id = mediaElement.id + '_' + options.prefix,
6538
+ preload = originalNode.getAttribute('preload'),
6539
+ autoplay = originalNode.autoplay;
6540
+
6541
+ var hlsPlayer = null,
6542
+ node = null,
6543
+ index = 0,
6544
+ total = mediaFiles.length;
6545
+
6546
+ node = originalNode.cloneNode(true);
6547
+ options = Object.assign(options, mediaElement.options);
6548
+ options.hls.autoStartLoad = preload && preload !== 'none' || autoplay;
6549
+
6550
+ var props = _mejs2.default.html5media.properties,
6551
+ events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
6552
+ return e !== 'error';
6553
+ }),
6554
+ attachNativeEvents = function attachNativeEvents(e) {
6555
+ var event = (0, _general.createEvent)(e.type, mediaElement);
6556
+ mediaElement.dispatchEvent(event);
6557
+ },
6558
+ assignGettersSetters = function assignGettersSetters(propName) {
6559
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
6560
+
6561
+ node['get' + capName] = function () {
6562
+ return hlsPlayer !== null ? node[propName] : null;
6563
+ };
6564
+
6565
+ node['set' + capName] = function (value) {
6566
+ if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
6567
+ if (propName === 'src') {
6568
+ node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
6569
+ if (hlsPlayer !== null) {
6570
+ hlsPlayer.destroy();
6571
+ for (var i = 0, _total = events.length; i < _total; i++) {
6572
+ node.removeEventListener(events[i], attachNativeEvents);
6573
+ }
6574
+ hlsPlayer = NativeHls._createPlayer({
6575
+ options: options.hls,
6576
+ id: id
6577
+ });
6578
+ hlsPlayer.loadSource(value);
6579
+ hlsPlayer.attachMedia(node);
6580
+ }
6581
+ } else {
6582
+ node[propName] = value;
6583
+ }
6584
+ }
6585
+ };
6586
+ };
6587
+
6588
+ for (var i = 0, _total2 = props.length; i < _total2; i++) {
6589
+ assignGettersSetters(props[i]);
6590
+ }
6591
+
6592
+ _window2.default['__ready__' + id] = function (_hlsPlayer) {
6593
+ mediaElement.hlsPlayer = hlsPlayer = _hlsPlayer;
6594
+ var hlsEvents = Hls.Events,
6595
+ assignEvents = function assignEvents(eventName) {
6596
+ if (eventName === 'loadedmetadata') {
6597
+ var url = mediaElement.originalNode.src;
6598
+ hlsPlayer.detachMedia();
6599
+ hlsPlayer.loadSource(url);
6600
+ hlsPlayer.attachMedia(node);
6601
+ }
6602
+
6603
+ node.addEventListener(eventName, attachNativeEvents);
6604
+ };
6605
+
6606
+ for (var _i = 0, _total3 = events.length; _i < _total3; _i++) {
6607
+ assignEvents(events[_i]);
6608
+ }
6609
+
6610
+ var recoverDecodingErrorDate = void 0,
6611
+ recoverSwapAudioCodecDate = void 0;
6612
+ var assignHlsEvents = function assignHlsEvents(name, data) {
6613
+ if (name === 'hlsError') {
6614
+ console.warn(data);
6615
+ data = data[1];
6616
+
6617
+ if (data.fatal) {
6618
+ switch (data.type) {
6619
+ case 'mediaError':
6620
+ var now = new Date().getTime();
6621
+ if (!recoverDecodingErrorDate || now - recoverDecodingErrorDate > 3000) {
6622
+ recoverDecodingErrorDate = new Date().getTime();
6623
+ hlsPlayer.recoverMediaError();
6624
+ } else if (!recoverSwapAudioCodecDate || now - recoverSwapAudioCodecDate > 3000) {
6625
+ recoverSwapAudioCodecDate = new Date().getTime();
6626
+ console.warn('Attempting to swap Audio Codec and recover from media error');
6627
+ hlsPlayer.swapAudioCodec();
6628
+ hlsPlayer.recoverMediaError();
6629
+ } else {
6630
+ var message = 'Cannot recover, last media error recovery failed';
6631
+ mediaElement.generateError(message, node.src);
6632
+ console.error(message);
6633
+ }
6634
+ break;
6635
+ case 'networkError':
6636
+ if (data.details === 'manifestLoadError') {
6637
+ if (index < total && mediaFiles[index + 1] !== undefined) {
6638
+ node.setSrc(mediaFiles[index++].src);
6639
+ node.load();
6640
+ node.play();
6641
+ } else {
6642
+ var _message = 'Network error';
6643
+ mediaElement.generateError(_message, mediaFiles);
6644
+ console.error(_message);
6645
+ }
6646
+ } else {
6647
+ var _message2 = 'Network error';
6648
+ mediaElement.generateError(_message2, mediaFiles);
6649
+ console.error(_message2);
6650
+ }
6651
+ break;
6652
+ default:
6653
+ hlsPlayer.destroy();
6654
+ break;
6655
+ }
6656
+ }
6657
+ } else {
6658
+ var _event = (0, _general.createEvent)(name, mediaElement);
6659
+ _event.data = data;
6660
+ mediaElement.dispatchEvent(_event);
6661
+ }
6662
+ };
6663
+
6664
+ var _loop = function _loop(eventType) {
6665
+ if (hlsEvents.hasOwnProperty(eventType)) {
6666
+ hlsPlayer.on(hlsEvents[eventType], function () {
6667
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
6668
+ args[_key] = arguments[_key];
6669
+ }
6670
+
6671
+ return assignHlsEvents(hlsEvents[eventType], args);
6672
+ });
6673
+ }
6674
+ };
6675
+
6676
+ for (var eventType in hlsEvents) {
6677
+ _loop(eventType);
6678
+ }
6679
+ };
6680
+
6681
+ if (total > 0) {
6682
+ for (; index < total; index++) {
6683
+ if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) {
6684
+ node.setAttribute('src', mediaFiles[index].src);
6685
+ break;
6686
+ }
6687
+ }
6688
+ }
6689
+
6690
+ if (preload !== 'auto' && !autoplay) {
6691
+ node.addEventListener('play', function () {
6692
+ if (hlsPlayer !== null) {
6693
+ hlsPlayer.startLoad();
6694
+ }
6695
+ });
6696
+
6697
+ node.addEventListener('pause', function () {
6698
+ if (hlsPlayer !== null) {
6699
+ hlsPlayer.stopLoad();
6700
+ }
6701
+ });
6702
+ }
6703
+
6704
+ node.setAttribute('id', id);
6705
+
6706
+ originalNode.parentNode.insertBefore(node, originalNode);
6707
+ originalNode.autoplay = false;
6708
+ originalNode.style.display = 'none';
6709
+
6710
+ node.setSize = function (width, height) {
6711
+ node.style.width = width + 'px';
6712
+ node.style.height = height + 'px';
6713
+ return node;
6714
+ };
6715
+
6716
+ node.hide = function () {
6717
+ node.pause();
6718
+ node.style.display = 'none';
6719
+ return node;
6720
+ };
6721
+
6722
+ node.show = function () {
6723
+ node.style.display = '';
6724
+ return node;
6725
+ };
6726
+
6727
+ node.destroy = function () {
6728
+ if (hlsPlayer !== null) {
6729
+ hlsPlayer.stopLoad();
6730
+ hlsPlayer.destroy();
6731
+ }
6732
+ };
6733
+
6734
+ var event = (0, _general.createEvent)('rendererready', node);
6735
+ mediaElement.dispatchEvent(event);
6736
+
6737
+ mediaElement.promises.push(NativeHls.load({
6738
+ options: options.hls,
6739
+ id: id
6740
+ }));
6741
+
6742
+ return node;
6743
+ }
6744
+ };
6745
+
6746
+ _media.typeChecks.push(function (url) {
6747
+ return ~url.toLowerCase().indexOf('.m3u8') ? 'application/x-mpegURL' : null;
6748
+ });
6749
+
6750
+ _renderer.renderer.add(HlsNativeRenderer);
6751
+
6752
+ },{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],23:[function(_dereq_,module,exports){
6753
+ 'use strict';
6754
+
6755
+ var _window = _dereq_(3);
6756
+
6757
+ var _window2 = _interopRequireDefault(_window);
6758
+
6759
+ var _document = _dereq_(2);
6760
+
6761
+ var _document2 = _interopRequireDefault(_document);
6762
+
6763
+ var _mejs = _dereq_(7);
6764
+
6765
+ var _mejs2 = _interopRequireDefault(_mejs);
6766
+
6767
+ var _renderer = _dereq_(8);
6768
+
6769
+ var _general = _dereq_(27);
6770
+
6771
+ var _constants = _dereq_(25);
6772
+
6773
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6774
+
6775
+ var HtmlMediaElement = {
6776
+ name: 'html5',
6777
+ options: {
6778
+ prefix: 'html5'
6779
+ },
6780
+
6781
+ canPlayType: function canPlayType(type) {
6782
+
6783
+ var mediaElement = _document2.default.createElement('video');
6784
+
6785
+ if (_constants.IS_ANDROID && /\/mp(3|4)$/i.test(type) || ~['application/x-mpegurl', 'vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) && _constants.SUPPORTS_NATIVE_HLS) {
6786
+ return 'yes';
6787
+ } else if (mediaElement.canPlayType) {
6788
+ return mediaElement.canPlayType(type.toLowerCase()).replace(/no/, '');
6789
+ } else {
6790
+ return '';
6791
+ }
6792
+ },
6793
+
6794
+ create: function create(mediaElement, options, mediaFiles) {
6795
+
6796
+ var id = mediaElement.id + '_' + options.prefix;
6797
+ var isActive = false;
6798
+
6799
+ var node = null;
6800
+
6801
+ if (mediaElement.originalNode === undefined || mediaElement.originalNode === null) {
6802
+ node = _document2.default.createElement('audio');
6803
+ mediaElement.appendChild(node);
6804
+ } else {
6805
+ node = mediaElement.originalNode;
6806
+ }
6807
+
6808
+ node.setAttribute('id', id);
6809
+
6810
+ var props = _mejs2.default.html5media.properties,
6811
+ assignGettersSetters = function assignGettersSetters(propName) {
6812
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
6813
+
6814
+ node['get' + capName] = function () {
6815
+ return node[propName];
6816
+ };
6817
+
6818
+ node['set' + capName] = function (value) {
6819
+ if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
6820
+ node[propName] = value;
6821
+ }
6822
+ };
6823
+ };
6824
+
6825
+ for (var i = 0, _total = props.length; i < _total; i++) {
6826
+ assignGettersSetters(props[i]);
6827
+ }
6828
+
6829
+ var events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
6830
+ return e !== 'error';
6831
+ }),
6832
+ assignEvents = function assignEvents(eventName) {
6833
+ node.addEventListener(eventName, function (e) {
6834
+ if (isActive) {
6835
+ var _event = (0, _general.createEvent)(e.type, e.target);
6836
+ mediaElement.dispatchEvent(_event);
6837
+ }
6838
+ });
6839
+ };
6840
+
6841
+ for (var _i = 0, _total2 = events.length; _i < _total2; _i++) {
6842
+ assignEvents(events[_i]);
6843
+ }
6844
+
6845
+ node.setSize = function (width, height) {
6846
+ node.style.width = width + 'px';
6847
+ node.style.height = height + 'px';
6848
+ return node;
6849
+ };
6850
+
6851
+ node.hide = function () {
6852
+ isActive = false;
6853
+ node.style.display = 'none';
6854
+
6855
+ return node;
6856
+ };
6857
+
6858
+ node.show = function () {
6859
+ isActive = true;
6860
+ node.style.display = '';
6861
+
6862
+ return node;
6863
+ };
6864
+
6865
+ var index = 0,
6866
+ total = mediaFiles.length;
6867
+ if (total > 0) {
6868
+ for (; index < total; index++) {
6869
+ if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) {
6870
+ node.setAttribute('src', mediaFiles[index].src);
6871
+ break;
6872
+ }
6873
+ }
6874
+ }
6875
+
6876
+ node.addEventListener('error', function (e) {
6877
+ if (e.target.error.code === 4 && isActive) {
6878
+ if (index < total && mediaFiles[index + 1] !== undefined) {
6879
+ node.src = mediaFiles[index++].src;
6880
+ node.load();
6881
+ node.play();
6882
+ } else {
6883
+ mediaElement.generateError('Media error: Format(s) not supported or source(s) not found', mediaFiles);
6884
+ }
6885
+ }
6886
+ });
6887
+
6888
+ var event = (0, _general.createEvent)('rendererready', node);
6889
+ mediaElement.dispatchEvent(event);
6890
+
6891
+ return node;
6892
+ }
6893
+ };
6894
+
6895
+ _window2.default.HtmlMediaElement = _mejs2.default.HtmlMediaElement = HtmlMediaElement;
6896
+
6897
+ _renderer.renderer.add(HtmlMediaElement);
6898
+
6899
+ },{"2":2,"25":25,"27":27,"3":3,"7":7,"8":8}],24:[function(_dereq_,module,exports){
6900
+ 'use strict';
6901
+
6902
+ var _window = _dereq_(3);
6903
+
6904
+ var _window2 = _interopRequireDefault(_window);
6905
+
6906
+ var _document = _dereq_(2);
6907
+
6908
+ var _document2 = _interopRequireDefault(_document);
6909
+
6910
+ var _mejs = _dereq_(7);
6911
+
6912
+ var _mejs2 = _interopRequireDefault(_mejs);
6913
+
6914
+ var _renderer = _dereq_(8);
6915
+
6916
+ var _general = _dereq_(27);
6917
+
6918
+ var _media = _dereq_(28);
6919
+
6920
+ var _dom = _dereq_(26);
6921
+
6922
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6923
+
6924
+ var YouTubeApi = {
6925
+ isIframeStarted: false,
6926
+
6927
+ isIframeLoaded: false,
6928
+
6929
+ iframeQueue: [],
6930
+
6931
+ enqueueIframe: function enqueueIframe(settings) {
6932
+ YouTubeApi.isLoaded = typeof YT !== 'undefined' && YT.loaded;
6933
+
6934
+ if (YouTubeApi.isLoaded) {
6935
+ YouTubeApi.createIframe(settings);
6936
+ } else {
6937
+ YouTubeApi.loadIframeApi();
6938
+ YouTubeApi.iframeQueue.push(settings);
6939
+ }
6940
+ },
6941
+
6942
+ loadIframeApi: function loadIframeApi() {
6943
+ if (!YouTubeApi.isIframeStarted) {
6944
+ (0, _dom.loadScript)('https://www.youtube.com/player_api');
6945
+ YouTubeApi.isIframeStarted = true;
6946
+ }
6947
+ },
6948
+
6949
+ iFrameReady: function iFrameReady() {
6950
+
6951
+ YouTubeApi.isLoaded = true;
6952
+ YouTubeApi.isIframeLoaded = true;
6953
+
6954
+ while (YouTubeApi.iframeQueue.length > 0) {
6955
+ var settings = YouTubeApi.iframeQueue.pop();
6956
+ YouTubeApi.createIframe(settings);
6957
+ }
6958
+ },
6959
+
6960
+ createIframe: function createIframe(settings) {
6961
+ return new YT.Player(settings.containerId, settings);
6962
+ },
6963
+
6964
+ getYouTubeId: function getYouTubeId(url) {
6965
+
6966
+ var youTubeId = '';
6967
+
6968
+ if (url.indexOf('?') > 0) {
6969
+ youTubeId = YouTubeApi.getYouTubeIdFromParam(url);
6970
+
6971
+ if (youTubeId === '') {
6972
+ youTubeId = YouTubeApi.getYouTubeIdFromUrl(url);
6973
+ }
6974
+ } else {
6975
+ youTubeId = YouTubeApi.getYouTubeIdFromUrl(url);
6976
+ }
6977
+
6978
+ var id = youTubeId.substring(youTubeId.lastIndexOf('/') + 1);
6979
+ youTubeId = id.split('?');
6980
+ return youTubeId[0];
6981
+ },
6982
+
6983
+ getYouTubeIdFromParam: function getYouTubeIdFromParam(url) {
6984
+
6985
+ if (url === undefined || url === null || !url.trim().length) {
6986
+ return null;
6987
+ }
6988
+
6989
+ var parts = url.split('?'),
6990
+ parameters = parts[1].split('&');
6991
+
6992
+ var youTubeId = '';
6993
+
6994
+ for (var i = 0, total = parameters.length; i < total; i++) {
6995
+ var paramParts = parameters[i].split('=');
6996
+ if (paramParts[0] === 'v') {
6997
+ youTubeId = paramParts[1];
6998
+ break;
6999
+ }
7000
+ }
7001
+
7002
+ return youTubeId;
7003
+ },
7004
+
7005
+ getYouTubeIdFromUrl: function getYouTubeIdFromUrl(url) {
7006
+
7007
+ if (url === undefined || url === null || !url.trim().length) {
7008
+ return null;
7009
+ }
7010
+
7011
+ var parts = url.split('?');
7012
+ url = parts[0];
7013
+ return url.substring(url.lastIndexOf('/') + 1);
7014
+ },
7015
+
7016
+ getYouTubeNoCookieUrl: function getYouTubeNoCookieUrl(url) {
7017
+ if (url === undefined || url === null || !url.trim().length || url.indexOf('//www.youtube') === -1) {
7018
+ return url;
7019
+ }
7020
+
7021
+ var parts = url.split('/');
7022
+ parts[2] = parts[2].replace('.com', '-nocookie.com');
7023
+ return parts.join('/');
7024
+ }
7025
+ };
7026
+
7027
+ var YouTubeIframeRenderer = {
7028
+ name: 'youtube_iframe',
7029
+
7030
+ options: {
7031
+ prefix: 'youtube_iframe',
7032
+
7033
+ youtube: {
7034
+ autoplay: 0,
7035
+ controls: 0,
7036
+ disablekb: 1,
7037
+ end: 0,
7038
+ loop: 0,
7039
+ modestbranding: 0,
7040
+ playsinline: 0,
7041
+ rel: 0,
7042
+ showinfo: 0,
7043
+ start: 0,
7044
+ iv_load_policy: 3,
7045
+
7046
+ nocookie: false,
7047
+
7048
+ imageQuality: null
7049
+ }
7050
+ },
7051
+
7052
+ canPlayType: function canPlayType(type) {
7053
+ return ~['video/youtube', 'video/x-youtube'].indexOf(type.toLowerCase());
7054
+ },
7055
+
7056
+ create: function create(mediaElement, options, mediaFiles) {
7057
+
7058
+ var youtube = {},
7059
+ apiStack = [],
7060
+ readyState = 4;
7061
+
7062
+ var youTubeApi = null,
7063
+ paused = true,
7064
+ ended = false,
7065
+ youTubeIframe = null,
7066
+ volume = 1;
7067
+
7068
+ youtube.options = options;
7069
+ youtube.id = mediaElement.id + '_' + options.prefix;
7070
+ youtube.mediaElement = mediaElement;
7071
+
7072
+ var props = _mejs2.default.html5media.properties,
7073
+ assignGettersSetters = function assignGettersSetters(propName) {
7074
+
7075
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
7076
+
7077
+ youtube['get' + capName] = function () {
7078
+ if (youTubeApi !== null) {
7079
+ var value = null;
7080
+
7081
+ switch (propName) {
7082
+ case 'currentTime':
7083
+ return youTubeApi.getCurrentTime();
7084
+ case 'duration':
7085
+ return youTubeApi.getDuration();
7086
+ case 'volume':
7087
+ volume = youTubeApi.getVolume() / 100;
7088
+ return volume;
7089
+ case 'paused':
7090
+ return paused;
7091
+ case 'ended':
7092
+ return ended;
7093
+ case 'muted':
7094
+ return youTubeApi.isMuted();
7095
+ case 'buffered':
7096
+ var percentLoaded = youTubeApi.getVideoLoadedFraction(),
7097
+ duration = youTubeApi.getDuration();
7098
+ return {
7099
+ start: function start() {
7100
+ return 0;
7101
+ },
7102
+ end: function end() {
7103
+ return percentLoaded * duration;
7104
+ },
7105
+ length: 1
7106
+ };
7107
+ case 'src':
7108
+ return youTubeApi.getVideoUrl();
7109
+ case 'readyState':
7110
+ return readyState;
7111
  }
7112
+
7113
+ return value;
7114
+ } else {
7115
+ return null;
7116
+ }
7117
+ };
7118
+
7119
+ youtube['set' + capName] = function (value) {
7120
+ if (youTubeApi !== null) {
7121
+ switch (propName) {
7122
+ case 'src':
7123
+ var url = typeof value === 'string' ? value : value[0].src,
7124
+ _videoId = YouTubeApi.getYouTubeId(url);
7125
+
7126
+ if (mediaElement.originalNode.autoplay) {
7127
+ youTubeApi.loadVideoById(_videoId);
7128
+ } else {
7129
+ youTubeApi.cueVideoById(_videoId);
7130
+ }
7131
+ break;
7132
+ case 'currentTime':
7133
+ youTubeApi.seekTo(value);
7134
+ break;
7135
+ case 'muted':
7136
+ if (value) {
7137
+ youTubeApi.mute();
7138
+ } else {
7139
+ youTubeApi.unMute();
7140
+ }
7141
+ setTimeout(function () {
7142
+ var event = (0, _general.createEvent)('volumechange', youtube);
7143
+ mediaElement.dispatchEvent(event);
7144
+ }, 50);
7145
+ break;
7146
+ case 'volume':
7147
+ volume = value;
7148
+ youTubeApi.setVolume(value * 100);
7149
+ setTimeout(function () {
7150
+ var event = (0, _general.createEvent)('volumechange', youtube);
7151
+ mediaElement.dispatchEvent(event);
7152
+ }, 50);
7153
+ break;
7154
+ case 'readyState':
7155
+ var event = (0, _general.createEvent)('canplay', youtube);
7156
+ mediaElement.dispatchEvent(event);
7157
+ break;
7158
+ default:
7159
+
7160
+ break;
7161
+ }
7162
+ } else {
7163
+ apiStack.push({ type: 'set', propName: propName, value: value });
7164
+ }
7165
+ };
7166
+ };
7167
+
7168
+ for (var i = 0, total = props.length; i < total; i++) {
7169
+ assignGettersSetters(props[i]);
7170
+ }
7171
+
7172
+ var methods = _mejs2.default.html5media.methods,
7173
+ assignMethods = function assignMethods(methodName) {
7174
+ youtube[methodName] = function () {
7175
+ if (youTubeApi !== null) {
7176
+ switch (methodName) {
7177
+ case 'play':
7178
+ paused = false;
7179
+ return youTubeApi.playVideo();
7180
+ case 'pause':
7181
+ paused = true;
7182
+ return youTubeApi.pauseVideo();
7183
+ case 'load':
7184
+ return null;
7185
+ }
7186
+ } else {
7187
+ apiStack.push({ type: 'call', methodName: methodName });
7188
+ }
7189
+ };
7190
+ };
7191
+
7192
+ for (var _i = 0, _total = methods.length; _i < _total; _i++) {
7193
+ assignMethods(methods[_i]);
7194
+ }
7195
+
7196
+ var errorHandler = function errorHandler(error) {
7197
+ var message = '';
7198
+ switch (error.data) {
7199
+ case 2:
7200
+ message = 'The request contains an invalid parameter value. Verify that video ID has 11 characters and that contains no invalid characters, such as exclamation points or asterisks.';
7201
+ break;
7202
+ case 5:
7203
+ message = 'The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.';
7204
+ break;
7205
+ case 100:
7206
+ message = 'The video requested was not found. Either video has been removed or has been marked as private.';
7207
+ break;
7208
+ case 101:
7209
+ case 105:
7210
+ message = 'The owner of the requested video does not allow it to be played in embedded players.';
7211
+ break;
7212
+ default:
7213
+ message = 'Unknown error.';
7214
+ break;
7215
+ }
7216
+ mediaElement.generateError('Code ' + error.data + ': ' + message, mediaFiles);
7217
+ };
7218
+
7219
+ var youtubeContainer = _document2.default.createElement('div');
7220
+ youtubeContainer.id = youtube.id;
7221
+
7222
+ if (youtube.options.youtube.nocookie) {
7223
+ mediaElement.originalNode.src = YouTubeApi.getYouTubeNoCookieUrl(mediaFiles[0].src);
7224
+ }
7225
+
7226
+ mediaElement.originalNode.parentNode.insertBefore(youtubeContainer, mediaElement.originalNode);
7227
+ mediaElement.originalNode.style.display = 'none';
7228
+
7229
+ var isAudio = mediaElement.originalNode.tagName.toLowerCase() === 'audio',
7230
+ height = isAudio ? '1' : mediaElement.originalNode.height,
7231
+ width = isAudio ? '1' : mediaElement.originalNode.width,
7232
+ videoId = YouTubeApi.getYouTubeId(mediaFiles[0].src),
7233
+ youtubeSettings = {
7234
+ id: youtube.id,
7235
+ containerId: youtubeContainer.id,
7236
+ videoId: videoId,
7237
+ height: height,
7238
+ width: width,
7239
+ playerVars: Object.assign({
7240
+ controls: 0,
7241
+ rel: 0,
7242
+ disablekb: 1,
7243
+ showinfo: 0,
7244
+ modestbranding: 0,
7245
+ html5: 1,
7246
+ iv_load_policy: 3
7247
+ }, youtube.options.youtube),
7248
+ origin: _window2.default.location.host,
7249
+ events: {
7250
+ onReady: function onReady(e) {
7251
+ mediaElement.youTubeApi = youTubeApi = e.target;
7252
+ mediaElement.youTubeState = {
7253
+ paused: true,
7254
+ ended: false
7255
+ };
7256
+
7257
+ if (apiStack.length) {
7258
+ for (var _i2 = 0, _total2 = apiStack.length; _i2 < _total2; _i2++) {
7259
+
7260
+ var stackItem = apiStack[_i2];
7261
+
7262
+ if (stackItem.type === 'set') {
7263
+ var propName = stackItem.propName,
7264
+ capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
7265
+
7266
+ youtube['set' + capName](stackItem.value);
7267
+ } else if (stackItem.type === 'call') {
7268
+ youtube[stackItem.methodName]();
7269
+ }
7270
+ }
7271
+ }
7272
+
7273
+ youTubeIframe = youTubeApi.getIframe();
7274
+
7275
+ if (mediaElement.originalNode.muted) {
7276
+ youTubeApi.mute();
7277
+ }
7278
+
7279
+ var events = ['mouseover', 'mouseout'],
7280
+ assignEvents = function assignEvents(e) {
7281
+ var newEvent = (0, _general.createEvent)(e.type, youtube);
7282
+ mediaElement.dispatchEvent(newEvent);
7283
+ };
7284
+
7285
+ for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
7286
+ youTubeIframe.addEventListener(events[_i3], assignEvents, false);
7287
+ }
7288
+
7289
+ var initEvents = ['rendererready', 'loadedmetadata', 'loadeddata', 'canplay'];
7290
+
7291
+ for (var _i4 = 0, _total4 = initEvents.length; _i4 < _total4; _i4++) {
7292
+ var event = (0, _general.createEvent)(initEvents[_i4], youtube);
7293
+ mediaElement.dispatchEvent(event);
7294
+ }
7295
+ },
7296
+ onStateChange: function onStateChange(e) {
7297
+ var events = [];
7298
+
7299
+ switch (e.data) {
7300
+ case -1:
7301
+ events = ['loadedmetadata'];
7302
+ paused = true;
7303
+ ended = false;
7304
+ break;
7305
+ case 0:
7306
+ events = ['ended'];
7307
+ paused = false;
7308
+ ended = !youtube.options.youtube.loop;
7309
+ if (!youtube.options.youtube.loop) {
7310
+ youtube.stopInterval();
7311
+ }
7312
+ break;
7313
+ case 1:
7314
+ events = ['play', 'playing'];
7315
+ paused = false;
7316
+ ended = false;
7317
+ youtube.startInterval();
7318
+ break;
7319
+ case 2:
7320
+ events = ['pause'];
7321
+ paused = true;
7322
+ ended = false;
7323
+ youtube.stopInterval();
7324
+ break;
7325
+ case 3:
7326
+ events = ['progress'];
7327
+ ended = false;
7328
+ break;
7329
+ case 5:
7330
+ events = ['loadeddata', 'loadedmetadata', 'canplay'];
7331
+ paused = true;
7332
+ ended = false;
7333
+ break;
7334
+ }
7335
+
7336
+ for (var _i5 = 0, _total5 = events.length; _i5 < _total5; _i5++) {
7337
+ var event = (0, _general.createEvent)(events[_i5], youtube);
7338
+ mediaElement.dispatchEvent(event);
7339
+ }
7340
+ },
7341
+ onError: function onError(e) {
7342
+ return errorHandler(e);
7343
+ }
7344
+ }
7345
+ };
7346
+
7347
+ if (isAudio || mediaElement.originalNode.hasAttribute('playsinline')) {
7348
+ youtubeSettings.playerVars.playsinline = 1;
7349
+ }
7350
+
7351
+ if (mediaElement.originalNode.controls) {
7352
+ youtubeSettings.playerVars.controls = 1;
7353
+ }
7354
+ if (mediaElement.originalNode.autoplay) {
7355
+ youtubeSettings.playerVars.autoplay = 1;
7356
+ }
7357
+ if (mediaElement.originalNode.loop) {
7358
+ youtubeSettings.playerVars.loop = 1;
7359
+ }
7360
+
7361
+ if ((youtubeSettings.playerVars.loop && parseInt(youtubeSettings.playerVars.loop, 10) === 1 || mediaElement.originalNode.src.indexOf('loop=') > -1) && !youtubeSettings.playerVars.playlist && mediaElement.originalNode.src.indexOf('playlist=') === -1) {
7362
+ youtubeSettings.playerVars.playlist = YouTubeApi.getYouTubeId(mediaElement.originalNode.src);
7363
+ }
7364
+
7365
+ YouTubeApi.enqueueIframe(youtubeSettings);
7366
+
7367
+ youtube.onEvent = function (eventName, player, _youTubeState) {
7368
+ if (_youTubeState !== null && _youTubeState !== undefined) {
7369
+ mediaElement.youTubeState = _youTubeState;
7370
+ }
7371
+ };
7372
+
7373
+ youtube.setSize = function (width, height) {
7374
+ if (youTubeApi !== null) {
7375
+ youTubeApi.setSize(width, height);
7376
+ }
7377
+ };
7378
+ youtube.hide = function () {
7379
+ youtube.stopInterval();
7380
+ youtube.pause();
7381
+ if (youTubeIframe) {
7382
+ youTubeIframe.style.display = 'none';
7383
+ }
7384
+ };
7385
+ youtube.show = function () {
7386
+ if (youTubeIframe) {
7387
+ youTubeIframe.style.display = '';
7388
+ }
7389
+ };
7390
+ youtube.destroy = function () {
7391
+ youTubeApi.destroy();
7392
+ };
7393
+ youtube.interval = null;
7394
+
7395
+ youtube.startInterval = function () {
7396
+ youtube.interval = setInterval(function () {
7397
+ var event = (0, _general.createEvent)('timeupdate', youtube);
7398
+ mediaElement.dispatchEvent(event);
7399
+ }, 250);
7400
+ };
7401
+ youtube.stopInterval = function () {
7402
+ if (youtube.interval) {
7403
+ clearInterval(youtube.interval);
7404
+ }
7405
+ };
7406
+ youtube.getPosterUrl = function () {
7407
+ var quality = options.youtube.imageQuality,
7408
+ resolutions = ['default', 'hqdefault', 'mqdefault', 'sddefault', 'maxresdefault'],
7409
+ id = YouTubeApi.getYouTubeId(mediaElement.originalNode.src);
7410
+ return quality && resolutions.indexOf(quality) > -1 && id ? 'https://img.youtube.com/vi/' + id + '/' + quality + '.jpg' : '';
7411
+ };
7412
+
7413
+ return youtube;
7414
+ }
7415
+ };
7416
+
7417
+ _window2.default.onYouTubePlayerAPIReady = function () {
7418
+ YouTubeApi.iFrameReady();
7419
+ };
7420
+
7421
+ _media.typeChecks.push(function (url) {
7422
+ return (/\/\/(www\.youtube|youtu\.?be)/i.test(url) ? 'video/x-youtube' : null
7423
+ );
7424
+ });
7425
+
7426
+ _renderer.renderer.add(YouTubeIframeRenderer);
7427
+
7428
+ },{"2":2,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],25:[function(_dereq_,module,exports){
7429
+ 'use strict';
7430
+
7431
+ Object.defineProperty(exports, "__esModule", {
7432
+ value: true
7433
+ });
7434
+ exports.cancelFullScreen = exports.requestFullScreen = exports.isFullScreen = exports.FULLSCREEN_EVENT_NAME = exports.HAS_NATIVE_FULLSCREEN_ENABLED = exports.HAS_TRUE_NATIVE_FULLSCREEN = exports.HAS_IOS_FULLSCREEN = exports.HAS_MS_NATIVE_FULLSCREEN = exports.HAS_MOZ_NATIVE_FULLSCREEN = exports.HAS_WEBKIT_NATIVE_FULLSCREEN = exports.HAS_NATIVE_FULLSCREEN = exports.SUPPORTS_NATIVE_HLS = exports.SUPPORT_PASSIVE_EVENT = exports.SUPPORT_POINTER_EVENTS = exports.HAS_MSE = exports.IS_STOCK_ANDROID = exports.IS_SAFARI = exports.IS_FIREFOX = exports.IS_CHROME = exports.IS_EDGE = exports.IS_IE = exports.IS_ANDROID = exports.IS_IOS = exports.IS_IPOD = exports.IS_IPHONE = exports.IS_IPAD = exports.UA = exports.NAV = undefined;
7435
+
7436
+ var _window = _dereq_(3);
7437
+
7438
+ var _window2 = _interopRequireDefault(_window);
7439
+
7440
+ var _document = _dereq_(2);
7441
+
7442
+ var _document2 = _interopRequireDefault(_document);
7443
+
7444
+ var _mejs = _dereq_(7);
7445
+
7446
+ var _mejs2 = _interopRequireDefault(_mejs);
7447
+
7448
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7449
+
7450
+ var NAV = exports.NAV = _window2.default.navigator;
7451
+ var UA = exports.UA = NAV.userAgent.toLowerCase();
7452
+ var IS_IPAD = exports.IS_IPAD = /ipad/i.test(UA) && !_window2.default.MSStream;
7453
+ var IS_IPHONE = exports.IS_IPHONE = /iphone/i.test(UA) && !_window2.default.MSStream;
7454
+ var IS_IPOD = exports.IS_IPOD = /ipod/i.test(UA) && !_window2.default.MSStream;
7455
+ var IS_IOS = exports.IS_IOS = /ipad|iphone|ipod/i.test(UA) && !_window2.default.MSStream;
7456
+ var IS_ANDROID = exports.IS_ANDROID = /android/i.test(UA);
7457
+ var IS_IE = exports.IS_IE = /(trident|microsoft)/i.test(NAV.appName);
7458
+ var IS_EDGE = exports.IS_EDGE = 'msLaunchUri' in NAV && !('documentMode' in _document2.default);
7459
+ var IS_CHROME = exports.IS_CHROME = /chrome/i.test(UA);
7460
+ var IS_FIREFOX = exports.IS_FIREFOX = /firefox/i.test(UA);
7461
+ var IS_SAFARI = exports.IS_SAFARI = /safari/i.test(UA) && !IS_CHROME;
7462
+ var IS_STOCK_ANDROID = exports.IS_STOCK_ANDROID = /^mozilla\/\d+\.\d+\s\(linux;\su;/i.test(UA);
7463
+ var HAS_MSE = exports.HAS_MSE = 'MediaSource' in _window2.default;
7464
+ var SUPPORT_POINTER_EVENTS = exports.SUPPORT_POINTER_EVENTS = function () {
7465
+ var element = _document2.default.createElement('x'),
7466
+ documentElement = _document2.default.documentElement,
7467
+ getComputedStyle = _window2.default.getComputedStyle;
7468
+
7469
+ if (!('pointerEvents' in element.style)) {
7470
+ return false;
7471
+ }
7472
+
7473
+ element.style.pointerEvents = 'auto';
7474
+ element.style.pointerEvents = 'x';
7475
+ documentElement.appendChild(element);
7476
+ var supports = getComputedStyle && getComputedStyle(element, '').pointerEvents === 'auto';
7477
+ element.remove();
7478
+ return !!supports;
7479
+ }();
7480
+
7481
+ var SUPPORT_PASSIVE_EVENT = exports.SUPPORT_PASSIVE_EVENT = function () {
7482
+ var supportsPassive = false;
7483
+ try {
7484
+ var opts = Object.defineProperty({}, 'passive', {
7485
+ get: function get() {
7486
+ supportsPassive = true;
7487
+ }
7488
+ });
7489
+ _window2.default.addEventListener('test', null, opts);
7490
+ } catch (e) {}
7491
+
7492
+ return supportsPassive;
7493
+ }();
7494
+
7495
+ var html5Elements = ['source', 'track', 'audio', 'video'];
7496
+ var video = void 0;
7497
+
7498
+ for (var i = 0, total = html5Elements.length; i < total; i++) {
7499
+ video = _document2.default.createElement(html5Elements[i]);
7500
+ }
7501
+
7502
+ var SUPPORTS_NATIVE_HLS = exports.SUPPORTS_NATIVE_HLS = IS_SAFARI || IS_ANDROID && (IS_CHROME || IS_STOCK_ANDROID) || IS_IE && /edge/i.test(UA);
7503
+
7504
+ var hasiOSFullScreen = video.webkitEnterFullscreen !== undefined;
7505
+
7506
+ var hasNativeFullscreen = video.requestFullscreen !== undefined;
7507
+
7508
+ if (hasiOSFullScreen && /mac os x 10_5/i.test(UA)) {
7509
+ hasNativeFullscreen = false;
7510
+ hasiOSFullScreen = false;
7511
+ }
7512
+
7513
+ var hasWebkitNativeFullScreen = video.webkitRequestFullScreen !== undefined;
7514
+ var hasMozNativeFullScreen = video.mozRequestFullScreen !== undefined;
7515
+ var hasMsNativeFullScreen = video.msRequestFullscreen !== undefined;
7516
+ var hasTrueNativeFullScreen = hasWebkitNativeFullScreen || hasMozNativeFullScreen || hasMsNativeFullScreen;
7517
+ var nativeFullScreenEnabled = hasTrueNativeFullScreen;
7518
+ var fullScreenEventName = '';
7519
+ var isFullScreen = void 0,
7520
+ requestFullScreen = void 0,
7521
+ cancelFullScreen = void 0;
7522
+
7523
+ if (hasMozNativeFullScreen) {
7524
+ nativeFullScreenEnabled = _document2.default.mozFullScreenEnabled;
7525
+ } else if (hasMsNativeFullScreen) {
7526
+ nativeFullScreenEnabled = _document2.default.msFullscreenEnabled;
7527
+ }
7528
+
7529
+ if (IS_CHROME) {
7530
+ hasiOSFullScreen = false;
7531
+ }
7532
+
7533
+ if (hasTrueNativeFullScreen) {
7534
+ if (hasWebkitNativeFullScreen) {
7535
+ fullScreenEventName = 'webkitfullscreenchange';
7536
+ } else if (hasMozNativeFullScreen) {
7537
+ fullScreenEventName = 'mozfullscreenchange';
7538
+ } else if (hasMsNativeFullScreen) {
7539
+ fullScreenEventName = 'MSFullscreenChange';
7540
+ }
7541
+
7542
+ exports.isFullScreen = isFullScreen = function isFullScreen() {
7543
+ if (hasMozNativeFullScreen) {
7544
+ return _document2.default.mozFullScreen;
7545
+ } else if (hasWebkitNativeFullScreen) {
7546
+ return _document2.default.webkitIsFullScreen;
7547
+ } else if (hasMsNativeFullScreen) {
7548
+ return _document2.default.msFullscreenElement !== null;
7549
+ }
7550
+ };
7551
+
7552
+ exports.requestFullScreen = requestFullScreen = function requestFullScreen(el) {
7553
+ if (hasWebkitNativeFullScreen) {
7554
+ el.webkitRequestFullScreen();
7555
+ } else if (hasMozNativeFullScreen) {
7556
+ el.mozRequestFullScreen();
7557
+ } else if (hasMsNativeFullScreen) {
7558
+ el.msRequestFullscreen();
7559
+ }
7560
+ };
7561
+
7562
+ exports.cancelFullScreen = cancelFullScreen = function cancelFullScreen() {
7563
+ if (hasWebkitNativeFullScreen) {
7564
+ _document2.default.webkitCancelFullScreen();
7565
+ } else if (hasMozNativeFullScreen) {
7566
+ _document2.default.mozCancelFullScreen();
7567
+ } else if (hasMsNativeFullScreen) {
7568
+ _document2.default.msExitFullscreen();
7569
+ }
7570
+ };
7571
+ }
7572
+
7573
+ var HAS_NATIVE_FULLSCREEN = exports.HAS_NATIVE_FULLSCREEN = hasNativeFullscreen;
7574
+ var HAS_WEBKIT_NATIVE_FULLSCREEN = exports.HAS_WEBKIT_NATIVE_FULLSCREEN = hasWebkitNativeFullScreen;
7575
+ var HAS_MOZ_NATIVE_FULLSCREEN = exports.HAS_MOZ_NATIVE_FULLSCREEN = hasMozNativeFullScreen;
7576
+ var HAS_MS_NATIVE_FULLSCREEN = exports.HAS_MS_NATIVE_FULLSCREEN = hasMsNativeFullScreen;
7577
+ var HAS_IOS_FULLSCREEN = exports.HAS_IOS_FULLSCREEN = hasiOSFullScreen;
7578
+ var HAS_TRUE_NATIVE_FULLSCREEN = exports.HAS_TRUE_NATIVE_FULLSCREEN = hasTrueNativeFullScreen;
7579
+ var HAS_NATIVE_FULLSCREEN_ENABLED = exports.HAS_NATIVE_FULLSCREEN_ENABLED = nativeFullScreenEnabled;
7580
+ var FULLSCREEN_EVENT_NAME = exports.FULLSCREEN_EVENT_NAME = fullScreenEventName;
7581
+ exports.isFullScreen = isFullScreen;
7582
+ exports.requestFullScreen = requestFullScreen;
7583
+ exports.cancelFullScreen = cancelFullScreen;
7584
+
7585
+
7586
+ _mejs2.default.Features = _mejs2.default.Features || {};
7587
+ _mejs2.default.Features.isiPad = IS_IPAD;
7588
+ _mejs2.default.Features.isiPod = IS_IPOD;
7589
+ _mejs2.default.Features.isiPhone = IS_IPHONE;
7590
+ _mejs2.default.Features.isiOS = _mejs2.default.Features.isiPhone || _mejs2.default.Features.isiPad;
7591
+ _mejs2.default.Features.isAndroid = IS_ANDROID;
7592
+ _mejs2.default.Features.isIE = IS_IE;
7593
+ _mejs2.default.Features.isEdge = IS_EDGE;
7594
+ _mejs2.default.Features.isChrome = IS_CHROME;
7595
+ _mejs2.default.Features.isFirefox = IS_FIREFOX;
7596
+ _mejs2.default.Features.isSafari = IS_SAFARI;
7597
+ _mejs2.default.Features.isStockAndroid = IS_STOCK_ANDROID;
7598
+ _mejs2.default.Features.hasMSE = HAS_MSE;
7599
+ _mejs2.default.Features.supportsNativeHLS = SUPPORTS_NATIVE_HLS;
7600
+ _mejs2.default.Features.supportsPointerEvents = SUPPORT_POINTER_EVENTS;
7601
+ _mejs2.default.Features.supportsPassiveEvent = SUPPORT_PASSIVE_EVENT;
7602
+ _mejs2.default.Features.hasiOSFullScreen = HAS_IOS_FULLSCREEN;
7603
+ _mejs2.default.Features.hasNativeFullscreen = HAS_NATIVE_FULLSCREEN;
7604
+ _mejs2.default.Features.hasWebkitNativeFullScreen = HAS_WEBKIT_NATIVE_FULLSCREEN;
7605
+ _mejs2.default.Features.hasMozNativeFullScreen = HAS_MOZ_NATIVE_FULLSCREEN;
7606
+ _mejs2.default.Features.hasMsNativeFullScreen = HAS_MS_NATIVE_FULLSCREEN;
7607
+ _mejs2.default.Features.hasTrueNativeFullScreen = HAS_TRUE_NATIVE_FULLSCREEN;
7608
+ _mejs2.default.Features.nativeFullScreenEnabled = HAS_NATIVE_FULLSCREEN_ENABLED;
7609
+ _mejs2.default.Features.fullScreenEventName = FULLSCREEN_EVENT_NAME;
7610
+ _mejs2.default.Features.isFullScreen = isFullScreen;
7611
+ _mejs2.default.Features.requestFullScreen = requestFullScreen;
7612
+ _mejs2.default.Features.cancelFullScreen = cancelFullScreen;
7613
+
7614
+ },{"2":2,"3":3,"7":7}],26:[function(_dereq_,module,exports){
7615
+ 'use strict';
7616
+
7617
+ Object.defineProperty(exports, "__esModule", {
7618
+ value: true
7619
+ });
7620
+ exports.removeClass = exports.addClass = exports.hasClass = undefined;
7621
+ exports.loadScript = loadScript;
7622
+ exports.offset = offset;
7623
+ exports.toggleClass = toggleClass;
7624
+ exports.fadeOut = fadeOut;
7625
+ exports.fadeIn = fadeIn;
7626
+ exports.siblings = siblings;
7627
+ exports.visible = visible;
7628
+ exports.ajax = ajax;
7629
+
7630
+ var _window = _dereq_(3);
7631
+
7632
+ var _window2 = _interopRequireDefault(_window);
7633
+
7634
+ var _document = _dereq_(2);
7635
+
7636
+ var _document2 = _interopRequireDefault(_document);
7637
+
7638
+ var _mejs = _dereq_(7);
7639
+
7640
+ var _mejs2 = _interopRequireDefault(_mejs);
7641
+
7642
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7643
+
7644
+ function loadScript(url) {
7645
+ return new Promise(function (resolve, reject) {
7646
+ var script = _document2.default.createElement('script');
7647
+ script.src = url;
7648
+ script.async = true;
7649
+ script.onload = function () {
7650
+ script.remove();
7651
+ resolve();
7652
+ };
7653
+ script.onerror = function () {
7654
+ script.remove();
7655
+ reject();
7656
+ };
7657
+ _document2.default.head.appendChild(script);
7658
+ });
7659
+ }
7660
+
7661
+ function offset(el) {
7662
+ var rect = el.getBoundingClientRect(),
7663
+ scrollLeft = _window2.default.pageXOffset || _document2.default.documentElement.scrollLeft,
7664
+ scrollTop = _window2.default.pageYOffset || _document2.default.documentElement.scrollTop;
7665
+ return { top: rect.top + scrollTop, left: rect.left + scrollLeft };
7666
+ }
7667
+
7668
+ var hasClassMethod = void 0,
7669
+ addClassMethod = void 0,
7670
+ removeClassMethod = void 0;
7671
+
7672
+ if ('classList' in _document2.default.documentElement) {
7673
+ hasClassMethod = function hasClassMethod(el, className) {
7674
+ return el.classList !== undefined && el.classList.contains(className);
7675
+ };
7676
+ addClassMethod = function addClassMethod(el, className) {
7677
+ return el.classList.add(className);
7678
+ };
7679
+ removeClassMethod = function removeClassMethod(el, className) {
7680
+ return el.classList.remove(className);
7681
+ };
7682
+ } else {
7683
+ hasClassMethod = function hasClassMethod(el, className) {
7684
+ return new RegExp('\\b' + className + '\\b').test(el.className);
7685
+ };
7686
+ addClassMethod = function addClassMethod(el, className) {
7687
+ if (!hasClass(el, className)) {
7688
+ el.className += ' ' + className;
7689
+ }
7690
+ };
7691
+ removeClassMethod = function removeClassMethod(el, className) {
7692
+ el.className = el.className.replace(new RegExp('\\b' + className + '\\b', 'g'), '');
7693
+ };
7694
+ }
7695
+
7696
+ var hasClass = exports.hasClass = hasClassMethod;
7697
+ var addClass = exports.addClass = addClassMethod;
7698
+ var removeClass = exports.removeClass = removeClassMethod;
7699
+
7700
+ function toggleClass(el, className) {
7701
+ hasClass(el, className) ? removeClass(el, className) : addClass(el, className);
7702
+ }
7703
+
7704
+ function fadeOut(el) {
7705
+ var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
7706
+ var callback = arguments[2];
7707
+
7708
+ if (!el.style.opacity) {
7709
+ el.style.opacity = 1;
7710
+ }
7711
+
7712
+ var start = null;
7713
+ _window2.default.requestAnimationFrame(function animate(timestamp) {
7714
+ start = start || timestamp;
7715
+ var progress = timestamp - start;
7716
+ var opacity = parseFloat(1 - progress / duration, 2);
7717
+ el.style.opacity = opacity < 0 ? 0 : opacity;
7718
+ if (progress > duration) {
7719
+ if (callback && typeof callback === 'function') {
7720
+ callback();
7721
+ }
7722
+ } else {
7723
+ _window2.default.requestAnimationFrame(animate);
7724
+ }
7725
+ });
7726
+ }
7727
+
7728
+ function fadeIn(el) {
7729
+ var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
7730
+ var callback = arguments[2];
7731
+
7732
+ if (!el.style.opacity) {
7733
+ el.style.opacity = 0;
7734
+ }
7735
+
7736
+ var start = null;
7737
+ _window2.default.requestAnimationFrame(function animate(timestamp) {
7738
+ start = start || timestamp;
7739
+ var progress = timestamp - start;
7740
+ var opacity = parseFloat(progress / duration, 2);
7741
+ el.style.opacity = opacity > 1 ? 1 : opacity;
7742
+ if (progress > duration) {
7743
+ if (callback && typeof callback === 'function') {
7744
+ callback();
7745
+ }
7746
+ } else {
7747
+ _window2.default.requestAnimationFrame(animate);
7748
+ }
7749
+ });
7750
+ }
7751
+
7752
+ function siblings(el, filter) {
7753
+ var siblings = [];
7754
+ el = el.parentNode.firstChild;
7755
+ do {
7756
+ if (!filter || filter(el)) {
7757
+ siblings.push(el);
7758
+ }
7759
+ } while (el = el.nextSibling);
7760
+ return siblings;
7761
+ }
7762
+
7763
+ function visible(elem) {
7764
+ if (elem.getClientRects !== undefined && elem.getClientRects === 'function') {
7765
+ return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);
7766
+ }
7767
+ return !!(elem.offsetWidth || elem.offsetHeight);
7768
+ }
7769
+
7770
+ function ajax(url, dataType, success, error) {
7771
+ var xhr = _window2.default.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
7772
+
7773
+ var type = 'application/x-www-form-urlencoded; charset=UTF-8',
7774
+ completed = false,
7775
+ accept = '*/'.concat('*');
7776
+
7777
+ switch (dataType) {
7778
+ case 'text':
7779
+ type = 'text/plain';
7780
+ break;
7781
+ case 'json':
7782
+ type = 'application/json, text/javascript';
7783
+ break;
7784
+ case 'html':
7785
+ type = 'text/html';
7786
+ break;
7787
+ case 'xml':
7788
+ type = 'application/xml, text/xml';
7789
+ break;
7790
+ }
7791
+
7792
+ if (type !== 'application/x-www-form-urlencoded') {
7793
+ accept = type + ', */*; q=0.01';
7794
+ }
7795
+
7796
+ if (xhr) {
7797
+ xhr.open('GET', url, true);
7798
+ xhr.setRequestHeader('Accept', accept);
7799
+ xhr.onreadystatechange = function () {
7800
+ if (completed) {
7801
+ return;
7802
+ }
7803
+
7804
+ if (xhr.readyState === 4) {
7805
+ if (xhr.status === 200) {
7806
+ completed = true;
7807
+ var data = void 0;
7808
+ switch (dataType) {
7809
+ case 'json':
7810
+ data = JSON.parse(xhr.responseText);
7811
+ break;
7812
+ case 'xml':
7813
+ data = xhr.responseXML;
7814
+ break;
7815
+ default:
7816
+ data = xhr.responseText;
7817
+ break;
7818
+ }
7819
+ success(data);
7820
+ } else if (typeof error === 'function') {
7821
+ error(xhr.status);
7822
+ }
7823
+ }
7824
+ };
7825
+
7826
+ xhr.send();
7827
+ }
7828
+ }
7829
+
7830
+ _mejs2.default.Utils = _mejs2.default.Utils || {};
7831
+ _mejs2.default.Utils.offset = offset;
7832
+ _mejs2.default.Utils.hasClass = hasClass;
7833
+ _mejs2.default.Utils.addClass = addClass;
7834
+ _mejs2.default.Utils.removeClass = removeClass;
7835
+ _mejs2.default.Utils.toggleClass = toggleClass;
7836
+ _mejs2.default.Utils.fadeIn = fadeIn;
7837
+ _mejs2.default.Utils.fadeOut = fadeOut;
7838
+ _mejs2.default.Utils.siblings = siblings;
7839
+ _mejs2.default.Utils.visible = visible;
7840
+ _mejs2.default.Utils.ajax = ajax;
7841
+ _mejs2.default.Utils.loadScript = loadScript;
7842
+
7843
+ },{"2":2,"3":3,"7":7}],27:[function(_dereq_,module,exports){
7844
+ 'use strict';
7845
+
7846
+ Object.defineProperty(exports, "__esModule", {
7847
+ value: true
7848
+ });
7849
+ exports.escapeHTML = escapeHTML;
7850
+ exports.debounce = debounce;
7851
+ exports.isObjectEmpty = isObjectEmpty;
7852
+ exports.splitEvents = splitEvents;
7853
+ exports.createEvent = createEvent;
7854
+ exports.isNodeAfter = isNodeAfter;
7855
+ exports.isString = isString;
7856
+
7857
+ var _mejs = _dereq_(7);
7858
+
7859
+ var _mejs2 = _interopRequireDefault(_mejs);
7860
+
7861
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7862
+
7863
+ function escapeHTML(input) {
7864
+
7865
+ if (typeof input !== 'string') {
7866
+ throw new Error('Argument passed must be a string');
7867
+ }
7868
+
7869
+ var map = {
7870
+ '&': '&amp;',
7871
+ '<': '&lt;',
7872
+ '>': '&gt;',
7873
+ '"': '&quot;'
7874
+ };
7875
+
7876
+ return input.replace(/[&<>"]/g, function (c) {
7877
+ return map[c];
7878
+ });
7879
+ }
7880
+
7881
+ function debounce(func, wait) {
7882
+ var _this = this,
7883
+ _arguments = arguments;
7884
+
7885
+ var immediate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7886
+
7887
+
7888
+ if (typeof func !== 'function') {
7889
+ throw new Error('First argument must be a function');
7890
+ }
7891
+
7892
+ if (typeof wait !== 'number') {
7893
+ throw new Error('Second argument must be a numeric value');
7894
+ }
7895
+
7896
+ var timeout = void 0;
7897
+ return function () {
7898
+ var context = _this,
7899
+ args = _arguments;
7900
+ var later = function later() {
7901
+ timeout = null;
7902
+ if (!immediate) {
7903
+ func.apply(context, args);
7904
  }
7905
+ };
7906
+ var callNow = immediate && !timeout;
7907
+ clearTimeout(timeout);
7908
+ timeout = setTimeout(later, wait);
7909
 
7910
+ if (callNow) {
7911
+ func.apply(context, args);
7912
+ }
7913
+ };
7914
+ }
7915
 
7916
+ function isObjectEmpty(instance) {
7917
+ return Object.getOwnPropertyNames(instance).length <= 0;
7918
+ }
 
 
 
7919
 
7920
+ function splitEvents(events, id) {
7921
+ var rwindow = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7922
 
7923
+ var ret = { d: [], w: [] };
7924
+ (events || '').split(' ').forEach(function (v) {
7925
+ var eventName = '' + v + (id ? '.' + id : '');
 
 
7926
 
7927
+ if (eventName.startsWith('.')) {
7928
+ ret.d.push(eventName);
7929
+ ret.w.push(eventName);
7930
+ } else {
7931
+ ret[rwindow.test(v) ? 'w' : 'd'].push(eventName);
7932
+ }
7933
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7934
 
7935
+ ret.d = ret.d.join(' ');
7936
+ ret.w = ret.w.join(' ');
7937
+ return ret;
7938
+ }
7939
 
7940
+ function createEvent(eventName, target) {
 
 
7941
 
7942
+ if (typeof eventName !== 'string') {
7943
+ throw new Error('Event name must be a string');
7944
+ }
 
7945
 
7946
+ var eventFrags = eventName.match(/([a-z]+\.([a-z]+))/i),
7947
+ detail = {
7948
+ target: target
7949
+ };
7950
 
7951
+ if (eventFrags !== null) {
7952
+ eventName = eventFrags[1];
7953
+ detail.namespace = eventFrags[2];
7954
+ }
7955
 
7956
+ return new window.CustomEvent(eventName, {
7957
+ detail: detail
 
 
 
 
7958
  });
7959
+ }
7960
 
7961
+ function isNodeAfter(sourceNode, targetNode) {
 
 
7962
 
7963
+ return !!(sourceNode && targetNode && sourceNode.compareDocumentPosition(targetNode) & 2);
7964
+ }
 
7965
 
7966
+ function isString(value) {
7967
+ return typeof value === 'string';
7968
+ }
7969
 
7970
+ _mejs2.default.Utils = _mejs2.default.Utils || {};
7971
+ _mejs2.default.Utils.escapeHTML = escapeHTML;
7972
+ _mejs2.default.Utils.debounce = debounce;
7973
+ _mejs2.default.Utils.isObjectEmpty = isObjectEmpty;
7974
+ _mejs2.default.Utils.splitEvents = splitEvents;
7975
+ _mejs2.default.Utils.createEvent = createEvent;
7976
+ _mejs2.default.Utils.isNodeAfter = isNodeAfter;
7977
+ _mejs2.default.Utils.isString = isString;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7978
 
7979
+ },{"7":7}],28:[function(_dereq_,module,exports){
7980
+ 'use strict';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7981
 
7982
+ Object.defineProperty(exports, "__esModule", {
7983
+ value: true
7984
+ });
7985
+ exports.typeChecks = undefined;
7986
+ exports.absolutizeUrl = absolutizeUrl;
7987
+ exports.formatType = formatType;
7988
+ exports.getMimeFromType = getMimeFromType;
7989
+ exports.getTypeFromFile = getTypeFromFile;
7990
+ exports.getExtension = getExtension;
7991
+ exports.normalizeExtension = normalizeExtension;
7992
 
7993
+ var _mejs = _dereq_(7);
7994
 
7995
+ var _mejs2 = _interopRequireDefault(_mejs);
 
 
 
 
 
7996
 
7997
+ var _general = _dereq_(27);
7998
 
7999
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8000
 
8001
+ var typeChecks = exports.typeChecks = [];
 
 
8002
 
8003
+ function absolutizeUrl(url) {
 
 
8004
 
8005
+ if (typeof url !== 'string') {
8006
+ throw new Error('`url` argument must be a string');
8007
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8008
 
8009
+ var el = document.createElement('div');
8010
+ el.innerHTML = '<a href="' + (0, _general.escapeHTML)(url) + '">x</a>';
8011
+ return el.firstChild.href;
8012
+ }
8013
 
8014
+ function formatType(url) {
8015
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
 
 
 
 
 
 
 
8016
 
8017
+ return url && !type ? getTypeFromFile(url) : type;
8018
+ }
 
 
 
8019
 
8020
+ function getMimeFromType(type) {
8021
 
8022
+ if (typeof type !== 'string') {
8023
+ throw new Error('`type` argument must be a string');
8024
+ }
8025
 
8026
+ return type && type.indexOf(';') > -1 ? type.substr(0, type.indexOf(';')) : type;
8027
+ }
8028
 
8029
+ function getTypeFromFile(url) {
8030
 
8031
+ if (typeof url !== 'string') {
8032
+ throw new Error('`url` argument must be a string');
8033
+ }
8034
 
8035
+ for (var i = 0, total = typeChecks.length; i < total; i++) {
8036
+ var type = typeChecks[i](url);
 
 
8037
 
8038
+ if (type) {
8039
+ return type;
8040
+ }
8041
+ }
 
 
 
 
8042
 
8043
+ var ext = getExtension(url),
8044
+ normalizedExt = normalizeExtension(ext);
 
 
 
 
 
 
 
8045
 
8046
+ var mime = 'video/mp4';
 
 
 
 
 
8047
 
8048
+ if (normalizedExt) {
8049
+ if (~['mp4', 'm4v', 'ogg', 'ogv', 'webm', 'flv', 'mpeg', 'mov'].indexOf(normalizedExt)) {
8050
+ mime = 'video/' + normalizedExt;
8051
+ } else if (~['mp3', 'oga', 'wav', 'mid', 'midi'].indexOf(normalizedExt)) {
8052
+ mime = 'audio/' + normalizedExt;
8053
+ }
8054
+ }
8055
 
8056
+ return mime;
8057
+ }
 
 
8058
 
8059
+ function getExtension(url) {
 
8060
 
8061
+ if (typeof url !== 'string') {
8062
+ throw new Error('`url` argument must be a string');
8063
+ }
 
 
8064
 
8065
+ var baseUrl = url.split('?')[0],
8066
+ baseName = baseUrl.split('\\').pop().split('/').pop();
8067
+ return ~baseName.indexOf('.') ? baseName.substring(baseName.lastIndexOf('.') + 1) : '';
8068
+ }
 
 
8069
 
8070
+ function normalizeExtension(extension) {
8071
 
8072
+ if (typeof extension !== 'string') {
8073
+ throw new Error('`extension` argument must be a string');
8074
+ }
8075
 
8076
+ switch (extension) {
8077
+ case 'mp4':
8078
+ case 'm4v':
8079
+ return 'mp4';
8080
+ case 'webm':
8081
+ case 'webma':
8082
+ case 'webmv':
8083
+ return 'webm';
8084
+ case 'ogg':
8085
+ case 'oga':
8086
+ case 'ogv':
8087
+ return 'ogg';
8088
+ default:
8089
+ return extension;
8090
+ }
8091
+ }
8092
 
8093
+ _mejs2.default.Utils = _mejs2.default.Utils || {};
8094
+ _mejs2.default.Utils.typeChecks = typeChecks;
8095
+ _mejs2.default.Utils.absolutizeUrl = absolutizeUrl;
8096
+ _mejs2.default.Utils.formatType = formatType;
8097
+ _mejs2.default.Utils.getMimeFromType = getMimeFromType;
8098
+ _mejs2.default.Utils.getTypeFromFile = getTypeFromFile;
8099
+ _mejs2.default.Utils.getExtension = getExtension;
8100
+ _mejs2.default.Utils.normalizeExtension = normalizeExtension;
8101
 
8102
+ },{"27":27,"7":7}],29:[function(_dereq_,module,exports){
8103
+ 'use strict';
8104
 
8105
+ var _document = _dereq_(2);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8106
 
8107
+ var _document2 = _interopRequireDefault(_document);
 
 
 
8108
 
8109
+ var _promisePolyfill = _dereq_(4);
 
 
 
 
 
 
 
8110
 
8111
+ var _promisePolyfill2 = _interopRequireDefault(_promisePolyfill);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8112
 
8113
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8114
+
8115
+ (function (arr) {
8116
+ arr.forEach(function (item) {
8117
+ if (item.hasOwnProperty('remove')) {
8118
+ return;
8119
  }
8120
+ Object.defineProperty(item, 'remove', {
8121
+ configurable: true,
8122
+ enumerable: true,
8123
+ writable: true,
8124
+ value: function remove() {
8125
+ this.parentNode.removeChild(this);
8126
+ }
8127
+ });
8128
  });
8129
+ })([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
8130
+
8131
+ (function () {
8132
 
8133
+ if (typeof window.CustomEvent === 'function') {
8134
+ return false;
8135
+ }
8136
+
8137
+ function CustomEvent(event, params) {
8138
+ params = params || { bubbles: false, cancelable: false, detail: undefined };
8139
+ var evt = _document2.default.createEvent('CustomEvent');
8140
+ evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
8141
+ return evt;
8142
+ }
8143
 
8144
+ CustomEvent.prototype = window.Event.prototype;
8145
+ window.CustomEvent = CustomEvent;
8146
+ })();
8147
 
8148
+ if (typeof Object.assign !== 'function') {
8149
+ Object.assign = function (target) {
8150
+
8151
+ if (target === null || target === undefined) {
8152
+ throw new TypeError('Cannot convert undefined or null to object');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8153
  }
 
8154
 
8155
+ var to = Object(target);
8156
+
8157
+ for (var index = 1, total = arguments.length; index < total; index++) {
8158
+ var nextSource = arguments[index];
8159
+
8160
+ if (nextSource !== null) {
8161
+ for (var nextKey in nextSource) {
8162
+ if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
8163
+ to[nextKey] = nextSource[nextKey];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8164
  }
8165
  }
 
8166
  }
8167
+ }
8168
+ return to;
8169
+ };
8170
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8171
 
8172
+ if (!String.prototype.startsWith) {
8173
+ String.prototype.startsWith = function (searchString, position) {
8174
+ position = position || 0;
8175
+ return this.substr(position, searchString.length) === searchString;
8176
+ };
8177
+ }
8178
+
8179
+ if (!Element.prototype.matches) {
8180
+ Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) {
8181
+ var matches = (this.document || this.ownerDocument).querySelectorAll(s),
8182
+ i = matches.length - 1;
8183
+ while (--i >= 0 && matches.item(i) !== this) {}
8184
+ return i > -1;
8185
+ };
8186
+ }
8187
+
8188
+ if (window.Element && !Element.prototype.closest) {
8189
+ Element.prototype.closest = function (s) {
8190
+ var matches = (this.document || this.ownerDocument).querySelectorAll(s),
8191
+ i = void 0,
8192
+ el = this;
8193
+ do {
8194
+ i = matches.length;
8195
+ while (--i >= 0 && matches.item(i) !== el) {}
8196
+ } while (i < 0 && (el = el.parentElement));
8197
+ return el;
8198
+ };
8199
+ }
8200
+
8201
+ (function () {
8202
+ var lastTime = 0;
8203
+ var vendors = ['ms', 'moz', 'webkit', 'o'];
8204
+ for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
8205
+ window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
8206
+ window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];
8207
+ }
8208
+
8209
+ if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback) {
8210
+ var currTime = new Date().getTime();
8211
+ var timeToCall = Math.max(0, 16 - (currTime - lastTime));
8212
+ var id = window.setTimeout(function () {
8213
+ callback(currTime + timeToCall);
8214
+ }, timeToCall);
8215
+ lastTime = currTime + timeToCall;
8216
+ return id;
8217
+ };
8218
+
8219
+ if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) {
8220
+ clearTimeout(id);
8221
+ };
8222
+ })();
8223
+
8224
+ if (/firefox/i.test(navigator.userAgent)) {
8225
+ var getComputedStyle = window.getComputedStyle;
8226
+ window.getComputedStyle = function (el, pseudoEl) {
8227
+ var t = getComputedStyle(el, pseudoEl);
8228
+ return t === null ? { getPropertyValue: function getPropertyValue() {} } : t;
8229
+ };
8230
+ }
8231
+
8232
+ if (!window.Promise) {
8233
+ window.Promise = _promisePolyfill2.default;
8234
+ }
8235
+
8236
+ (function (constructor) {
8237
+ if (constructor && constructor.prototype && constructor.prototype.children === null) {
8238
+ Object.defineProperty(constructor.prototype, 'children', {
8239
+ get: function get() {
8240
+ var i = 0,
8241
+ node = void 0,
8242
+ nodes = this.childNodes,
8243
+ children = [];
8244
+ while (node = nodes[i++]) {
8245
+ if (node.nodeType === 1) {
8246
+ children.push(node);
8247
  }
 
 
 
 
 
 
8248
  }
8249
+ return children;
8250
  }
8251
+ });
8252
+ }
8253
+ })(window.Node || window.Element);
8254
+
8255
+ },{"2":2,"4":4}],30:[function(_dereq_,module,exports){
8256
+ 'use strict';
8257
+
8258
+ Object.defineProperty(exports, "__esModule", {
8259
+ value: true
8260
+ });
8261
+ exports.isDropFrame = isDropFrame;
8262
+ exports.secondsToTimeCode = secondsToTimeCode;
8263
+ exports.timeCodeToSeconds = timeCodeToSeconds;
8264
+ exports.calculateTimeFormat = calculateTimeFormat;
8265
+ exports.convertSMPTEtoSeconds = convertSMPTEtoSeconds;
8266
+
8267
+ var _mejs = _dereq_(7);
8268
+
8269
+ var _mejs2 = _interopRequireDefault(_mejs);
8270
+
8271
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8272
+
8273
+ function isDropFrame() {
8274
+ var fps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 25;
8275
+
8276
+ return !(fps % 1 === 0);
8277
+ }
8278
+ function secondsToTimeCode(time) {
8279
+ var forceHours = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
8280
+ var showFrameCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
8281
+ var fps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 25;
8282
+ var secondsDecimalLength = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
8283
+ var timeFormat = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'hh:mm:ss';
8284
+
8285
+
8286
+ time = !time || typeof time !== 'number' || time < 0 ? 0 : time;
8287
+
8288
+ var dropFrames = Math.round(fps * 0.066666),
8289
+ timeBase = Math.round(fps),
8290
+ framesPer24Hours = Math.round(fps * 3600) * 24,
8291
+ framesPer10Minutes = Math.round(fps * 600),
8292
+ frameSep = isDropFrame(fps) ? ';' : ':',
8293
+ hours = void 0,
8294
+ minutes = void 0,
8295
+ seconds = void 0,
8296
+ frames = void 0,
8297
+ f = Math.round(time * fps);
8298
+
8299
+ if (isDropFrame(fps)) {
8300
+
8301
+ if (f < 0) {
8302
+ f = framesPer24Hours + f;
8303
  }
8304
+
8305
+ f = f % framesPer24Hours;
8306
+
8307
+ var d = Math.floor(f / framesPer10Minutes);
8308
+ var m = f % framesPer10Minutes;
8309
+ f = f + dropFrames * 9 * d;
8310
+ if (m > dropFrames) {
8311
+ f = f + dropFrames * Math.floor((m - dropFrames) / Math.round(timeBase * 60 - dropFrames));
8312
+ }
8313
+
8314
+ var timeBaseDivision = Math.floor(f / timeBase);
8315
+
8316
+ hours = Math.floor(Math.floor(timeBaseDivision / 60) / 60);
8317
+ minutes = Math.floor(timeBaseDivision / 60) % 60;
8318
+
8319
+ if (showFrameCount) {
8320
+ seconds = timeBaseDivision % 60;
8321
+ } else {
8322
+ seconds = Math.floor(f / timeBase % 60).toFixed(secondsDecimalLength);
8323
+ }
8324
+ } else {
8325
+ hours = Math.floor(time / 3600) % 24;
8326
+ minutes = Math.floor(time / 60) % 60;
8327
+ if (showFrameCount) {
8328
+ seconds = Math.floor(time % 60);
8329
+ } else {
8330
+ seconds = Math.floor(time % 60).toFixed(secondsDecimalLength);
8331
+ }
8332
+ }
8333
+ hours = hours <= 0 ? 0 : hours;
8334
+ minutes = minutes <= 0 ? 0 : minutes;
8335
+ seconds = seconds <= 0 ? 0 : seconds;
8336
+
8337
+ seconds = seconds === 60 ? 0 : seconds;
8338
+ minutes = minutes === 60 ? 0 : minutes;
8339
+
8340
+ var timeFormatFrags = timeFormat.split(':');
8341
+ var timeFormatSettings = {};
8342
+ for (var i = 0, total = timeFormatFrags.length; i < total; ++i) {
8343
+ var unique = '';
8344
+ for (var j = 0, t = timeFormatFrags[i].length; j < t; j++) {
8345
+ if (unique.indexOf(timeFormatFrags[i][j]) < 0) {
8346
+ unique += timeFormatFrags[i][j];
 
 
 
 
 
 
 
 
 
 
 
 
8347
  }
8348
  }
8349
+ if (~['f', 's', 'm', 'h'].indexOf(unique)) {
8350
+ timeFormatSettings[unique] = timeFormatFrags[i].length;
8351
+ }
8352
+ }
8353
+
8354
+ var result = forceHours || hours > 0 ? (hours < 10 && timeFormatSettings.h > 1 ? '0' + hours : hours) + ':' : '';
8355
+ result += (minutes < 10 && timeFormatSettings.m > 1 ? '0' + minutes : minutes) + ':';
8356
+ result += '' + (seconds < 10 && timeFormatSettings.s > 1 ? '0' + seconds : seconds);
8357
+
8358
+ if (showFrameCount) {
8359
+ frames = (f % timeBase).toFixed(0);
8360
+ frames = frames <= 0 ? 0 : frames;
8361
+ result += frames < 10 && timeFormatSettings.f ? frameSep + '0' + frames : '' + frameSep + frames;
8362
+ }
8363
+
8364
+ return result;
8365
+ }
8366
+
8367
+ function timeCodeToSeconds(time) {
8368
+ var fps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 25;
8369
+
8370
+
8371
+ if (typeof time !== 'string') {
8372
+ throw new TypeError('Time must be a string');
8373
+ }
8374
+
8375
+ if (time.indexOf(';') > 0) {
8376
+ time = time.replace(';', ':');
8377
+ }
8378
+
8379
+ if (!/\d{2}(\:\d{2}){0,3}/i.test(time)) {
8380
+ throw new TypeError('Time code must have the format `00:00:00`');
8381
+ }
8382
+
8383
+ var parts = time.split(':');
8384
+
8385
+ var output = void 0,
8386
+ hours = 0,
8387
+ minutes = 0,
8388
+ seconds = 0,
8389
+ frames = 0,
8390
+ totalMinutes = 0,
8391
+ dropFrames = Math.round(fps * 0.066666),
8392
+ timeBase = Math.round(fps),
8393
+ hFrames = timeBase * 3600,
8394
+ mFrames = timeBase * 60;
8395
+
8396
+ switch (parts.length) {
8397
+ default:
8398
+ case 1:
8399
+ seconds = parseInt(parts[0], 10);
8400
+ break;
8401
+ case 2:
8402
+ minutes = parseInt(parts[0], 10);
8403
+ seconds = parseInt(parts[1], 10);
8404
+ break;
8405
+ case 3:
8406
+ hours = parseInt(parts[0], 10);
8407
+ minutes = parseInt(parts[1], 10);
8408
+ seconds = parseInt(parts[2], 10);
8409
+ break;
8410
+ case 4:
8411
+ hours = parseInt(parts[0], 10);
8412
+ minutes = parseInt(parts[1], 10);
8413
+ seconds = parseInt(parts[2], 10);
8414
+ frames = parseInt(parts[3], 10);
8415
+ break;
8416
+ }
8417
+
8418
+ if (isDropFrame(fps)) {
8419
+ totalMinutes = 60 * hours + minutes;
8420
+ output = hFrames * hours + mFrames * minutes + timeBase * seconds + frames - dropFrames * (totalMinutes - Math.floor(totalMinutes / 10));
8421
+ } else {
8422
+ output = (hFrames * hours + mFrames * minutes + fps * seconds + frames) / fps;
8423
+ }
8424
+
8425
+ return parseFloat(output.toFixed(3));
8426
+ }
8427
+
8428
+ function calculateTimeFormat(time, options) {
8429
+ var fps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 25;
8430
+
8431
+
8432
+ time = !time || typeof time !== 'number' || time < 0 ? 0 : time;
8433
+
8434
+ var hours = Math.floor(time / 3600) % 24,
8435
+ minutes = Math.floor(time / 60) % 60,
8436
+ seconds = Math.floor(time % 60),
8437
+ frames = Math.floor((time % 1 * fps).toFixed(3)),
8438
+ lis = [[frames, 'f'], [seconds, 's'], [minutes, 'm'], [hours, 'h']];
8439
+
8440
+ var format = options.timeFormat,
8441
+ firstTwoPlaces = format[1] === format[0],
8442
+ separatorIndex = firstTwoPlaces ? 2 : 1,
8443
+ separator = format.length < separatorIndex ? format[separatorIndex] : ':',
8444
+ firstChar = format[0],
8445
+ required = false;
8446
+
8447
+ for (var i = 0, len = lis.length; i < len; i++) {
8448
+ if (~format.indexOf(lis[i][1])) {
8449
+ required = true;
8450
+ } else if (required) {
8451
+ var hasNextValue = false;
8452
+ for (var j = i; j < len; j++) {
8453
+ if (lis[j][0] > 0) {
8454
+ hasNextValue = true;
8455
+ break;
8456
  }
8457
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8458
 
8459
+ if (!hasNextValue) {
8460
+ break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8461
  }
8462
+
8463
+ if (!firstTwoPlaces) {
8464
+ format = firstChar + format;
8465
+ }
8466
+ format = lis[i][1] + separator + format;
8467
+ if (firstTwoPlaces) {
8468
+ format = lis[i][1] + format;
8469
+ }
8470
+ firstChar = lis[i][1];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8471
  }
8472
+ }
8473
+
8474
+ options.timeFormat = format;
8475
+ }
8476
+
8477
+ function convertSMPTEtoSeconds(SMPTE) {
8478
+
8479
+ if (typeof SMPTE !== 'string') {
8480
+ throw new TypeError('Argument must be a string value');
8481
+ }
8482
+
8483
+ SMPTE = SMPTE.replace(',', '.');
8484
+
8485
+ var decimalLen = ~SMPTE.indexOf('.') ? SMPTE.split('.')[1].length : 0;
8486
+
8487
+ var secs = 0,
8488
+ multiplier = 1;
8489
+
8490
+ SMPTE = SMPTE.split(':').reverse();
8491
+
8492
+ for (var i = 0, total = SMPTE.length; i < total; i++) {
8493
+ multiplier = 1;
8494
+ if (i > 0) {
8495
+ multiplier = Math.pow(60, i);
8496
+ }
8497
+ secs += Number(SMPTE[i]) * multiplier;
8498
+ }
8499
+ return Number(secs.toFixed(decimalLen));
8500
+ }
8501
+
8502
+ _mejs2.default.Utils = _mejs2.default.Utils || {};
8503
+ _mejs2.default.Utils.secondsToTimeCode = secondsToTimeCode;
8504
+ _mejs2.default.Utils.timeCodeToSeconds = timeCodeToSeconds;
8505
+ _mejs2.default.Utils.calculateTimeFormat = calculateTimeFormat;
8506
+ _mejs2.default.Utils.convertSMPTEtoSeconds = convertSMPTEtoSeconds;
8507
 
8508
+ },{"7":7}]},{},[29,6,5,15,23,20,19,21,22,24,16,18,17,9,10,11,12,13,14]);
lib/media-element/mediaelement-and-player.min.js CHANGED
@@ -1,174 +1,12 @@
1
  /*!
2
- * MediaElement.js
3
- * HTML5 <video> and <audio> shim and player
4
- * http://mediaelementjs.com/
5
- *
6
- * Creates a JavaScript object that mimics HTML5 MediaElement API
7
- * for browsers that don't understand HTML5 or can't play the provided codec
8
- * Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
9
- *
10
- * Copyright 2010-2013, John Dyer (http://j.hn)
11
- * License: MIT
12
- *
13
- */var mejs=mejs||{};mejs.version="2.13.1";mejs.meIndex=0;
14
- mejs.plugins={silverlight:[{version:[3,0],types:["video/mp4","video/m4v","video/mov","video/wmv","audio/wma","audio/m4a","audio/mp3","audio/wav","audio/mpeg"]}],flash:[{version:[9,0,124],types:["video/mp4","video/m4v","video/mov","video/flv","video/rtmp","video/x-flv","audio/flv","audio/x-flv","audio/mp3","audio/m4a","audio/mpeg","video/youtube","video/x-youtube"]}],youtube:[{version:null,types:["video/youtube","video/x-youtube","audio/youtube","audio/x-youtube"]}],vimeo:[{version:null,types:["video/vimeo",
15
- "video/x-vimeo"]}]};
16
- mejs.Utility={encodeUrl:function(a){return encodeURIComponent(a)},escapeHTML:function(a){return a.toString().split("&").join("&amp;").split("<").join("&lt;").split('"').join("&quot;")},absolutizeUrl:function(a){var b=document.createElement("div");b.innerHTML='<a href="'+this.escapeHTML(a)+'">x</a>';return b.firstChild.href},getScriptPath:function(a){for(var b=0,c,d="",e="",f,g,h=document.getElementsByTagName("script"),l=h.length,j=a.length;b<l;b++){f=h[b].src;c=f.lastIndexOf("/");if(c>-1){g=f.substring(c+
17
- 1);f=f.substring(0,c+1)}else{g=f;f=""}for(c=0;c<j;c++){e=a[c];e=g.indexOf(e);if(e>-1){d=f;break}}if(d!=="")break}return d},secondsToTimeCode:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d=="undefined")d=25;var e=Math.floor(a/3600)%24,f=Math.floor(a/60)%60,g=Math.floor(a%60);a=Math.floor((a%1*d).toFixed(3));return(b||e>0?(e<10?"0"+e:e)+":":"")+(f<10?"0"+f:f)+":"+(g<10?"0"+g:g)+(c?":"+(a<10?"0"+a:a):"")},timeCodeToSeconds:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d==
18
- "undefined")d=25;a=a.split(":");b=parseInt(a[0],10);var e=parseInt(a[1],10),f=parseInt(a[2],10),g=0,h=0;if(c)g=parseInt(a[3])/d;return h=b*3600+e*60+f+g},convertSMPTEtoSeconds:function(a){if(typeof a!="string")return false;a=a.replace(",",".");var b=0,c=a.indexOf(".")!=-1?a.split(".")[1].length:0,d=1;a=a.split(":").reverse();for(var e=0;e<a.length;e++){d=1;if(e>0)d=Math.pow(60,e);b+=Number(a[e])*d}return Number(b.toFixed(c))},removeSwf:function(a){var b=document.getElementById(a);if(b&&/object|embed/i.test(b.nodeName))if(mejs.MediaFeatures.isIE){b.style.display=
19
- "none";(function(){b.readyState==4?mejs.Utility.removeObjectInIE(a):setTimeout(arguments.callee,10)})()}else b.parentNode.removeChild(b)},removeObjectInIE:function(a){if(a=document.getElementById(a)){for(var b in a)if(typeof a[b]=="function")a[b]=null;a.parentNode.removeChild(a)}}};
20
- mejs.PluginDetector={hasPluginVersion:function(a,b){var c=this.plugins[a];b[1]=b[1]||0;b[2]=b[2]||0;return c[0]>b[0]||c[0]==b[0]&&c[1]>b[1]||c[0]==b[0]&&c[1]==b[1]&&c[2]>=b[2]?true:false},nav:window.navigator,ua:window.navigator.userAgent.toLowerCase(),plugins:[],addPlugin:function(a,b,c,d,e){this.plugins[a]=this.detectPlugin(b,c,d,e)},detectPlugin:function(a,b,c,d){var e=[0,0,0],f;if(typeof this.nav.plugins!="undefined"&&typeof this.nav.plugins[a]=="object"){if((c=this.nav.plugins[a].description)&&
21
- !(typeof this.nav.mimeTypes!="undefined"&&this.nav.mimeTypes[b]&&!this.nav.mimeTypes[b].enabledPlugin)){e=c.replace(a,"").replace(/^\s+/,"").replace(/\sr/gi,".").split(".");for(a=0;a<e.length;a++)e[a]=parseInt(e[a].match(/\d+/),10)}}else if(typeof window.ActiveXObject!="undefined")try{if(f=new ActiveXObject(c))e=d(f)}catch(g){}return e}};
22
- mejs.PluginDetector.addPlugin("flash","Shockwave Flash","application/x-shockwave-flash","ShockwaveFlash.ShockwaveFlash",function(a){var b=[];if(a=a.GetVariable("$version")){a=a.split(" ")[1].split(",");b=[parseInt(a[0],10),parseInt(a[1],10),parseInt(a[2],10)]}return b});
23
- mejs.PluginDetector.addPlugin("silverlight","Silverlight Plug-In","application/x-silverlight-2","AgControl.AgControl",function(a){var b=[0,0,0,0],c=function(d,e,f,g){for(;d.isVersionSupported(e[0]+"."+e[1]+"."+e[2]+"."+e[3]);)e[f]+=g;e[f]-=g};c(a,b,0,1);c(a,b,1,1);c(a,b,2,1E4);c(a,b,2,1E3);c(a,b,2,100);c(a,b,2,10);c(a,b,2,1);c(a,b,3,1);return b});
24
- mejs.MediaFeatures={init:function(){var a=this,b=document,c=mejs.PluginDetector.nav,d=mejs.PluginDetector.ua.toLowerCase(),e,f=["source","track","audio","video"];a.isiPad=d.match(/ipad/i)!==null;a.isiPhone=d.match(/iphone/i)!==null;a.isiOS=a.isiPhone||a.isiPad;a.isAndroid=d.match(/android/i)!==null;a.isBustedAndroid=d.match(/android 2\.[12]/)!==null;a.isBustedNativeHTTPS=location.protocol==="https:"&&(d.match(/android [12]\./)!==null||d.match(/macintosh.* version.* safari/)!==null);a.isIE=c.appName.toLowerCase().match(/trident/gi)!==
25
- null;a.isChrome=d.match(/chrome/gi)!==null;a.isFirefox=d.match(/firefox/gi)!==null;a.isWebkit=d.match(/webkit/gi)!==null;a.isGecko=d.match(/gecko/gi)!==null&&!a.isWebkit&&!a.isIE;a.isOpera=d.match(/opera/gi)!==null;a.hasTouch="ontouchstart"in window&&window.ontouchstart!=null;a.svg=!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect;for(c=0;c<f.length;c++)e=document.createElement(f[c]);a.supportsMediaTag=typeof e.canPlayType!=="undefined"||a.isBustedAndroid;
26
- try{e.canPlayType("video/mp4")}catch(g){a.supportsMediaTag=false}a.hasSemiNativeFullScreen=typeof e.webkitEnterFullscreen!=="undefined";a.hasNativeFullscreen=typeof e.requestFullscreen!=="undefined";a.hasWebkitNativeFullScreen=typeof e.webkitRequestFullScreen!=="undefined";a.hasMozNativeFullScreen=typeof e.mozRequestFullScreen!=="undefined";a.hasMsNativeFullScreen=typeof e.msRequestFullscreen!=="undefined";a.hasTrueNativeFullScreen=a.hasWebkitNativeFullScreen||a.hasMozNativeFullScreen||a.hasMsNativeFullScreen;
27
- a.nativeFullScreenEnabled=a.hasTrueNativeFullScreen;if(a.hasMozNativeFullScreen)a.nativeFullScreenEnabled=document.mozFullScreenEnabled;else if(a.hasMsNativeFullScreen)a.nativeFullScreenEnabled=document.msFullscreenEnabled;if(a.isChrome)a.hasSemiNativeFullScreen=false;if(a.hasTrueNativeFullScreen){a.fullScreenEventName="";if(a.hasWebkitNativeFullScreen)a.fullScreenEventName="webkitfullscreenchange";else if(a.hasMozNativeFullScreen)a.fullScreenEventName="mozfullscreenchange";else if(a.hasMsNativeFullScreen)a.fullScreenEventName=
28
- "MSFullscreenChange";a.isFullScreen=function(){if(e.mozRequestFullScreen)return b.mozFullScreen;else if(e.webkitRequestFullScreen)return b.webkitIsFullScreen;else if(e.hasMsNativeFullScreen)return b.msFullscreenElement!==null};a.requestFullScreen=function(h){if(a.hasWebkitNativeFullScreen)h.webkitRequestFullScreen();else if(a.hasMozNativeFullScreen)h.mozRequestFullScreen();else a.hasMsNativeFullScreen&&h.msRequestFullscreen()};a.cancelFullScreen=function(){if(a.hasWebkitNativeFullScreen)document.webkitCancelFullScreen();
29
- else if(a.hasMozNativeFullScreen)document.mozCancelFullScreen();else a.hasMsNativeFullScreen&&document.msExitFullscreen()}}if(a.hasSemiNativeFullScreen&&d.match(/mac os x 10_5/i)){a.hasNativeFullScreen=false;a.hasSemiNativeFullScreen=false}}};mejs.MediaFeatures.init();
30
- mejs.HtmlMediaElement={pluginType:"native",isFullScreen:false,setCurrentTime:function(a){this.currentTime=a},setMuted:function(a){this.muted=a},setVolume:function(a){this.volume=a},stop:function(){this.pause()},setSrc:function(a){for(var b=this.getElementsByTagName("source");b.length>0;)this.removeChild(b[0]);if(typeof a=="string")this.src=a;else{var c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.src=c.src;break}}}},setVideoSize:function(a,b){this.width=a;this.height=b}};
31
- mejs.PluginMediaElement=function(a,b,c){this.id=a;this.pluginType=b;this.src=c;this.events={};this.attributes={}};
32
- mejs.PluginMediaElement.prototype={pluginElement:null,pluginType:"",isFullScreen:false,playbackRate:-1,defaultPlaybackRate:-1,seekable:[],played:[],paused:true,ended:false,seeking:false,duration:0,error:null,tagName:"",muted:false,volume:1,currentTime:0,play:function(){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.playVideo():this.pluginApi.playMedia();this.paused=false}},load:function(){if(this.pluginApi!=null){this.pluginType!="youtube"&&this.pluginApi.loadMedia();this.paused=
33
- false}},pause:function(){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.pauseVideo():this.pluginApi.pauseMedia();this.paused=true}},stop:function(){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.stopVideo():this.pluginApi.stopMedia();this.paused=true}},canPlayType:function(a){var b,c,d,e=mejs.plugins[this.pluginType];for(b=0;b<e.length;b++){d=e[b];if(mejs.PluginDetector.hasPluginVersion(this.pluginType,d.version))for(c=0;c<d.types.length;c++)if(a==d.types[c])return"probably"}return""},
34
- positionFullscreenButton:function(a,b,c){this.pluginApi!=null&&this.pluginApi.positionFullscreenButton&&this.pluginApi.positionFullscreenButton(Math.floor(a),Math.floor(b),c)},hideFullscreenButton:function(){this.pluginApi!=null&&this.pluginApi.hideFullscreenButton&&this.pluginApi.hideFullscreenButton()},setSrc:function(a){if(typeof a=="string"){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(a));this.src=mejs.Utility.absolutizeUrl(a)}else{var b,c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(c.src));
35
- this.src=mejs.Utility.absolutizeUrl(a);break}}}},setCurrentTime:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.seekTo(a):this.pluginApi.setCurrentTime(a);this.currentTime=a}},setVolume:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.setVolume(a*100):this.pluginApi.setVolume(a);this.volume=a}},setMuted:function(a){if(this.pluginApi!=null){if(this.pluginType=="youtube"){a?this.pluginApi.mute():this.pluginApi.unMute();this.muted=a;this.dispatchEvent("volumechange")}else this.pluginApi.setMuted(a);
36
- this.muted=a}},setVideoSize:function(a,b){if(this.pluginElement.style){this.pluginElement.style.width=a+"px";this.pluginElement.style.height=b+"px"}this.pluginApi!=null&&this.pluginApi.setVideoSize&&this.pluginApi.setVideoSize(a,b)},setFullscreen:function(a){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.pluginApi.setFullscreen(a)},enterFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.setFullscreen(true)},exitFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&
37
- this.setFullscreen(false)},addEventListener:function(a,b){this.events[a]=this.events[a]||[];this.events[a].push(b)},removeEventListener:function(a,b){if(!a){this.events={};return true}var c=this.events[a];if(!c)return true;if(!b){this.events[a]=[];return true}for(i=0;i<c.length;i++)if(c[i]===b){this.events[a].splice(i,1);return true}return false},dispatchEvent:function(a){var b,c,d=this.events[a];if(d){c=Array.prototype.slice.call(arguments,1);for(b=0;b<d.length;b++)d[b].apply(null,c)}},hasAttribute:function(a){return a in
38
- this.attributes},removeAttribute:function(a){delete this.attributes[a]},getAttribute:function(a){if(this.hasAttribute(a))return this.attributes[a];return""},setAttribute:function(a,b){this.attributes[a]=b},remove:function(){mejs.Utility.removeSwf(this.pluginElement.id);mejs.MediaPluginBridge.unregisterPluginElement(this.pluginElement.id)}};
39
- mejs.MediaPluginBridge={pluginMediaElements:{},htmlMediaElements:{},registerPluginElement:function(a,b,c){this.pluginMediaElements[a]=b;this.htmlMediaElements[a]=c},unregisterPluginElement:function(a){delete this.pluginMediaElements[a];delete this.htmlMediaElements[a]},initPlugin:function(a){var b=this.pluginMediaElements[a],c=this.htmlMediaElements[a];if(b){switch(b.pluginType){case "flash":b.pluginElement=b.pluginApi=document.getElementById(a);break;case "silverlight":b.pluginElement=document.getElementById(b.id);
40
- b.pluginApi=b.pluginElement.Content.MediaElementJS}b.pluginApi!=null&&b.success&&b.success(b,c)}},fireEvent:function(a,b,c){var d,e;if(a=this.pluginMediaElements[a]){b={type:b,target:a};for(d in c){a[d]=c[d];b[d]=c[d]}e=c.bufferedTime||0;b.target.buffered=b.buffered={start:function(){return 0},end:function(){return e},length:1};a.dispatchEvent(b.type,b)}}};
41
- mejs.MediaElementDefaults={mode:"auto",plugins:["flash","silverlight","youtube","vimeo"],enablePluginDebug:false,httpsBasicAuthSite:false,type:"",pluginPath:mejs.Utility.getScriptPath(["mediaelement.js","mediaelement.min.js","mediaelement-and-player.js","mediaelement-and-player.min.js"]),flashName:"flashmediaelement.swf",flashStreamer:"",enablePluginSmoothing:false,enablePseudoStreaming:false,pseudoStreamingStartQueryParam:"start",silverlightName:"silverlightmediaelement.xap",defaultVideoWidth:480,
42
- defaultVideoHeight:270,pluginWidth:-1,pluginHeight:-1,pluginVars:[],timerRate:250,startVolume:0.8,success:function(){},error:function(){}};mejs.MediaElement=function(a,b){return mejs.HtmlMediaElementShim.create(a,b)};
43
- mejs.HtmlMediaElementShim={create:function(a,b){var c=mejs.MediaElementDefaults,d=typeof a=="string"?document.getElementById(a):a,e=d.tagName.toLowerCase(),f=e==="audio"||e==="video",g=f?d.getAttribute("src"):d.getAttribute("href");e=d.getAttribute("poster");var h=d.getAttribute("autoplay"),l=d.getAttribute("preload"),j=d.getAttribute("controls"),k;for(k in b)c[k]=b[k];g=typeof g=="undefined"||g===null||g==""?null:g;e=typeof e=="undefined"||e===null?"":e;l=typeof l=="undefined"||l===null||l==="false"?
44
- "none":l;h=!(typeof h=="undefined"||h===null||h==="false");j=!(typeof j=="undefined"||j===null||j==="false");k=this.determinePlayback(d,c,mejs.MediaFeatures.supportsMediaTag,f,g);k.url=k.url!==null?mejs.Utility.absolutizeUrl(k.url):"";if(k.method=="native"){if(mejs.MediaFeatures.isBustedAndroid){d.src=k.url;d.addEventListener("click",function(){d.play()},false)}return this.updateNative(k,c,h,l)}else if(k.method!=="")return this.createPlugin(k,c,e,h,l,j);else{this.createErrorMessage(k,c,e);return this}},
45
- determinePlayback:function(a,b,c,d,e){var f=[],g,h,l,j={method:"",url:"",htmlMediaElement:a,isVideo:a.tagName.toLowerCase()!="audio"},k;if(typeof b.type!="undefined"&&b.type!=="")if(typeof b.type=="string")f.push({type:b.type,url:e});else for(g=0;g<b.type.length;g++)f.push({type:b.type[g],url:e});else if(e!==null){l=this.formatType(e,a.getAttribute("type"));f.push({type:l,url:e})}else for(g=0;g<a.childNodes.length;g++){h=a.childNodes[g];if(h.nodeType==1&&h.tagName.toLowerCase()=="source"){e=h.getAttribute("src");
46
- l=this.formatType(e,h.getAttribute("type"));h=h.getAttribute("media");if(!h||!window.matchMedia||window.matchMedia&&window.matchMedia(h).matches)f.push({type:l,url:e})}}if(!d&&f.length>0&&f[0].url!==null&&this.getTypeFromFile(f[0].url).indexOf("audio")>-1)j.isVideo=false;if(mejs.MediaFeatures.isBustedAndroid)a.canPlayType=function(m){return m.match(/video\/(mp4|m4v)/gi)!==null?"maybe":""};if(c&&(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="native")&&!(mejs.MediaFeatures.isBustedNativeHTTPS&&
47
- b.httpsBasicAuthSite===true)){if(!d){g=document.createElement(j.isVideo?"video":"audio");a.parentNode.insertBefore(g,a);a.style.display="none";j.htmlMediaElement=a=g}for(g=0;g<f.length;g++)if(a.canPlayType(f[g].type).replace(/no/,"")!==""||a.canPlayType(f[g].type.replace(/mp3/,"mpeg")).replace(/no/,"")!==""){j.method="native";j.url=f[g].url;break}if(j.method==="native"){if(j.url!==null)a.src=j.url;if(b.mode!=="auto_plugin")return j}}if(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="shim")for(g=
48
- 0;g<f.length;g++){l=f[g].type;for(a=0;a<b.plugins.length;a++){e=b.plugins[a];h=mejs.plugins[e];for(c=0;c<h.length;c++){k=h[c];if(k.version==null||mejs.PluginDetector.hasPluginVersion(e,k.version))for(d=0;d<k.types.length;d++)if(l==k.types[d]){j.method=e;j.url=f[g].url;return j}}}}if(b.mode==="auto_plugin"&&j.method==="native")return j;if(j.method===""&&f.length>0)j.url=f[0].url;return j},formatType:function(a,b){return a&&!b?this.getTypeFromFile(a):b&&~b.indexOf(";")?b.substr(0,b.indexOf(";")):b},
49
- getTypeFromFile:function(a){a=a.split("?")[0];a=a.substring(a.lastIndexOf(".")+1).toLowerCase();return(/(mp4|m4v|ogg|ogv|webm|webmv|flv|wmv|mpeg|mov)/gi.test(a)?"video":"audio")+"/"+this.getTypeFromExtension(a)},getTypeFromExtension:function(a){switch(a){case "mp4":case "m4v":return"mp4";case "webm":case "webma":case "webmv":return"webm";case "ogg":case "oga":case "ogv":return"ogg";default:return a}},createErrorMessage:function(a,b,c){var d=a.htmlMediaElement,e=document.createElement("div");e.className=
50
- "me-cannotplay";try{e.style.width=d.width+"px";e.style.height=d.height+"px"}catch(f){}e.innerHTML=b.customError?b.customError:c!==""?'<a href="'+a.url+'"><img src="'+c+'" width="100%" height="100%" /></a>':'<a href="'+a.url+'"><span>'+mejs.i18n.t("Download File")+"</span></a>";d.parentNode.insertBefore(e,d);d.style.display="none";b.error(d)},createPlugin:function(a,b,c,d,e,f){c=a.htmlMediaElement;var g=1,h=1,l="me_"+a.method+"_"+mejs.meIndex++,j=new mejs.PluginMediaElement(l,a.method,a.url),k=document.createElement("div"),
51
- m;j.tagName=c.tagName;for(m=0;m<c.attributes.length;m++){var n=c.attributes[m];n.specified==true&&j.setAttribute(n.name,n.value)}for(m=c.parentNode;m!==null&&m.tagName.toLowerCase()!="body";){if(m.parentNode.tagName.toLowerCase()=="p"){m.parentNode.parentNode.insertBefore(m,m.parentNode);break}m=m.parentNode}if(a.isVideo){g=b.pluginWidth>0?b.pluginWidth:b.videoWidth>0?b.videoWidth:c.getAttribute("width")!==null?c.getAttribute("width"):b.defaultVideoWidth;h=b.pluginHeight>0?b.pluginHeight:b.videoHeight>
52
- 0?b.videoHeight:c.getAttribute("height")!==null?c.getAttribute("height"):b.defaultVideoHeight;g=mejs.Utility.encodeUrl(g);h=mejs.Utility.encodeUrl(h)}else if(b.enablePluginDebug){g=320;h=240}j.success=b.success;mejs.MediaPluginBridge.registerPluginElement(l,j,c);k.className="me-plugin";k.id=l+"_container";a.isVideo?c.parentNode.insertBefore(k,c):document.body.insertBefore(k,document.body.childNodes[0]);d=["id="+l,"isvideo="+(a.isVideo?"true":"false"),"autoplay="+(d?"true":"false"),"preload="+e,"width="+
53
- g,"startvolume="+b.startVolume,"timerrate="+b.timerRate,"flashstreamer="+b.flashStreamer,"height="+h,"pseudostreamstart="+b.pseudoStreamingStartQueryParam];if(a.url!==null)a.method=="flash"?d.push("file="+mejs.Utility.encodeUrl(a.url)):d.push("file="+a.url);b.enablePluginDebug&&d.push("debug=true");b.enablePluginSmoothing&&d.push("smoothing=true");b.enablePseudoStreaming&&d.push("pseudostreaming=true");f&&d.push("controls=true");if(b.pluginVars)d=d.concat(b.pluginVars);switch(a.method){case "silverlight":k.innerHTML=
54
- '<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="'+l+'" name="'+l+'" width="'+g+'" height="'+h+'" class="mejs-shim"><param name="initParams" value="'+d.join(",")+'" /><param name="windowless" value="true" /><param name="background" value="black" /><param name="minRuntimeVersion" value="3.0.0.0" /><param name="autoUpgrade" value="true" /><param name="source" value="'+b.pluginPath+b.silverlightName+'" /></object>';break;case "flash":if(mejs.MediaFeatures.isIE){a=
55
- document.createElement("div");k.appendChild(a);a.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+l+'" width="'+g+'" height="'+h+'" class="mejs-shim"><param name="movie" value="'+b.pluginPath+b.flashName+"?x="+new Date+'" /><param name="flashvars" value="'+d.join("&amp;")+'" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else k.innerHTML=
56
- '<embed id="'+l+'" name="'+l+'" play="true" loop="false" quality="high" bgcolor="#000000" wmode="transparent" allowScriptAccess="always" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" src="'+b.pluginPath+b.flashName+'" flashvars="'+d.join("&")+'" width="'+g+'" height="'+h+'" class="mejs-shim"></embed>';break;case "youtube":b=a.url.substr(a.url.lastIndexOf("=")+1);youtubeSettings={container:k,containerId:k.id,pluginMediaElement:j,pluginId:l,
57
- videoId:b,height:h,width:g};mejs.PluginDetector.hasPluginVersion("flash",[10,0,0])?mejs.YouTubeApi.createFlash(youtubeSettings):mejs.YouTubeApi.enqueueIframe(youtubeSettings);break;case "vimeo":j.vimeoid=a.url.substr(a.url.lastIndexOf("/")+1);k.innerHTML='<iframe src="http://player.vimeo.com/video/'+j.vimeoid+'?portrait=0&byline=0&title=0" width="'+g+'" height="'+h+'" frameborder="0" class="mejs-shim"></iframe>'}c.style.display="none";c.removeAttribute("autoplay");return j},updateNative:function(a,
58
- b){var c=a.htmlMediaElement,d;for(d in mejs.HtmlMediaElement)c[d]=mejs.HtmlMediaElement[d];b.success(c,c);return c}};
59
- mejs.YouTubeApi={isIframeStarted:false,isIframeLoaded:false,loadIframeApi:function(){if(!this.isIframeStarted){var a=document.createElement("script");a.src="//www.youtube.com/player_api";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);this.isIframeStarted=true}},iframeQueue:[],enqueueIframe:function(a){if(this.isLoaded)this.createIframe(a);else{this.loadIframeApi();this.iframeQueue.push(a)}},createIframe:function(a){var b=a.pluginMediaElement,c=new YT.Player(a.containerId,
60
- {height:a.height,width:a.width,videoId:a.videoId,playerVars:{controls:0},events:{onReady:function(){a.pluginMediaElement.pluginApi=c;mejs.MediaPluginBridge.initPlugin(a.pluginId);setInterval(function(){mejs.YouTubeApi.createEvent(c,b,"timeupdate")},250)},onStateChange:function(d){mejs.YouTubeApi.handleStateChange(d.data,c,b)}}})},createEvent:function(a,b,c){c={type:c,target:b};if(a&&a.getDuration){b.currentTime=c.currentTime=a.getCurrentTime();b.duration=c.duration=a.getDuration();c.paused=b.paused;
61
- c.ended=b.ended;c.muted=a.isMuted();c.volume=a.getVolume()/100;c.bytesTotal=a.getVideoBytesTotal();c.bufferedBytes=a.getVideoBytesLoaded();var d=c.bufferedBytes/c.bytesTotal*c.duration;c.target.buffered=c.buffered={start:function(){return 0},end:function(){return d},length:1}}b.dispatchEvent(c.type,c)},iFrameReady:function(){for(this.isIframeLoaded=this.isLoaded=true;this.iframeQueue.length>0;)this.createIframe(this.iframeQueue.pop())},flashPlayers:{},createFlash:function(a){this.flashPlayers[a.pluginId]=
62
- a;var b,c="//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid="+a.pluginId+"&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0";if(mejs.MediaFeatures.isIE){b=document.createElement("div");a.container.appendChild(b);b.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+a.pluginId+'" width="'+a.width+'" height="'+a.height+'" class="mejs-shim"><param name="movie" value="'+
63
- c+'" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else a.container.innerHTML='<object type="application/x-shockwave-flash" id="'+a.pluginId+'" data="'+c+'" width="'+a.width+'" height="'+a.height+'" style="visibility: visible; " class="mejs-shim"><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"></object>'},flashReady:function(a){var b=this.flashPlayers[a],c=
64
- document.getElementById(a),d=b.pluginMediaElement;d.pluginApi=d.pluginElement=c;mejs.MediaPluginBridge.initPlugin(a);c.cueVideoById(b.videoId);a=b.containerId+"_callback";window[a]=function(e){mejs.YouTubeApi.handleStateChange(e,c,d)};c.addEventListener("onStateChange",a);setInterval(function(){mejs.YouTubeApi.createEvent(c,d,"timeupdate")},250)},handleStateChange:function(a,b,c){switch(a){case -1:c.paused=true;c.ended=true;mejs.YouTubeApi.createEvent(b,c,"loadedmetadata");break;case 0:c.paused=false;
65
- c.ended=true;mejs.YouTubeApi.createEvent(b,c,"ended");break;case 1:c.paused=false;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"play");mejs.YouTubeApi.createEvent(b,c,"playing");break;case 2:c.paused=true;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"pause");break;case 3:mejs.YouTubeApi.createEvent(b,c,"progress")}}};function onYouTubePlayerAPIReady(){mejs.YouTubeApi.iFrameReady()}function onYouTubePlayerReady(a){mejs.YouTubeApi.flashReady(a)}window.mejs=mejs;window.MediaElement=mejs.MediaElement;
66
- (function(a,b){var c={locale:{language:"",strings:{}},methods:{}};c.locale.getLanguage=function(){return c.locale.language||navigator.language};if(typeof mejsL10n!="undefined")c.locale.language=mejsL10n.language;c.locale.INIT_LANGUAGE=c.locale.getLanguage();c.methods.checkPlain=function(d){var e,f,g={"&":"&amp;",'"':"&quot;","<":"&lt;",">":"&gt;"};d=String(d);for(e in g)if(g.hasOwnProperty(e)){f=RegExp(e,"g");d=d.replace(f,g[e])}return d};c.methods.formatString=function(d,e){for(var f in e){switch(f.charAt(0)){case "@":e[f]=
67
- c.methods.checkPlain(e[f]);break;case "!":break;default:e[f]='<em class="placeholder">'+c.methods.checkPlain(e[f])+"</em>"}d=d.replace(f,e[f])}return d};c.methods.t=function(d,e,f){if(c.locale.strings&&c.locale.strings[f.context]&&c.locale.strings[f.context][d])d=c.locale.strings[f.context][d];if(e)d=c.methods.formatString(d,e);return d};c.t=function(d,e,f){if(typeof d==="string"&&d.length>0){var g=c.locale.getLanguage();f=f||{context:g};return c.methods.t(d,e,f)}else throw{name:"InvalidArgumentException",
68
- message:"First argument is either not a string or empty."};};b.i18n=c})(document,mejs);(function(a){if(typeof mejsL10n!="undefined")a[mejsL10n.language]=mejsL10n.strings})(mejs.i18n.locale.strings);(function(a){a.de={Fullscreen:"Vollbild","Go Fullscreen":"Vollbild an","Turn off Fullscreen":"Vollbild aus",Close:"Schlie\u00dfen"}})(mejs.i18n.locale.strings);
69
- (function(a){a.zh={Fullscreen:"\u5168\u87a2\u5e55","Go Fullscreen":"\u5168\u5c4f\u6a21\u5f0f","Turn off Fullscreen":"\u9000\u51fa\u5168\u5c4f\u6a21\u5f0f",Close:"\u95dc\u9589"}})(mejs.i18n.locale.strings);
70
-
71
- /*!
72
- * MediaElementPlayer
73
- * http://mediaelementjs.com/
74
  *
75
- * Creates a controller bar for HTML5 <video> add <audio> tags
76
- * using jQuery and MediaElement.js (HTML5 Flash/Silverlight wrapper)
77
  *
78
- * Copyright 2010-2013, John Dyer (http://j.hn/)
79
  * License: MIT
80
  *
81
- */if(typeof jQuery!="undefined")mejs.$=jQuery;else if(typeof ender!="undefined")mejs.$=ender;
82
- (function(f){mejs.MepDefaults={poster:"",showPosterWhenEnded:false,defaultVideoWidth:480,defaultVideoHeight:270,videoWidth:-1,videoHeight:-1,defaultAudioWidth:400,defaultAudioHeight:30,defaultSeekBackwardInterval:function(a){return a.duration*0.05},defaultSeekForwardInterval:function(a){return a.duration*0.05},audioWidth:-1,audioHeight:-1,startVolume:0.8,loop:false,autoRewind:true,enableAutosize:true,alwaysShowHours:false,showTimecodeFrameCount:false,framesPerSecond:25,autosizeProgress:true,alwaysShowControls:false,
83
- hideVideoControlsOnLoad:false,clickToPlayPause:true,iPadUseNativeControls:false,iPhoneUseNativeControls:false,AndroidUseNativeControls:false,features:["playpause","current","progress","duration","tracks","volume","fullscreen"],isVideo:true,enableKeyboard:true,pauseOtherPlayers:true,keyActions:[{keys:[32,179],action:function(a,b){b.paused||b.ended?b.play():b.pause()}},{keys:[38],action:function(a,b){b.setVolume(Math.min(b.volume+0.1,1))}},{keys:[40],action:function(a,b){b.setVolume(Math.max(b.volume-
84
- 0.1,0))}},{keys:[37,227],action:function(a,b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.max(b.currentTime-a.options.defaultSeekBackwardInterval(b),0);b.setCurrentTime(c)}}},{keys:[39,228],action:function(a,b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.min(b.currentTime+a.options.defaultSeekForwardInterval(b),b.duration);b.setCurrentTime(c)}}},{keys:[70],action:function(a){if(typeof a.enterFullScreen!=
85
- "undefined")a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}}]};mejs.mepIndex=0;mejs.players={};mejs.MediaElementPlayer=function(a,b){if(!(this instanceof mejs.MediaElementPlayer))return new mejs.MediaElementPlayer(a,b);this.$media=this.$node=f(a);this.node=this.media=this.$media[0];if(typeof this.node.player!="undefined")return this.node.player;else this.node.player=this;if(typeof b=="undefined")b=this.$node.data("mejsoptions");this.options=f.extend({},mejs.MepDefaults,b);this.id="mep_"+mejs.mepIndex++;
86
- mejs.players[this.id]=this;this.init();return this};mejs.MediaElementPlayer.prototype={hasFocus:false,controlsAreVisible:true,init:function(){var a=this,b=mejs.MediaFeatures,c=f.extend(true,{},a.options,{success:function(d,g){a.meReady(d,g)},error:function(d){a.handleError(d)}}),e=a.media.tagName.toLowerCase();a.isDynamic=e!=="audio"&&e!=="video";a.isVideo=a.isDynamic?a.options.isVideo:e!=="audio"&&a.options.isVideo;if(b.isiPad&&a.options.iPadUseNativeControls||b.isiPhone&&a.options.iPhoneUseNativeControls){a.$media.attr("controls",
87
- "controls");if(b.isiPad&&a.media.getAttribute("autoplay")!==null){a.media.load();a.media.play()}}else if(!(b.isAndroid&&a.options.AndroidUseNativeControls)){a.$media.removeAttr("controls");a.container=f('<div id="'+a.id+'" class="mejs-container '+(mejs.MediaFeatures.svg?"svg":"no-svg")+'"><div class="mejs-inner"><div class="mejs-mediaelement"></div><div class="mejs-layers"></div><div class="mejs-controls"></div><div class="mejs-clear"></div></div></div>').addClass(a.$media[0].className).insertBefore(a.$media);
88
- a.container.addClass((b.isAndroid?"mejs-android ":"")+(b.isiOS?"mejs-ios ":"")+(b.isiPad?"mejs-ipad ":"")+(b.isiPhone?"mejs-iphone ":"")+(a.isVideo?"mejs-video ":"mejs-audio "));if(b.isiOS){b=a.$media.clone();a.container.find(".mejs-mediaelement").append(b);a.$media.remove();a.$node=a.$media=b;a.node=a.media=b[0]}else a.container.find(".mejs-mediaelement").append(a.$media);a.controls=a.container.find(".mejs-controls");a.layers=a.container.find(".mejs-layers");b=a.isVideo?"video":"audio";e=b.substring(0,
89
- 1).toUpperCase()+b.substring(1);a.width=a.options[b+"Width"]>0||a.options[b+"Width"].toString().indexOf("%")>-1?a.options[b+"Width"]:a.media.style.width!==""&&a.media.style.width!==null?a.media.style.width:a.media.getAttribute("width")!==null?a.$media.attr("width"):a.options["default"+e+"Width"];a.height=a.options[b+"Height"]>0||a.options[b+"Height"].toString().indexOf("%")>-1?a.options[b+"Height"]:a.media.style.height!==""&&a.media.style.height!==null?a.media.style.height:a.$media[0].getAttribute("height")!==
90
- null?a.$media.attr("height"):a.options["default"+e+"Height"];a.setPlayerSize(a.width,a.height);c.pluginWidth=a.width;c.pluginHeight=a.height}mejs.MediaElement(a.$media[0],c);typeof a.container!="undefined"&&a.controlsAreVisible&&a.container.trigger("controlsshown")},showControls:function(a){var b=this;a=typeof a=="undefined"||a;if(!b.controlsAreVisible){if(a){b.controls.css("visibility","visible").stop(true,true).fadeIn(200,function(){b.controlsAreVisible=true;b.container.trigger("controlsshown")});
91
- b.container.find(".mejs-control").css("visibility","visible").stop(true,true).fadeIn(200,function(){b.controlsAreVisible=true})}else{b.controls.css("visibility","visible").css("display","block");b.container.find(".mejs-control").css("visibility","visible").css("display","block");b.controlsAreVisible=true;b.container.trigger("controlsshown")}b.setControlsSize()}},hideControls:function(a){var b=this;a=typeof a=="undefined"||a;if(!(!b.controlsAreVisible||b.options.alwaysShowControls))if(a){b.controls.stop(true,
92
- true).fadeOut(200,function(){f(this).css("visibility","hidden").css("display","block");b.controlsAreVisible=false;b.container.trigger("controlshidden")});b.container.find(".mejs-control").stop(true,true).fadeOut(200,function(){f(this).css("visibility","hidden").css("display","block")})}else{b.controls.css("visibility","hidden").css("display","block");b.container.find(".mejs-control").css("visibility","hidden").css("display","block");b.controlsAreVisible=false;b.container.trigger("controlshidden")}},
93
- controlsTimer:null,startControlsTimer:function(a){var b=this;a=typeof a!="undefined"?a:1500;b.killControlsTimer("start");b.controlsTimer=setTimeout(function(){b.hideControls();b.killControlsTimer("hide")},a)},killControlsTimer:function(){if(this.controlsTimer!==null){clearTimeout(this.controlsTimer);delete this.controlsTimer;this.controlsTimer=null}},controlsEnabled:true,disableControls:function(){this.killControlsTimer();this.hideControls(false);this.controlsEnabled=false},enableControls:function(){this.showControls(false);
94
- this.controlsEnabled=true},meReady:function(a,b){var c=this,e=mejs.MediaFeatures,d=b.getAttribute("autoplay");d=!(typeof d=="undefined"||d===null||d==="false");var g;if(!c.created){c.created=true;c.media=a;c.domNode=b;if(!(e.isAndroid&&c.options.AndroidUseNativeControls)&&!(e.isiPad&&c.options.iPadUseNativeControls)&&!(e.isiPhone&&c.options.iPhoneUseNativeControls)){c.buildposter(c,c.controls,c.layers,c.media);c.buildkeyboard(c,c.controls,c.layers,c.media);c.buildoverlays(c,c.controls,c.layers,c.media);
95
- c.findTracks();for(g in c.options.features){e=c.options.features[g];if(c["build"+e])try{c["build"+e](c,c.controls,c.layers,c.media)}catch(k){}}c.container.trigger("controlsready");c.setPlayerSize(c.width,c.height);c.setControlsSize();if(c.isVideo){if(mejs.MediaFeatures.hasTouch)c.$media.bind("touchstart",function(){if(c.controlsAreVisible)c.hideControls(false);else c.controlsEnabled&&c.showControls(false)});else{mejs.MediaElementPlayer.prototype.clickToPlayPauseCallback=function(){if(c.options.clickToPlayPause)c.media.paused?
96
- c.media.play():c.media.pause()};c.media.addEventListener("click",c.clickToPlayPauseCallback,false);c.container.bind("mouseenter mouseover",function(){if(c.controlsEnabled)if(!c.options.alwaysShowControls){c.killControlsTimer("enter");c.showControls();c.startControlsTimer(2500)}}).bind("mousemove",function(){if(c.controlsEnabled){c.controlsAreVisible||c.showControls();c.options.alwaysShowControls||c.startControlsTimer(2500)}}).bind("mouseleave",function(){c.controlsEnabled&&!c.media.paused&&!c.options.alwaysShowControls&&
97
- c.startControlsTimer(1E3)})}c.options.hideVideoControlsOnLoad&&c.hideControls(false);d&&!c.options.alwaysShowControls&&c.hideControls();c.options.enableAutosize&&c.media.addEventListener("loadedmetadata",function(j){if(c.options.videoHeight<=0&&c.domNode.getAttribute("height")===null&&!isNaN(j.target.videoHeight)){c.setPlayerSize(j.target.videoWidth,j.target.videoHeight);c.setControlsSize();c.media.setVideoSize(j.target.videoWidth,j.target.videoHeight)}},false)}a.addEventListener("play",function(){for(var j in mejs.players){var m=
98
- mejs.players[j];m.id!=c.id&&c.options.pauseOtherPlayers&&!m.paused&&!m.ended&&m.pause();m.hasFocus=false}c.hasFocus=true},false);c.media.addEventListener("ended",function(){if(c.options.autoRewind)try{c.media.setCurrentTime(0)}catch(j){}c.media.pause();c.setProgressRail&&c.setProgressRail();c.setCurrentRail&&c.setCurrentRail();if(c.options.loop)c.media.play();else!c.options.alwaysShowControls&&c.controlsEnabled&&c.showControls()},false);c.media.addEventListener("loadedmetadata",function(){c.updateDuration&&
99
- c.updateDuration();c.updateCurrent&&c.updateCurrent();if(!c.isFullScreen){c.setPlayerSize(c.width,c.height);c.setControlsSize()}},false);setTimeout(function(){c.setPlayerSize(c.width,c.height);c.setControlsSize()},50);c.globalBind("resize",function(){c.isFullScreen||mejs.MediaFeatures.hasTrueNativeFullScreen&&document.webkitIsFullScreen||c.setPlayerSize(c.width,c.height);c.setControlsSize()});c.media.pluginType=="youtube"&&c.container.find(".mejs-overlay-play").hide()}if(d&&a.pluginType=="native"){a.load();
100
- a.play()}if(c.options.success)typeof c.options.success=="string"?window[c.options.success](c.media,c.domNode,c):c.options.success(c.media,c.domNode,c)}},handleError:function(a){this.controls.hide();this.options.error&&this.options.error(a)},setPlayerSize:function(a,b){if(typeof a!="undefined")this.width=a;if(typeof b!="undefined")this.height=b;if(this.height.toString().indexOf("%")>0||this.$node.css("max-width")==="100%"||parseInt(this.$node.css("max-width").replace(/px/,""),10)/this.$node.offsetParent().width()===
101
- 1||this.$node[0].currentStyle&&this.$node[0].currentStyle.maxWidth==="100%"){var c=this.isVideo?this.media.videoWidth&&this.media.videoWidth>0?this.media.videoWidth:this.options.defaultVideoWidth:this.options.defaultAudioWidth,e=this.isVideo?this.media.videoHeight&&this.media.videoHeight>0?this.media.videoHeight:this.options.defaultVideoHeight:this.options.defaultAudioHeight,d=this.container.parent().closest(":visible").width();c=this.isVideo||!this.options.autosizeProgress?parseInt(d*e/c,10):e;if(this.container.parent()[0].tagName.toLowerCase()===
102
- "body"){d=f(window).width();c=f(window).height()}if(c!=0&&d!=0){this.container.width(d).height(c);this.$media.add(this.container.find(".mejs-shim")).width("100%").height("100%");this.isVideo&&this.media.setVideoSize&&this.media.setVideoSize(d,c);this.layers.children(".mejs-layer").width("100%").height("100%")}}else{this.container.width(this.width).height(this.height);this.layers.children(".mejs-layer").width(this.width).height(this.height)}d=this.layers.find(".mejs-overlay-play");c=d.find(".mejs-overlay-button");
103
- d.height(this.container.height()-this.controls.height());c.css("margin-top","-"+(c.height()/2-this.controls.height()/2).toString()+"px")},setControlsSize:function(){var a=0,b=0,c=this.controls.find(".mejs-time-rail"),e=this.controls.find(".mejs-time-total");this.controls.find(".mejs-time-current");this.controls.find(".mejs-time-loaded");var d=c.siblings();if(this.options&&!this.options.autosizeProgress)b=parseInt(c.css("width"));if(b===0||!b){d.each(function(){var g=f(this);if(g.css("position")!=
104
- "absolute"&&g.is(":visible"))a+=f(this).outerWidth(true)});b=this.controls.width()-a-(c.outerWidth(true)-c.width())}c.width(b);e.width(b-(e.outerWidth(true)-e.width()));this.setProgressRail&&this.setProgressRail();this.setCurrentRail&&this.setCurrentRail()},buildposter:function(a,b,c,e){var d=f('<div class="mejs-poster mejs-layer"></div>').appendTo(c);b=a.$media.attr("poster");if(a.options.poster!=="")b=a.options.poster;b!==""&&b!=null?this.setPoster(b):d.hide();e.addEventListener("play",function(){d.hide()},
105
- false);a.options.showPosterWhenEnded&&a.options.autoRewind&&e.addEventListener("ended",function(){d.show()},false)},setPoster:function(a){var b=this.container.find(".mejs-poster"),c=b.find("img");if(c.length==0)c=f('<img width="100%" height="100%" />').appendTo(b);c.attr("src",a);b.css({"background-image":"url("+a+")"})},buildoverlays:function(a,b,c,e){var d=this;if(a.isVideo){var g=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-loading"><span></span></div></div>').hide().appendTo(c),
106
- k=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-error"></div></div>').hide().appendTo(c),j=f('<div class="mejs-overlay mejs-layer mejs-overlay-play"><div class="mejs-overlay-button"></div></div>').appendTo(c).click(function(){if(d.options.clickToPlayPause)e.paused?e.play():e.pause()});e.addEventListener("play",function(){j.hide();g.hide();b.find(".mejs-time-buffering").hide();k.hide()},false);e.addEventListener("playing",function(){j.hide();g.hide();b.find(".mejs-time-buffering").hide();
107
- k.hide()},false);e.addEventListener("seeking",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("seeked",function(){g.hide();b.find(".mejs-time-buffering").hide()},false);e.addEventListener("pause",function(){mejs.MediaFeatures.isiPhone||j.show()},false);e.addEventListener("waiting",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("loadeddata",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("canplay",
108
- function(){g.hide();b.find(".mejs-time-buffering").hide()},false);e.addEventListener("error",function(){g.hide();b.find(".mejs-time-buffering").hide();k.show();k.find("mejs-overlay-error").html("Error loading this resource")},false)}},buildkeyboard:function(a,b,c,e){this.globalBind("keydown",function(d){if(a.hasFocus&&a.options.enableKeyboard)for(var g=0,k=a.options.keyActions.length;g<k;g++)for(var j=a.options.keyActions[g],m=0,q=j.keys.length;m<q;m++)if(d.keyCode==j.keys[m]){d.preventDefault();
109
- j.action(a,e,d.keyCode);return false}return true});this.globalBind("click",function(d){if(f(d.target).closest(".mejs-container").length==0)a.hasFocus=false})},findTracks:function(){var a=this,b=a.$media.find("track");a.tracks=[];b.each(function(c,e){e=f(e);a.tracks.push({srclang:e.attr("srclang")?e.attr("srclang").toLowerCase():"",src:e.attr("src"),kind:e.attr("kind"),label:e.attr("label")||"",entries:[],isLoaded:false})})},changeSkin:function(a){this.container[0].className="mejs-container "+a;this.setPlayerSize(this.width,
110
- this.height);this.setControlsSize()},play:function(){this.media.play()},pause:function(){try{this.media.pause()}catch(a){}},load:function(){this.media.load()},setMuted:function(a){this.media.setMuted(a)},setCurrentTime:function(a){this.media.setCurrentTime(a)},getCurrentTime:function(){return this.media.currentTime},setVolume:function(a){this.media.setVolume(a)},getVolume:function(){return this.media.volume},setSrc:function(a){this.media.setSrc(a)},remove:function(){var a,b;for(a in this.options.features){b=
111
- this.options.features[a];if(this["clean"+b])try{this["clean"+b](this)}catch(c){}}if(this.isDynamic)this.$node.insertBefore(this.container);else{this.$media.prop("controls",true);this.$node.clone().show().insertBefore(this.container);this.$node.remove()}this.media.pluginType!=="native"&&this.media.remove();delete mejs.players[this.id];this.container.remove();this.globalUnbind();delete this.node.player}};(function(){function a(c,e){var d={d:[],w:[]};f.each((c||"").split(" "),function(g,k){var j=k+"."+
112
- e;if(j.indexOf(".")===0){d.d.push(j);d.w.push(j)}else d[b.test(k)?"w":"d"].push(j)});d.d=d.d.join(" ");d.w=d.w.join(" ");return d}var b=/^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;mejs.MediaElementPlayer.prototype.globalBind=function(c,e,d){c=a(c,this.id);c.d&&f(document).bind(c.d,e,d);c.w&&f(window).bind(c.w,e,d)};mejs.MediaElementPlayer.prototype.globalUnbind=function(c,e){c=a(c,this.id);c.d&&f(document).unbind(c.d,e);c.w&&f(window).unbind(c.w,
113
- e)}})();if(typeof jQuery!="undefined")jQuery.fn.mediaelementplayer=function(a){a===false?this.each(function(){var b=jQuery(this).data("mediaelementplayer");b&&b.remove();jQuery(this).removeData("mediaelementplayer")}):this.each(function(){jQuery(this).data("mediaelementplayer",new mejs.MediaElementPlayer(this,a))});return this};f(document).ready(function(){f(".mejs-player").mediaelementplayer()});window.MediaElementPlayer=mejs.MediaElementPlayer})(mejs.$);
114
- (function(f){f.extend(mejs.MepDefaults,{playpauseText:mejs.i18n.t("Play/Pause")});f.extend(MediaElementPlayer.prototype,{buildplaypause:function(a,b,c,e){var d=f('<div class="mejs-button mejs-playpause-button mejs-play" ><button type="button" aria-controls="'+this.id+'" title="'+this.options.playpauseText+'" aria-label="'+this.options.playpauseText+'"></button></div>').appendTo(b).click(function(g){g.preventDefault();e.paused?e.play():e.pause();return false});e.addEventListener("play",function(){d.removeClass("mejs-play").addClass("mejs-pause")},
115
- false);e.addEventListener("playing",function(){d.removeClass("mejs-play").addClass("mejs-pause")},false);e.addEventListener("pause",function(){d.removeClass("mejs-pause").addClass("mejs-play")},false);e.addEventListener("paused",function(){d.removeClass("mejs-pause").addClass("mejs-play")},false)}})})(mejs.$);
116
- (function(f){f.extend(mejs.MepDefaults,{stopText:"Stop"});f.extend(MediaElementPlayer.prototype,{buildstop:function(a,b,c,e){f('<div class="mejs-button mejs-stop-button mejs-stop"><button type="button" aria-controls="'+this.id+'" title="'+this.options.stopText+'" aria-label="'+this.options.stopText+'"></button></div>').appendTo(b).click(function(){e.paused||e.pause();if(e.currentTime>0){e.setCurrentTime(0);e.pause();b.find(".mejs-time-current").width("0px");b.find(".mejs-time-handle").css("left",
117
- "0px");b.find(".mejs-time-float-current").html(mejs.Utility.secondsToTimeCode(0));b.find(".mejs-currenttime").html(mejs.Utility.secondsToTimeCode(0));c.find(".mejs-poster").show()}})}})})(mejs.$);
118
- (function(f){f.extend(MediaElementPlayer.prototype,{buildprogress:function(a,b,c,e){f('<div class="mejs-time-rail"><span class="mejs-time-total"><span class="mejs-time-buffering"></span><span class="mejs-time-loaded"></span><span class="mejs-time-current"></span><span class="mejs-time-handle"></span><span class="mejs-time-float"><span class="mejs-time-float-current">00:00</span><span class="mejs-time-float-corner"></span></span></span></div>').appendTo(b);b.find(".mejs-time-buffering").hide();var d=
119
- this,g=b.find(".mejs-time-total");c=b.find(".mejs-time-loaded");var k=b.find(".mejs-time-current"),j=b.find(".mejs-time-handle"),m=b.find(".mejs-time-float"),q=b.find(".mejs-time-float-current"),p=function(h){h=h.pageX;var l=g.offset(),r=g.outerWidth(true),n=0,o=n=0;if(e.duration){if(h<l.left)h=l.left;else if(h>r+l.left)h=r+l.left;o=h-l.left;n=o/r;n=n<=0.02?0:n*e.duration;t&&n!==e.currentTime&&e.setCurrentTime(n);if(!mejs.MediaFeatures.hasTouch){m.css("left",o);q.html(mejs.Utility.secondsToTimeCode(n));
120
- m.show()}}},t=false;g.bind("mousedown",function(h){if(h.which===1){t=true;p(h);d.globalBind("mousemove.dur",function(l){p(l)});d.globalBind("mouseup.dur",function(){t=false;m.hide();d.globalUnbind(".dur")});return false}}).bind("mouseenter",function(){d.globalBind("mousemove.dur",function(h){p(h)});mejs.MediaFeatures.hasTouch||m.show()}).bind("mouseleave",function(){if(!t){d.globalUnbind(".dur");m.hide()}});e.addEventListener("progress",function(h){a.setProgressRail(h);a.setCurrentRail(h)},false);
121
- e.addEventListener("timeupdate",function(h){a.setProgressRail(h);a.setCurrentRail(h)},false);d.loaded=c;d.total=g;d.current=k;d.handle=j},setProgressRail:function(a){var b=a!=undefined?a.target:this.media,c=null;if(b&&b.buffered&&b.buffered.length>0&&b.buffered.end&&b.duration)c=b.buffered.end(0)/b.duration;else if(b&&b.bytesTotal!=undefined&&b.bytesTotal>0&&b.bufferedBytes!=undefined)c=b.bufferedBytes/b.bytesTotal;else if(a&&a.lengthComputable&&a.total!=0)c=a.loaded/a.total;if(c!==null){c=Math.min(1,
122
- Math.max(0,c));this.loaded&&this.total&&this.loaded.width(this.total.width()*c)}},setCurrentRail:function(){if(this.media.currentTime!=undefined&&this.media.duration)if(this.total&&this.handle){var a=Math.round(this.total.width()*this.media.currentTime/this.media.duration),b=a-Math.round(this.handle.outerWidth(true)/2);this.current.width(a);this.handle.css("left",b)}}})})(mejs.$);
123
- (function(f){f.extend(mejs.MepDefaults,{duration:-1,timeAndDurationSeparator:"<span> | </span>"});f.extend(MediaElementPlayer.prototype,{buildcurrent:function(a,b,c,e){f('<div class="mejs-time"><span class="mejs-currenttime">'+(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00")+"</span></div>").appendTo(b);this.currenttime=this.controls.find(".mejs-currenttime");e.addEventListener("timeupdate",function(){a.updateCurrent()},false)},buildduration:function(a,b,
124
- c,e){if(b.children().last().find(".mejs-currenttime").length>0)f(this.options.timeAndDurationSeparator+'<span class="mejs-duration">'+(this.options.duration>0?mejs.Utility.secondsToTimeCode(this.options.duration,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25):(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00"))+"</span>").appendTo(b.find(".mejs-time"));else{b.find(".mejs-currenttime").parent().addClass("mejs-currenttime-container");
125
- f('<div class="mejs-time mejs-duration-container"><span class="mejs-duration">'+(this.options.duration>0?mejs.Utility.secondsToTimeCode(this.options.duration,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25):(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00"))+"</span></div>").appendTo(b)}this.durationD=this.controls.find(".mejs-duration");e.addEventListener("timeupdate",function(){a.updateDuration()},
126
- false)},updateCurrent:function(){if(this.currenttime)this.currenttime.html(mejs.Utility.secondsToTimeCode(this.media.currentTime,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25))},updateDuration:function(){this.container.toggleClass("mejs-long-video",this.media.duration>3600);if(this.durationD&&(this.options.duration>0||this.media.duration))this.durationD.html(mejs.Utility.secondsToTimeCode(this.options.duration>0?this.options.duration:
127
- this.media.duration,this.options.alwaysShowHours,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25))}})})(mejs.$);
128
- (function(f){f.extend(mejs.MepDefaults,{muteText:mejs.i18n.t("Mute Toggle"),hideVolumeOnTouchDevices:true,audioVolume:"horizontal",videoVolume:"vertical"});f.extend(MediaElementPlayer.prototype,{buildvolume:function(a,b,c,e){if(!(mejs.MediaFeatures.hasTouch&&this.options.hideVolumeOnTouchDevices)){var d=this,g=d.isVideo?d.options.videoVolume:d.options.audioVolume,k=g=="horizontal"?f('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+d.id+'" title="'+d.options.muteText+
129
- '" aria-label="'+d.options.muteText+'"></button></div><div class="mejs-horizontal-volume-slider"><div class="mejs-horizontal-volume-total"></div><div class="mejs-horizontal-volume-current"></div><div class="mejs-horizontal-volume-handle"></div></div>').appendTo(b):f('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+d.id+'" title="'+d.options.muteText+'" aria-label="'+d.options.muteText+'"></button><div class="mejs-volume-slider"><div class="mejs-volume-total"></div><div class="mejs-volume-current"></div><div class="mejs-volume-handle"></div></div></div>').appendTo(b),
130
- j=d.container.find(".mejs-volume-slider, .mejs-horizontal-volume-slider"),m=d.container.find(".mejs-volume-total, .mejs-horizontal-volume-total"),q=d.container.find(".mejs-volume-current, .mejs-horizontal-volume-current"),p=d.container.find(".mejs-volume-handle, .mejs-horizontal-volume-handle"),t=function(n,o){if(!j.is(":visible")&&typeof o=="undefined"){j.show();t(n,true);j.hide()}else{n=Math.max(0,n);n=Math.min(n,1);n==0?k.removeClass("mejs-mute").addClass("mejs-unmute"):k.removeClass("mejs-unmute").addClass("mejs-mute");
131
- if(g=="vertical"){var s=m.height(),u=m.position(),v=s-s*n;p.css("top",Math.round(u.top+v-p.height()/2));q.height(s-v);q.css("top",u.top+v)}else{s=m.width();u=m.position();s=s*n;p.css("left",Math.round(u.left+s-p.width()/2));q.width(Math.round(s))}}},h=function(n){var o=null,s=m.offset();if(g=="vertical"){o=m.height();parseInt(m.css("top").replace(/px/,""),10);o=(o-(n.pageY-s.top))/o;if(s.top==0||s.left==0)return}else{o=m.width();o=(n.pageX-s.left)/o}o=Math.max(0,o);o=Math.min(o,1);t(o);o==0?e.setMuted(true):
132
- e.setMuted(false);e.setVolume(o)},l=false,r=false;k.hover(function(){j.show();r=true},function(){r=false;!l&&g=="vertical"&&j.hide()});j.bind("mouseover",function(){r=true}).bind("mousedown",function(n){h(n);d.globalBind("mousemove.vol",function(o){h(o)});d.globalBind("mouseup.vol",function(){l=false;d.globalUnbind(".vol");!r&&g=="vertical"&&j.hide()});l=true;return false});k.find("button").click(function(){e.setMuted(!e.muted)});e.addEventListener("volumechange",function(){if(!l)if(e.muted){t(0);
133
- k.removeClass("mejs-mute").addClass("mejs-unmute")}else{t(e.volume);k.removeClass("mejs-unmute").addClass("mejs-mute")}},false);if(d.container.is(":visible")){t(a.options.startVolume);a.options.startVolume===0&&e.setMuted(true);e.pluginType==="native"&&e.setVolume(a.options.startVolume)}}}})})(mejs.$);
134
- (function(f){f.extend(mejs.MepDefaults,{usePluginFullScreen:true,newWindowCallback:function(){return""},fullscreenText:mejs.i18n.t("Fullscreen")});f.extend(MediaElementPlayer.prototype,{isFullScreen:false,isNativeFullScreen:false,isInIframe:false,buildfullscreen:function(a,b,c,e){if(a.isVideo){a.isInIframe=window.location!=window.parent.location;if(mejs.MediaFeatures.hasTrueNativeFullScreen){c=function(){if(a.isFullScreen)if(mejs.MediaFeatures.isFullScreen()){a.isNativeFullScreen=true;a.setControlsSize()}else{a.isNativeFullScreen=
135
- false;a.exitFullScreen()}};mejs.MediaFeatures.hasMozNativeFullScreen?a.globalBind(mejs.MediaFeatures.fullScreenEventName,c):a.container.bind(mejs.MediaFeatures.fullScreenEventName,c)}var d=this,g=f('<div class="mejs-button mejs-fullscreen-button"><button type="button" aria-controls="'+d.id+'" title="'+d.options.fullscreenText+'" aria-label="'+d.options.fullscreenText+'"></button></div>').appendTo(b);if(d.media.pluginType==="native"||!d.options.usePluginFullScreen&&!mejs.MediaFeatures.isFirefox)g.click(function(){mejs.MediaFeatures.hasTrueNativeFullScreen&&
136
- mejs.MediaFeatures.isFullScreen()||a.isFullScreen?a.exitFullScreen():a.enterFullScreen()});else{var k=null;if(function(){var h=document.createElement("x"),l=document.documentElement,r=window.getComputedStyle;if(!("pointerEvents"in h.style))return false;h.style.pointerEvents="auto";h.style.pointerEvents="x";l.appendChild(h);r=r&&r(h,"").pointerEvents==="auto";l.removeChild(h);return!!r}()&&!mejs.MediaFeatures.isOpera){var j=false,m=function(){if(j){for(var h in q)q[h].hide();g.css("pointer-events",
137
- "");d.controls.css("pointer-events","");d.media.removeEventListener("click",d.clickToPlayPauseCallback);j=false}},q={};b=["top","left","right","bottom"];var p,t=function(){var h=g.offset().left-d.container.offset().left,l=g.offset().top-d.container.offset().top,r=g.outerWidth(true),n=g.outerHeight(true),o=d.container.width(),s=d.container.height();for(p in q)q[p].css({position:"absolute",top:0,left:0});q.top.width(o).height(l);q.left.width(h).height(n).css({top:l});q.right.width(o-h-r).height(n).css({top:l,
138
- left:h+r});q.bottom.width(o).height(s-n-l).css({top:l+n})};d.globalBind("resize",function(){t()});p=0;for(c=b.length;p<c;p++)q[b[p]]=f('<div class="mejs-fullscreen-hover" />').appendTo(d.container).mouseover(m).hide();g.on("mouseover",function(){if(!d.isFullScreen){var h=g.offset(),l=a.container.offset();e.positionFullscreenButton(h.left-l.left,h.top-l.top,false);g.css("pointer-events","none");d.controls.css("pointer-events","none");d.media.addEventListener("click",d.clickToPlayPauseCallback);for(p in q)q[p].show();
139
- t();j=true}});e.addEventListener("fullscreenchange",function(){d.isFullScreen=!d.isFullScreen;d.isFullScreen?d.media.removeEventListener("click",d.clickToPlayPauseCallback):d.media.addEventListener("click",d.clickToPlayPauseCallback);m()});d.globalBind("mousemove",function(h){if(j){var l=g.offset();if(h.pageY<l.top||h.pageY>l.top+g.outerHeight(true)||h.pageX<l.left||h.pageX>l.left+g.outerWidth(true)){g.css("pointer-events","");d.controls.css("pointer-events","");j=false}}})}else g.on("mouseover",
140
- function(){if(k!==null){clearTimeout(k);delete k}var h=g.offset(),l=a.container.offset();e.positionFullscreenButton(h.left-l.left,h.top-l.top,true)}).on("mouseout",function(){if(k!==null){clearTimeout(k);delete k}k=setTimeout(function(){e.hideFullscreenButton()},1500)})}a.fullscreenBtn=g;d.globalBind("keydown",function(h){if((mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen()||d.isFullScreen)&&h.keyCode==27)a.exitFullScreen()})}},cleanfullscreen:function(a){a.exitFullScreen()},
141
- containerSizeTimeout:null,enterFullScreen:function(){var a=this;if(!(a.media.pluginType!=="native"&&(mejs.MediaFeatures.isFirefox||a.options.usePluginFullScreen))){f(document.documentElement).addClass("mejs-fullscreen");normalHeight=a.container.height();normalWidth=a.container.width();if(a.media.pluginType==="native")if(mejs.MediaFeatures.hasTrueNativeFullScreen){mejs.MediaFeatures.requestFullScreen(a.container[0]);a.isInIframe&&setTimeout(function c(){if(a.isNativeFullScreen)f(window).width()!==
142
- screen.width?a.exitFullScreen():setTimeout(c,500)},500)}else if(mejs.MediaFeatures.hasSemiNativeFullScreen){a.media.webkitEnterFullscreen();return}if(a.isInIframe){var b=a.options.newWindowCallback(this);if(b!=="")if(mejs.MediaFeatures.hasTrueNativeFullScreen)setTimeout(function(){if(!a.isNativeFullScreen){a.pause();window.open(b,a.id,"top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no")}},250);else{a.pause();window.open(b,a.id,
143
- "top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no");return}}a.container.addClass("mejs-container-fullscreen").width("100%").height("100%");a.containerSizeTimeout=setTimeout(function(){a.container.css({width:"100%",height:"100%"});a.setControlsSize()},500);if(a.media.pluginType==="native")a.$media.width("100%").height("100%");else{a.container.find(".mejs-shim").width("100%").height("100%");a.media.setVideoSize(f(window).width(),
144
- f(window).height())}a.layers.children("div").width("100%").height("100%");a.fullscreenBtn&&a.fullscreenBtn.removeClass("mejs-fullscreen").addClass("mejs-unfullscreen");a.setControlsSize();a.isFullScreen=true}},exitFullScreen:function(){clearTimeout(this.containerSizeTimeout);if(this.media.pluginType!=="native"&&mejs.MediaFeatures.isFirefox)this.media.setFullscreen(false);else{if(mejs.MediaFeatures.hasTrueNativeFullScreen&&(mejs.MediaFeatures.isFullScreen()||this.isFullScreen))mejs.MediaFeatures.cancelFullScreen();
145
- f(document.documentElement).removeClass("mejs-fullscreen");this.container.removeClass("mejs-container-fullscreen").width(normalWidth).height(normalHeight);if(this.media.pluginType==="native")this.$media.width(normalWidth).height(normalHeight);else{this.container.find(".mejs-shim").width(normalWidth).height(normalHeight);this.media.setVideoSize(normalWidth,normalHeight)}this.layers.children("div").width(normalWidth).height(normalHeight);this.fullscreenBtn.removeClass("mejs-unfullscreen").addClass("mejs-fullscreen");
146
- this.setControlsSize();this.isFullScreen=false}}})})(mejs.$);
147
- (function(f){f.extend(mejs.MepDefaults,{startLanguage:"",tracksText:mejs.i18n.t("Captions/Subtitles"),hideCaptionsButtonWhenEmpty:true,toggleCaptionsButtonWhenOnlyOne:false,slidesSelector:""});f.extend(MediaElementPlayer.prototype,{hasChapters:false,buildtracks:function(a,b,c,e){if(a.tracks.length!=0){var d;if(this.domNode.textTracks)for(d=this.domNode.textTracks.length-1;d>=0;d--)this.domNode.textTracks[d].mode="hidden";a.chapters=f('<div class="mejs-chapters mejs-layer"></div>').prependTo(c).hide();a.captions=
148
- f('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover"><span class="mejs-captions-text"></span></div></div>').prependTo(c).hide();a.captionsText=a.captions.find(".mejs-captions-text");a.captionsButton=f('<div class="mejs-button mejs-captions-button"><button type="button" aria-controls="'+this.id+'" title="'+this.options.tracksText+'" aria-label="'+this.options.tracksText+'"></button><div class="mejs-captions-selector"><ul><li><input type="radio" name="'+
149
- a.id+'_captions" id="'+a.id+'_captions_none" value="none" checked="checked" /><label for="'+a.id+'_captions_none">'+mejs.i18n.t("None")+"</label></li></ul></div></div>").appendTo(b);for(d=b=0;d<a.tracks.length;d++)a.tracks[d].kind=="subtitles"&&b++;this.options.toggleCaptionsButtonWhenOnlyOne&&b==1?a.captionsButton.on("click",function(){a.setTrack(a.selectedTrack==null?a.tracks[0].srclang:"none")}):a.captionsButton.hover(function(){f(this).find(".mejs-captions-selector").css("visibility","visible")},
150
- function(){f(this).find(".mejs-captions-selector").css("visibility","hidden")}).on("click","input[type=radio]",function(){lang=this.value;a.setTrack(lang)});a.options.alwaysShowControls?a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover"):a.container.bind("controlsshown",function(){a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover")}).bind("controlshidden",function(){e.paused||a.container.find(".mejs-captions-position").removeClass("mejs-captions-position-hover")});
151
- a.trackToLoad=-1;a.selectedTrack=null;a.isLoadingTrack=false;for(d=0;d<a.tracks.length;d++)a.tracks[d].kind=="subtitles"&&a.addTrackButton(a.tracks[d].srclang,a.tracks[d].label);a.loadNextTrack();e.addEventListener("timeupdate",function(){a.displayCaptions()},false);if(a.options.slidesSelector!=""){a.slidesContainer=f(a.options.slidesSelector);e.addEventListener("timeupdate",function(){a.displaySlides()},false)}e.addEventListener("loadedmetadata",function(){a.displayChapters()},false);a.container.hover(function(){if(a.hasChapters){a.chapters.css("visibility",
152
- "visible");a.chapters.fadeIn(200).height(a.chapters.find(".mejs-chapter").outerHeight())}},function(){a.hasChapters&&!e.paused&&a.chapters.fadeOut(200,function(){f(this).css("visibility","hidden");f(this).css("display","block")})});a.node.getAttribute("autoplay")!==null&&a.chapters.css("visibility","hidden")}},setTrack:function(a){var b;if(a=="none"){this.selectedTrack=null;this.captionsButton.removeClass("mejs-captions-enabled")}else for(b=0;b<this.tracks.length;b++)if(this.tracks[b].srclang==a){this.selectedTrack==
153
- null&&this.captionsButton.addClass("mejs-captions-enabled");this.selectedTrack=this.tracks[b];this.captions.attr("lang",this.selectedTrack.srclang);this.displayCaptions();break}},loadNextTrack:function(){this.trackToLoad++;if(this.trackToLoad<this.tracks.length){this.isLoadingTrack=true;this.loadTrack(this.trackToLoad)}else{this.isLoadingTrack=false;this.checkForTracks()}},loadTrack:function(a){var b=this,c=b.tracks[a];f.ajax({url:c.src,dataType:"text",success:function(e){c.entries=typeof e=="string"&&
154
- /<tt\s+xml/ig.exec(e)?mejs.TrackFormatParser.dfxp.parse(e):mejs.TrackFormatParser.webvvt.parse(e);c.isLoaded=true;b.enableTrackButton(c.srclang,c.label);b.loadNextTrack();c.kind=="chapters"&&b.media.addEventListener("play",function(){b.media.duration>0&&b.displayChapters(c)},false);c.kind=="slides"&&b.setupSlides(c)},error:function(){b.loadNextTrack()}})},enableTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]||a;this.captionsButton.find("input[value="+a+"]").prop("disabled",false).siblings("label").html(b);
155
- this.options.startLanguage==a&&f("#"+this.id+"_captions_"+a).click();this.adjustLanguageBox()},addTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]||a;this.captionsButton.find("ul").append(f('<li><input type="radio" name="'+this.id+'_captions" id="'+this.id+"_captions_"+a+'" value="'+a+'" disabled="disabled" /><label for="'+this.id+"_captions_"+a+'">'+b+" (loading)</label></li>"));this.adjustLanguageBox();this.container.find(".mejs-captions-translations option[value="+a+"]").remove()},
156
- adjustLanguageBox:function(){this.captionsButton.find(".mejs-captions-selector").height(this.captionsButton.find(".mejs-captions-selector ul").outerHeight(true)+this.captionsButton.find(".mejs-captions-translations").outerHeight(true))},checkForTracks:function(){var a=false;if(this.options.hideCaptionsButtonWhenEmpty){for(i=0;i<this.tracks.length;i++)if(this.tracks[i].kind=="subtitles"){a=true;break}if(!a){this.captionsButton.hide();this.setControlsSize()}}},displayCaptions:function(){if(typeof this.tracks!=
157
- "undefined"){var a,b=this.selectedTrack;if(b!=null&&b.isLoaded)for(a=0;a<b.entries.times.length;a++)if(this.media.currentTime>=b.entries.times[a].start&&this.media.currentTime<=b.entries.times[a].stop){this.captionsText.html(b.entries.text[a]);this.captions.show().height(0);return}this.captions.hide()}},setupSlides:function(a){this.slides=a;this.slides.entries.imgs=[this.slides.entries.text.length];this.showSlide(0)},showSlide:function(a){if(!(typeof this.tracks=="undefined"||typeof this.slidesContainer==
158
- "undefined")){var b=this,c=b.slides.entries.text[a],e=b.slides.entries.imgs[a];if(typeof e=="undefined"||typeof e.fadeIn=="undefined")b.slides.entries.imgs[a]=e=f('<img src="'+c+'">').on("load",function(){e.appendTo(b.slidesContainer).hide().fadeIn().siblings(":visible").fadeOut()});else!e.is(":visible")&&!e.is(":animated")&&e.fadeIn().siblings(":visible").fadeOut()}},displaySlides:function(){if(typeof this.slides!="undefined"){var a=this.slides,b;for(b=0;b<a.entries.times.length;b++)if(this.media.currentTime>=
159
- a.entries.times[b].start&&this.media.currentTime<=a.entries.times[b].stop){this.showSlide(b);break}}},displayChapters:function(){var a;for(a=0;a<this.tracks.length;a++)if(this.tracks[a].kind=="chapters"&&this.tracks[a].isLoaded){this.drawChapters(this.tracks[a]);this.hasChapters=true;break}},drawChapters:function(a){var b=this,c,e,d=e=0;b.chapters.empty();for(c=0;c<a.entries.times.length;c++){e=a.entries.times[c].stop-a.entries.times[c].start;e=Math.floor(e/b.media.duration*100);if(e+d>100||c==a.entries.times.length-
160
- 1&&e+d<100)e=100-d;b.chapters.append(f('<div class="mejs-chapter" rel="'+a.entries.times[c].start+'" style="left: '+d.toString()+"%;width: "+e.toString()+'%;"><div class="mejs-chapter-block'+(c==a.entries.times.length-1?" mejs-chapter-block-last":"")+'"><span class="ch-title">'+a.entries.text[c]+'</span><span class="ch-time">'+mejs.Utility.secondsToTimeCode(a.entries.times[c].start)+"&ndash;"+mejs.Utility.secondsToTimeCode(a.entries.times[c].stop)+"</span></div></div>"));d+=e}b.chapters.find("div.mejs-chapter").click(function(){b.media.setCurrentTime(parseFloat(f(this).attr("rel")));
161
- b.media.paused&&b.media.play()});b.chapters.show()}});mejs.language={codes:{af:"Afrikaans",sq:"Albanian",ar:"Arabic",be:"Belarusian",bg:"Bulgarian",ca:"Catalan",zh:"Chinese","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",et:"Estonian",tl:"Filipino",fi:"Finnish",fr:"French",gl:"Galician",de:"German",el:"Greek",ht:"Haitian Creole",iw:"Hebrew",hi:"Hindi",hu:"Hungarian",is:"Icelandic",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",
162
- ko:"Korean",lv:"Latvian",lt:"Lithuanian",mk:"Macedonian",ms:"Malay",mt:"Maltese",no:"Norwegian",fa:"Persian",pl:"Polish",pt:"Portuguese",ro:"Romanian",ru:"Russian",sr:"Serbian",sk:"Slovak",sl:"Slovenian",es:"Spanish",sw:"Swahili",sv:"Swedish",tl:"Tagalog",th:"Thai",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese",cy:"Welsh",yi:"Yiddish"}};mejs.TrackFormatParser={webvvt:{pattern_identifier:/^([a-zA-z]+-)?[0-9]+$/,pattern_timecode:/^([0-9]{2}:[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ([0-9]{2}:[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,
163
- parse:function(a){var b=0;a=mejs.TrackFormatParser.split2(a,/\r?\n/);for(var c={text:[],times:[]},e,d;b<a.length;b++)if(this.pattern_identifier.exec(a[b])){b++;if((e=this.pattern_timecode.exec(a[b]))&&b<a.length){b++;d=a[b];for(b++;a[b]!==""&&b<a.length;){d=d+"\n"+a[b];b++}d=f.trim(d).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a href='$1' target='_blank'>$1</a>");c.text.push(d);c.times.push({start:mejs.Utility.convertSMPTEtoSeconds(e[1])==0?0.2:mejs.Utility.convertSMPTEtoSeconds(e[1]),
164
- stop:mejs.Utility.convertSMPTEtoSeconds(e[3]),settings:e[5]})}}return c}},dfxp:{parse:function(a){a=f(a).filter("tt");var b=0;b=a.children("div").eq(0);var c=b.find("p");b=a.find("#"+b.attr("style"));var e,d;a={text:[],times:[]};if(b.length){d=b.removeAttr("id").get(0).attributes;if(d.length){e={};for(b=0;b<d.length;b++)e[d[b].name.split(":")[1]]=d[b].value}}for(b=0;b<c.length;b++){var g;d={start:null,stop:null,style:null};if(c.eq(b).attr("begin"))d.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("begin"));
165
- if(!d.start&&c.eq(b-1).attr("end"))d.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b-1).attr("end"));if(c.eq(b).attr("end"))d.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("end"));if(!d.stop&&c.eq(b+1).attr("begin"))d.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b+1).attr("begin"));if(e){g="";for(var k in e)g+=k+":"+e[k]+";"}if(g)d.style=g;if(d.start==0)d.start=0.2;a.times.push(d);d=f.trim(c.eq(b).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,
166
- "<a href='$1' target='_blank'>$1</a>");a.text.push(d);if(a.times.start==0)a.times.start=2}return a}},split2:function(a,b){return a.split(b)}};if("x\n\ny".split(/\n/gi).length!=3)mejs.TrackFormatParser.split2=function(a,b){var c=[],e="",d;for(d=0;d<a.length;d++){e+=a.substring(d,d+1);if(b.test(e)){c.push(e.replace(b,""));e=""}}c.push(e);return c}})(mejs.$);
167
- (function(f){f.extend(mejs.MepDefaults,{contextMenuItems:[{render:function(a){if(typeof a.enterFullScreen=="undefined")return null;return a.isFullScreen?mejs.i18n.t("Turn off Fullscreen"):mejs.i18n.t("Go Fullscreen")},click:function(a){a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}},{render:function(a){return a.media.muted?mejs.i18n.t("Unmute"):mejs.i18n.t("Mute")},click:function(a){a.media.muted?a.setMuted(false):a.setMuted(true)}},{isSeparator:true},{render:function(){return mejs.i18n.t("Download Video")},
168
- click:function(a){window.location.href=a.media.currentSrc}}]});f.extend(MediaElementPlayer.prototype,{buildcontextmenu:function(a){a.contextMenu=f('<div class="mejs-contextmenu"></div>').appendTo(f("body")).hide();a.container.bind("contextmenu",function(b){if(a.isContextMenuEnabled){b.preventDefault();a.renderContextMenu(b.clientX-1,b.clientY-1);return false}});a.container.bind("click",function(){a.contextMenu.hide()});a.contextMenu.bind("mouseleave",function(){a.startContextMenuTimer()})},cleancontextmenu:function(a){a.contextMenu.remove()},
169
- isContextMenuEnabled:true,enableContextMenu:function(){this.isContextMenuEnabled=true},disableContextMenu:function(){this.isContextMenuEnabled=false},contextMenuTimeout:null,startContextMenuTimer:function(){var a=this;a.killContextMenuTimer();a.contextMenuTimer=setTimeout(function(){a.hideContextMenu();a.killContextMenuTimer()},750)},killContextMenuTimer:function(){var a=this.contextMenuTimer;if(a!=null){clearTimeout(a);delete a}},hideContextMenu:function(){this.contextMenu.hide()},renderContextMenu:function(a,
170
- b){for(var c=this,e="",d=c.options.contextMenuItems,g=0,k=d.length;g<k;g++)if(d[g].isSeparator)e+='<div class="mejs-contextmenu-separator"></div>';else{var j=d[g].render(c);if(j!=null)e+='<div class="mejs-contextmenu-item" data-itemindex="'+g+'" id="element-'+Math.random()*1E6+'">'+j+"</div>"}c.contextMenu.empty().append(f(e)).css({top:b,left:a}).show();c.contextMenu.find(".mejs-contextmenu-item").each(function(){var m=f(this),q=parseInt(m.data("itemindex"),10),p=c.options.contextMenuItems[q];typeof p.show!=
171
- "undefined"&&p.show(m,c);m.click(function(){typeof p.click!="undefined"&&p.click(c);c.contextMenu.hide()})});setTimeout(function(){c.killControlsTimer("rev3")},100)}})})(mejs.$);
172
- (function(f){f.extend(mejs.MepDefaults,{postrollCloseText:mejs.i18n.t("Close")});f.extend(MediaElementPlayer.prototype,{buildpostroll:function(a,b,c){var e=this.container.find('link[rel="postroll"]').attr("href");if(typeof e!=="undefined"){a.postroll=f('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">'+this.options.postrollCloseText+'</a><div class="mejs-postroll-layer-content"></div></div>').prependTo(c).hide();this.media.addEventListener("ended",
173
- function(){f.ajax({dataType:"html",url:e,success:function(d){c.find(".mejs-postroll-layer-content").html(d)}});a.postroll.show()},false)}}})})(mejs.$);
174
-
1
  /*!
2
+ * MediaElement.js
3
+ * http://www.mediaelementjs.com/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  *
5
+ * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
+ * using a variety of technologies (pure JavaScript, Flash, iframe)
7
  *
8
+ * Copyright 2010-2017, John Dyer (http://j.hn/)
9
  * License: MIT
10
  *
11
+ */
12
+ !function e(t,n,i){function o(a,s){if(!n[a]){if(!t[a]){var l="function"==typeof require&&require;if(!s&&l)return l(a,!0);if(r)return r(a,!0);var d=new Error("Cannot find module '"+a+"'");throw d.code="MODULE_NOT_FOUND",d}var u=n[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return o(n||e)},u,u.exports,e,t,n,i)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a<i.length;a++)o(i[a]);return o}({1:[function(e,t,n){},{}],2:[function(e,t,n){(function(n){var i,o=void 0!==n?n:"undefined"!=typeof window?window:{},r=e(1);"undefined"!=typeof document?i=document:(i=o["__GLOBAL_DOCUMENT_CACHE@4"])||(i=o["__GLOBAL_DOCUMENT_CACHE@4"]=r),t.exports=i}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{1:1}],3:[function(e,t,n){(function(e){var n;n="undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{},t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,t,n){!function(e){function n(){}function i(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],l(e,this)}function o(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,i._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var i;try{i=n(e._value)}catch(e){return void a(t.promise,e)}r(t.promise,i)}else(1===e._state?r:a)(t.promise,e._value)})):e._deferreds.push(t)}function r(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if(t instanceof i)return e._state=3,e._value=t,void s(e);if("function"==typeof n)return void l(function(e,t){return function(){e.apply(t,arguments)}}(n,t),e)}e._state=1,e._value=t,s(e)}catch(t){a(e,t)}}function a(e,t){e._state=2,e._value=t,s(e)}function s(e){2===e._state&&0===e._deferreds.length&&i._immediateFn(function(){e._handled||i._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t<n;t++)o(e,e._deferreds[t]);e._deferreds=null}function l(e,t){var n=!1;try{e(function(e){n||(n=!0,r(t,e))},function(e){n||(n=!0,a(t,e))})}catch(e){if(n)return;n=!0,a(t,e)}}var d=setTimeout;i.prototype.catch=function(e){return this.then(null,e)},i.prototype.then=function(e,t){var i=new this.constructor(n);return o(this,new function(e,t,n){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=n}(e,t,i)),i},i.all=function(e){var t=Array.prototype.slice.call(e);return new i(function(e,n){function i(r,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,function(e){i(r,e)},n)}t[r]=a,0==--o&&e(t)}catch(e){n(e)}}if(0===t.length)return e([]);for(var o=t.length,r=0;r<t.length;r++)i(r,t[r])})},i.resolve=function(e){return e&&"object"==typeof e&&e.constructor===i?e:new i(function(t){t(e)})},i.reject=function(e){return new i(function(t,n){n(e)})},i.race=function(e){return new i(function(t,n){for(var i=0,o=e.length;i<o;i++)e[i].then(t,n)})},i._immediateFn="function"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){d(e,0)},i._unhandledRejectionFn=function(e){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)},i._setImmediateFn=function(e){i._immediateFn=e},i._setUnhandledRejectionFn=function(e){i._unhandledRejectionFn=e},void 0!==t&&t.exports?t.exports=i:e.Promise||(e.Promise=i)}(this)},{}],5:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(e){return e&&e.__esModule?e:{default:e}}(e(7)),r=e(15),a=e(27),s={lang:"en",en:r.EN};s.language=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];if(null!==t&&void 0!==t&&t.length){if("string"!=typeof t[0])throw new TypeError("Language code must be a string value");if(!/^[a-z]{2,3}((\-|_)[a-z]{2})?$/i.test(t[0]))throw new TypeError("Language code must have format 2-3 letters and. optionally, hyphen, underscore followed by 2 more letters");s.lang=t[0],void 0===s[t[0]]?(t[1]=null!==t[1]&&void 0!==t[1]&&"object"===i(t[1])?t[1]:{},s[t[0]]=(0,a.isObjectEmpty)(t[1])?r.EN:t[1]):null!==t[1]&&void 0!==t[1]&&"object"===i(t[1])&&(s[t[0]]=t[1])}return s.lang},s.t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if("string"==typeof e&&e.length){var n=void 0,o=void 0,r=s.language(),l=function(e,t,n){if("object"!==(void 0===e?"undefined":i(e))||"number"!=typeof t||"number"!=typeof n)return e;return[function(){return arguments.length<=1?void 0:arguments[1]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:arguments.length<=2?void 0:arguments[2]},function(){return 0===(arguments.length<=0?void 0:arguments[0])||1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:arguments.length<=2?void 0:arguments[2]},function(){return(arguments.length<=0?void 0:arguments[0])%10==1&&(arguments.length<=0?void 0:arguments[0])%100!=11?arguments.length<=1?void 0:arguments[1]:0!==(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return 1===(arguments.length<=0?void 0:arguments[0])||11===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:2===(arguments.length<=0?void 0:arguments[0])||12===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:(arguments.length<=0?void 0:arguments[0])>2&&(arguments.length<=0?void 0:arguments[0])<20?arguments.length<=3?void 0:arguments[3]:arguments.length<=4?void 0:arguments[4]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:0===(arguments.length<=0?void 0:arguments[0])||(arguments.length<=0?void 0:arguments[0])%100>0&&(arguments.length<=0?void 0:arguments[0])%100<20?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return(arguments.length<=0?void 0:arguments[0])%10==1&&(arguments.length<=0?void 0:arguments[0])%100!=11?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])%10>=2&&((arguments.length<=0?void 0:arguments[0])%100<10||(arguments.length<=0?void 0:arguments[0])%100>=20)?arguments.length<=2?void 0:arguments[2]:[3]},function(){return(arguments.length<=0?void 0:arguments[0])%10==1&&(arguments.length<=0?void 0:arguments[0])%100!=11?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])%10>=2&&(arguments.length<=0?void 0:arguments[0])%10<=4&&((arguments.length<=0?void 0:arguments[0])%100<10||(arguments.length<=0?void 0:arguments[0])%100>=20)?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])>=2&&(arguments.length<=0?void 0:arguments[0])<=4?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])%10>=2&&(arguments.length<=0?void 0:arguments[0])%10<=4&&((arguments.length<=0?void 0:arguments[0])%100<10||(arguments.length<=0?void 0:arguments[0])%100>=20)?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return(arguments.length<=0?void 0:arguments[0])%100==1?arguments.length<=2?void 0:arguments[2]:(arguments.length<=0?void 0:arguments[0])%100==2?arguments.length<=3?void 0:arguments[3]:(arguments.length<=0?void 0:arguments[0])%100==3||(arguments.length<=0?void 0:arguments[0])%100==4?arguments.length<=4?void 0:arguments[4]:arguments.length<=1?void 0:arguments[1]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:2===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:(arguments.length<=0?void 0:arguments[0])>2&&(arguments.length<=0?void 0:arguments[0])<7?arguments.length<=3?void 0:arguments[3]:(arguments.length<=0?void 0:arguments[0])>6&&(arguments.length<=0?void 0:arguments[0])<11?arguments.length<=4?void 0:arguments[4]:arguments.length<=5?void 0:arguments[5]},function(){return 0===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:2===(arguments.length<=0?void 0:arguments[0])?arguments.length<=3?void 0:arguments[3]:(arguments.length<=0?void 0:arguments[0])%100>=3&&(arguments.length<=0?void 0:arguments[0])%100<=10?arguments.length<=4?void 0:arguments[4]:(arguments.length<=0?void 0:arguments[0])%100>=11?arguments.length<=5?void 0:arguments[5]:arguments.length<=6?void 0:arguments[6]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:0===(arguments.length<=0?void 0:arguments[0])||(arguments.length<=0?void 0:arguments[0])%100>1&&(arguments.length<=0?void 0:arguments[0])%100<11?arguments.length<=2?void 0:arguments[2]:(arguments.length<=0?void 0:arguments[0])%100>10&&(arguments.length<=0?void 0:arguments[0])%100<20?arguments.length<=3?void 0:arguments[3]:arguments.length<=4?void 0:arguments[4]},function(){return(arguments.length<=0?void 0:arguments[0])%10==1?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])%10==2?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return 11!==(arguments.length<=0?void 0:arguments[0])&&(arguments.length<=0?void 0:arguments[0])%10==1?arguments.length<=1?void 0:arguments[1]:arguments.length<=2?void 0:arguments[2]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])%10>=2&&(arguments.length<=0?void 0:arguments[0])%10<=4&&((arguments.length<=0?void 0:arguments[0])%100<10||(arguments.length<=0?void 0:arguments[0])%100>=20)?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:2===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:8!==(arguments.length<=0?void 0:arguments[0])&&11!==(arguments.length<=0?void 0:arguments[0])?arguments.length<=3?void 0:arguments[3]:arguments.length<=4?void 0:arguments[4]},function(){return 0===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:arguments.length<=2?void 0:arguments[2]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:2===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:3===(arguments.length<=0?void 0:arguments[0])?arguments.length<=3?void 0:arguments[3]:arguments.length<=4?void 0:arguments[4]},function(){return 0===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]}][n].apply(null,[t].concat(e))};return void 0!==s[r]&&(n=s[r][e],null!==t&&"number"==typeof t&&(o=s[r]["mejs.plural-form"],n=l.apply(null,[n,t,o]))),!n&&s.en&&(n=s.en[e],null!==t&&"number"==typeof t&&(o=s.en["mejs.plural-form"],n=l.apply(null,[n,t,o]))),n=n||e,null!==t&&"number"==typeof t&&(n=n.replace("%1",t)),(0,a.escapeHTML)(n)}return e},o.default.i18n=s,"undefined"!=typeof mejsL10n&&o.default.i18n.language(mejsL10n.language,mejsL10n.strings),n.default=s},{15:15,27:27,7:7}],6:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=i(e(3)),a=i(e(2)),s=i(e(7)),l=e(27),d=e(28),u=e(8),c=e(25),f=function e(t,n,i){var f=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var p=this;i=Array.isArray(i)?i:null,p.defaults={renderers:[],fakeNodeName:"mediaelementwrapper",pluginPath:"build/",shimScriptAccess:"sameDomain"},n=Object.assign(p.defaults,n),p.mediaElement=a.default.createElement(n.fakeNodeName);var m=t,h=!1;if("string"==typeof t?p.mediaElement.originalNode=a.default.getElementById(t):(p.mediaElement.originalNode=t,m=t.id),void 0===p.mediaElement.originalNode||null===p.mediaElement.originalNode)return null;p.mediaElement.options=n,m=m||"mejs_"+Math.random().toString().slice(2),p.mediaElement.originalNode.setAttribute("id",m+"_from_mejs");var v=p.mediaElement.originalNode.tagName.toLowerCase();["video","audio"].indexOf(v)>-1&&!p.mediaElement.originalNode.getAttribute("preload")&&p.mediaElement.originalNode.setAttribute("preload","none"),p.mediaElement.originalNode.parentNode.insertBefore(p.mediaElement,p.mediaElement.originalNode),p.mediaElement.appendChild(p.mediaElement.originalNode);var g=function(e,t){if("https:"===r.default.location.protocol&&0===e.indexOf("http:")&&c.IS_IOS&&s.default.html5media.mediaTypes.indexOf(t)>-1){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(4===this.readyState&&200===this.status){var t=(r.default.URL||r.default.webkitURL).createObjectURL(this.response);return p.mediaElement.originalNode.setAttribute("src",t),t}return e},n.open("GET",e),n.responseType="blob",n.send()}return e},y=void 0;if(null!==i)y=i;else if(null!==p.mediaElement.originalNode)switch(y=[],p.mediaElement.originalNode.nodeName.toLowerCase()){case"iframe":y.push({type:"",src:p.mediaElement.originalNode.getAttribute("src")});break;case"audio":case"video":var E=p.mediaElement.originalNode.children.length,b=p.mediaElement.originalNode.getAttribute("src");if(b){var S=p.mediaElement.originalNode,x=(0,d.formatType)(b,S.getAttribute("type"));y.push({type:x,src:g(b,x)})}for(var w=0;w<E;w++){var P=p.mediaElement.originalNode.children[w];if("source"===P.tagName.toLowerCase()){var T=P.getAttribute("src"),C=(0,d.formatType)(T,P.getAttribute("type"));y.push({type:C,src:g(T,C)})}}}p.mediaElement.id=m,p.mediaElement.renderers={},p.mediaElement.events={},p.mediaElement.promises=[],p.mediaElement.renderer=null,p.mediaElement.rendererName=null,p.mediaElement.changeRenderer=function(e,t){var n=f,i=Object.keys(t[0]).length>2?t[0]:t[0].src;if(void 0!==n.mediaElement.renderer&&null!==n.mediaElement.renderer&&n.mediaElement.renderer.name===e)return n.mediaElement.renderer.pause(),n.mediaElement.renderer.stop&&n.mediaElement.renderer.stop(),n.mediaElement.renderer.show(),n.mediaElement.renderer.setSrc(i),!0;void 0!==n.mediaElement.renderer&&null!==n.mediaElement.renderer&&(n.mediaElement.renderer.pause(),n.mediaElement.renderer.stop&&n.mediaElement.renderer.stop(),n.mediaElement.renderer.hide());var o=n.mediaElement.renderers[e],r=null;if(void 0!==o&&null!==o)return o.show(),o.setSrc(i),n.mediaElement.renderer=o,n.mediaElement.rendererName=e,!0;for(var a=n.mediaElement.options.renderers.length?n.mediaElement.options.renderers:u.renderer.order,s=0,l=a.length;s<l;s++){var d=a[s];if(d===e){r=u.renderer.renderers[d];var c=Object.assign(r.options,n.mediaElement.options);return o=r.create(n.mediaElement,c,t),o.name=e,n.mediaElement.renderers[r.name]=o,n.mediaElement.renderer=o,n.mediaElement.rendererName=e,o.show(),!0}}return!1},p.mediaElement.setSize=function(e,t){void 0!==p.mediaElement.renderer&&null!==p.mediaElement.renderer&&p.mediaElement.renderer.setSize(e,t)},p.mediaElement.generateError=function(e,t){e=e||"",t=Array.isArray(t)?t:[];var n=(0,l.createEvent)("error",p.mediaElement);n.message=e,n.urls=t,p.mediaElement.dispatchEvent(n),h=!0};var k=s.default.html5media.properties,_=s.default.html5media.methods,N=function(e,t,n,i){var o=e[t];Object.defineProperty(e,t,{get:function(){return n.apply(e,[o])},set:function(t){return o=i.apply(e,[t])}})},A=function(e){if("src"!==e){var t=""+e.substring(0,1).toUpperCase()+e.substring(1),n=function(){return void 0!==p.mediaElement.renderer&&null!==p.mediaElement.renderer&&"function"==typeof p.mediaElement.renderer["get"+t]?p.mediaElement.renderer["get"+t]():null},i=function(e){void 0!==p.mediaElement.renderer&&null!==p.mediaElement.renderer&&"function"==typeof p.mediaElement.renderer["set"+t]&&p.mediaElement.renderer["set"+t](e)};N(p.mediaElement,e,n,i),p.mediaElement["get"+t]=n,p.mediaElement["set"+t]=i}},L=function(){return void 0!==p.mediaElement.renderer&&null!==p.mediaElement.renderer?p.mediaElement.renderer.getSrc():null},F=function(e){var t=[];if("string"==typeof e)t.push({src:e,type:e?(0,d.getTypeFromFile)(e):""});else if("object"===(void 0===e?"undefined":o(e))&&void 0!==e.src){var n=(0,d.absolutizeUrl)(e.src),i=e.type,r=Object.assign(e,{src:n,type:""!==i&&null!==i&&void 0!==i||!n?i:(0,d.getTypeFromFile)(n)});t.push(r)}else if(Array.isArray(e))for(var a=0,s=e.length;a<s;a++){var c=(0,d.absolutizeUrl)(e[a].src),f=e[a].type,m=Object.assign(e[a],{src:c,type:""!==f&&null!==f&&void 0!==f||!c?f:(0,d.getTypeFromFile)(c)});t.push(m)}var h=u.renderer.select(t,p.mediaElement.options.renderers.length?p.mediaElement.options.renderers:[]),v=void 0;if(p.mediaElement.paused||(p.mediaElement.pause(),v=(0,l.createEvent)("pause",p.mediaElement),p.mediaElement.dispatchEvent(v)),p.mediaElement.originalNode.src=t[0].src||"",null!==h||!t[0].src)return t[0].src?p.mediaElement.changeRenderer(h.rendererName,t):null;p.mediaElement.generateError("No renderer found",t)},j=function(e,t){try{if("play"===e&&"native_dash"===p.mediaElement.rendererName){var n=p.mediaElement.renderer[e](t);n&&"function"==typeof n.then&&n.catch(function(){p.mediaElement.paused&&setTimeout(function(){var e=p.mediaElement.renderer.play();void 0!==e&&e.catch(function(){p.mediaElement.renderer.paused||p.mediaElement.renderer.pause()})},150)})}else p.mediaElement.renderer[e](t)}catch(e){p.mediaElement.generateError(e,y)}},I=function(e){p.mediaElement[e]=function(){for(var t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];return void 0!==p.mediaElement.renderer&&null!==p.mediaElement.renderer&&"function"==typeof p.mediaElement.renderer[e]&&(p.mediaElement.promises.length?Promise.all(p.mediaElement.promises).then(function(){j(e,n)}).catch(function(e){p.mediaElement.generateError(e,y)}):j(e,n)),null}};N(p.mediaElement,"src",L,F),p.mediaElement.getSrc=L,p.mediaElement.setSrc=F;for(var M=0,O=k.length;M<O;M++)A(k[M]);for(var D=0,V=_.length;D<V;D++)I(_[D]);return p.mediaElement.addEventListener=function(e,t){p.mediaElement.events[e]=p.mediaElement.events[e]||[],p.mediaElement.events[e].push(t)},p.mediaElement.removeEventListener=function(e,t){if(!e)return p.mediaElement.events={},!0;var n=p.mediaElement.events[e];if(!n)return!0;if(!t)return p.mediaElement.events[e]=[],!0;for(var i=0;i<n.length;i++)if(n[i]===t)return p.mediaElement.events[e].splice(i,1),!0;return!1},p.mediaElement.dispatchEvent=function(e){var t=p.mediaElement.events[e.type];if(t)for(var n=0;n<t.length;n++)t[n].apply(null,[e])},p.mediaElement.destroy=function(){var e=p.mediaElement.originalNode.cloneNode(!0),t=p.mediaElement.parentElement;e.removeAttribute("id"),e.remove(),p.mediaElement.remove(),t.append(e)},y.length&&(p.mediaElement.src=y),p.mediaElement.promises.length?Promise.all(p.mediaElement.promises).then(function(){p.mediaElement.options.success&&p.mediaElement.options.success(p.mediaElement,p.mediaElement.originalNode)}).catch(function(){h&&p.mediaElement.options.error&&p.mediaElement.options.error(p.mediaElement,p.mediaElement.originalNode)}):(p.mediaElement.options.success&&p.mediaElement.options.success(p.mediaElement,p.mediaElement.originalNode),h&&p.mediaElement.options.error&&p.mediaElement.options.error(p.mediaElement,p.mediaElement.originalNode)),p.mediaElement};r.default.MediaElement=f,s.default.MediaElement=f,n.default=f},{2:2,25:25,27:27,28:28,3:3,7:7,8:8}],7:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=function(e){return e&&e.__esModule?e:{default:e}}(e(3)),o={};o.version="4.2.8",o.html5media={properties:["volume","src","currentTime","muted","duration","paused","ended","buffered","error","networkState","readyState","seeking","seekable","currentSrc","preload","bufferedBytes","bufferedTime","initialTime","startOffsetTime","defaultPlaybackRate","playbackRate","played","autoplay","loop","controls"],readOnlyProperties:["duration","paused","ended","buffered","error","networkState","readyState","seeking","seekable"],methods:["load","play","pause","canPlayType"],events:["loadstart","durationchange","loadedmetadata","loadeddata","progress","canplay","canplaythrough","suspend","abort","error","emptied","stalled","play","playing","pause","waiting","seeking","seeked","timeupdate","ended","ratechange","volumechange"],mediaTypes:["audio/mp3","audio/ogg","audio/oga","audio/wav","audio/x-wav","audio/wave","audio/x-pn-wav","audio/mpeg","audio/mp4","video/mp4","video/webm","video/ogg","video/ogv"]},i.default.mejs=o,n.default=o},{3:3}],8:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.renderer=void 0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=function(e){return e&&e.__esModule?e:{default:e}}(e(7)),a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.renderers={},this.order=[]}return o(e,[{key:"add",value:function(e){if(void 0===e.name)throw new TypeError("renderer must contain at least `name` property");this.renderers[e.name]=e,this.order.push(e.name)}},{key:"select",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=t.length;if(t=t.length?t:this.order,!n){var i=[/^(html5|native)/i,/^flash/i,/iframe$/i],o=function(e){for(var t=0,n=i.length;t<n;t++)if(i[t].test(e))return t;return i.length};t.sort(function(e,t){return o(e)-o(t)})}for(var r=0,a=t.length;r<a;r++){var s=t[r],l=this.renderers[s];if(null!==l&&void 0!==l)for(var d=0,u=e.length;d<u;d++)if("function"==typeof l.canPlayType&&"string"==typeof e[d].type&&l.canPlayType(e[d].type))return{rendererName:l.name,src:e[d].src}}return null}},{key:"order",set:function(e){if(!Array.isArray(e))throw new TypeError("order must be an array of strings.");this._order=e},get:function(){return this._order}},{key:"renderers",set:function(e){if(null!==e&&"object"!==(void 0===e?"undefined":i(e)))throw new TypeError("renderers must be an array of objects.");this._renderers=e},get:function(){return this._renderers}}]),e}(),s=n.renderer=new a;r.default.Renderers=s},{7:7}],9:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=i(e(3)),r=i(e(2)),a=i(e(5)),s=e(16),l=i(s),d=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(e(25)),u=e(27),c=e(26),f=e(28);Object.assign(s.config,{usePluginFullScreen:!0,fullscreenText:null,useFakeFullscreen:!1}),Object.assign(l.default.prototype,{isFullScreen:!1,isNativeFullScreen:!1,isInIframe:!1,isPluginClickThroughCreated:!1,fullscreenMode:"",containerSizeTimeout:null,buildfullscreen:function(e){if(e.isVideo){e.isInIframe=o.default.location!==o.default.parent.location,e.detectFullscreenMode();var t=this,n=(0,u.isString)(t.options.fullscreenText)?t.options.fullscreenText:a.default.t("mejs.fullscreen"),i=r.default.createElement("div");if(i.className=t.options.classPrefix+"button "+t.options.classPrefix+"fullscreen-button",i.innerHTML='<button type="button" aria-controls="'+t.id+'" title="'+n+'" aria-label="'+n+'" tabindex="0"></button>',t.addControlElement(i,"fullscreen"),i.addEventListener("click",function(){d.HAS_TRUE_NATIVE_FULLSCREEN&&d.IS_FULLSCREEN||e.isFullScreen?e.exitFullScreen():e.enterFullScreen()}),e.fullscreenBtn=i,t.options.keyActions.push({keys:[70],action:function(e,t,n,i){i.ctrlKey||void 0!==e.enterFullScreen&&(e.isFullScreen?e.exitFullScreen():e.enterFullScreen())}}),t.exitFullscreenCallback=function(n){27===(n.which||n.keyCode||0)&&(d.HAS_TRUE_NATIVE_FULLSCREEN&&d.IS_FULLSCREEN||t.isFullScreen)&&e.exitFullScreen()},t.globalBind("keydown",t.exitFullscreenCallback),t.normalHeight=0,t.normalWidth=0,d.HAS_TRUE_NATIVE_FULLSCREEN){e.globalBind(d.FULLSCREEN_EVENT_NAME,function(){e.isFullScreen&&(d.isFullScreen()?(e.isNativeFullScreen=!0,e.setControlsSize()):(e.isNativeFullScreen=!1,e.exitFullScreen()))})}}},cleanfullscreen:function(e){e.exitFullScreen(),e.globalUnbind("keydown",e.exitFullscreenCallback)},detectFullscreenMode:function(){var e=null!==this.media.rendererName&&/(native|html5)/i.test(this.media.rendererName),t="";return d.HAS_TRUE_NATIVE_FULLSCREEN&&e?t="native-native":d.HAS_TRUE_NATIVE_FULLSCREEN&&!e?t="plugin-native":this.usePluginFullScreen&&d.SUPPORT_POINTER_EVENTS&&(t="plugin-click"),this.fullscreenMode=t,t},enterFullScreen:function(){var e=this,t=null!==e.media.rendererName&&/(html5|native)/i.test(e.media.rendererName),n=getComputedStyle(e.getElement(e.container));if(!1===e.options.useFakeFullscreen&&d.IS_IOS&&d.HAS_IOS_FULLSCREEN&&"function"==typeof e.media.originalNode.webkitEnterFullscreen&&e.media.originalNode.canPlayType((0,f.getTypeFromFile)(e.media.getSrc())))e.media.originalNode.webkitEnterFullscreen();else{if((0,c.addClass)(r.default.documentElement,e.options.classPrefix+"fullscreen"),(0,c.addClass)(e.getElement(e.container),e.options.classPrefix+"container-fullscreen"),e.normalHeight=parseFloat(n.height),e.normalWidth=parseFloat(n.width),"native-native"!==e.fullscreenMode&&"plugin-native"!==e.fullscreenMode||(d.requestFullScreen(e.getElement(e.container)),e.isInIframe&&setTimeout(function t(){if(e.isNativeFullScreen){var n=o.default.innerWidth||r.default.documentElement.clientWidth||r.default.body.clientWidth,i=screen.width;Math.abs(i-n)>.002*i?e.exitFullScreen():setTimeout(t,500)}},1e3)),e.getElement(e.container).style.width="100%",e.getElement(e.container).style.height="100%",e.containerSizeTimeout=setTimeout(function(){e.getElement(e.container).style.width="100%",e.getElement(e.container).style.height="100%",e.setControlsSize()},500),t)e.node.style.width="100%",e.node.style.height="100%";else for(var i=e.getElement(e.container).querySelectorAll("embed, object, video"),a=i.length,s=0;s<a;s++)i[s].style.width="100%",i[s].style.height="100%";e.options.setDimensions&&"function"==typeof e.media.setSize&&e.media.setSize(screen.width,screen.height);for(var l=e.getElement(e.layers).children,p=l.length,m=0;m<p;m++)l[m].style.width="100%",l[m].style.height="100%";e.fullscreenBtn&&((0,c.removeClass)(e.fullscreenBtn,e.options.classPrefix+"fullscreen"),(0,c.addClass)(e.fullscreenBtn,e.options.classPrefix+"unfullscreen")),e.setControlsSize(),e.isFullScreen=!0;var h=Math.min(screen.width/e.width,screen.height/e.height),v=e.getElement(e.container).querySelector("."+e.options.classPrefix+"captions-text");v&&(v.style.fontSize=100*h+"%",v.style.lineHeight="normal",e.getElement(e.container).querySelector("."+e.options.classPrefix+"captions-position").style.bottom=(screen.height-e.normalHeight)/2-e.getElement(e.controls).offsetHeight/2+h+15+"px");var g=(0,u.createEvent)("enteredfullscreen",e.getElement(e.container));e.getElement(e.container).dispatchEvent(g)}},exitFullScreen:function(){var e=null!==this.media.rendererName&&/(native|html5)/i.test(this.media.rendererName);if(clearTimeout(this.containerSizeTimeout),d.HAS_TRUE_NATIVE_FULLSCREEN&&(d.IS_FULLSCREEN||this.isFullScreen)&&d.cancelFullScreen(),(0,c.removeClass)(r.default.documentElement,this.options.classPrefix+"fullscreen"),(0,c.removeClass)(this.getElement(this.container),this.options.classPrefix+"container-fullscreen"),this.options.setDimensions){if(this.getElement(this.container).style.width=this.normalWidth+"px",this.getElement(this.container).style.height=this.normalHeight+"px",e)this.node.style.width=this.normalWidth+"px",this.node.style.height=this.normalHeight+"px";else for(var t=this.getElement(this.container).querySelectorAll("embed, object, video"),n=t.length,i=0;i<n;i++)t[i].style.width=this.normalWidth+"px",t[i].style.height=this.normalHeight+"px";"function"==typeof this.media.setSize&&this.media.setSize(this.normalWidth,this.normalHeight);for(var o=this.getElement(this.layers).children,a=o.length,s=0;s<a;s++)o[s].style.width=this.normalWidth+"px",o[s].style.height=this.normalHeight+"px"}this.fullscreenBtn&&((0,c.removeClass)(this.fullscreenBtn,this.options.classPrefix+"unfullscreen"),(0,c.addClass)(this.fullscreenBtn,this.options.classPrefix+"fullscreen")),this.setControlsSize(),this.isFullScreen=!1;var l=this.getElement(this.container).querySelector("."+this.options.classPrefix+"captions-text");l&&(l.style.fontSize="",l.style.lineHeight="",this.getElement(this.container).querySelector("."+this.options.classPrefix+"captions-position").style.bottom="");var f=(0,u.createEvent)("exitedfullscreen",this.getElement(this.container));this.getElement(this.container).dispatchEvent(f)}})},{16:16,2:2,25:25,26:26,27:27,28:28,3:3,5:5}],10:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=i(e(2)),r=e(16),a=i(r),s=i(e(5)),l=e(27),d=e(26);Object.assign(r.config,{playText:null,pauseText:null}),Object.assign(a.default.prototype,{buildplaypause:function(e,t,n,i){function r(e){"play"===e?((0,d.removeClass)(p,a.options.classPrefix+"play"),(0,d.removeClass)(p,a.options.classPrefix+"replay"),(0,d.addClass)(p,a.options.classPrefix+"pause"),m.setAttribute("title",f),m.setAttribute("aria-label",f)):((0,d.removeClass)(p,a.options.classPrefix+"pause"),(0,d.removeClass)(p,a.options.classPrefix+"replay"),(0,d.addClass)(p,a.options.classPrefix+"play"),m.setAttribute("title",c),m.setAttribute("aria-label",c))}var a=this,u=a.options,c=(0,l.isString)(u.playText)?u.playText:s.default.t("mejs.play"),f=(0,l.isString)(u.pauseText)?u.pauseText:s.default.t("mejs.pause"),p=o.default.createElement("div");p.className=a.options.classPrefix+"button "+a.options.classPrefix+"playpause-button "+a.options.classPrefix+"play",p.innerHTML='<button type="button" aria-controls="'+a.id+'" title="'+c+'" aria-label="'+f+'" tabindex="0"></button>',p.addEventListener("click",function(){a.paused?a.play():a.pause()});var m=p.querySelector("button");a.addControlElement(p,"playpause"),r("pse"),i.addEventListener("loadedmetadata",function(){-1===i.rendererName.indexOf("flash")&&r("pse")}),i.addEventListener("play",function(){r("play")}),i.addEventListener("playing",function(){r("play")}),i.addEventListener("pause",function(){r("pse")}),i.addEventListener("ended",function(){e.options.loop||((0,d.removeClass)(p,a.options.classPrefix+"pause"),(0,d.removeClass)(p,a.options.classPrefix+"play"),(0,d.addClass)(p,a.options.classPrefix+"replay"),m.setAttribute("title",c),m.setAttribute("aria-label",c))})}})},{16:16,2:2,26:26,27:27,5:5}],11:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=i(e(2)),r=e(16),a=i(r),s=i(e(5)),l=e(25),d=e(30),u=e(26);Object.assign(r.config,{enableProgressTooltip:!0,useSmoothHover:!0,forceLive:!1}),Object.assign(a.default.prototype,{buildprogress:function(e,t,n,i){var a=0,c=!1,f=!1,p=this,m=e.options.autoRewind,h=e.options.enableProgressTooltip?'<span class="'+p.options.classPrefix+'time-float"><span class="'+p.options.classPrefix+'time-float-current">00:00</span><span class="'+p.options.classPrefix+'time-float-corner"></span></span>':"",v=o.default.createElement("div");v.className=p.options.classPrefix+"time-rail",v.innerHTML='<span class="'+p.options.classPrefix+"time-total "+p.options.classPrefix+'time-slider"><span class="'+p.options.classPrefix+'time-buffering"></span><span class="'+p.options.classPrefix+'time-loaded"></span><span class="'+p.options.classPrefix+'time-current"></span><span class="'+p.options.classPrefix+'time-hovered no-hover"></span><span class="'+p.options.classPrefix+'time-handle"><span class="'+p.options.classPrefix+'time-handle-content"></span></span>'+h+"</span>",p.addControlElement(v,"progress"),p.options.keyActions.push({keys:[37,227],action:function(e){if(!isNaN(e.duration)&&e.duration>0){e.isVideo&&(e.showControls(),e.startControlsTimer()),e.getElement(e.container).querySelector("."+r.config.classPrefix+"time-total").focus();var t=Math.max(e.currentTime-e.options.defaultSeekBackwardInterval(e),0);e.setCurrentTime(t)}}},{keys:[39,228],action:function(e){if(!isNaN(e.duration)&&e.duration>0){e.isVideo&&(e.showControls(),e.startControlsTimer()),e.getElement(e.container).querySelector("."+r.config.classPrefix+"time-total").focus();var t=Math.min(e.currentTime+e.options.defaultSeekForwardInterval(e),e.duration);e.setCurrentTime(t)}}}),p.rail=t.querySelector("."+p.options.classPrefix+"time-rail"),p.total=t.querySelector("."+p.options.classPrefix+"time-total"),p.loaded=t.querySelector("."+p.options.classPrefix+"time-loaded"),p.current=t.querySelector("."+p.options.classPrefix+"time-current"),p.handle=t.querySelector("."+p.options.classPrefix+"time-handle"),p.timefloat=t.querySelector("."+p.options.classPrefix+"time-float"),p.timefloatcurrent=t.querySelector("."+p.options.classPrefix+"time-float-current"),p.slider=t.querySelector("."+p.options.classPrefix+"time-slider"),p.hovered=t.querySelector("."+p.options.classPrefix+"time-hovered"),p.buffer=t.querySelector("."+p.options.classPrefix+"time-buffering"),p.newTime=0,p.forcedHandlePause=!1,p.setTransformStyle=function(e,t){e.style.transform=t,e.style.webkitTransform=t,e.style.MozTransform=t,e.style.msTransform=t,e.style.OTransform=t},p.buffer.style.display="none";var g=function(t){var n=getComputedStyle(p.total),i=(0,u.offset)(p.total),o=p.total.offsetWidth,r=void 0!==n.webkitTransform?"webkitTransform":void 0!==n.mozTransform?"mozTransform ":void 0!==n.oTransform?"oTransform":void 0!==n.msTransform?"msTransform":"transform",a="WebKitCSSMatrix"in window?"WebKitCSSMatrix":"MSCSSMatrix"in window?"MSCSSMatrix":"CSSMatrix"in window?"CSSMatrix":void 0,s=0,f=0,m=0,h=void 0;if(h=t.originalEvent&&t.originalEvent.changedTouches?t.originalEvent.changedTouches[0].pageX:t.changedTouches?t.changedTouches[0].pageX:t.pageX,p.getDuration()){if(h<i.left?h=i.left:h>o+i.left&&(h=o+i.left),m=h-i.left,s=m/o,p.newTime=s<=.02?0:s*p.getDuration(),c&&null!==p.getCurrentTime()&&p.newTime.toFixed(4)!==p.getCurrentTime().toFixed(4)&&(p.setCurrentRailHandle(p.newTime),p.updateCurrent(p.newTime)),!l.IS_IOS&&!l.IS_ANDROID){if(m<0&&(m=0),p.options.useSmoothHover&&null!==a&&void 0!==window[a]){var v=new window[a](getComputedStyle(p.handle)[r]).m41,g=m/parseFloat(getComputedStyle(p.total).width)-v/parseFloat(getComputedStyle(p.total).width);p.hovered.style.left=v+"px",p.setTransformStyle(p.hovered,"scaleX("+g+")"),p.hovered.setAttribute("pos",m),g>=0?(0,u.removeClass)(p.hovered,"negative"):(0,u.addClass)(p.hovered,"negative")}if(p.timefloat){var y=p.timefloat.offsetWidth/2,E=mejs.Utils.offset(p.getElement(p.container)),b=getComputedStyle(p.timefloat);f=h-E.left<p.timefloat.offsetWidth?y:h-E.left>=p.getElement(p.container).offsetWidth-y?p.total.offsetWidth-y:m,(0,u.hasClass)(p.getElement(p.container),p.options.classPrefix+"long-video")&&(f+=parseFloat(b.marginLeft)/2+p.timefloat.offsetWidth/2),p.timefloat.style.left=f+"px",p.timefloatcurrent.innerHTML=(0,d.secondsToTimeCode)(p.newTime,e.options.alwaysShowHours,e.options.showTimecodeFrameCount,e.options.framesPerSecond,e.options.secondsDecimalLength,e.options.timeFormat),p.timefloat.style.display="block"}}}else l.IS_IOS||l.IS_ANDROID||!p.timefloat||(f=p.timefloat.offsetWidth+o>=p.getElement(p.container).offsetWidth?p.timefloat.offsetWidth/2:0,p.timefloat.style.left=f+"px",p.timefloat.style.left=f+"px",p.timefloat.style.display="block")},y=function(){new Date-a>=1e3&&p.play()},E=function(){c&&null!==p.getCurrentTime()&&p.newTime.toFixed(4)!==p.getCurrentTime().toFixed(4)&&(p.setCurrentTime(p.newTime),p.setCurrentRail(),p.updateCurrent(p.newTime)),p.forcedHandlePause&&(p.slider.focus(),p.play()),p.forcedHandlePause=!1};p.slider.addEventListener("focus",function(){e.options.autoRewind=!1}),p.slider.addEventListener("blur",function(){e.options.autoRewind=m}),p.slider.addEventListener("keydown",function(t){if(new Date-a>=1e3&&(f=p.paused),p.options.keyActions.length){var n=t.which||t.keyCode||0,o=p.getDuration(),r=e.options.defaultSeekForwardInterval(i),s=e.options.defaultSeekBackwardInterval(i),d=p.getCurrentTime(),u=p.getElement(p.container).querySelector("."+p.options.classPrefix+"volume-slider");if(38===n||40===n){u&&(u.style.display="block"),p.isVideo&&(p.showControls(),p.startControlsTimer());var c=38===n?Math.min(p.volume+.1,1):Math.max(p.volume-.1,0),m=c<=0;return p.setVolume(c),void p.setMuted(m)}switch(u&&(u.style.display="none"),n){case 37:p.getDuration()!==1/0&&(d-=s);break;case 39:p.getDuration()!==1/0&&(d+=r);break;case 36:d=0;break;case 35:d=o;break;case 13:case 32:return void(l.IS_FIREFOX&&(p.paused?p.play():p.pause()));default:return}d=d<0?0:d>=o?o:Math.floor(d),a=new Date,f||e.pause(),d<p.getDuration()&&!f&&setTimeout(y,1100),p.setCurrentTime(d),e.showControls(),t.preventDefault(),t.stopPropagation()}});var b=["mousedown","touchstart"];p.slider.addEventListener("dragstart",function(){return!1});for(var S=0,x=b.length;S<x;S++)p.slider.addEventListener(b[S],function(e){if(p.forcedHandlePause=!1,p.getDuration()!==1/0&&(1===e.which||0===e.which)){p.paused||(p.pause(),p.forcedHandlePause=!0),c=!0,g(e);for(var t=["mouseup","touchend"],n=0,i=t.length;n<i;n++)p.getElement(p.container).addEventListener(t[n],function(e){var t=e.target;(t===p.slider||t.closest("."+p.options.classPrefix+"time-slider"))&&g(e)});p.globalBind("mouseup.dur touchend.dur",function(){E(),c=!1,p.timefloat&&(p.timefloat.style.display="none")})}},!(!l.SUPPORT_PASSIVE_EVENT||"touchstart"!==b[S])&&{passive:!0});p.slider.addEventListener("mouseenter",function(e){e.target===p.slider&&p.getDuration()!==1/0&&(p.getElement(p.container).addEventListener("mousemove",function(e){var t=e.target;(t===p.slider||t.closest("."+p.options.classPrefix+"time-slider"))&&g(e)}),!p.timefloat||l.IS_IOS||l.IS_ANDROID||(p.timefloat.style.display="block"),p.hovered&&!l.IS_IOS&&!l.IS_ANDROID&&p.options.useSmoothHover&&(0,u.removeClass)(p.hovered,"no-hover"))}),p.slider.addEventListener("mouseleave",function(){p.getDuration()!==1/0&&(c||(p.timefloat&&(p.timefloat.style.display="none"),p.hovered&&p.options.useSmoothHover&&(0,u.addClass)(p.hovered,"no-hover")))}),p.broadcastCallback=function(n){var r=t.querySelector("."+p.options.classPrefix+"broadcast");if(p.options.forceLive||p.getDuration()===1/0){if(!r||p.options.forceLive){var a=o.default.createElement("span");a.className=p.options.classPrefix+"broadcast",a.innerText=s.default.t("mejs.live-broadcast"),p.slider.style.display="none",p.rail.appendChild(a)}}else r&&(p.slider.style.display="",r.remove()),e.setProgressRail(n),p.forcedHandlePause||e.setCurrentRail(n),function(){var t=p.getCurrentTime(),n=s.default.t("mejs.time-slider"),o=(0,d.secondsToTimeCode)(t,e.options.alwaysShowHours,e.options.showTimecodeFrameCount,e.options.framesPerSecond,e.options.secondsDecimalLength,e.options.timeFormat),r=p.getDuration();p.slider.setAttribute("role","slider"),p.slider.tabIndex=0,i.paused?(p.slider.setAttribute("aria-label",n),p.slider.setAttribute("aria-valuemin",0),p.slider.setAttribute("aria-valuemax",r),p.slider.setAttribute("aria-valuenow",t),p.slider.setAttribute("aria-valuetext",o)):(p.slider.removeAttribute("aria-label"),p.slider.removeAttribute("aria-valuemin"),p.slider.removeAttribute("aria-valuemax"),p.slider.removeAttribute("aria-valuenow"),p.slider.removeAttribute("aria-valuetext"))}()},i.addEventListener("progress",p.broadcastCallback),i.addEventListener("timeupdate",p.broadcastCallback),i.addEventListener("play",function(){p.buffer.style.display="none"}),i.addEventListener("playing",function(){p.buffer.style.display="none"}),i.addEventListener("seeking",function(){p.buffer.style.display=""}),i.addEventListener("seeked",function(){p.buffer.style.display="none"}),i.addEventListener("pause",function(){p.buffer.style.display="none"}),i.addEventListener("waiting",function(){p.buffer.style.display=""}),i.addEventListener("loadeddata",function(){p.buffer.style.display=""}),i.addEventListener("canplay",function(){p.buffer.style.display="none"}),i.addEventListener("error",function(){p.buffer.style.display="none"}),p.getElement(p.container).addEventListener("controlsresize",function(t){p.getDuration()!==1/0&&(e.setProgressRail(t),p.forcedHandlePause||e.setCurrentRail(t))})},cleanprogress:function(e,t,n,i){i.removeEventListener("progress",e.broadcastCallback),i.removeEventListener("timeupdate",e.broadcastCallback),e.rail&&e.rail.remove()},setProgressRail:function(e){var t=void 0!==e?e.detail.target||e.target:this.media,n=null;t&&t.buffered&&t.buffered.length>0&&t.buffered.end&&this.getDuration()?n=t.buffered.end(t.buffered.length-1)/this.getDuration():t&&void 0!==t.bytesTotal&&t.bytesTotal>0&&void 0!==t.bufferedBytes?n=t.bufferedBytes/t.bytesTotal:e&&e.lengthComputable&&0!==e.total&&(n=e.loaded/e.total),null!==n&&(n=Math.min(1,Math.max(0,n)),this.loaded&&this.setTransformStyle(this.loaded,"scaleX("+n+")"))},setCurrentRailHandle:function(e){this.setCurrentRailMain(this,e)},setCurrentRail:function(){this.setCurrentRailMain(this)},setCurrentRailMain:function(e,t){if(void 0!==e.getCurrentTime()&&e.getDuration()){var n=void 0===t?e.getCurrentTime():t;if(e.total&&e.handle){var i=parseFloat(getComputedStyle(e.total).width),o=Math.round(i*n/e.getDuration()),r=o-Math.round(e.handle.offsetWidth/2);if(r=r<0?0:r,e.setTransformStyle(e.current,"scaleX("+o/i+")"),e.setTransformStyle(e.handle,"translateX("+r+"px)"),e.options.useSmoothHover&&!(0,u.hasClass)(e.hovered,"no-hover")){var a=parseInt(e.hovered.getAttribute("pos"),10),s=(a=isNaN(a)?0:a)/i-r/i;e.hovered.style.left=r+"px",e.setTransformStyle(e.hovered,"scaleX("+s+")"),s>=0?(0,u.removeClass)(e.hovered,"negative"):(0,u.addClass)(e.hovered,"negative")}}}}})},{16:16,2:2,25:25,26:26,30:30,5:5}],12:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=i(e(2)),r=e(16),a=i(r),s=e(30),l=e(26);Object.assign(r.config,{duration:0,timeAndDurationSeparator:"<span> | </span>"}),Object.assign(a.default.prototype,{buildcurrent:function(e,t,n,i){var r=this,a=o.default.createElement("div");a.className=r.options.classPrefix+"time",a.setAttribute("role","timer"),a.setAttribute("aria-live","off"),a.innerHTML='<span class="'+r.options.classPrefix+'currenttime">'+(0,s.secondsToTimeCode)(0,e.options.alwaysShowHours,e.options.showTimecodeFrameCount,e.options.framesPerSecond,e.options.secondsDecimalLength,e.options.timeFormat)+"</span>",r.addControlElement(a,"current"),e.updateCurrent(),r.updateTimeCallback=function(){r.controlsAreVisible&&e.updateCurrent()},i.addEventListener("timeupdate",r.updateTimeCallback)},cleancurrent:function(e,t,n,i){i.removeEventListener("timeupdate",e.updateTimeCallback)},buildduration:function(e,t,n,i){var r=this;if(t.lastChild.querySelector("."+r.options.classPrefix+"currenttime"))t.querySelector("."+r.options.classPrefix+"time").innerHTML+=r.options.timeAndDurationSeparator+'<span class="'+r.options.classPrefix+'duration">'+(0,s.secondsToTimeCode)(r.options.duration,r.options.alwaysShowHours,r.options.showTimecodeFrameCount,r.options.framesPerSecond,r.options.secondsDecimalLength,r.options.timeFormat)+"</span>";else{t.querySelector("."+r.options.classPrefix+"currenttime")&&(0,l.addClass)(t.querySelector("."+r.options.classPrefix+"currenttime").parentNode,r.options.classPrefix+"currenttime-container");var a=o.default.createElement("div");a.className=r.options.classPrefix+"time "+r.options.classPrefix+"duration-container",a.innerHTML='<span class="'+r.options.classPrefix+'duration">'+(0,s.secondsToTimeCode)(r.options.duration,r.options.alwaysShowHours,r.options.showTimecodeFrameCount,r.options.framesPerSecond,r.options.secondsDecimalLength,r.options.timeFormat)+"</span>",r.addControlElement(a,"duration")}r.updateDurationCallback=function(){r.controlsAreVisible&&e.updateDuration()},i.addEventListener("timeupdate",r.updateDurationCallback)},cleanduration:function(e,t,n,i){i.removeEventListener("timeupdate",e.updateDurationCallback)},updateCurrent:function(){var e=this.getCurrentTime();isNaN(e)&&(e=0);var t=(0,s.secondsToTimeCode)(e,this.options.alwaysShowHours,this.options.showTimecodeFrameCount,this.options.framesPerSecond,this.options.secondsDecimalLength,this.options.timeFormat);t.length>5?(0,l.addClass)(this.getElement(this.container),this.options.classPrefix+"long-video"):(0,l.removeClass)(this.getElement(this.container),this.options.classPrefix+"long-video"),this.getElement(this.controls).querySelector("."+this.options.classPrefix+"currenttime")&&(this.getElement(this.controls).querySelector("."+this.options.classPrefix+"currenttime").innerText=t)},updateDuration:function(){var e=this.getDuration();(isNaN(e)||e===1/0||e<0)&&(this.media.duration=this.options.duration=e=0),this.options.duration>0&&(e=this.options.duration);var t=(0,s.secondsToTimeCode)(e,this.options.alwaysShowHours,this.options.showTimecodeFrameCount,this.options.framesPerSecond,this.options.secondsDecimalLength,this.options.timeFormat);t.length>5?(0,l.addClass)(this.getElement(this.container),this.options.classPrefix+"long-video"):(0,l.removeClass)(this.getElement(this.container),this.options.classPrefix+"long-video"),this.getElement(this.controls).querySelector("."+this.options.classPrefix+"duration")&&e>0&&(this.getElement(this.controls).querySelector("."+this.options.classPrefix+"duration").innerHTML=t)}})},{16:16,2:2,26:26,30:30}],13:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=i(e(2)),r=i(e(7)),a=i(e(5)),s=e(16),l=i(s),d=e(30),u=e(27),c=e(26);Object.assign(s.config,{startLanguage:"",tracksText:null,chaptersText:null,tracksAriaLive:!1,hideCaptionsButtonWhenEmpty:!0,toggleCaptionsButtonWhenOnlyOne:!1,slidesSelector:""}),Object.assign(l.default.prototype,{hasChapters:!1,buildtracks:function(e,t,n,i){if(this.findTracks(),e.tracks.length||e.trackFiles&&0!==!e.trackFiles.length){var r=this,s=r.options.tracksAriaLive?' role="log" aria-live="assertive" aria-atomic="false"':"",l=(0,u.isString)(r.options.tracksText)?r.options.tracksText:a.default.t("mejs.captions-subtitles"),d=(0,u.isString)(r.options.chaptersText)?r.options.chaptersText:a.default.t("mejs.captions-chapters"),f=null===e.trackFiles?e.tracks.length:e.trackFiles.length;if(r.domNode.textTracks)for(var p=r.domNode.textTracks.length-1;p>=0;p--)r.domNode.textTracks[p].mode="hidden";r.cleartracks(e),e.captions=o.default.createElement("div"),e.captions.className=r.options.classPrefix+"captions-layer "+r.options.classPrefix+"layer",e.captions.innerHTML='<div class="'+r.options.classPrefix+"captions-position "+r.options.classPrefix+'captions-position-hover"'+s+'><span class="'+r.options.classPrefix+'captions-text"></span></div>',e.captions.style.display="none",n.insertBefore(e.captions,n.firstChild),e.captionsText=e.captions.querySelector("."+r.options.classPrefix+"captions-text"),e.captionsButton=o.default.createElement("div"),e.captionsButton.className=r.options.classPrefix+"button "+r.options.classPrefix+"captions-button",e.captionsButton.innerHTML='<button type="button" aria-controls="'+r.id+'" title="'+l+'" aria-label="'+l+'" tabindex="0"></button><div class="'+r.options.classPrefix+"captions-selector "+r.options.classPrefix+'offscreen"><ul class="'+r.options.classPrefix+'captions-selector-list"><li class="'+r.options.classPrefix+'captions-selector-list-item"><input type="radio" class="'+r.options.classPrefix+'captions-selector-input" name="'+e.id+'_captions" id="'+e.id+'_captions_none" value="none" checked disabled><label class="'+r.options.classPrefix+"captions-selector-label "+r.options.classPrefix+'captions-selected" for="'+e.id+'_captions_none">'+a.default.t("mejs.none")+"</label></li></ul></div>",r.addControlElement(e.captionsButton,"tracks"),e.captionsButton.querySelector("."+r.options.classPrefix+"captions-selector-input").disabled=!1,e.chaptersButton=o.default.createElement("div"),e.chaptersButton.className=r.options.classPrefix+"button "+r.options.classPrefix+"chapters-button",e.chaptersButton.innerHTML='<button type="button" aria-controls="'+r.id+'" title="'+d+'" aria-label="'+d+'" tabindex="0"></button><div class="'+r.options.classPrefix+"chapters-selector "+r.options.classPrefix+'offscreen"><ul class="'+r.options.classPrefix+'chapters-selector-list"></ul></div>';for(var m=0,h=0;h<f;h++){var v=e.tracks[h].kind;e.tracks[h].src.trim()&&("subtitles"===v||"captions"===v?m++:"chapters"!==v||t.querySelector("."+r.options.classPrefix+"chapter-selector")||e.captionsButton.parentNode.insertBefore(e.chaptersButton,e.captionsButton))}e.trackToLoad=-1,e.selectedTrack=null,e.isLoadingTrack=!1;for(var g=0;g<f;g++){var y=e.tracks[g].kind;!e.tracks[g].src.trim()||"subtitles"!==y&&"captions"!==y||e.addTrackButton(e.tracks[g].trackId,e.tracks[g].srclang,e.tracks[g].label)}e.loadNextTrack();var E=["mouseenter","focusin"],b=["mouseleave","focusout"];if(r.options.toggleCaptionsButtonWhenOnlyOne&&1===m)e.captionsButton.addEventListener("click",function(t){var n="none";null===e.selectedTrack&&(n=e.tracks[0].trackId);var i=t.keyCode||t.which;e.setTrack(n,void 0!==i)});else{for(var S=e.captionsButton.querySelectorAll("."+r.options.classPrefix+"captions-selector-label"),x=e.captionsButton.querySelectorAll("input[type=radio]"),w=0,P=E.length;w<P;w++)e.captionsButton.addEventListener(E[w],function(){(0,c.removeClass)(this.querySelector("."+r.options.classPrefix+"captions-selector"),r.options.classPrefix+"offscreen")});for(var T=0,C=b.length;T<C;T++)e.captionsButton.addEventListener(b[T],function(){(0,c.addClass)(this.querySelector("."+r.options.classPrefix+"captions-selector"),r.options.classPrefix+"offscreen")});for(var k=0,_=x.length;k<_;k++)x[k].addEventListener("click",function(t){var n=t.keyCode||t.which;e.setTrack(this.value,void 0!==n)});for(var N=0,A=S.length;N<A;N++)S[N].addEventListener("click",function(e){var t=(0,c.siblings)(this,function(e){return"INPUT"===e.tagName})[0],n=(0,u.createEvent)("click",t);t.dispatchEvent(n),e.preventDefault()});e.captionsButton.addEventListener("keydown",function(e){e.stopPropagation()})}for(var L=0,F=E.length;L<F;L++)e.chaptersButton.addEventListener(E[L],function(){this.querySelector("."+r.options.classPrefix+"chapters-selector-list").children.length&&(0,c.removeClass)(this.querySelector("."+r.options.classPrefix+"chapters-selector"),r.options.classPrefix+"offscreen")});for(var j=0,I=b.length;j<I;j++)e.chaptersButton.addEventListener(b[j],function(){(0,c.addClass)(this.querySelector("."+r.options.classPrefix+"chapters-selector"),r.options.classPrefix+"offscreen")});e.chaptersButton.addEventListener("keydown",function(e){e.stopPropagation()}),e.options.alwaysShowControls?(0,c.addClass)(e.getElement(e.container).querySelector("."+r.options.classPrefix+"captions-position"),r.options.classPrefix+"captions-position-hover"):(e.getElement(e.container).addEventListener("controlsshown",function(){(0,c.addClass)(e.getElement(e.container).querySelector("."+r.options.classPrefix+"captions-position"),r.options.classPrefix+"captions-position-hover")}),e.getElement(e.container).addEventListener("controlshidden",function(){i.paused||(0,c.removeClass)(e.getElement(e.container).querySelector("."+r.options.classPrefix+"captions-position"),r.options.classPrefix+"captions-position-hover")})),i.addEventListener("timeupdate",function(){e.displayCaptions()}),""!==e.options.slidesSelector&&(e.slidesContainer=o.default.querySelectorAll(e.options.slidesSelector),i.addEventListener("timeupdate",function(){e.displaySlides()}))}},cleartracks:function(e){e&&(e.captions&&e.captions.remove(),e.chapters&&e.chapters.remove(),e.captionsText&&e.captionsText.remove(),e.captionsButton&&e.captionsButton.remove(),e.chaptersButton&&e.chaptersButton.remove())},rebuildtracks:function(){this.findTracks(),this.buildtracks(this,this.getElement(this.controls),this.getElement(this.layers),this.media)},findTracks:function(){var e=null===this.trackFiles?this.node.querySelectorAll("track"):this.trackFiles,t=e.length;this.tracks=[];for(var n=0;n<t;n++){var i=e[n],o=i.getAttribute("srclang").toLowerCase()||"",r=this.id+"_track_"+n+"_"+i.getAttribute("kind")+"_"+o;this.tracks.push({trackId:r,srclang:o,src:i.getAttribute("src"),kind:i.getAttribute("kind"),label:i.getAttribute("label")||"",entries:[],isLoaded:!1})}},setTrack:function(e,t){for(var n=this,i=n.captionsButton.querySelectorAll('input[type="radio"]'),o=n.captionsButton.querySelectorAll("."+n.options.classPrefix+"captions-selected"),r=n.captionsButton.querySelector('input[value="'+e+'"]'),a=0,s=i.length;a<s;a++)i[a].checked=!1;for(var l=0,d=o.length;l<d;l++)(0,c.removeClass)(o[l],n.options.classPrefix+"captions-selected");r.checked=!0;for(var f=(0,c.siblings)(r,function(e){return(0,c.hasClass)(e,n.options.classPrefix+"captions-selector-label")}),p=0,m=f.length;p<m;p++)(0,c.addClass)(f[p],n.options.classPrefix+"captions-selected");if("none"===e)n.selectedTrack=null,(0,c.removeClass)(n.captionsButton,n.options.classPrefix+"captions-enabled");else for(var h=0,v=n.tracks.length;h<v;h++){var g=n.tracks[h];if(g.trackId===e){null===n.selectedTrack&&(0,c.addClass)(n.captionsButton,n.options.classPrefix+"captions-enabled"),n.selectedTrack=g,n.captions.setAttribute("lang",n.selectedTrack.srclang),n.displayCaptions();break}}var y=(0,u.createEvent)("captionschange",n.media);y.detail.caption=n.selectedTrack,n.media.dispatchEvent(y),t||setTimeout(function(){n.getElement(n.container).focus()},500)},loadNextTrack:function(){this.trackToLoad++,this.trackToLoad<this.tracks.length?(this.isLoadingTrack=!0,this.loadTrack(this.trackToLoad)):(this.isLoadingTrack=!1,this.checkForTracks())},loadTrack:function(e){var t=this,n=t.tracks[e];void 0===n||void 0===n.src&&""===n.src||(0,c.ajax)(n.src,"text",function(e){n.entries="string"==typeof e&&/<tt\s+xml/gi.exec(e)?r.default.TrackFormatParser.dfxp.parse(e):r.default.TrackFormatParser.webvtt.parse(e),n.isLoaded=!0,t.enableTrackButton(n),t.loadNextTrack(),"slides"===n.kind?t.setupSlides(n):"chapters"!==n.kind||t.hasChapters||(t.drawChapters(n),t.hasChapters=!0)},function(){t.removeTrackButton(n.trackId),t.loadNextTrack()})},enableTrackButton:function(e){var t=this,n=e.srclang,i=o.default.getElementById(""+e.trackId);if(i){var s=e.label;""===s&&(s=a.default.t(r.default.language.codes[n])||n),i.disabled=!1;for(var l=(0,c.siblings)(i,function(e){return(0,c.hasClass)(e,t.options.classPrefix+"captions-selector-label")}),d=0,f=l.length;d<f;d++)l[d].innerHTML=s;if(t.options.startLanguage===n){i.checked=!0;var p=(0,u.createEvent)("click",i);i.dispatchEvent(p)}}},removeTrackButton:function(e){var t=o.default.getElementById(""+e);if(t){var n=t.closest("li");n&&n.remove()}},addTrackButton:function(e,t,n){""===n&&(n=a.default.t(r.default.language.codes[t])||t),this.captionsButton.querySelector("ul").innerHTML+='<li class="'+this.options.classPrefix+'captions-selector-list-item"><input type="radio" class="'+this.options.classPrefix+'captions-selector-input" name="'+this.id+'_captions" id="'+e+'" value="'+e+'" disabled><label class="'+this.options.classPrefix+'captions-selector-label"for="'+e+'">'+n+" (loading)</label></li>"},checkForTracks:function(){var e=!1;if(this.options.hideCaptionsButtonWhenEmpty){for(var t=0,n=this.tracks.length;t<n;t++){var i=this.tracks[t].kind;if(("subtitles"===i||"captions"===i)&&this.tracks[t].isLoaded){e=!0;break}}this.captionsButton.style.display=e?"":"none",this.setControlsSize()}},displayCaptions:function(){if(void 0!==this.tracks){var e=this.selectedTrack;if(null!==e&&e.isLoaded){var t=this.searchTrackPosition(e.entries,this.media.currentTime);if(t>-1)return this.captionsText.innerHTML=function(e){var t=o.default.createElement("div");t.innerHTML=e;for(var n=t.getElementsByTagName("script"),i=n.length;i--;)n[i].remove();for(var r=t.getElementsByTagName("*"),a=0,s=r.length;a<s;a++)for(var l=r[a].attributes,d=Array.prototype.slice.call(l),u=0,c=d.length;u<c;u++)d[u].name.startsWith("on")||d[u].value.startsWith("javascript")?r[a].remove():"style"===d[u].name&&r[a].removeAttribute(d[u].name);return t.innerHTML}(e.entries[t].text),this.captionsText.className=this.options.classPrefix+"captions-text "+(e.entries[t].identifier||""),this.captions.style.display="",void(this.captions.style.height="0px");this.captions.style.display="none"}else this.captions.style.display="none"}},setupSlides:function(e){this.slides=e,this.slides.entries.imgs=[this.slides.entries.length],this.showSlide(0)},showSlide:function(e){var t=this,n=this;if(void 0!==n.tracks&&void 0!==n.slidesContainer){var i=n.slides.entries[e].text,r=n.slides.entries[e].imgs;if(void 0===r||void 0===r.fadeIn){var a=o.default.createElement("img");a.src=i,a.addEventListener("load",function(){var e=t,i=(0,c.siblings)(e,function(e){return i(e)});e.style.display="none",n.slidesContainer.innerHTML+=e.innerHTML,(0,c.fadeIn)(n.slidesContainer.querySelector(a));for(var o=0,r=i.length;o<r;o++)(0,c.fadeOut)(i[o],400)}),n.slides.entries[e].imgs=r=a}else if(!(0,c.visible)(r)){var s=(0,c.siblings)(self,function(e){return s(e)});(0,c.fadeIn)(n.slidesContainer.querySelector(r));for(var l=0,d=s.length;l<d;l++)(0,c.fadeOut)(s[l])}}},displaySlides:function(){if(void 0!==this.slides){var e=this.slides,t=this.searchTrackPosition(e.entries,this.media.currentTime);t>-1&&this.showSlide(t)}},drawChapters:function(e){var t=this,n=e.entries.length;if(n){t.chaptersButton.querySelector("ul").innerHTML="";for(var i=0;i<n;i++)t.chaptersButton.querySelector("ul").innerHTML+='<li class="'+t.options.classPrefix+'chapters-selector-list-item" role="menuitemcheckbox" aria-live="polite" aria-disabled="false" aria-checked="false"><input type="radio" class="'+t.options.classPrefix+'captions-selector-input" name="'+t.id+'_chapters" id="'+t.id+"_chapters_"+i+'" value="'+e.entries[i].start+'" disabled><label class="'+t.options.classPrefix+'chapters-selector-label"for="'+t.id+"_chapters_"+i+'">'+e.entries[i].text+"</label></li>";for(var o=t.chaptersButton.querySelectorAll('input[type="radio"]'),r=t.chaptersButton.querySelectorAll("."+t.options.classPrefix+"chapters-selector-label"),a=0,s=o.length;a<s;a++)o[a].disabled=!1,o[a].checked=!1,o[a].addEventListener("click",function(e){var n=t.chaptersButton.querySelectorAll("li"),i=(0,c.siblings)(this,function(e){return(0,c.hasClass)(e,t.options.classPrefix+"chapters-selector-label")})[0];this.checked=!0,this.parentNode.setAttribute("aria-checked",!0),(0,c.addClass)(i,t.options.classPrefix+"chapters-selected"),(0,c.removeClass)(t.chaptersButton.querySelector("."+t.options.classPrefix+"chapters-selected"),t.options.classPrefix+"chapters-selected");for(var o=0,r=n.length;o<r;o++)n[o].setAttribute("aria-checked",!1);void 0===(e.keyCode||e.which)&&setTimeout(function(){t.getElement(t.container).focus()},500),t.media.setCurrentTime(parseFloat(this.value)),t.media.paused&&t.media.play()});for(var l=0,d=r.length;l<d;l++)r[l].addEventListener("click",function(e){var t=(0,c.siblings)(this,function(e){return"INPUT"===e.tagName})[0],n=(0,u.createEvent)("click",t);t.dispatchEvent(n),e.preventDefault()})}},searchTrackPosition:function(e,t){for(var n=0,i=e.length-1,o=void 0,r=void 0,a=void 0;n<=i;){if(o=n+i>>1,r=e[o].start,a=e[o].stop,t>=r&&t<a)return o;r<t?n=o+1:r>t&&(i=o-1)}return-1}}),r.default.language={codes:{af:"mejs.afrikaans",sq:"mejs.albanian",ar:"mejs.arabic",be:"mejs.belarusian",bg:"mejs.bulgarian",ca:"mejs.catalan",zh:"mejs.chinese","zh-cn":"mejs.chinese-simplified","zh-tw":"mejs.chines-traditional",hr:"mejs.croatian",cs:"mejs.czech",da:"mejs.danish",nl:"mejs.dutch",en:"mejs.english",et:"mejs.estonian",fl:"mejs.filipino",fi:"mejs.finnish",fr:"mejs.french",gl:"mejs.galician",de:"mejs.german",el:"mejs.greek",ht:"mejs.haitian-creole",iw:"mejs.hebrew",hi:"mejs.hindi",hu:"mejs.hungarian",is:"mejs.icelandic",id:"mejs.indonesian",ga:"mejs.irish",it:"mejs.italian",ja:"mejs.japanese",ko:"mejs.korean",lv:"mejs.latvian",lt:"mejs.lithuanian",mk:"mejs.macedonian",ms:"mejs.malay",mt:"mejs.maltese",no:"mejs.norwegian",fa:"mejs.persian",pl:"mejs.polish",pt:"mejs.portuguese",ro:"mejs.romanian",ru:"mejs.russian",sr:"mejs.serbian",sk:"mejs.slovak",sl:"mejs.slovenian",es:"mejs.spanish",sw:"mejs.swahili",sv:"mejs.swedish",tl:"mejs.tagalog",th:"mejs.thai",tr:"mejs.turkish",uk:"mejs.ukrainian",vi:"mejs.vietnamese",cy:"mejs.welsh",yi:"mejs.yiddish"}},r.default.TrackFormatParser={webvtt:{pattern:/^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,parse:function(e){for(var t=e.split(/\r?\n/),n=[],i=void 0,o=void 0,r=void 0,a=0,s=t.length;a<s;a++){if((i=this.pattern.exec(t[a]))&&a<t.length){for(a-1>=0&&""!==t[a-1]&&(r=t[a-1]),o=t[++a],a++;""!==t[a]&&a<t.length;)o=o+"\n"+t[a],a++;o=o.trim().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi,"<a href='$1' target='_blank'>$1</a>"),n.push({identifier:r,start:0===(0,d.convertSMPTEtoSeconds)(i[1])?.2:(0,d.convertSMPTEtoSeconds)(i[1]),stop:(0,d.convertSMPTEtoSeconds)(i[3]),text:o,settings:i[5]})}r=""}return n}},dfxp:{parse:function(e){var t=(e=$(e).filter("tt")).firstChild,n=t.querySelectorAll("p"),i=e.getElementById(""+t.attr("style")),o=[],r=void 0;if(i.length){i.removeAttribute("id");var a=i.attributes;if(a.length){r={};for(var s=0,l=a.length;s<l;s++)r[a[s].name.split(":")[1]]=a[s].value}}for(var u=0,c=n.length;u<c;u++){var f=void 0,p={start:null,stop:null,style:null,text:null};if(n.eq(u).attr("begin")&&(p.start=(0,d.convertSMPTEtoSeconds)(n.eq(u).attr("begin"))),!p.start&&n.eq(u-1).attr("end")&&(p.start=(0,d.convertSMPTEtoSeconds)(n.eq(u-1).attr("end"))),n.eq(u).attr("end")&&(p.stop=(0,d.convertSMPTEtoSeconds)(n.eq(u).attr("end"))),!p.stop&&n.eq(u+1).attr("begin")&&(p.stop=(0,d.convertSMPTEtoSeconds)(n.eq(u+1).attr("begin"))),r){f="";for(var m in r)f+=m+":"+r[m]+";"}f&&(p.style=f),0===p.start&&(p.start=.2),p.text=n.eq(u).innerHTML.trim().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi,"<a href='$1' target='_blank'>$1</a>"),o.push(p)}return o}}}},{16:16,2:2,26:26,27:27,30:30,5:5,7:7}],14:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=i(e(2)),r=e(16),a=i(r),s=i(e(5)),l=e(25),d=e(27),u=e(26);Object.assign(r.config,{muteText:null,unmuteText:null,allyVolumeControlText:null,hideVolumeOnTouchDevices:!0,audioVolume:"horizontal",videoVolume:"vertical",startVolume:.8}),Object.assign(a.default.prototype,{buildvolume:function(e,t,n,i){if(!l.IS_ANDROID&&!l.IS_IOS||!this.options.hideVolumeOnTouchDevices){var a=this,c=a.isVideo?a.options.videoVolume:a.options.audioVolume,f=(0,d.isString)(a.options.muteText)?a.options.muteText:s.default.t("mejs.mute"),p=(0,d.isString)(a.options.unmuteText)?a.options.unmuteText:s.default.t("mejs.unmute"),m=(0,d.isString)(a.options.allyVolumeControlText)?a.options.allyVolumeControlText:s.default.t("mejs.volume-help-text"),h=o.default.createElement("div");if(h.className=a.options.classPrefix+"button "+a.options.classPrefix+"volume-button "+a.options.classPrefix+"mute",h.innerHTML="horizontal"===c?'<button type="button" aria-controls="'+a.id+'" title="'+f+'" aria-label="'+f+'" tabindex="0"></button>':'<button type="button" aria-controls="'+a.id+'" title="'+f+'" aria-label="'+f+'" tabindex="0"></button><a href="javascript:void(0);" class="'+a.options.classPrefix+'volume-slider" aria-label="'+s.default.t("mejs.volume-slider")+'" aria-valuemin="0" aria-valuemax="100" role="slider" aria-orientation="vertical"><span class="'+a.options.classPrefix+'offscreen">'+m+'</span><div class="'+a.options.classPrefix+'volume-total"><div class="'+a.options.classPrefix+'volume-current"></div><div class="'+a.options.classPrefix+'volume-handle"></div></div></a>',a.addControlElement(h,"volume"),a.options.keyActions.push({keys:[38],action:function(e){var t=e.getElement(e.container).querySelector("."+r.config.classPrefix+"volume-slider");(t||e.getElement(e.container).querySelector("."+r.config.classPrefix+"volume-slider").matches(":focus"))&&(t.style.display="block"),e.isVideo&&(e.showControls(),e.startControlsTimer());var n=Math.min(e.volume+.1,1);e.setVolume(n),n>0&&e.setMuted(!1)}},{keys:[40],action:function(e){var t=e.getElement(e.container).querySelector("."+r.config.classPrefix+"volume-slider");t&&(t.style.display="block"),e.isVideo&&(e.showControls(),e.startControlsTimer());var n=Math.max(e.volume-.1,0);e.setVolume(n),n<=.1&&e.setMuted(!0)}},{keys:[77],action:function(e){e.getElement(e.container).querySelector("."+r.config.classPrefix+"volume-slider").style.display="block",e.isVideo&&(e.showControls(),e.startControlsTimer()),e.media.muted?e.setMuted(!1):e.setMuted(!0)}}),"horizontal"===c){var v=o.default.createElement("a");v.className=a.options.classPrefix+"horizontal-volume-slider",v.href="javascript:void(0);",v.setAttribute("aria-label",s.default.t("mejs.volume-slider")),v.setAttribute("aria-valuemin",0),v.setAttribute("aria-valuemax",100),v.setAttribute("role","slider"),v.innerHTML+='<span class="'+a.options.classPrefix+'offscreen">'+m+'</span><div class="'+a.options.classPrefix+'horizontal-volume-total"><div class="'+a.options.classPrefix+'horizontal-volume-current"></div><div class="'+a.options.classPrefix+'horizontal-volume-handle"></div></div>',h.parentNode.insertBefore(v,h.nextSibling)}var g=!1,y=!1,E=!1,b="vertical"===c?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-slider"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-slider"),S="vertical"===c?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-total"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-total"),x="vertical"===c?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-current"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-current"),w="vertical"===c?a.getElement(a.container).querySelector("."+a.options.classPrefix+"volume-handle"):a.getElement(a.container).querySelector("."+a.options.classPrefix+"horizontal-volume-handle"),P=function(e){if(null!==e&&!isNaN(e)&&void 0!==e){if(e=Math.max(0,e),0===(e=Math.min(e,1))){(0,u.removeClass)(h,a.options.classPrefix+"mute"),(0,u.addClass)(h,a.options.classPrefix+"unmute");var t=h.firstElementChild;t.setAttribute("title",p),t.setAttribute("aria-label",p)}else{(0,u.removeClass)(h,a.options.classPrefix+"unmute"),(0,u.addClass)(h,a.options.classPrefix+"mute");var n=h.firstElementChild;n.setAttribute("title",f),n.setAttribute("aria-label",f)}var i=100*e+"%",o=getComputedStyle(w);"vertical"===c?(x.style.bottom=0,x.style.height=i,w.style.bottom=i,w.style.marginBottom=-parseFloat(o.height)/2+"px"):(x.style.left=0,x.style.width=i,w.style.left=i,w.style.marginLeft=-parseFloat(o.width)/2+"px")}},T=function(e){var t=(0,u.offset)(S),n=getComputedStyle(S);E=!0;var i=null;if("vertical"===c){var o=parseFloat(n.height);if(i=(o-(e.pageY-t.top))/o,0===t.top||0===t.left)return}else{var r=parseFloat(n.width);i=(e.pageX-t.left)/r}i=Math.max(0,i),i=Math.min(i,1),P(i),a.setMuted(0===i),a.setVolume(i),e.preventDefault(),e.stopPropagation()},C=function(){a.muted?(P(0),(0,u.removeClass)(h,a.options.classPrefix+"mute"),(0,u.addClass)(h,a.options.classPrefix+"unmute")):(P(i.volume),(0,u.removeClass)(h,a.options.classPrefix+"unmute"),(0,u.addClass)(h,a.options.classPrefix+"mute"))};e.getElement(e.container).addEventListener("keydown",function(e){!!e.target.closest("."+a.options.classPrefix+"container")||"vertical"!==c||(b.style.display="none")}),h.addEventListener("mouseenter",function(e){e.target===h&&(b.style.display="block",y=!0,e.preventDefault(),e.stopPropagation())}),h.addEventListener("focusin",function(){b.style.display="block",y=!0}),h.addEventListener("focusout",function(e){e.relatedTarget&&(!e.relatedTarget||e.relatedTarget.matches("."+a.options.classPrefix+"volume-slider"))||"vertical"!==c||(b.style.display="none")}),h.addEventListener("mouseleave",function(){y=!1,g||"vertical"!==c||(b.style.display="none")}),h.addEventListener("focusout",function(){y=!1}),h.addEventListener("keydown",function(e){if(a.options.keyActions.length){var t=e.which||e.keyCode||0,n=i.volume;switch(t){case 38:n=Math.min(n+.1,1);break;case 40:n=Math.max(0,n-.1);break;default:return!0}g=!1,P(n),i.setVolume(n),e.preventDefault(),e.stopPropagation()}}),h.querySelector("button").addEventListener("click",function(){i.setMuted(!i.muted);var e=(0,d.createEvent)("volumechange",i);i.dispatchEvent(e)}),b.addEventListener("dragstart",function(){return!1}),b.addEventListener("mouseover",function(){y=!0}),b.addEventListener("focusin",function(){b.style.display="block",y=!0}),b.addEventListener("focusout",function(){y=!1,g||"vertical"!==c||(b.style.display="none")}),b.addEventListener("mousedown",function(e){T(e),a.globalBind("mousemove.vol",function(e){var t=e.target;g&&(t===b||t.closest("vertical"===c?"."+a.options.classPrefix+"volume-slider":"."+a.options.classPrefix+"horizontal-volume-slider"))&&T(e)}),a.globalBind("mouseup.vol",function(){g=!1,y||"vertical"!==c||(b.style.display="none")}),g=!0,e.preventDefault(),e.stopPropagation()}),i.addEventListener("volumechange",function(e){g||C(),function(){var e=Math.floor(100*i.volume);b.setAttribute("aria-valuenow",e),b.setAttribute("aria-valuetext",e+"%")}()});var k=!1;i.addEventListener("rendererready",function(){E||setTimeout(function(){k=!0,(0===e.options.startVolume||i.originalNode.muted)&&(i.setMuted(!0),e.options.startVolume=0),i.setVolume(e.options.startVolume),a.setControlsSize()},250)}),i.addEventListener("loadedmetadata",function(){setTimeout(function(){E||k||((0===e.options.startVolume||i.originalNode.muted)&&i.setMuted(!0),i.setVolume(e.options.startVolume),a.setControlsSize()),k=!1},250)}),(0===e.options.startVolume||i.originalNode.muted)&&(i.setMuted(!0),e.options.startVolume=0,C()),a.getElement(a.container).addEventListener("controlsresize",function(){C()})}}})},{16:16,2:2,25:25,26:26,27:27,5:5}],15:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.EN={"mejs.plural-form":1,"mejs.download-file":"Download File","mejs.install-flash":"You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/","mejs.fullscreen":"Fullscreen","mejs.play":"Play","mejs.pause":"Pause","mejs.time-slider":"Time Slider","mejs.time-help-text":"Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.","mejs.live-broadcast":"Live Broadcast","mejs.volume-help-text":"Use Up/Down Arrow keys to increase or decrease volume.","mejs.unmute":"Unmute","mejs.mute":"Mute","mejs.volume-slider":"Volume Slider","mejs.video-player":"Video Player","mejs.audio-player":"Audio Player","mejs.captions-subtitles":"Captions/Subtitles","mejs.captions-chapters":"Chapters","mejs.none":"None","mejs.afrikaans":"Afrikaans","mejs.albanian":"Albanian","mejs.arabic":"Arabic","mejs.belarusian":"Belarusian","mejs.bulgarian":"Bulgarian","mejs.catalan":"Catalan","mejs.chinese":"Chinese","mejs.chinese-simplified":"Chinese (Simplified)","mejs.chinese-traditional":"Chinese (Traditional)","mejs.croatian":"Croatian","mejs.czech":"Czech","mejs.danish":"Danish","mejs.dutch":"Dutch","mejs.english":"English","mejs.estonian":"Estonian","mejs.filipino":"Filipino","mejs.finnish":"Finnish","mejs.french":"French","mejs.galician":"Galician","mejs.german":"German","mejs.greek":"Greek","mejs.haitian-creole":"Haitian Creole","mejs.hebrew":"Hebrew","mejs.hindi":"Hindi","mejs.hungarian":"Hungarian","mejs.icelandic":"Icelandic","mejs.indonesian":"Indonesian","mejs.irish":"Irish","mejs.italian":"Italian","mejs.japanese":"Japanese","mejs.korean":"Korean","mejs.latvian":"Latvian","mejs.lithuanian":"Lithuanian","mejs.macedonian":"Macedonian","mejs.malay":"Malay","mejs.maltese":"Maltese","mejs.norwegian":"Norwegian","mejs.persian":"Persian","mejs.polish":"Polish","mejs.portuguese":"Portuguese","mejs.romanian":"Romanian","mejs.russian":"Russian","mejs.serbian":"Serbian","mejs.slovak":"Slovak","mejs.slovenian":"Slovenian","mejs.spanish":"Spanish","mejs.swahili":"Swahili","mejs.swedish":"Swedish","mejs.tagalog":"Tagalog","mejs.thai":"Thai","mejs.turkish":"Turkish","mejs.ukrainian":"Ukrainian","mejs.vietnamese":"Vietnamese","mejs.welsh":"Welsh","mejs.yiddish":"Yiddish"}},{}],16:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.config=void 0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),a=i(e(3)),s=i(e(2)),l=i(e(7)),d=i(e(6)),u=i(e(17)),c=i(e(5)),f=e(25),p=e(27),m=e(30),h=e(28),v=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(e(26));l.default.mepIndex=0,l.default.players={};var g=n.config={poster:"",showPosterWhenEnded:!1,showPosterWhenPaused:!1,defaultVideoWidth:480,defaultVideoHeight:270,videoWidth:-1,videoHeight:-1,defaultAudioWidth:400,defaultAudioHeight:40,defaultSeekBackwardInterval:function(e){return.05*e.getDuration()},defaultSeekForwardInterval:function(e){return.05*e.getDuration()},setDimensions:!0,audioWidth:-1,audioHeight:-1,loop:!1,autoRewind:!0,enableAutosize:!0,timeFormat:"",alwaysShowHours:!1,showTimecodeFrameCount:!1,framesPerSecond:25,alwaysShowControls:!1,hideVideoControlsOnLoad:!1,hideVideoControlsOnPause:!1,clickToPlayPause:!0,controlsTimeoutDefault:1500,controlsTimeoutMouseEnter:2500,controlsTimeoutMouseLeave:1e3,iPadUseNativeControls:!1,iPhoneUseNativeControls:!1,AndroidUseNativeControls:!1,features:["playpause","current","progress","duration","tracks","volume","fullscreen"],useDefaultControls:!1,isVideo:!0,stretching:"auto",classPrefix:"mejs__",enableKeyboard:!0,pauseOtherPlayers:!0,secondsDecimalLength:0,customError:null,keyActions:[{keys:[32,179],action:function(e){f.IS_FIREFOX||(e.paused||e.ended?e.play():e.pause())}}]};l.default.MepDefaults=g;var y=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var i="string"==typeof t?s.default.getElementById(t):t;if(!(this instanceof e))return new e(i,n);if(this.node=this.media=i,this.node){if(this.media.player)return this.media.player;if(this.hasFocus=!1,this.controlsAreVisible=!0,this.controlsEnabled=!0,this.controlsTimer=null,this.currentMediaTime=0,this.proxy=null,void 0===n){var o=this.node.getAttribute("data-mejsoptions");n=o?JSON.parse(o):{}}return this.options=Object.assign({},g,n),this.options.loop&&!this.media.getAttribute("loop")?(this.media.loop=!0,this.node.loop=!0):this.media.loop&&(this.options.loop=!0),this.options.timeFormat||(this.options.timeFormat="mm:ss",this.options.alwaysShowHours&&(this.options.timeFormat="hh:mm:ss"),this.options.showTimecodeFrameCount&&(this.options.timeFormat+=":ff")),(0,m.calculateTimeFormat)(0,this.options,this.options.framesPerSecond||25),this.id="mep_"+l.default.mepIndex++,l.default.players[this.id]=this,this.init(),this}}return r(e,[{key:"getElement",value:function(e){return e}},{key:"init",value:function(){var e=this,t=Object.assign({},e.options,{success:function(t,n){e._meReady(t,n)},error:function(t){e._handleError(t)}}),n=e.node.tagName.toLowerCase();if(e.isDynamic="audio"!==n&&"video"!==n&&"iframe"!==n,e.isVideo=e.isDynamic?e.options.isVideo:"audio"!==n&&e.options.isVideo,e.mediaFiles=null,e.trackFiles=null,f.IS_IPAD&&e.options.iPadUseNativeControls||f.IS_IPHONE&&e.options.iPhoneUseNativeControls)e.node.setAttribute("controls",!0),f.IS_IPAD&&e.node.getAttribute("autoplay")&&e.play();else if(!e.isVideo&&(e.isVideo||!e.options.features.length&&!e.options.useDefaultControls)||f.IS_ANDROID&&e.options.AndroidUseNativeControls)e.isVideo||e.options.features.length||e.options.useDefaultControls||(e.node.style.display="none");else{e.node.removeAttribute("controls");var i=e.isVideo?c.default.t("mejs.video-player"):c.default.t("mejs.audio-player"),o=s.default.createElement("span");if(o.className=e.options.classPrefix+"offscreen",o.innerText=i,e.media.parentNode.insertBefore(o,e.media),e.container=s.default.createElement("div"),e.getElement(e.container).id=e.id,e.getElement(e.container).className=e.options.classPrefix+"container "+e.options.classPrefix+"container-keyboard-inactive "+e.media.className,e.getElement(e.container).tabIndex=0,e.getElement(e.container).setAttribute("role","application"),e.getElement(e.container).setAttribute("aria-label",i),e.getElement(e.container).innerHTML='<div class="'+e.options.classPrefix+'inner"><div class="'+e.options.classPrefix+'mediaelement"></div><div class="'+e.options.classPrefix+'layers"></div><div class="'+e.options.classPrefix+'controls"></div></div>',e.getElement(e.container).addEventListener("focus",function(t){if(!e.controlsAreVisible&&!e.hasFocus&&e.controlsEnabled){e.showControls(!0);var n=(0,p.isNodeAfter)(t.relatedTarget,e.getElement(e.container))?"."+e.options.classPrefix+"controls ."+e.options.classPrefix+"button:last-child > button":"."+e.options.classPrefix+"playpause-button > button";e.getElement(e.container).querySelector(n).focus()}}),e.node.parentNode.insertBefore(e.getElement(e.container),e.node),e.options.features.length||e.options.useDefaultControls||(e.getElement(e.container).style.background="transparent",e.getElement(e.container).querySelector("."+e.options.classPrefix+"controls").style.display="none"),e.isVideo&&"fill"===e.options.stretching&&!v.hasClass(e.getElement(e.container).parentNode,e.options.classPrefix+"fill-container")){e.outerContainer=e.media.parentNode;var r=s.default.createElement("div");r.className=e.options.classPrefix+"fill-container",e.getElement(e.container).parentNode.insertBefore(r,e.getElement(e.container)),r.appendChild(e.getElement(e.container))}if(f.IS_ANDROID&&v.addClass(e.getElement(e.container),e.options.classPrefix+"android"),f.IS_IOS&&v.addClass(e.getElement(e.container),e.options.classPrefix+"ios"),f.IS_IPAD&&v.addClass(e.getElement(e.container),e.options.classPrefix+"ipad"),f.IS_IPHONE&&v.addClass(e.getElement(e.container),e.options.classPrefix+"iphone"),v.addClass(e.getElement(e.container),e.isVideo?e.options.classPrefix+"video":e.options.classPrefix+"audio"),f.IS_SAFARI&&!f.IS_IOS){v.addClass(e.getElement(e.container),e.options.classPrefix+"hide-cues");for(var a=e.node.cloneNode(),u=e.node.children,m=[],g=[],y=0,E=u.length;y<E;y++){var b=u[y];!function(){switch(b.tagName.toLowerCase()){case"source":var e={};Array.prototype.slice.call(b.attributes).forEach(function(t){e[t.name]=t.value}),e.type=(0,h.formatType)(e.src,e.type),m.push(e);break;case"track":b.mode="hidden",g.push(b);break;default:a.appendChild(b)}}()}e.node.remove(),e.node=e.media=a,m.length&&(e.mediaFiles=m),g.length&&(e.trackFiles=g)}e.getElement(e.container).querySelector("."+e.options.classPrefix+"mediaelement").appendChild(e.node),e.media.player=e,e.controls=e.getElement(e.container).querySelector("."+e.options.classPrefix+"controls"),e.layers=e.getElement(e.container).querySelector("."+e.options.classPrefix+"layers");var S=e.isVideo?"video":"audio",x=S.substring(0,1).toUpperCase()+S.substring(1);e.options[S+"Width"]>0||e.options[S+"Width"].toString().indexOf("%")>-1?e.width=e.options[S+"Width"]:""!==e.node.style.width&&null!==e.node.style.width?e.width=e.node.style.width:e.node.getAttribute("width")?e.width=e.node.getAttribute("width"):e.width=e.options["default"+x+"Width"],e.options[S+"Height"]>0||e.options[S+"Height"].toString().indexOf("%")>-1?e.height=e.options[S+"Height"]:""!==e.node.style.height&&null!==e.node.style.height?e.height=e.node.style.height:e.node.getAttribute("height")?e.height=e.node.getAttribute("height"):e.height=e.options["default"+x+"Height"],e.initialAspectRatio=e.height>=e.width?e.width/e.height:e.height/e.width,e.setPlayerSize(e.width,e.height),t.pluginWidth=e.width,t.pluginHeight=e.height}if(l.default.MepDefaults=t,new d.default(e.media,t,e.mediaFiles),void 0!==e.getElement(e.container)&&e.options.features.length&&e.controlsAreVisible&&!e.options.hideVideoControlsOnLoad){var w=(0,p.createEvent)("controlsshown",e.getElement(e.container));e.getElement(e.container).dispatchEvent(w)}}},{key:"showControls",value:function(e){var t=this;if(e=void 0===e||e,!t.controlsAreVisible&&t.isVideo){if(e)!function(){v.fadeIn(t.getElement(t.controls),200,function(){v.removeClass(t.getElement(t.controls),t.options.classPrefix+"offscreen");var e=(0,p.createEvent)("controlsshown",t.getElement(t.container));t.getElement(t.container).dispatchEvent(e)});for(var e=t.getElement(t.container).querySelectorAll("."+t.options.classPrefix+"control"),n=function(n,i){v.fadeIn(e[n],200,function(){v.removeClass(e[n],t.options.classPrefix+"offscreen")})},i=0,o=e.length;i<o;i++)n(i)}();else{v.removeClass(t.getElement(t.controls),t.options.classPrefix+"offscreen"),t.getElement(t.controls).style.display="",t.getElement(t.controls).style.opacity=1;for(var n=t.getElement(t.container).querySelectorAll("."+t.options.classPrefix+"control"),i=0,o=n.length;i<o;i++)v.removeClass(n[i],t.options.classPrefix+"offscreen"),n[i].style.display="";var r=(0,p.createEvent)("controlsshown",t.getElement(t.container));t.getElement(t.container).dispatchEvent(r)}t.controlsAreVisible=!0,t.setControlsSize()}}},{key:"hideControls",value:function(e,t){var n=this;if(e=void 0===e||e,!0===t||!(!n.controlsAreVisible||n.options.alwaysShowControls||n.paused&&4===n.readyState&&(!n.options.hideVideoControlsOnLoad&&n.currentTime<=0||!n.options.hideVideoControlsOnPause&&n.currentTime>0)||n.isVideo&&!n.options.hideVideoControlsOnLoad&&!n.readyState||n.ended)){if(e)!function(){v.fadeOut(n.getElement(n.controls),200,function(){v.addClass(n.getElement(n.controls),n.options.classPrefix+"offscreen"),n.getElement(n.controls).style.display="";var e=(0,p.createEvent)("controlshidden",n.getElement(n.container));n.getElement(n.container).dispatchEvent(e)});for(var e=n.getElement(n.container).querySelectorAll("."+n.options.classPrefix+"control"),t=function(t,i){v.fadeOut(e[t],200,function(){v.addClass(e[t],n.options.classPrefix+"offscreen"),e[t].style.display=""})},i=0,o=e.length;i<o;i++)t(i)}();else{v.addClass(n.getElement(n.controls),n.options.classPrefix+"offscreen"),n.getElement(n.controls).style.display="",n.getElement(n.controls).style.opacity=0;for(var i=n.getElement(n.container).querySelectorAll("."+n.options.classPrefix+"control"),o=0,r=i.length;o<r;o++)v.addClass(i[o],n.options.classPrefix+"offscreen"),i[o].style.display="";var a=(0,p.createEvent)("controlshidden",n.getElement(n.container));n.getElement(n.container).dispatchEvent(a)}n.controlsAreVisible=!1}}},{key:"startControlsTimer",value:function(e){var t=this;e=void 0!==e?e:t.options.controlsTimeoutDefault,t.killControlsTimer("start"),t.controlsTimer=setTimeout(function(){t.hideControls(),t.killControlsTimer("hide")},e)}},{key:"killControlsTimer",value:function(){null!==this.controlsTimer&&(clearTimeout(this.controlsTimer),delete this.controlsTimer,this.controlsTimer=null)}},{key:"disableControls",value:function(){this.killControlsTimer(),this.controlsEnabled=!1,this.hideControls(!1,!0)}},{key:"enableControls",value:function(){this.controlsEnabled=!0,this.showControls(!1)}},{key:"_setDefaultPlayer",value:function(){var e=this;e.proxy&&e.proxy.pause(),e.proxy=new u.default(e),e.media.addEventListener("loadedmetadata",function(){e.getCurrentTime()>0&&e.currentMediaTime>0&&(e.setCurrentTime(e.currentMediaTime),f.IS_IOS||f.IS_ANDROID||e.play())})}},{key:"_meReady",value:function(e,t){var n=this,i=t.getAttribute("autoplay"),o=!(void 0===i||null===i||"false"===i),r=null!==e.rendererName&&/(native|html5)/i.test(n.media.rendererName);if(n.getElement(n.controls)&&n.enableControls(),n.getElement(n.container)&&n.getElement(n.container).querySelector("."+n.options.classPrefix+"overlay-play")&&(n.getElement(n.container).querySelector("."+n.options.classPrefix+"overlay-play").style.display=""),!n.created){if(n.created=!0,n.media=e,n.domNode=t,!(f.IS_ANDROID&&n.options.AndroidUseNativeControls||f.IS_IPAD&&n.options.iPadUseNativeControls||f.IS_IPHONE&&n.options.iPhoneUseNativeControls)){if(!n.isVideo&&!n.options.features.length&&!n.options.useDefaultControls)return o&&r&&n.play(),void(n.options.success&&("string"==typeof n.options.success?a.default[n.options.success](n.media,n.domNode,n):n.options.success(n.media,n.domNode,n)));if(n.featurePosition={},n._setDefaultPlayer(),n.buildposter(n,n.getElement(n.controls),n.getElement(n.layers),n.media),n.buildkeyboard(n,n.getElement(n.controls),n.getElement(n.layers),n.media),n.buildoverlays(n,n.getElement(n.controls),n.getElement(n.layers),n.media),n.options.useDefaultControls){var d=["playpause","current","progress","duration","tracks","volume","fullscreen"];n.options.features=d.concat(n.options.features.filter(function(e){return-1===d.indexOf(e)}))}n.buildfeatures(n,n.getElement(n.controls),n.getElement(n.layers),n.media);var u=(0,p.createEvent)("controlsready",n.getElement(n.container));n.getElement(n.container).dispatchEvent(u),n.setPlayerSize(n.width,n.height),n.setControlsSize(),n.isVideo&&(n.clickToPlayPauseCallback=function(){if(n.options.clickToPlayPause){var e=n.getElement(n.container).querySelector("."+n.options.classPrefix+"overlay-button"),t=e.getAttribute("aria-pressed");n.paused&&t?n.pause():n.paused?n.play():n.pause(),e.setAttribute("aria-pressed",!t),n.getElement(n.container).focus()}},n.createIframeLayer(),n.media.addEventListener("click",n.clickToPlayPauseCallback),!f.IS_ANDROID&&!f.IS_IOS||n.options.alwaysShowControls?(n.getElement(n.container).addEventListener("mouseenter",function(){n.controlsEnabled&&(n.options.alwaysShowControls||(n.killControlsTimer("enter"),n.showControls(),n.startControlsTimer(n.options.controlsTimeoutMouseEnter)))}),n.getElement(n.container).addEventListener("mousemove",function(){n.controlsEnabled&&(n.controlsAreVisible||n.showControls(),n.options.alwaysShowControls||n.startControlsTimer(n.options.controlsTimeoutMouseEnter))}),n.getElement(n.container).addEventListener("mouseleave",function(){n.controlsEnabled&&(n.paused||n.options.alwaysShowControls||n.startControlsTimer(n.options.controlsTimeoutMouseLeave))})):n.node.addEventListener("touchstart",function(){n.controlsAreVisible?n.hideControls(!1):n.controlsEnabled&&n.showControls(!1)},!!f.SUPPORT_PASSIVE_EVENT&&{passive:!0}),n.options.hideVideoControlsOnLoad&&n.hideControls(!1),n.options.enableAutosize&&n.media.addEventListener("loadedmetadata",function(e){var t=void 0!==e?e.detail.target||e.target:n.media;n.options.videoHeight<=0&&!n.domNode.getAttribute("height")&&!n.domNode.style.height&&null!==t&&!isNaN(t.videoHeight)&&(n.setPlayerSize(t.videoWidth,t.videoHeight),n.setControlsSize(),n.media.setSize(t.videoWidth,t.videoHeight))})),n.media.addEventListener("play",function(){n.hasFocus=!0;for(var e in l.default.players)if(l.default.players.hasOwnProperty(e)){var t=l.default.players[e];t.id===n.id||!n.options.pauseOtherPlayers||t.paused||t.ended||(t.pause(),t.hasFocus=!1)}f.IS_ANDROID||f.IS_IOS||n.options.alwaysShowControls||!n.isVideo||n.hideControls()}),n.media.addEventListener("ended",function(){if(n.options.autoRewind)try{n.setCurrentTime(0),setTimeout(function(){var e=n.getElement(n.container).querySelector("."+n.options.classPrefix+"overlay-loading");e&&e.parentNode&&(e.parentNode.style.display="none")},20)}catch(e){}"function"==typeof n.media.renderer.stop?n.media.renderer.stop():n.pause(),n.setProgressRail&&n.setProgressRail(),n.setCurrentRail&&n.setCurrentRail(),n.options.loop?n.play():!n.options.alwaysShowControls&&n.controlsEnabled&&n.showControls()}),n.media.addEventListener("loadedmetadata",function(){(0,m.calculateTimeFormat)(n.getDuration(),n.options,n.options.framesPerSecond||25),n.updateDuration&&n.updateDuration(),n.updateCurrent&&n.updateCurrent(),n.isFullScreen||(n.setPlayerSize(n.width,n.height),n.setControlsSize())});var c=null;n.media.addEventListener("timeupdate",function(){isNaN(n.getDuration())||c===n.getDuration()||(c=n.getDuration(),(0,m.calculateTimeFormat)(c,n.options,n.options.framesPerSecond||25),n.updateDuration&&n.updateDuration(),n.updateCurrent&&n.updateCurrent(),n.setControlsSize())}),n.getElement(n.container).addEventListener("click",function(e){v.addClass(e.currentTarget,n.options.classPrefix+"container-keyboard-inactive")}),n.getElement(n.container).addEventListener("focusin",function(e){v.removeClass(e.currentTarget,n.options.classPrefix+"container-keyboard-inactive"),!n.isVideo||f.IS_ANDROID||f.IS_IOS||!n.controlsEnabled||n.options.alwaysShowControls||(n.killControlsTimer("enter"),n.showControls(),n.startControlsTimer(n.options.controlsTimeoutMouseEnter))}),n.getElement(n.container).addEventListener("focusout",function(e){setTimeout(function(){e.relatedTarget&&n.keyboardAction&&!e.relatedTarget.closest("."+n.options.classPrefix+"container")&&(n.keyboardAction=!1,!n.isVideo||n.options.alwaysShowControls||n.paused||n.startControlsTimer(n.options.controlsTimeoutMouseLeave))},0)}),setTimeout(function(){n.setPlayerSize(n.width,n.height),n.setControlsSize()},0),n.globalResizeCallback=function(){n.isFullScreen||f.HAS_TRUE_NATIVE_FULLSCREEN&&s.default.webkitIsFullScreen||n.setPlayerSize(n.width,n.height),n.setControlsSize()},n.globalBind("resize",n.globalResizeCallback)}o&&r&&n.play(),n.options.success&&("string"==typeof n.options.success?a.default[n.options.success](n.media,n.domNode,n):n.options.success(n.media,n.domNode,n))}}},{key:"_handleError",value:function(e,t,n){var i=this.getElement(this.layers).querySelector("."+this.options.classPrefix+"overlay-play");i&&(i.style.display="none"),this.options.error&&this.options.error(e,t,n),this.getElement(this.container).querySelector("."+this.options.classPrefix+"cannotplay")&&this.getElement(this.container).querySelector("."+this.options.classPrefix+"cannotplay").remove();var o=s.default.createElement("div");o.className=this.options.classPrefix+"cannotplay",o.style.width="100%",o.style.height="100%";var r="function"==typeof this.options.customError?this.options.customError(this.media,this.media.originalNode):this.options.customError,a="";if(!r){var d=this.media.originalNode.getAttribute("poster");if(d&&(a='<img src="'+d+'" alt="'+l.default.i18n.t("mejs.download-file")+'">'),e.message&&(r="<p>"+e.message+"</p>"),e.urls)for(var u=0,c=e.urls.length;u<c;u++){var f=e.urls[u];r+='<a href="'+f.src+'" data-type="'+f.type+'"><span>'+l.default.i18n.t("mejs.download-file")+": "+f.src+"</span></a>"}}r&&this.getElement(this.layers).querySelector("."+this.options.classPrefix+"overlay-error")&&(o.innerHTML=r,this.getElement(this.layers).querySelector("."+this.options.classPrefix+"overlay-error").innerHTML=""+a+o.outerHTML,this.getElement(this.layers).querySelector("."+this.options.classPrefix+"overlay-error").parentNode.style.display="block"),this.controlsEnabled&&this.disableControls()}},{key:"setPlayerSize",value:function(e,t){if(!this.options.setDimensions)return!1;switch(void 0!==e&&(this.width=e),void 0!==t&&(this.height=t),this.options.stretching){case"fill":this.isVideo?this.setFillMode():this.setDimensions(this.width,this.height);break;case"responsive":this.setResponsiveMode();break;case"none":this.setDimensions(this.width,this.height);break;default:!0===this.hasFluidMode()?this.setResponsiveMode():this.setDimensions(this.width,this.height)}}},{key:"hasFluidMode",value:function(){return-1!==this.height.toString().indexOf("%")||this.node&&this.node.style.maxWidth&&"none"!==this.node.style.maxWidth&&this.node.style.maxWidth!==this.width||this.node&&this.node.currentStyle&&"100%"===this.node.currentStyle.maxWidth}},{key:"setResponsiveMode",value:function(){var e=this,t=function(){for(var t=void 0,n=e.getElement(e.container);n;){try{if(f.IS_FIREFOX&&"html"===n.tagName.toLowerCase()&&a.default.self!==a.default.top&&null!==a.default.frameElement)return a.default.frameElement;t=n.parentElement}catch(e){t=n.parentElement}if(t&&v.visible(t))return t;n=t}return null}(),n=t?getComputedStyle(t,null):getComputedStyle(s.default.body,null),i=e.isVideo?e.node.videoWidth&&e.node.videoWidth>0?e.node.videoWidth:e.node.getAttribute("width")?e.node.getAttribute("width"):e.options.defaultVideoWidth:e.options.defaultAudioWidth,o=e.isVideo?e.node.videoHeight&&e.node.videoHeight>0?e.node.videoHeight:e.node.getAttribute("height")?e.node.getAttribute("height"):e.options.defaultVideoHeight:e.options.defaultAudioHeight,r=function(){var t=1;return e.isVideo?(t=e.node.videoWidth&&e.node.videoWidth>0&&e.node.videoHeight&&e.node.videoHeight>0?e.height>=e.width?e.node.videoWidth/e.node.videoHeight:e.node.videoHeight/e.node.videoWidth:e.initialAspectRatio,(isNaN(t)||t<.01||t>100)&&(t=1),t):t}(),l=parseFloat(n.height),d=void 0,u=parseFloat(n.width);if(d=e.isVideo?"100%"===e.height?parseFloat(u*o/i,10):e.height>=e.width?parseFloat(u/r,10):parseFloat(u*r,10):o,isNaN(d)&&(d=l),e.getElement(e.container).parentNode.length>0&&"body"===e.getElement(e.container).parentNode.tagName.toLowerCase()&&(u=a.default.innerWidth||s.default.documentElement.clientWidth||s.default.body.clientWidth,d=a.default.innerHeight||s.default.documentElement.clientHeight||s.default.body.clientHeight),d&&u){e.getElement(e.container).style.width=u+"px",e.getElement(e.container).style.height=d+"px",e.node.style.width="100%",e.node.style.height="100%",e.isVideo&&e.media.setSize&&e.media.setSize(u,d);for(var c=e.getElement(e.layers).children,p=0,m=c.length;p<m;p++)c[p].style.width="100%",c[p].style.height="100%"}}},{key:"setFillMode",value:function(){var e=this,t=a.default.self!==a.default.top&&null!==a.default.frameElement,n=function(){for(var t=void 0,n=e.getElement(e.container);n;){try{if(f.IS_FIREFOX&&"html"===n.tagName.toLowerCase()&&a.default.self!==a.default.top&&null!==a.default.frameElement)return a.default.frameElement;t=n.parentElement}catch(e){t=n.parentElement}if(t&&v.visible(t))return t;n=t}return null}(),i=n?getComputedStyle(n,null):getComputedStyle(s.default.body,null);"none"!==e.node.style.height&&e.node.style.height!==e.height&&(e.node.style.height="auto"),"none"!==e.node.style.maxWidth&&e.node.style.maxWidth!==e.width&&(e.node.style.maxWidth="none"),"none"!==e.node.style.maxHeight&&e.node.style.maxHeight!==e.height&&(e.node.style.maxHeight="none"),e.node.currentStyle&&("100%"===e.node.currentStyle.height&&(e.node.currentStyle.height="auto"),"100%"===e.node.currentStyle.maxWidth&&(e.node.currentStyle.maxWidth="none"),"100%"===e.node.currentStyle.maxHeight&&(e.node.currentStyle.maxHeight="none")),t||parseFloat(i.width)||(n.style.width=e.media.offsetWidth+"px"),t||parseFloat(i.height)||(n.style.height=e.media.offsetHeight+"px"),i=getComputedStyle(n);var o=parseFloat(i.width),r=parseFloat(i.height);e.setDimensions("100%","100%");var l=e.getElement(e.container).querySelector("."+e.options.classPrefix+"poster>img");l&&(l.style.display="");for(var d=e.getElement(e.container).querySelectorAll("object, embed, iframe, video"),u=e.height,c=e.width,p=o,m=u*o/c,h=c*r/u,g=r,y=h>o==!1,E=y?Math.floor(p):Math.floor(h),b=y?Math.floor(m):Math.floor(g),S=y?o+"px":E+"px",x=y?b+"px":r+"px",w=0,P=d.length;w<P;w++)d[w].style.height=x,d[w].style.width=S,e.media.setSize&&e.media.setSize(S,x),d[w].style.marginLeft=Math.floor((o-E)/2)+"px",d[w].style.marginTop=0}},{key:"setDimensions",value:function(e,t){e=(0,p.isString)(e)&&e.indexOf("%")>-1?e:parseFloat(e)+"px",t=(0,p.isString)(t)&&t.indexOf("%")>-1?t:parseFloat(t)+"px",this.getElement(this.container).style.width=e,this.getElement(this.container).style.height=t;for(var n=this.getElement(this.layers).children,i=0,o=n.length;i<o;i++)n[i].style.width=e,n[i].style.height=t}},{key:"setControlsSize",value:function(){var e=this;if(v.visible(e.getElement(e.container)))if(e.rail&&v.visible(e.rail)){for(var t=e.total?getComputedStyle(e.total,null):null,n=t?parseFloat(t.marginLeft)+parseFloat(t.marginRight):0,i=getComputedStyle(e.rail),o=parseFloat(i.marginLeft)+parseFloat(i.marginRight),r=0,a=v.siblings(e.rail,function(t){return t!==e.rail}),s=a.length,l=0;l<s;l++)r+=a[l].offsetWidth;r+=n+(0===n?2*o:o)+1,e.getElement(e.container).style.minWidth=r+"px";var d=(0,p.createEvent)("controlsresize",e.getElement(e.container));e.getElement(e.container).dispatchEvent(d)}else{for(var u=e.getElement(e.controls).children,c=0,f=0,m=u.length;f<m;f++)c+=u[f].offsetWidth;e.getElement(e.container).style.minWidth=c+"px"}}},{key:"addControlElement",value:function(e,t){if(void 0!==this.featurePosition[t]){var n=this.getElement(this.controls).children[this.featurePosition[t]-1];n.parentNode.insertBefore(e,n.nextSibling)}else{this.getElement(this.controls).appendChild(e);for(var i=this.getElement(this.controls).children,o=0,r=i.length;o<r;o++)if(e===i[o]){this.featurePosition[t]=o;break}}}},{key:"createIframeLayer",value:function(){var e=this;if(e.isVideo&&null!==e.media.rendererName&&e.media.rendererName.indexOf("iframe")>-1&&!s.default.getElementById(e.media.id+"-iframe-overlay")){var t=s.default.createElement("div"),n=s.default.getElementById(e.media.id+"_"+e.media.rendererName);t.id=e.media.id+"-iframe-overlay",t.className=e.options.classPrefix+"iframe-overlay",t.addEventListener("click",function(t){e.options.clickToPlayPause&&(e.paused?e.play():e.pause(),t.preventDefault(),t.stopPropagation())}),n.parentNode.insertBefore(t,n)}}},{key:"resetSize",value:function(){var e=this;setTimeout(function(){e.setPlayerSize(e.width,e.height),e.setControlsSize()},50)}},{key:"setPoster",value:function(e){if(this.getElement(this.container)){var t=this.getElement(this.container).querySelector("."+this.options.classPrefix+"poster");t||((t=s.default.createElement("div")).className=this.options.classPrefix+"poster "+this.options.classPrefix+"layer",this.getElement(this.layers).appendChild(t));var n=t.querySelector("img");!n&&e&&((n=s.default.createElement("img")).className=this.options.classPrefix+"poster-img",n.width="100%",n.height="100%",t.style.display="",t.appendChild(n)),e?(n.setAttribute("src",e),t.style.backgroundImage='url("'+e+'")',t.style.display=""):n?(t.style.backgroundImage="none",t.style.display="none",n.remove()):t.style.display="none"}else(f.IS_IPAD&&this.options.iPadUseNativeControls||f.IS_IPHONE&&this.options.iPhoneUseNativeControls||f.IS_ANDROID&&this.options.AndroidUseNativeControls)&&(this.media.originalNode.poster=e)}},{key:"changeSkin",value:function(e){this.getElement(this.container).className=this.options.classPrefix+"container "+e,this.setPlayerSize(this.width,this.height),this.setControlsSize()}},{key:"globalBind",value:function(e,t){var n=this.node?this.node.ownerDocument:s.default;if((e=(0,p.splitEvents)(e,this.id)).d)for(var i=e.d.split(" "),o=0,r=i.length;o<r;o++)i[o].split(".").reduce(function(e,i){return n.addEventListener(i,t,!1),i},"");if(e.w)for(var l=e.w.split(" "),d=0,u=l.length;d<u;d++)l[d].split(".").reduce(function(e,n){return a.default.addEventListener(n,t,!1),n},"")}},{key:"globalUnbind",value:function(e,t){var n=this.node?this.node.ownerDocument:s.default;if((e=(0,p.splitEvents)(e,this.id)).d)for(var i=e.d.split(" "),o=0,r=i.length;o<r;o++)i[o].split(".").reduce(function(e,i){return n.removeEventListener(i,t,!1),i},"");if(e.w)for(var l=e.w.split(" "),d=0,u=l.length;d<u;d++)l[d].split(".").reduce(function(e,n){return a.default.removeEventListener(n,t,!1),n},"")}},{key:"buildfeatures",value:function(e,t,n,i){for(var o=0,r=this.options.features.length;o<r;o++){var a=this.options.features[o];if(this["build"+a])try{this["build"+a](e,t,n,i)}catch(e){console.error("error building "+a,e)}}}},{key:"buildposter",value:function(e,t,n,i){var o=s.default.createElement("div");o.className=this.options.classPrefix+"poster "+this.options.classPrefix+"layer",n.appendChild(o);var r=i.originalNode.getAttribute("poster");""!==e.options.poster&&(r&&f.IS_IOS&&i.originalNode.removeAttribute("poster"),r=e.options.poster),r?this.setPoster(r):null!==this.media.renderer&&"function"==typeof this.media.renderer.getPosterUrl?this.setPoster(this.media.renderer.getPosterUrl()):o.style.display="none",i.addEventListener("play",function(){o.style.display="none"}),i.addEventListener("playing",function(){o.style.display="none"}),e.options.showPosterWhenEnded&&e.options.autoRewind&&i.addEventListener("ended",function(){o.style.display=""}),i.addEventListener("error",function(){o.style.display="none"}),e.options.showPosterWhenPaused&&i.addEventListener("pause",function(){e.ended||(o.style.display="")})}},{key:"buildoverlays",value:function(e,t,n,i){if(e.isVideo){var o=this,r=s.default.createElement("div"),a=s.default.createElement("div"),l=s.default.createElement("div");r.style.display="none",r.className=o.options.classPrefix+"overlay "+o.options.classPrefix+"layer",r.innerHTML='<div class="'+o.options.classPrefix+'overlay-loading"><span class="'+o.options.classPrefix+'overlay-loading-bg-img"></span></div>',n.appendChild(r),a.style.display="none",a.className=o.options.classPrefix+"overlay "+o.options.classPrefix+"layer",a.innerHTML='<div class="'+o.options.classPrefix+'overlay-error"></div>',n.appendChild(a),l.className=o.options.classPrefix+"overlay "+o.options.classPrefix+"layer "+o.options.classPrefix+"overlay-play",l.innerHTML='<div class="'+o.options.classPrefix+'overlay-button" role="button" tabindex="0" aria-label="'+c.default.t("mejs.play")+'" aria-pressed="false"></div>',l.addEventListener("click",function(){if(o.options.clickToPlayPause){var e=o.getElement(o.container).querySelector("."+o.options.classPrefix+"overlay-button"),t=e.getAttribute("aria-pressed");o.paused?o.play():o.pause(),e.setAttribute("aria-pressed",!!t),o.getElement(o.container).focus()}}),l.addEventListener("keydown",function(e){var t=e.keyCode||e.which||0;if(13===t||f.IS_FIREFOX&&32===t){var n=(0,p.createEvent)("click",l);return l.dispatchEvent(n),!1}}),n.appendChild(l),null!==o.media.rendererName&&(/(youtube|facebook)/i.test(o.media.rendererName)&&!(o.media.originalNode.getAttribute("poster")||e.options.poster||"function"==typeof o.media.renderer.getPosterUrl&&o.media.renderer.getPosterUrl())||f.IS_STOCK_ANDROID||o.media.originalNode.getAttribute("autoplay"))&&(l.style.display="none");var d=!1;i.addEventListener("play",function(){l.style.display="none",r.style.display="none",a.style.display="none",d=!1}),i.addEventListener("playing",function(){l.style.display="none",r.style.display="none",a.style.display="none",d=!1}),i.addEventListener("seeking",function(){l.style.display="none",r.style.display="",d=!1}),i.addEventListener("seeked",function(){l.style.display=o.paused&&!f.IS_STOCK_ANDROID?"":"none",r.style.display="none",d=!1}),i.addEventListener("pause",function(){r.style.display="none",f.IS_STOCK_ANDROID||d||(l.style.display=""),d=!1}),i.addEventListener("waiting",function(){r.style.display="",d=!1}),i.addEventListener("loadeddata",function(){r.style.display="",f.IS_ANDROID&&(i.canplayTimeout=setTimeout(function(){if(s.default.createEvent){var e=s.default.createEvent("HTMLEvents");return e.initEvent("canplay",!0,!0),i.dispatchEvent(e)}},300)),d=!1}),i.addEventListener("canplay",function(){r.style.display="none",clearTimeout(i.canplayTimeout),d=!1}),i.addEventListener("error",function(e){o._handleError(e,o.media,o.node),r.style.display="none",l.style.display="none",d=!0}),i.addEventListener("loadedmetadata",function(){o.controlsEnabled||o.enableControls()}),i.addEventListener("keydown",function(t){o.onkeydown(e,i,t),d=!1})}}},{key:"buildkeyboard",value:function(e,t,n,i){var o=this;o.getElement(o.container).addEventListener("keydown",function(){o.keyboardAction=!0}),o.globalKeydownCallback=function(t){var n=s.default.activeElement.closest("."+o.options.classPrefix+"container"),r=o.media.closest("."+o.options.classPrefix+"container");return o.hasFocus=!(!n||!r||n.id!==r.id),o.onkeydown(e,i,t)},o.globalClickCallback=function(e){o.hasFocus=!!e.target.closest("."+o.options.classPrefix+"container")},o.globalBind("keydown",o.globalKeydownCallback),o.globalBind("click",o.globalClickCallback)}},{key:"onkeydown",value:function(e,t,n){if(e.hasFocus&&e.options.enableKeyboard)for(var i=0,o=e.options.keyActions.length;i<o;i++)for(var r=e.options.keyActions[i],a=0,s=r.keys.length;a<s;a++)if(n.keyCode===r.keys[a])return r.action(e,t,n.keyCode,n),n.preventDefault(),void n.stopPropagation();return!0}},{key:"play",value:function(){this.proxy.play()}},{key:"pause",value:function(){this.proxy.pause()}},{key:"load",value:function(){this.proxy.load()}},{key:"setCurrentTime",value:function(e){this.proxy.setCurrentTime(e)}},{key:"getCurrentTime",value:function(){return this.proxy.currentTime}},{key:"getDuration",value:function(){return this.proxy.duration}},{key:"setVolume",value:function(e){this.proxy.volume=e}},{key:"getVolume",value:function(){return this.proxy.getVolume()}},{key:"setMuted",value:function(e){this.proxy.setMuted(e)}},{key:"setSrc",value:function(e){this.controlsEnabled||this.enableControls(),this.proxy.setSrc(e)}},{key:"getSrc",value:function(){return this.proxy.getSrc()}},{key:"canPlayType",value:function(e){return this.proxy.canPlayType(e)}},{key:"remove",value:function(){var e=this,t=e.media.rendererName,n=e.media.originalNode.src;for(var i in e.options.features){var r=e.options.features[i];if(e["clean"+r])try{e["clean"+r](e,e.getElement(e.layers),e.getElement(e.controls),e.media)}catch(e){console.error("error cleaning "+r,e)}}var a=e.node.getAttribute("width"),d=e.node.getAttribute("height");if(a?-1===a.indexOf("%")&&(a+="px"):a="auto",d?-1===d.indexOf("%")&&(d+="px"):d="auto",e.node.style.width=a,e.node.style.height=d,e.setPlayerSize(0,0),e.isDynamic?e.getElement(e.container).parentNode.insertBefore(e.node,e.getElement(e.container)):function(){e.node.setAttribute("controls",!0),e.node.setAttribute("id",e.node.getAttribute("id").replace("_"+t,"").replace("_from_mejs",""));var i=e.getElement(e.container).querySelector("."+e.options.classPrefix+"poster>img");if(i&&e.node.setAttribute("poster",i.src),delete e.node.autoplay,""!==e.media.canPlayType((0,h.getTypeFromFile)(n))&&e.node.setAttribute("src",n),~t.indexOf("iframe")){s.default.getElementById(e.media.id+"-iframe-overlay").remove()}var o=e.node.cloneNode();if(o.style.display="",e.getElement(e.container).parentNode.insertBefore(o,e.getElement(e.container)),e.node.remove(),e.mediaFiles)for(var r=0,a=e.mediaFiles.length;r<a;r++){var l=s.default.createElement("source");l.setAttribute("src",e.mediaFiles[r].src),l.setAttribute("type",e.mediaFiles[r].type),o.appendChild(l)}if(e.trackFiles)for(var d=function(t,n){var i=e.trackFiles[t],r=s.default.createElement("track");r.kind=i.kind,r.label=i.label,r.srclang=i.srclang,r.src=i.src,o.appendChild(r),r.addEventListener("load",function(){this.mode="showing",o.textTracks[t].mode="showing"})},u=0,c=e.trackFiles.length;u<c;u++)d(u);delete e.node,delete e.mediaFiles,delete e.trackFiles}(),"function"==typeof e.media.renderer.destroy&&e.media.renderer.destroy(),delete l.default.players[e.id],"object"===o(e.getElement(e.container))){e.getElement(e.container).parentNode.querySelector("."+e.options.classPrefix+"offscreen").remove(),e.getElement(e.container).remove()}e.globalUnbind("resize",e.globalResizeCallback),e.globalUnbind("keydown",e.globalKeydownCallback),e.globalUnbind("click",e.globalClickCallback),delete e.media.player}},{key:"paused",get:function(){return this.proxy.paused}},{key:"muted",get:function(){return this.proxy.muted},set:function(e){this.setMuted(e)}},{key:"ended",get:function(){return this.proxy.ended}},{key:"readyState",get:function(){return this.proxy.readyState}},{key:"currentTime",set:function(e){this.setCurrentTime(e)},get:function(){return this.getCurrentTime()}},{key:"duration",get:function(){return this.getDuration()}},{key:"volume",set:function(e){this.setVolume(e)},get:function(){return this.getVolume()}},{key:"src",set:function(e){this.setSrc(e)},get:function(){return this.getSrc()}}]),e}();a.default.MediaElementPlayer=y,l.default.MediaElementPlayer=y,n.default=y},{17:17,2:2,25:25,26:26,27:27,28:28,3:3,30:30,5:5,6:6,7:7}],17:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=function(e){return e&&e.__esModule?e:{default:e}}(e(3)),r=function(){function e(t){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.media=t.media,this.isVideo=t.isVideo,this.classPrefix=t.options.classPrefix,this.createIframeLayer=function(){return t.createIframeLayer()},this.setPoster=function(e){return t.setPoster(e)},this}return i(e,[{key:"play",value:function(){this.media.play()}},{key:"pause",value:function(){this.media.pause()}},{key:"load",value:function(){this.isLoaded||this.media.load(),this.isLoaded=!0}},{key:"setCurrentTime",value:function(e){this.media.setCurrentTime(e)}},{key:"getCurrentTime",value:function(){return this.media.currentTime}},{key:"getDuration",value:function(){return this.media.getDuration()}},{key:"setVolume",value:function(e){this.media.setVolume(e)}},{key:"getVolume",value:function(){return this.media.getVolume()}},{key:"setMuted",value:function(e){this.media.setMuted(e)}},{key:"setSrc",value:function(e){var t=document.getElementById(this.media.id+"-iframe-overlay");t&&t.remove(),this.media.setSrc(e),this.createIframeLayer(),null!==this.media.renderer&&"function"==typeof this.media.renderer.getPosterUrl&&this.setPoster(this.media.renderer.getPosterUrl())}},{key:"getSrc",value:function(){return this.media.getSrc()}},{key:"canPlayType",value:function(e){return this.media.canPlayType(e)}},{key:"paused",get:function(){return this.media.paused}},{key:"muted",set:function(e){this.setMuted(e)},get:function(){return this.media.muted}},{key:"ended",get:function(){return this.media.ended}},{key:"readyState",get:function(){return this.media.readyState}},{key:"currentTime",set:function(e){this.setCurrentTime(e)},get:function(){return this.getCurrentTime()}},{key:"duration",get:function(){return this.getDuration()}},{key:"volume",set:function(e){this.setVolume(e)},get:function(){return this.getVolume()}},{key:"src",set:function(e){this.setSrc(e)},get:function(){return this.getSrc()}}]),e}();n.default=r,o.default.DefaultPlayer=r},{3:3}],18:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=i(e(3)),r=i(e(7)),a=i(e(16));"undefined"!=typeof jQuery?r.default.$=o.default.jQuery=o.default.$=jQuery:"undefined"!=typeof Zepto?r.default.$=o.default.Zepto=o.default.$=Zepto:"undefined"!=typeof ender&&(r.default.$=o.default.ender=o.default.$=ender),function(e){void 0!==e&&(e.fn.mediaelementplayer=function(t){return!1===t?this.each(function(){var t=e(this).data("mediaelementplayer");t&&t.remove(),e(this).removeData("mediaelementplayer")}):this.each(function(){e(this).data("mediaelementplayer",new a.default(this,t))}),this},e(document).ready(function(){e("."+r.default.MepDefaults.classPrefix+"player").mediaelementplayer()}))}(r.default.$)},{16:16,3:3,7:7}],19:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=i(e(3)),a=i(e(7)),s=e(8),l=e(27),d=e(28),u=e(25),c=e(26),f={promise:null,load:function(e){return"undefined"!=typeof dashjs?f.promise=new Promise(function(e){e()}).then(function(){f._createPlayer(e)}):(e.options.path="string"==typeof e.options.path?e.options.path:"https://cdn.dashjs.org/latest/dash.all.min.js",f.promise=f.promise||(0,c.loadScript)(e.options.path),f.promise.then(function(){f._createPlayer(e)})),f.promise},_createPlayer:function(e){var t=dashjs.MediaPlayer().create();return r.default["__ready__"+e.id](t),t}},p={name:"native_dash",options:{prefix:"native_dash",dash:{path:"https://cdn.dashjs.org/latest/dash.all.min.js",debug:!1,drm:{},robustnessLevel:""}},canPlayType:function(e){return u.HAS_MSE&&["application/dash+xml"].indexOf(e.toLowerCase())>-1},create:function(e,t,n){var i=e.originalNode,d=e.id+"_"+t.prefix,u=i.autoplay,c=i.children,p=null,m=null;i.removeAttribute("type");for(var h=0,v=c.length;h<v;h++)c[h].removeAttribute("type");p=i.cloneNode(!0),t=Object.assign(t,e.options);for(var g=a.default.html5media.properties,y=a.default.html5media.events.concat(["click","mouseover","mouseout"]).filter(function(e){return"error"!==e}),E=function(t){var n=(0,l.createEvent)(t.type,e);e.dispatchEvent(n)},b=function(e){var n=""+e.substring(0,1).toUpperCase()+e.substring(1);p["get"+n]=function(){return null!==m?p[e]:null},p["set"+n]=function(n){if(-1===a.default.html5media.readOnlyProperties.indexOf(e))if("src"===e){var i="object"===(void 0===n?"undefined":o(n))&&n.src?n.src:n;if(p[e]=i,null!==m){m.reset();for(var r=0,s=y.length;r<s;r++)p.removeEventListener(y[r],E);m=f._createPlayer({options:t.dash,id:d}),n&&"object"===(void 0===n?"undefined":o(n))&&"object"===o(n.drm)&&(m.setProtectionData(n.drm),(0,l.isString)(t.dash.robustnessLevel)&&t.dash.robustnessLevel&&m.getProtectionController().setRobustnessLevel(t.dash.robustnessLevel)),m.attachSource(i),u&&m.play()}}else p[e]=n}},S=0,x=g.length;S<x;S++)b(g[S]);if(r.default["__ready__"+d]=function(n){e.dashPlayer=m=n;for(var i=dashjs.MediaPlayer.events,r=function(e){"loadedmetadata"===e&&(m.getDebug().setLogToBrowserConsole(t.dash.debug),m.initialize(),m.setScheduleWhilePaused(!1),m.setFastSwitchEnabled(!0),m.attachView(p),m.setAutoPlay(!1),"object"!==o(t.dash.drm)||a.default.Utils.isObjectEmpty(t.dash.drm)||(m.setProtectionData(t.dash.drm),(0,l.isString)(t.dash.robustnessLevel)&&t.dash.robustnessLevel&&m.getProtectionController().setRobustnessLevel(t.dash.robustnessLevel)),m.attachSource(p.getSrc())),p.addEventListener(e,E)},s=0,d=y.length;s<d;s++)r(y[s]);var u=function(t){if("error"===t.type.toLowerCase())e.generateError(t.message,p.src),console.error(t);else{var n=(0,l.createEvent)(t.type,e);n.data=t,e.dispatchEvent(n)}};for(var c in i)i.hasOwnProperty(c)&&m.on(i[c],function(e){return u(e)})},n&&n.length>0)for(var w=0,P=n.length;w<P;w++)if(s.renderer.renderers[t.prefix].canPlayType(n[w].type)){p.setAttribute("src",n[w].src),void 0!==n[w].drm&&(t.dash.drm=n[w].drm);break}p.setAttribute("id",d),i.parentNode.insertBefore(p,i),i.autoplay=!1,i.style.display="none",p.setSize=function(e,t){return p.style.width=e+"px",p.style.height=t+"px",p},p.hide=function(){return p.pause(),p.style.display="none",p},p.show=function(){return p.style.display="",p},p.destroy=function(){null!==m&&m.reset()};var T=(0,l.createEvent)("rendererready",p);return e.dispatchEvent(T),e.promises.push(f.load({options:t.dash,id:d})),p}};d.typeChecks.push(function(e){return~e.toLowerCase().indexOf(".mpd")?"application/dash+xml":null}),s.renderer.add(p)},{25:25,26:26,27:27,28:28,3:3,7:7,8:8}],20:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.PluginDetector=void 0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=i(e(3)),a=i(e(2)),s=i(e(7)),l=i(e(5)),d=e(8),u=e(27),c=e(25),f=e(28),p=n.PluginDetector={plugins:[],hasPluginVersion:function(e,t){var n=p.plugins[e];return t[1]=t[1]||0,t[2]=t[2]||0,n[0]>t[0]||n[0]===t[0]&&n[1]>t[1]||n[0]===t[0]&&n[1]===t[1]&&n[2]>=t[2]},addPlugin:function(e,t,n,i,o){p.plugins[e]=p.detectPlugin(t,n,i,o)},detectPlugin:function(e,t,n,i){var a=[0,0,0],s=void 0,l=void 0;if(null!==c.NAV.plugins&&void 0!==c.NAV.plugins&&"object"===o(c.NAV.plugins[e])){if((s=c.NAV.plugins[e].description)&&(void 0===c.NAV.mimeTypes||!c.NAV.mimeTypes[t]||c.NAV.mimeTypes[t].enabledPlugin))for(var d=0,u=(a=s.replace(e,"").replace(/^\s+/,"").replace(/\sr/gi,".").split(".")).length;d<u;d++)a[d]=parseInt(a[d].match(/\d+/),10)}else if(void 0!==r.default.ActiveXObject)try{(l=new ActiveXObject(n))&&(a=i(l))}catch(e){}return a}};p.addPlugin("flash","Shockwave Flash","application/x-shockwave-flash","ShockwaveFlash.ShockwaveFlash",function(e){var t=[],n=e.GetVariable("$version");return n&&(n=n.split(" ")[1].split(","),t=[parseInt(n[0],10),parseInt(n[1],10),parseInt(n[2],10)]),t});var m=function(e,t,n){var i={},o=!1;i.options=t,i.id=e.id+"_"+i.options.prefix,i.mediaElement=e,i.flashState={},i.flashApi=null,i.flashApiStack=[];for(var p=s.default.html5media.properties,m=function(e){i.flashState[e]=null;var t=""+e.substring(0,1).toUpperCase()+e.substring(1);i["get"+t]=function(){if(null!==i.flashApi){if("function"==typeof i.flashApi["get_"+e]){var t=i.flashApi["get_"+e]();return"buffered"===e?{start:function(){return 0},end:function(){return t},length:1}:t}return null}return null},i["set"+t]=function(t){if("src"===e&&(t=(0,f.absolutizeUrl)(t)),null!==i.flashApi&&void 0!==i.flashApi["set_"+e])try{i.flashApi["set_"+e](t)}catch(e){}else i.flashApiStack.push({type:"set",propName:e,value:t})}},h=0,v=p.length;h<v;h++)m(p[h]);var g=s.default.html5media.methods,y=function(e){i[e]=function(){if(o)if(null!==i.flashApi){if(i.flashApi["fire_"+e])try{i.flashApi["fire_"+e]()}catch(e){}}else i.flashApiStack.push({type:"call",methodName:e})}};g.push("stop");for(var E=0,b=g.length;E<b;E++)y(g[E]);for(var S=["rendererready"],x=0,w=S.length;x<w;x++){var P=(0,u.createEvent)(S[x],i);e.dispatchEvent(P)}r.default["__ready__"+i.id]=function(){if(i.flashReady=!0,i.flashApi=a.default.getElementById("__"+i.id),i.flashApiStack.length)for(var e=0,t=i.flashApiStack.length;e<t;e++){var n=i.flashApiStack[e];if("set"===n.type){var o=n.propName,r=""+o.substring(0,1).toUpperCase()+o.substring(1);i["set"+r](n.value)}else"call"===n.type&&i[n.methodName]()}},r.default["__event__"+i.id]=function(e,t){var n=(0,u.createEvent)(e,i);if(t)try{n.data=JSON.parse(t),n.details.data=JSON.parse(t)}catch(e){n.message=t}i.mediaElement.dispatchEvent(n)},i.flashWrapper=a.default.createElement("div"),-1===["always","sameDomain"].indexOf(i.options.shimScriptAccess)&&(i.options.shimScriptAccess="sameDomain");var T=e.originalNode.autoplay,C=["uid="+i.id,"autoplay="+T,"allowScriptAccess="+i.options.shimScriptAccess,"preload="+(e.originalNode.getAttribute("preload")||"")],k=null!==e.originalNode&&"video"===e.originalNode.tagName.toLowerCase(),_=k?e.originalNode.height:1,N=k?e.originalNode.width:1;e.originalNode.getAttribute("src")&&C.push("src="+e.originalNode.getAttribute("src")),!0===i.options.enablePseudoStreaming&&(C.push("pseudostreamstart="+i.options.pseudoStreamingStartQueryParam),C.push("pseudostreamtype="+i.options.pseudoStreamingType)),i.options.streamDelimiter&&C.push("streamdelimiter="+encodeURIComponent(i.options.streamDelimiter)),i.options.proxyType&&C.push("proxytype="+i.options.proxyType),e.appendChild(i.flashWrapper),e.originalNode.style.display="none";var A=[];if(c.IS_IE||c.IS_EDGE){var L=a.default.createElement("div");i.flashWrapper.appendChild(L),A=c.IS_EDGE?['type="application/x-shockwave-flash"','data="'+i.options.pluginPath+i.options.filename+'"','id="__'+i.id+'"','width="'+N+'"','height="'+_+"'\""]:['classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"','codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"','id="__'+i.id+'"','width="'+N+'"','height="'+_+'"'],k||A.push('style="clip: rect(0 0 0 0); position: absolute;"'),L.outerHTML="<object "+A.join(" ")+'><param name="movie" value="'+i.options.pluginPath+i.options.filename+"?x="+new Date+'" /><param name="flashvars" value="'+C.join("&amp;")+'" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="'+i.options.shimScriptAccess+'" /><param name="allowFullScreen" value="true" /><div>'+l.default.t("mejs.install-flash")+"</div></object>"}else A=['id="__'+i.id+'"','name="__'+i.id+'"','play="true"','loop="false"','quality="high"','bgcolor="#000000"','wmode="transparent"','allowScriptAccess="'+i.options.shimScriptAccess+'"','allowFullScreen="true"','type="application/x-shockwave-flash"','pluginspage="//www.macromedia.com/go/getflashplayer"','src="'+i.options.pluginPath+i.options.filename+'"','flashvars="'+C.join("&")+'"'],k?(A.push('width="'+N+'"'),A.push('height="'+_+'"')):A.push('style="position: fixed; left: -9999em; top: -9999em;"'),i.flashWrapper.innerHTML="<embed "+A.join(" ")+">";if(i.flashNode=i.flashWrapper.lastChild,i.hide=function(){o=!1,k&&(i.flashNode.style.display="none")},i.show=function(){o=!0,k&&(i.flashNode.style.display="")},i.setSize=function(e,t){i.flashNode.style.width=e+"px",i.flashNode.style.height=t+"px",null!==i.flashApi&&"function"==typeof i.flashApi.fire_setSize&&i.flashApi.fire_setSize(e,t)},i.destroy=function(){i.flashNode.remove()},n&&n.length>0)for(var F=0,j=n.length;F<j;F++)if(d.renderer.renderers[t.prefix].canPlayType(n[F].type)){i.setSrc(n[F].src);break}return i};if(p.hasPluginVersion("flash",[10,0,0])){f.typeChecks.push(function(e){return(e=e.toLowerCase()).startsWith("rtmp")?~e.indexOf(".mp3")?"audio/rtmp":"video/rtmp":/\.og(a|g)/i.test(e)?"audio/ogg":~e.indexOf(".m3u8")?"application/x-mpegURL":~e.indexOf(".mpd")?"application/dash+xml":~e.indexOf(".flv")?"video/flv":null});var h={name:"flash_video",options:{prefix:"flash_video",filename:"mediaelement-flash-video.swf",enablePseudoStreaming:!1,pseudoStreamingStartQueryParam:"start",pseudoStreamingType:"byte",proxyType:"",streamDelimiter:""},canPlayType:function(e){return~["video/mp4","video/rtmp","audio/rtmp","rtmp/mp4","audio/mp4","video/flv","video/x-flv"].indexOf(e.toLowerCase())},create:m};d.renderer.add(h);var v={name:"flash_hls",options:{prefix:"flash_hls",filename:"mediaelement-flash-video-hls.swf"},canPlayType:function(e){return~["application/x-mpegurl","application/vnd.apple.mpegurl","audio/mpegurl","audio/hls","video/hls"].indexOf(e.toLowerCase())},create:m};d.renderer.add(v);var g={name:"flash_dash",options:{prefix:"flash_dash",filename:"mediaelement-flash-video-mdash.swf"},canPlayType:function(e){return~["application/dash+xml"].indexOf(e.toLowerCase())},create:m};d.renderer.add(g);var y={name:"flash_audio",options:{prefix:"flash_audio",filename:"mediaelement-flash-audio.swf"},canPlayType:function(e){return~["audio/mp3"].indexOf(e.toLowerCase())},create:m};d.renderer.add(y);var E={name:"flash_audio_ogg",options:{prefix:"flash_audio_ogg",filename:"mediaelement-flash-audio-ogg.swf"},canPlayType:function(e){return~["audio/ogg","audio/oga","audio/ogv"].indexOf(e.toLowerCase())},create:m};d.renderer.add(E)}},{2:2,25:25,27:27,28:28,3:3,5:5,7:7,8:8}],21:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=i(e(3)),a=i(e(7)),s=e(8),l=e(27),d=e(25),u=e(28),c=e(26),f={promise:null,load:function(e){return"undefined"!=typeof flvjs?f.promise=new Promise(function(e){e()}).then(function(){f._createPlayer(e)}):(e.options.path="string"==typeof e.options.path?e.options.path:"https://cdn.jsdelivr.net/npm/flv.js@latest",f.promise=f.promise||(0,c.loadScript)(e.options.path),f.promise.then(function(){f._createPlayer(e)})),f.promise},_createPlayer:function(e){flvjs.LoggingControl.enableDebug=e.options.debug,flvjs.LoggingControl.enableVerbose=e.options.debug;var t=flvjs.createPlayer(e.options,e.configs);return r.default["__ready__"+e.id](t),t}},p={name:"native_flv",options:{prefix:"native_flv",flv:{path:"https://cdn.jsdelivr.net/npm/flv.js@latest",cors:!0,debug:!1}},canPlayType:function(e){return d.HAS_MSE&&["video/x-flv","video/flv"].indexOf(e.toLowerCase())>-1},create:function(e,t,n){var i=e.originalNode,d=e.id+"_"+t.prefix,u=null,c=null;u=i.cloneNode(!0),t=Object.assign(t,e.options);for(var p=a.default.html5media.properties,m=a.default.html5media.events.concat(["click","mouseover","mouseout"]).filter(function(e){return"error"!==e}),h=function(t){var n=(0,l.createEvent)(t.type,e);e.dispatchEvent(n)},v=function(e){var n=""+e.substring(0,1).toUpperCase()+e.substring(1);u["get"+n]=function(){return null!==c?u[e]:null},u["set"+n]=function(n){if(-1===a.default.html5media.readOnlyProperties.indexOf(e))if("src"===e){if(u[e]="object"===(void 0===n?"undefined":o(n))&&n.src?n.src:n,null!==c){var i={};i.type="flv",i.url=n,i.cors=t.flv.cors,i.debug=t.flv.debug,i.path=t.flv.path;var r=t.flv.configs;c.destroy();for(var s=0,l=m.length;s<l;s++)u.removeEventListener(m[s],h);(c=f._createPlayer({options:i,configs:r,id:d})).attachMediaElement(u),c.load()}}else u[e]=n}},g=0,y=p.length;g<y;g++)v(p[g]);if(r.default["__ready__"+d]=function(t){e.flvPlayer=c=t;for(var n=flvjs.Events,i=function(e){"loadedmetadata"===e&&(c.unload(),c.detachMediaElement(),c.attachMediaElement(u),c.load()),u.addEventListener(e,h)},o=0,r=m.length;o<r;o++)i(m[o]);var a=function(t){n.hasOwnProperty(t)&&c.on(n[t],function(){for(var i=arguments.length,o=Array(i),r=0;r<i;r++)o[r]=arguments[r];return function(t,n){if("error"===t){var i=n[0]+": "+n[1]+" "+n[2].msg;e.generateError(i,u.src)}else{var o=(0,l.createEvent)(t,e);o.data=n,e.dispatchEvent(o)}}(n[t],o)})};for(var s in n)a(s)},n&&n.length>0)for(var E=0,b=n.length;E<b;E++)if(s.renderer.renderers[t.prefix].canPlayType(n[E].type)){u.setAttribute("src",n[E].src);break}u.setAttribute("id",d),i.parentNode.insertBefore(u,i),i.autoplay=!1,i.style.display="none";var S={};S.type="flv",S.url=u.src,S.cors=t.flv.cors,S.debug=t.flv.debug,S.path=t.flv.path;var x=t.flv.configs;u.setSize=function(e,t){return u.style.width=e+"px",u.style.height=t+"px",u},u.hide=function(){return null!==c&&c.pause(),u.style.display="none",u},u.show=function(){return u.style.display="",u},u.destroy=function(){null!==c&&c.destroy()};var w=(0,l.createEvent)("rendererready",u);return e.dispatchEvent(w),e.promises.push(f.load({options:S,configs:x,id:d})),u}};u.typeChecks.push(function(e){return~e.toLowerCase().indexOf(".flv")?"video/flv":null}),s.renderer.add(p)},{25:25,26:26,27:27,28:28,3:3,7:7,8:8}],22:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=i(e(3)),a=i(e(7)),s=e(8),l=e(27),d=e(25),u=e(28),c=e(26),f={promise:null,load:function(e){return"undefined"!=typeof Hls?f.promise=new Promise(function(e){e()}).then(function(){f._createPlayer(e)}):(e.options.path="string"==typeof e.options.path?e.options.path:"https://cdn.jsdelivr.net/npm/hls.js@latest",f.promise=f.promise||(0,c.loadScript)(e.options.path),f.promise.then(function(){f._createPlayer(e)})),f.promise},_createPlayer:function(e){var t=new Hls(e.options);return r.default["__ready__"+e.id](t),t}},p={name:"native_hls",options:{prefix:"native_hls",hls:{path:"https://cdn.jsdelivr.net/npm/hls.js@latest",autoStartLoad:!1,debug:!1}},canPlayType:function(e){return d.HAS_MSE&&["application/x-mpegurl","application/vnd.apple.mpegurl","audio/mpegurl","audio/hls","video/hls"].indexOf(e.toLowerCase())>-1},create:function(e,t,n){var i=e.originalNode,d=e.id+"_"+t.prefix,u=i.getAttribute("preload"),c=i.autoplay,p=null,m=null,h=0,v=n.length;m=i.cloneNode(!0),(t=Object.assign(t,e.options)).hls.autoStartLoad=u&&"none"!==u||c;for(var g=a.default.html5media.properties,y=a.default.html5media.events.concat(["click","mouseover","mouseout"]).filter(function(e){return"error"!==e}),E=function(t){var n=(0,l.createEvent)(t.type,e);e.dispatchEvent(n)},b=function(e){var n=""+e.substring(0,1).toUpperCase()+e.substring(1);m["get"+n]=function(){return null!==p?m[e]:null},m["set"+n]=function(n){if(-1===a.default.html5media.readOnlyProperties.indexOf(e))if("src"===e){if(m[e]="object"===(void 0===n?"undefined":o(n))&&n.src?n.src:n,null!==p){p.destroy();for(var i=0,r=y.length;i<r;i++)m.removeEventListener(y[i],E);(p=f._createPlayer({options:t.hls,id:d})).loadSource(n),p.attachMedia(m)}}else m[e]=n}},S=0,x=g.length;S<x;S++)b(g[S]);if(r.default["__ready__"+d]=function(t){e.hlsPlayer=p=t;for(var i=Hls.Events,o=function(t){if("loadedmetadata"===t){var n=e.originalNode.src;p.detachMedia(),p.loadSource(n),p.attachMedia(m)}m.addEventListener(t,E)},r=0,a=y.length;r<a;r++)o(y[r]);var s=void 0,d=void 0,u=function(t){i.hasOwnProperty(t)&&p.on(i[t],function(){for(var o=arguments.length,r=Array(o),a=0;a<o;a++)r[a]=arguments[a];return function(t,i){if("hlsError"===t){if(console.warn(i),(i=i[1]).fatal)switch(i.type){case"mediaError":var o=(new Date).getTime();if(!s||o-s>3e3)s=(new Date).getTime(),p.recoverMediaError();else if(!d||o-d>3e3)d=(new Date).getTime(),console.warn("Attempting to swap Audio Codec and recover from media error"),p.swapAudioCodec(),p.recoverMediaError();else{var r="Cannot recover, last media error recovery failed";e.generateError(r,m.src),console.error(r)}break;case"networkError":"manifestLoadError"===i.details&&h<v&&void 0!==n[h+1]?(m.setSrc(n[h++].src),m.load(),m.play()):(e.generateError("Network error",n),console.error("Network error"));break;default:p.destroy()}}else{var a=(0,l.createEvent)(t,e);a.data=i,e.dispatchEvent(a)}}(i[t],r)})};for(var c in i)u(c)},v>0)for(;h<v;h++)if(s.renderer.renderers[t.prefix].canPlayType(n[h].type)){m.setAttribute("src",n[h].src);break}"auto"===u||c||(m.addEventListener("play",function(){null!==p&&p.startLoad()}),m.addEventListener("pause",function(){null!==p&&p.stopLoad()})),m.setAttribute("id",d),i.parentNode.insertBefore(m,i),i.autoplay=!1,i.style.display="none",m.setSize=function(e,t){return m.style.width=e+"px",m.style.height=t+"px",m},m.hide=function(){return m.pause(),m.style.display="none",m},m.show=function(){return m.style.display="",m},m.destroy=function(){null!==p&&(p.stopLoad(),p.destroy())};var w=(0,l.createEvent)("rendererready",m);return e.dispatchEvent(w),e.promises.push(f.load({options:t.hls,id:d})),m}};u.typeChecks.push(function(e){return~e.toLowerCase().indexOf(".m3u8")?"application/x-mpegURL":null}),s.renderer.add(p)},{25:25,26:26,27:27,28:28,3:3,7:7,8:8}],23:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=i(e(3)),r=i(e(2)),a=i(e(7)),s=e(8),l=e(27),d=e(25),u={name:"html5",options:{prefix:"html5"},canPlayType:function(e){var t=r.default.createElement("video");return d.IS_ANDROID&&/\/mp(3|4)$/i.test(e)||~["application/x-mpegurl","vnd.apple.mpegurl","audio/mpegurl","audio/hls","video/hls"].indexOf(e.toLowerCase())&&d.SUPPORTS_NATIVE_HLS?"yes":t.canPlayType?t.canPlayType(e.toLowerCase()).replace(/no/,""):""},create:function(e,t,n){var i=e.id+"_"+t.prefix,o=!1,d=null;void 0===e.originalNode||null===e.originalNode?(d=r.default.createElement("audio"),e.appendChild(d)):d=e.originalNode,d.setAttribute("id",i);for(var u=a.default.html5media.properties,c=function(e){var t=""+e.substring(0,1).toUpperCase()+e.substring(1);d["get"+t]=function(){return d[e]},d["set"+t]=function(t){-1===a.default.html5media.readOnlyProperties.indexOf(e)&&(d[e]=t)}},f=0,p=u.length;f<p;f++)c(u[f]);for(var m=a.default.html5media.events.concat(["click","mouseover","mouseout"]).filter(function(e){return"error"!==e}),h=function(t){d.addEventListener(t,function(t){if(o){var n=(0,l.createEvent)(t.type,t.target);e.dispatchEvent(n)}})},v=0,g=m.length;v<g;v++)h(m[v]);d.setSize=function(e,t){return d.style.width=e+"px",d.style.height=t+"px",d},d.hide=function(){return o=!1,d.style.display="none",d},d.show=function(){return o=!0,d.style.display="",d};var y=0,E=n.length;if(E>0)for(;y<E;y++)if(s.renderer.renderers[t.prefix].canPlayType(n[y].type)){d.setAttribute("src",n[y].src);break}d.addEventListener("error",function(t){4===t.target.error.code&&o&&(y<E&&void 0!==n[y+1]?(d.src=n[y++].src,d.load(),d.play()):e.generateError("Media error: Format(s) not supported or source(s) not found",n))});var b=(0,l.createEvent)("rendererready",d);return e.dispatchEvent(b),d}};o.default.HtmlMediaElement=a.default.HtmlMediaElement=u,s.renderer.add(u)},{2:2,25:25,27:27,3:3,7:7,8:8}],24:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=i(e(3)),r=i(e(2)),a=i(e(7)),s=e(8),l=e(27),d=e(28),u=e(26),c={isIframeStarted:!1,isIframeLoaded:!1,iframeQueue:[],enqueueIframe:function(e){c.isLoaded="undefined"!=typeof YT&&YT.loaded,c.isLoaded?c.createIframe(e):(c.loadIframeApi(),c.iframeQueue.push(e))},loadIframeApi:function(){c.isIframeStarted||((0,u.loadScript)("https://www.youtube.com/player_api"),c.isIframeStarted=!0)},iFrameReady:function(){for(c.isLoaded=!0,c.isIframeLoaded=!0;c.iframeQueue.length>0;){var e=c.iframeQueue.pop();c.createIframe(e)}},createIframe:function(e){return new YT.Player(e.containerId,e)},getYouTubeId:function(e){var t="";e.indexOf("?")>0?""===(t=c.getYouTubeIdFromParam(e))&&(t=c.getYouTubeIdFromUrl(e)):t=c.getYouTubeIdFromUrl(e);return(t=t.substring(t.lastIndexOf("/")+1).split("?"))[0]},getYouTubeIdFromParam:function(e){if(void 0===e||null===e||!e.trim().length)return null;for(var t=e.split("?")[1].split("&"),n="",i=0,o=t.length;i<o;i++){var r=t[i].split("=");if("v"===r[0]){n=r[1];break}}return n},getYouTubeIdFromUrl:function(e){if(void 0===e||null===e||!e.trim().length)return null;return(e=e.split("?")[0]).substring(e.lastIndexOf("/")+1)},getYouTubeNoCookieUrl:function(e){if(void 0===e||null===e||!e.trim().length||-1===e.indexOf("//www.youtube"))return e;var t=e.split("/");return t[2]=t[2].replace(".com","-nocookie.com"),t.join("/")}},f={name:"youtube_iframe",options:{prefix:"youtube_iframe",youtube:{autoplay:0,controls:0,disablekb:1,end:0,loop:0,modestbranding:0,playsinline:0,rel:0,showinfo:0,start:0,iv_load_policy:3,nocookie:!1,imageQuality:null}},canPlayType:function(e){return~["video/youtube","video/x-youtube"].indexOf(e.toLowerCase())},create:function(e,t,n){var i={},s=[],d=null,u=!0,f=!1,p=null;i.options=t,i.id=e.id+"_"+t.prefix,i.mediaElement=e;for(var m=a.default.html5media.properties,h=function(t){var n=""+t.substring(0,1).toUpperCase()+t.substring(1);i["get"+n]=function(){if(null!==d){switch(t){case"currentTime":return d.getCurrentTime();case"duration":return d.getDuration();case"volume":return d.getVolume()/100;case"paused":return u;case"ended":return f;case"muted":return d.isMuted();case"buffered":var e=d.getVideoLoadedFraction(),n=d.getDuration();return{start:function(){return 0},end:function(){return e*n},length:1};case"src":return d.getVideoUrl();case"readyState":return 4}return null}return null},i["set"+n]=function(n){if(null!==d)switch(t){case"src":var o="string"==typeof n?n:n[0].src,r=c.getYouTubeId(o);e.originalNode.autoplay?d.loadVideoById(r):d.cueVideoById(r);break;case"currentTime":d.seekTo(n);break;case"muted":n?d.mute():d.unMute(),setTimeout(function(){var t=(0,l.createEvent)("volumechange",i);e.dispatchEvent(t)},50);break;case"volume":n,d.setVolume(100*n),setTimeout(function(){var t=(0,l.createEvent)("volumechange",i);e.dispatchEvent(t)},50);break;case"readyState":var a=(0,l.createEvent)("canplay",i);e.dispatchEvent(a)}else s.push({type:"set",propName:t,value:n})}},v=0,g=m.length;v<g;v++)h(m[v]);for(var y=a.default.html5media.methods,E=function(e){i[e]=function(){if(null!==d)switch(e){case"play":return u=!1,d.playVideo();case"pause":return u=!0,d.pauseVideo();case"load":return null}else s.push({type:"call",methodName:e})}},b=0,S=y.length;b<S;b++)E(y[b]);var x=r.default.createElement("div");x.id=i.id,i.options.youtube.nocookie&&(e.originalNode.src=c.getYouTubeNoCookieUrl(n[0].src)),e.originalNode.parentNode.insertBefore(x,e.originalNode),e.originalNode.style.display="none";var w="audio"===e.originalNode.tagName.toLowerCase(),P=w?"1":e.originalNode.height,T=w?"1":e.originalNode.width,C=c.getYouTubeId(n[0].src),k={id:i.id,containerId:x.id,videoId:C,height:P,width:T,playerVars:Object.assign({controls:0,rel:0,disablekb:1,showinfo:0,modestbranding:0,html5:1,iv_load_policy:3},i.options.youtube),origin:o.default.location.host,events:{onReady:function(t){if(e.youTubeApi=d=t.target,e.youTubeState={paused:!0,ended:!1},s.length)for(var n=0,o=s.length;n<o;n++){var r=s[n];if("set"===r.type){var a=r.propName,u=""+a.substring(0,1).toUpperCase()+a.substring(1);i["set"+u](r.value)}else"call"===r.type&&i[r.methodName]()}p=d.getIframe(),e.originalNode.muted&&d.mute();for(var c=["mouseover","mouseout"],f=function(t){var n=(0,l.createEvent)(t.type,i);e.dispatchEvent(n)},m=0,h=c.length;m<h;m++)p.addEventListener(c[m],f,!1);for(var v=["rendererready","loadedmetadata","loadeddata","canplay"],g=0,y=v.length;g<y;g++){var E=(0,l.createEvent)(v[g],i);e.dispatchEvent(E)}},onStateChange:function(t){var n=[];switch(t.data){case-1:n=["loadedmetadata"],u=!0,f=!1;break;case 0:n=["ended"],u=!1,f=!i.options.youtube.loop,i.options.youtube.loop||i.stopInterval();break;case 1:n=["play","playing"],u=!1,f=!1,i.startInterval();break;case 2:n=["pause"],u=!0,f=!1,i.stopInterval();break;case 3:n=["progress"],f=!1;break;case 5:n=["loadeddata","loadedmetadata","canplay"],u=!0,f=!1}for(var o=0,r=n.length;o<r;o++){var a=(0,l.createEvent)(n[o],i);e.dispatchEvent(a)}},onError:function(t){return function(t){var i="";switch(t.data){case 2:i="The request contains an invalid parameter value. Verify that video ID has 11 characters and that contains no invalid characters, such as exclamation points or asterisks.";break;case 5:i="The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.";break;case 100:i="The video requested was not found. Either video has been removed or has been marked as private.";break;case 101:case 105:i="The owner of the requested video does not allow it to be played in embedded players.";break;default:i="Unknown error."}e.generateError("Code "+t.data+": "+i,n)}(t)}}};return(w||e.originalNode.hasAttribute("playsinline"))&&(k.playerVars.playsinline=1),e.originalNode.controls&&(k.playerVars.controls=1),e.originalNode.autoplay&&(k.playerVars.autoplay=1),e.originalNode.loop&&(k.playerVars.loop=1),(k.playerVars.loop&&1===parseInt(k.playerVars.loop,10)||e.originalNode.src.indexOf("loop=")>-1)&&!k.playerVars.playlist&&-1===e.originalNode.src.indexOf("playlist=")&&(k.playerVars.playlist=c.getYouTubeId(e.originalNode.src)),c.enqueueIframe(k),i.onEvent=function(t,n,i){null!==i&&void 0!==i&&(e.youTubeState=i)},i.setSize=function(e,t){null!==d&&d.setSize(e,t)},i.hide=function(){i.stopInterval(),i.pause(),p&&(p.style.display="none")},i.show=function(){p&&(p.style.display="")},i.destroy=function(){d.destroy()},i.interval=null,i.startInterval=function(){i.interval=setInterval(function(){var t=(0,l.createEvent)("timeupdate",i);e.dispatchEvent(t)},250)},i.stopInterval=function(){i.interval&&clearInterval(i.interval)},i.getPosterUrl=function(){var n=t.youtube.imageQuality,i=c.getYouTubeId(e.originalNode.src);return n&&["default","hqdefault","mqdefault","sddefault","maxresdefault"].indexOf(n)>-1&&i?"https://img.youtube.com/vi/"+i+"/"+n+".jpg":""},i}};o.default.onYouTubePlayerAPIReady=function(){c.iFrameReady()},d.typeChecks.push(function(e){return/\/\/(www\.youtube|youtu\.?be)/i.test(e)?"video/x-youtube":null}),s.renderer.add(f)},{2:2,26:26,27:27,28:28,3:3,7:7,8:8}],25:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.cancelFullScreen=n.requestFullScreen=n.isFullScreen=n.FULLSCREEN_EVENT_NAME=n.HAS_NATIVE_FULLSCREEN_ENABLED=n.HAS_TRUE_NATIVE_FULLSCREEN=n.HAS_IOS_FULLSCREEN=n.HAS_MS_NATIVE_FULLSCREEN=n.HAS_MOZ_NATIVE_FULLSCREEN=n.HAS_WEBKIT_NATIVE_FULLSCREEN=n.HAS_NATIVE_FULLSCREEN=n.SUPPORTS_NATIVE_HLS=n.SUPPORT_PASSIVE_EVENT=n.SUPPORT_POINTER_EVENTS=n.HAS_MSE=n.IS_STOCK_ANDROID=n.IS_SAFARI=n.IS_FIREFOX=n.IS_CHROME=n.IS_EDGE=n.IS_IE=n.IS_ANDROID=n.IS_IOS=n.IS_IPOD=n.IS_IPHONE=n.IS_IPAD=n.UA=n.NAV=void 0;for(var o=i(e(3)),r=i(e(2)),a=i(e(7)),s=n.NAV=o.default.navigator,l=n.UA=s.userAgent.toLowerCase(),d=n.IS_IPAD=/ipad/i.test(l)&&!o.default.MSStream,u=n.IS_IPHONE=/iphone/i.test(l)&&!o.default.MSStream,c=n.IS_IPOD=/ipod/i.test(l)&&!o.default.MSStream,f=(n.IS_IOS=/ipad|iphone|ipod/i.test(l)&&!o.default.MSStream,n.IS_ANDROID=/android/i.test(l)),p=n.IS_IE=/(trident|microsoft)/i.test(s.appName),m=(n.IS_EDGE="msLaunchUri"in s&&!("documentMode"in r.default)),h=n.IS_CHROME=/chrome/i.test(l),v=n.IS_FIREFOX=/firefox/i.test(l),g=n.IS_SAFARI=/safari/i.test(l)&&!h,y=n.IS_STOCK_ANDROID=/^mozilla\/\d+\.\d+\s\(linux;\su;/i.test(l),E=(n.HAS_MSE="MediaSource"in o.default),b=n.SUPPORT_POINTER_EVENTS=function(){var e=r.default.createElement("x"),t=r.default.documentElement,n=o.default.getComputedStyle;if(!("pointerEvents"in e.style))return!1;e.style.pointerEvents="auto",e.style.pointerEvents="x",t.appendChild(e);var i=n&&"auto"===n(e,"").pointerEvents;return e.remove(),!!i}(),S=n.SUPPORT_PASSIVE_EVENT=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});o.default.addEventListener("test",null,t)}catch(e){}return e}(),x=["source","track","audio","video"],w=void 0,P=0,T=x.length;P<T;P++)w=r.default.createElement(x[P]);var C=n.SUPPORTS_NATIVE_HLS=g||f&&(h||y)||p&&/edge/i.test(l),k=void 0!==w.webkitEnterFullscreen,_=void 0!==w.requestFullscreen;k&&/mac os x 10_5/i.test(l)&&(_=!1,k=!1);var N=void 0!==w.webkitRequestFullScreen,A=void 0!==w.mozRequestFullScreen,L=void 0!==w.msRequestFullscreen,F=N||A||L,j=F,I="",M=void 0,O=void 0,D=void 0;A?j=r.default.mozFullScreenEnabled:L&&(j=r.default.msFullscreenEnabled),h&&(k=!1),F&&(N?I="webkitfullscreenchange":A?I="mozfullscreenchange":L&&(I="MSFullscreenChange"),n.isFullScreen=M=function(){return A?r.default.mozFullScreen:N?r.default.webkitIsFullScreen:L?null!==r.default.msFullscreenElement:void 0},n.requestFullScreen=O=function(e){N?e.webkitRequestFullScreen():A?e.mozRequestFullScreen():L&&e.msRequestFullscreen()},n.cancelFullScreen=D=function(){N?r.default.webkitCancelFullScreen():A?r.default.mozCancelFullScreen():L&&r.default.msExitFullscreen()});var V=n.HAS_NATIVE_FULLSCREEN=_,R=n.HAS_WEBKIT_NATIVE_FULLSCREEN=N,H=n.HAS_MOZ_NATIVE_FULLSCREEN=A,U=n.HAS_MS_NATIVE_FULLSCREEN=L,q=n.HAS_IOS_FULLSCREEN=k,B=n.HAS_TRUE_NATIVE_FULLSCREEN=F,z=n.HAS_NATIVE_FULLSCREEN_ENABLED=j,W=n.FULLSCREEN_EVENT_NAME=I;n.isFullScreen=M,n.requestFullScreen=O,n.cancelFullScreen=D,a.default.Features=a.default.Features||{},a.default.Features.isiPad=d,a.default.Features.isiPod=c,a.default.Features.isiPhone=u,a.default.Features.isiOS=a.default.Features.isiPhone||a.default.Features.isiPad,a.default.Features.isAndroid=f,a.default.Features.isIE=p,a.default.Features.isEdge=m,a.default.Features.isChrome=h,a.default.Features.isFirefox=v,a.default.Features.isSafari=g,a.default.Features.isStockAndroid=y,a.default.Features.hasMSE=E,a.default.Features.supportsNativeHLS=C,a.default.Features.supportsPointerEvents=b,a.default.Features.supportsPassiveEvent=S,a.default.Features.hasiOSFullScreen=q,a.default.Features.hasNativeFullscreen=V,a.default.Features.hasWebkitNativeFullScreen=R,a.default.Features.hasMozNativeFullScreen=H,a.default.Features.hasMsNativeFullScreen=U,a.default.Features.hasTrueNativeFullScreen=B,a.default.Features.nativeFullScreenEnabled=z,a.default.Features.fullScreenEventName=W,a.default.Features.isFullScreen=M,a.default.Features.requestFullScreen=O,a.default.Features.cancelFullScreen=D},{2:2,3:3,7:7}],26:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function o(e){return new Promise(function(t,n){var i=p.default.createElement("script");i.src=e,i.async=!0,i.onload=function(){i.remove(),t()},i.onerror=function(){i.remove(),n()},p.default.head.appendChild(i)})}function r(e){var t=e.getBoundingClientRect(),n=f.default.pageXOffset||p.default.documentElement.scrollLeft,i=f.default.pageYOffset||p.default.documentElement.scrollTop;return{top:t.top+i,left:t.left+n}}function a(e,t){y(e,t)?b(e,t):E(e,t)}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:400,n=arguments[2];e.style.opacity||(e.style.opacity=1);var i=null;f.default.requestAnimationFrame(function o(r){var a=r-(i=i||r),s=parseFloat(1-a/t,2);e.style.opacity=s<0?0:s,a>t?n&&"function"==typeof n&&n():f.default.requestAnimationFrame(o)})}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:400,n=arguments[2];e.style.opacity||(e.style.opacity=0);var i=null;f.default.requestAnimationFrame(function o(r){var a=r-(i=i||r),s=parseFloat(a/t,2);e.style.opacity=s>1?1:s,a>t?n&&"function"==typeof n&&n():f.default.requestAnimationFrame(o)})}function d(e,t){var n=[];e=e.parentNode.firstChild;do{t&&!t(e)||n.push(e)}while(e=e.nextSibling);return n}function u(e){return void 0!==e.getClientRects&&"function"===e.getClientRects?!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length):!(!e.offsetWidth&&!e.offsetHeight)}function c(e,t,n,i){var o=f.default.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),r="application/x-www-form-urlencoded; charset=UTF-8",a=!1,s="*/".concat("*");switch(t){case"text":r="text/plain";break;case"json":r="application/json, text/javascript";break;case"html":r="text/html";break;case"xml":r="application/xml, text/xml"}"application/x-www-form-urlencoded"!==r&&(s=r+", */*; q=0.01"),o&&(o.open("GET",e,!0),o.setRequestHeader("Accept",s),o.onreadystatechange=function(){if(!a&&4===o.readyState)if(200===o.status){a=!0;var e=void 0;switch(t){case"json":e=JSON.parse(o.responseText);break;case"xml":e=o.responseXML;break;default:e=o.responseText}n(e)}else"function"==typeof i&&i(o.status)},o.send())}Object.defineProperty(n,"__esModule",{value:!0}),n.removeClass=n.addClass=n.hasClass=void 0,n.loadScript=o,n.offset=r,n.toggleClass=a,n.fadeOut=s,n.fadeIn=l,n.siblings=d,n.visible=u,n.ajax=c;var f=i(e(3)),p=i(e(2)),m=i(e(7)),h=void 0,v=void 0,g=void 0;"classList"in p.default.documentElement?(h=function(e,t){return void 0!==e.classList&&e.classList.contains(t)},v=function(e,t){return e.classList.add(t)},g=function(e,t){return e.classList.remove(t)}):(h=function(e,t){return new RegExp("\\b"+t+"\\b").test(e.className)},v=function(e,t){y(e,t)||(e.className+=" "+t)},g=function(e,t){e.className=e.className.replace(new RegExp("\\b"+t+"\\b","g"),"")});var y=n.hasClass=h,E=n.addClass=v,b=n.removeClass=g;m.default.Utils=m.default.Utils||{},m.default.Utils.offset=r,m.default.Utils.hasClass=y,m.default.Utils.addClass=E,m.default.Utils.removeClass=b,m.default.Utils.toggleClass=a,m.default.Utils.fadeIn=l,m.default.Utils.fadeOut=s,m.default.Utils.siblings=d,m.default.Utils.visible=u,m.default.Utils.ajax=c,m.default.Utils.loadScript=o},{2:2,3:3,7:7}],27:[function(e,t,n){"use strict";function i(e){if("string"!=typeof e)throw new Error("Argument passed must be a string");var t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};return e.replace(/[&<>"]/g,function(e){return t[e]})}function o(e,t){var n=this,i=arguments,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("function"!=typeof e)throw new Error("First argument must be a function");if("number"!=typeof t)throw new Error("Second argument must be a numeric value");var r=void 0;return function(){var a=n,s=i,l=o&&!r;clearTimeout(r),r=setTimeout(function(){r=null,o||e.apply(a,s)},t),l&&e.apply(a,s)}}function r(e){return Object.getOwnPropertyNames(e).length<=0}function a(e,t){var n=/^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/,i={d:[],w:[]};return(e||"").split(" ").forEach(function(e){var o=e+(t?"."+t:"");o.startsWith(".")?(i.d.push(o),i.w.push(o)):i[n.test(e)?"w":"d"].push(o)}),i.d=i.d.join(" "),i.w=i.w.join(" "),i}function s(e,t){if("string"!=typeof e)throw new Error("Event name must be a string");var n=e.match(/([a-z]+\.([a-z]+))/i),i={target:t};return null!==n&&(e=n[1],i.namespace=n[2]),new window.CustomEvent(e,{detail:i})}function l(e,t){return!!(e&&t&&2&e.compareDocumentPosition(t))}function d(e){return"string"==typeof e}Object.defineProperty(n,"__esModule",{value:!0}),n.escapeHTML=i,n.debounce=o,n.isObjectEmpty=r,n.splitEvents=a,n.createEvent=s,n.isNodeAfter=l,n.isString=d;var u=function(e){return e&&e.__esModule?e:{default:e}}(e(7));u.default.Utils=u.default.Utils||{},u.default.Utils.escapeHTML=i,u.default.Utils.debounce=o,u.default.Utils.isObjectEmpty=r,u.default.Utils.splitEvents=a,u.default.Utils.createEvent=s,u.default.Utils.isNodeAfter=l,u.default.Utils.isString=d},{7:7}],28:[function(e,t,n){"use strict";function i(e){if("string"!=typeof e)throw new Error("`url` argument must be a string");var t=document.createElement("div");return t.innerHTML='<a href="'+(0,u.escapeHTML)(e)+'">x</a>',t.firstChild.href}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e&&!t?a(e):t}function r(e){if("string"!=typeof e)throw new Error("`type` argument must be a string");return e&&e.indexOf(";")>-1?e.substr(0,e.indexOf(";")):e}function a(e){if("string"!=typeof e)throw new Error("`url` argument must be a string");for(var t=0,n=c.length;t<n;t++){var i=c[t](e);if(i)return i}var o=l(s(e)),r="video/mp4";return o&&(~["mp4","m4v","ogg","ogv","webm","flv","mpeg","mov"].indexOf(o)?r="video/"+o:~["mp3","oga","wav","mid","midi"].indexOf(o)&&(r="audio/"+o)),r}function s(e){if("string"!=typeof e)throw new Error("`url` argument must be a string");var t=e.split("?")[0].split("\\").pop().split("/").pop();return~t.indexOf(".")?t.substring(t.lastIndexOf(".")+1):""}function l(e){if("string"!=typeof e)throw new Error("`extension` argument must be a string");switch(e){case"mp4":case"m4v":return"mp4";case"webm":case"webma":case"webmv":return"webm";case"ogg":case"oga":case"ogv":return"ogg";default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.typeChecks=void 0,n.absolutizeUrl=i,n.formatType=o,n.getMimeFromType=r,n.getTypeFromFile=a,n.getExtension=s,n.normalizeExtension=l;var d=function(e){return e&&e.__esModule?e:{default:e}}(e(7)),u=e(27),c=n.typeChecks=[];d.default.Utils=d.default.Utils||{},d.default.Utils.typeChecks=c,d.default.Utils.absolutizeUrl=i,d.default.Utils.formatType=o,d.default.Utils.getMimeFromType=r,d.default.Utils.getTypeFromFile=a,d.default.Utils.getExtension=s,d.default.Utils.normalizeExtension=l},{27:27,7:7}],29:[function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var o=i(e(2)),r=i(e(4));if([Element.prototype,CharacterData.prototype,DocumentType.prototype].forEach(function(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){this.parentNode.removeChild(this)}})}),function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=o.default.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}if("function"==typeof window.CustomEvent)return!1;e.prototype=window.Event.prototype,window.CustomEvent=e}(),"function"!=typeof Object.assign&&(Object.assign=function(e){if(null===e||void 0===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1,i=arguments.length;n<i;n++){var o=arguments[n];if(null!==o)for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(t[r]=o[r])}return t}),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Element.prototype.matches||(Element.prototype.matches=Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector||function(e){for(var t=(this.document||this.ownerDocument).querySelectorAll(e),n=t.length-1;--n>=0&&t.item(n)!==this;);return n>-1}),window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t=(this.document||this.ownerDocument).querySelectorAll(e),n=void 0,i=this;do{for(n=t.length;--n>=0&&t.item(n)!==i;);}while(n<0&&(i=i.parentElement));return i}),function(){for(var e=0,t=["ms","moz","webkit","o"],n=0;n<t.length&&!window.requestAnimationFrame;++n)window.requestAnimationFrame=window[t[n]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[t[n]+"CancelAnimationFrame"]||window[t[n]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var n=(new Date).getTime(),i=Math.max(0,16-(n-e)),o=window.setTimeout(function(){t(n+i)},i);return e=n+i,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}(),/firefox/i.test(navigator.userAgent)){var a=window.getComputedStyle;window.getComputedStyle=function(e,t){var n=a(e,t);return null===n?{getPropertyValue:function(){}}:n}}window.Promise||(window.Promise=r.default),function(e){e&&e.prototype&&null===e.prototype.children&&Object.defineProperty(e.prototype,"children",{get:function(){for(var e=0,t=void 0,n=this.childNodes,i=[];t=n[e++];)1===t.nodeType&&i.push(t);return i}})}(window.Node||window.Element)},{2:2,4:4}],30:[function(e,t,n){"use strict";function i(){return!((arguments.length>0&&void 0!==arguments[0]?arguments[0]:25)%1==0)}function o(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:25,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"hh:mm:ss";e=!e||"number"!=typeof e||e<0?0:e;var s=Math.round(.066666*o),l=Math.round(o),d=24*Math.round(3600*o),u=Math.round(600*o),c=i(o)?";":":",f=void 0,p=void 0,m=void 0,h=void 0,v=Math.round(e*o);if(i(o)){v<0&&(v=d+v);var g=(v%=d)%u;v+=9*s*Math.floor(v/u),g>s&&(v+=s*Math.floor((g-s)/Math.round(60*l-s)));var y=Math.floor(v/l);f=Math.floor(Math.floor(y/60)/60),p=Math.floor(y/60)%60,m=n?y%60:Math.floor(v/l%60).toFixed(r)}else f=Math.floor(e/3600)%24,p=Math.floor(e/60)%60,m=n?Math.floor(e%60):Math.floor(e%60).toFixed(r);f=f<=0?0:f,p=p<=0?0:p,m=60===(m=m<=0?0:m)?0:m,p=60===p?0:p;for(var E=a.split(":"),b={},S=0,x=E.length;S<x;++S){for(var w="",P=0,T=E[S].length;P<T;P++)w.indexOf(E[S][P])<0&&(w+=E[S][P]);~["f","s","m","h"].indexOf(w)&&(b[w]=E[S].length)}var C=t||f>0?(f<10&&b.h>1?"0"+f:f)+":":"";return C+=(p<10&&b.m>1?"0"+p:p)+":",C+=""+(m<10&&b.s>1?"0"+m:m),n&&(C+=(h=(h=(v%l).toFixed(0))<=0?0:h)<10&&b.f?c+"0"+h:""+c+h),C}function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:25;if("string"!=typeof e)throw new TypeError("Time must be a string");if(e.indexOf(";")>0&&(e=e.replace(";",":")),!/\d{2}(\:\d{2}){0,3}/i.test(e))throw new TypeError("Time code must have the format `00:00:00`");var n=e.split(":"),o=void 0,r=0,a=0,s=0,l=0,d=0,u=Math.round(.066666*t),c=Math.round(t),f=3600*c,p=60*c;switch(n.length){default:case 1:s=parseInt(n[0],10);break;case 2:a=parseInt(n[0],10),s=parseInt(n[1],10);break;case 3:r=parseInt(n[0],10),a=parseInt(n[1],10),s=parseInt(n[2],10);break;case 4:r=parseInt(n[0],10),a=parseInt(n[1],10),s=parseInt(n[2],10),l=parseInt(n[3],10)}return o=i(t)?f*r+p*a+c*s+l-u*((d=60*r+a)-Math.floor(d/10)):(f*r+p*a+t*s+l)/t,parseFloat(o.toFixed(3))}function a(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:25;e=!e||"number"!=typeof e||e<0?0:e;for(var i=Math.floor(e/3600)%24,o=Math.floor(e/60)%60,r=Math.floor(e%60),a=[[Math.floor((e%1*n).toFixed(3)),"f"],[r,"s"],[o,"m"],[i,"h"]],s=t.timeFormat,l=s[1]===s[0],d=l?2:1,u=s.length<d?s[d]:":",c=s[0],f=!1,p=0,m=a.length;p<m;p++)if(~s.indexOf(a[p][1]))f=!0;else if(f){for(var h=!1,v=p;v<m;v++)if(a[v][0]>0){h=!0;break}if(!h)break;l||(s=c+s),s=a[p][1]+u+s,l&&(s=a[p][1]+s),c=a[p][1]}t.timeFormat=s}function s(e){if("string"!=typeof e)throw new TypeError("Argument must be a string value");for(var t=~(e=e.replace(",",".")).indexOf(".")?e.split(".")[1].length:0,n=0,i=1,o=0,r=(e=e.split(":").reverse()).length;o<r;o++)i=1,o>0&&(i=Math.pow(60,o)),n+=Number(e[o])*i;return Number(n.toFixed(t))}Object.defineProperty(n,"__esModule",{value:!0}),n.isDropFrame=i,n.secondsToTimeCode=o,n.timeCodeToSeconds=r,n.calculateTimeFormat=a,n.convertSMPTEtoSeconds=s;var l=function(e){return e&&e.__esModule?e:{default:e}}(e(7));l.default.Utils=l.default.Utils||{},l.default.Utils.secondsToTimeCode=o,l.default.Utils.timeCodeToSeconds=r,l.default.Utils.calculateTimeFormat=a,l.default.Utils.convertSMPTEtoSeconds=s},{7:7}]},{},[29,6,5,15,23,20,19,21,22,24,16,18,17,9,10,11,12,13,14]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lib/media-element/mediaelement-migrate.js ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* global console, MediaElementPlayer, mejs */
2
+ (function ( window, $ ) {
3
+ // Reintegrate `plugins` since they don't exist in MEJS anymore; it won't affect anything in the player
4
+ if (mejs.plugins === undefined) {
5
+ mejs.plugins = {};
6
+ mejs.plugins.silverlight = [];
7
+ mejs.plugins.silverlight.push({
8
+ types: []
9
+ });
10
+ }
11
+
12
+ // Inclusion of old `HtmlMediaElementShim` if it doesn't exist
13
+ mejs.HtmlMediaElementShim = mejs.HtmlMediaElementShim || {
14
+ getTypeFromFile: mejs.Utils.getTypeFromFile
15
+ };
16
+
17
+ // Add missing global variables for backward compatibility
18
+ if (mejs.MediaFeatures === undefined) {
19
+ mejs.MediaFeatures = mejs.Features;
20
+ }
21
+ if (mejs.Utility === undefined) {
22
+ mejs.Utility = mejs.Utils;
23
+ }
24
+
25
+ /**
26
+ * Create missing variables and have default `classPrefix` overridden to avoid issues.
27
+ *
28
+ * `media` is now a fake wrapper needed to simplify manipulation of various media types,
29
+ * so in order to access the `video` or `audio` tag, use `media.originalNode` or `player.node`;
30
+ * `player.container` used to be jQuery but now is a HTML element, and many elements inside
31
+ * the player rely on it being a HTML now, so its conversion is difficult; however, a
32
+ * `player.$container` new variable has been added to be used as jQuery object
33
+ */
34
+ var init = MediaElementPlayer.prototype.init;
35
+ MediaElementPlayer.prototype.init = function () {
36
+ this.options.classPrefix = 'mejs-';
37
+ this.$media = this.$node = $( this.node );
38
+ init.call( this );
39
+ };
40
+
41
+ var ready = MediaElementPlayer.prototype._meReady;
42
+ MediaElementPlayer.prototype._meReady = function () {
43
+ this.container = $( this.container) ;
44
+ this.controls = $( this.controls );
45
+ this.layers = $( this.layers );
46
+ ready.apply( this, arguments );
47
+ };
48
+
49
+ // Override method so certain elements can be called with jQuery
50
+ MediaElementPlayer.prototype.getElement = function ( el ) {
51
+ return $ !== undefined && el instanceof $ ? el[0] : el;
52
+ };
53
+
54
+ // Add jQuery ONLY to most of custom features' arguments for backward compatibility; default features rely 100%
55
+ // on the arguments being HTML elements to work properly
56
+ MediaElementPlayer.prototype.buildfeatures = function ( player, controls, layers, media ) {
57
+ var defaultFeatures = [
58
+ 'playpause',
59
+ 'current',
60
+ 'progress',
61
+ 'duration',
62
+ 'tracks',
63
+ 'volume',
64
+ 'fullscreen'
65
+ ];
66
+ for (var i = 0, total = this.options.features.length; i < total; i++) {
67
+ var feature = this.options.features[i];
68
+ if (this['build' + feature]) {
69
+ try {
70
+ // Use jQuery for non-default features
71
+ if (defaultFeatures.indexOf(feature) === -1) {
72
+ this['build' + feature]( player, $(controls), $(layers), media );
73
+ } else {
74
+ this['build' + feature]( player, controls, layers, media );
75
+ }
76
+
77
+ } catch (e) {
78
+ console.error( 'error building ' + feature, e );
79
+ }
80
+ }
81
+ }
82
+ };
83
+
84
+ })( window, jQuery );
lib/media-element/mediaelement-migrate.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(a,b){void 0===mejs.plugins&&(mejs.plugins={},mejs.plugins.silverlight=[],mejs.plugins.silverlight.push({types:[]})),mejs.HtmlMediaElementShim=mejs.HtmlMediaElementShim||{getTypeFromFile:mejs.Utils.getTypeFromFile},void 0===mejs.MediaFeatures&&(mejs.MediaFeatures=mejs.Features),void 0===mejs.Utility&&(mejs.Utility=mejs.Utils);var c=MediaElementPlayer.prototype.init;MediaElementPlayer.prototype.init=function(){this.options.classPrefix="mejs-",this.$media=this.$node=b(this.node),c.call(this)};var d=MediaElementPlayer.prototype._meReady;MediaElementPlayer.prototype._meReady=function(){this.container=b(this.container),this.controls=b(this.controls),this.layers=b(this.layers),d.apply(this,arguments)},MediaElementPlayer.prototype.getElement=function(a){return void 0!==b&&a instanceof b?a[0]:a},MediaElementPlayer.prototype.buildfeatures=function(a,c,d,e){for(var f=["playpause","current","progress","duration","tracks","volume","fullscreen"],g=0,h=this.options.features.length;g<h;g++){var i=this.options.features[g];if(this["build"+i])try{f.indexOf(i)===-1?this["build"+i](a,b(c),b(d),e):this["build"+i](a,c,d,e)}catch(j){console.error("error building "+i,j)}}}}(window,jQuery);
lib/media-element/mediaelement.js CHANGED
@@ -1,1573 +1,3974 @@
1
  /*!
2
- * MediaElement.js
3
- * HTML5 <video> and <audio> shim and player
4
- * http://mediaelementjs.com/
5
- *
6
- * Creates a JavaScript object that mimics HTML5 MediaElement API
7
- * for browsers that don't understand HTML5 or can't play the provided codec
8
- * Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
9
- *
10
- * Copyright 2010-2012, John Dyer (http://j.hn)
11
- * Dual licensed under the MIT or GPL Version 2 licenses.
12
- *
13
- */
14
- // Namespace
15
- var mejs = mejs || {};
16
-
17
- // version number
18
- mejs.version = '2.9.5';
19
-
20
- // player number (for missing, same id attr)
21
- mejs.meIndex = 0;
22
-
23
- // media types accepted by plugins
24
- mejs.plugins = {
25
- silverlight: [
26
- {version: [3,0], types: ['video/mp4','video/m4v','video/mov','video/wmv','audio/wma','audio/m4a','audio/mp3','audio/wav','audio/mpeg']}
27
- ],
28
- flash: [
29
- {version: [9,0,124], types: ['video/mp4','video/m4v','video/mov','video/flv','video/rtmp','video/x-flv','audio/flv','audio/x-flv','audio/mp3','audio/m4a','audio/mpeg', 'video/youtube', 'video/x-youtube']}
30
- //,{version: [12,0], types: ['video/webm']} // for future reference (hopefully!)
31
- ],
32
- youtube: [
33
- {version: null, types: ['video/youtube', 'video/x-youtube']}
34
- ],
35
- vimeo: [
36
- {version: null, types: ['video/vimeo']}
37
- ]
38
- };
39
 
40
- /*
41
- Utility methods
42
- */
43
- mejs.Utility = {
44
- encodeUrl: function(url) {
45
- return encodeURIComponent(url); //.replace(/\?/gi,'%3F').replace(/=/gi,'%3D').replace(/&/gi,'%26');
46
- },
47
- escapeHTML: function(s) {
48
- return s.toString().split('&').join('&amp;').split('<').join('&lt;').split('"').join('&quot;');
49
- },
50
- absolutizeUrl: function(url) {
51
- var el = document.createElement('div');
52
- el.innerHTML = '<a href="' + this.escapeHTML(url) + '">x</a>';
53
- return el.firstChild.href;
54
- },
55
- getScriptPath: function(scriptNames) {
56
- var
57
- i = 0,
58
- j,
59
- path = '',
60
- name = '',
61
- script,
62
- scripts = document.getElementsByTagName('script'),
63
- il = scripts.length,
64
- jl = scriptNames.length;
65
-
66
- for (; i < il; i++) {
67
- script = scripts[i].src;
68
- for (j = 0; j < jl; j++) {
69
- name = scriptNames[j];
70
- if (script.indexOf(name) > -1) {
71
- path = script.substring(0, script.indexOf(name));
72
- break;
73
- }
74
- }
75
- if (path !== '') {
76
- break;
77
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  }
79
- return path;
80
- },
81
- secondsToTimeCode: function(time, forceHours, showFrameCount, fps) {
82
- //add framecount
83
- if (typeof showFrameCount == 'undefined') {
84
- showFrameCount=false;
85
- } else if(typeof fps == 'undefined') {
86
- fps = 25;
87
- }
88
-
89
- var hours = Math.floor(time / 3600) % 24,
90
- minutes = Math.floor(time / 60) % 60,
91
- seconds = Math.floor(time % 60),
92
- frames = Math.floor(((time % 1)*fps).toFixed(3)),
93
- result =
94
- ( (forceHours || hours > 0) ? (hours < 10 ? '0' + hours : hours) + ':' : '')
95
- + (minutes < 10 ? '0' + minutes : minutes) + ':'
96
- + (seconds < 10 ? '0' + seconds : seconds)
97
- + ((showFrameCount) ? ':' + (frames < 10 ? '0' + frames : frames) : '');
98
-
99
- return result;
100
- },
101
-
102
- timeCodeToSeconds: function(hh_mm_ss_ff, forceHours, showFrameCount, fps){
103
- if (typeof showFrameCount == 'undefined') {
104
- showFrameCount=false;
105
- } else if(typeof fps == 'undefined') {
106
- fps = 25;
107
- }
108
-
109
- var tc_array = hh_mm_ss_ff.split(":"),
110
- tc_hh = parseInt(tc_array[0], 10),
111
- tc_mm = parseInt(tc_array[1], 10),
112
- tc_ss = parseInt(tc_array[2], 10),
113
- tc_ff = 0,
114
- tc_in_seconds = 0;
115
-
116
- if (showFrameCount) {
117
- tc_ff = parseInt(tc_array[3])/fps;
118
- }
119
-
120
- tc_in_seconds = ( tc_hh * 3600 ) + ( tc_mm * 60 ) + tc_ss + tc_ff;
121
-
122
- return tc_in_seconds;
123
- },
124
-
125
-
126
- convertSMPTEtoSeconds: function (SMPTE) {
127
- if (typeof SMPTE != 'string')
128
- return false;
129
-
130
- SMPTE = SMPTE.replace(',', '.');
131
-
132
- var secs = 0,
133
- decimalLen = (SMPTE.indexOf('.') != -1) ? SMPTE.split('.')[1].length : 0,
134
- multiplier = 1;
135
-
136
- SMPTE = SMPTE.split(':').reverse();
137
-
138
- for (var i = 0; i < SMPTE.length; i++) {
139
- multiplier = 1;
140
- if (i > 0) {
141
- multiplier = Math.pow(60, i);
142
- }
143
- secs += Number(SMPTE[i]) * multiplier;
144
- }
145
- return Number(secs.toFixed(decimalLen));
146
- },
147
-
148
- /* borrowed from SWFObject: http://code.google.com/p/swfobject/source/browse/trunk/swfobject/src/swfobject.js#474 */
149
- removeSwf: function(id) {
150
- var obj = document.getElementById(id);
151
- if (obj && obj.nodeName == "OBJECT") {
152
- if (mejs.MediaFeatures.isIE) {
153
- obj.style.display = "none";
154
- (function(){
155
- if (obj.readyState == 4) {
156
- mejs.Utility.removeObjectInIE(id);
157
- } else {
158
- setTimeout(arguments.callee, 10);
159
- }
160
- })();
161
- } else {
162
- obj.parentNode.removeChild(obj);
163
- }
164
  }
165
- },
166
- removeObjectInIE: function(id) {
167
- var obj = document.getElementById(id);
168
- if (obj) {
169
- for (var i in obj) {
170
- if (typeof obj[i] == "function") {
171
- obj[i] = null;
172
- }
173
- }
174
- obj.parentNode.removeChild(obj);
175
- }
176
  }
 
 
177
  };
178
 
 
 
179
 
180
- // Core detector, plugins are added below
181
- mejs.PluginDetector = {
182
 
183
- // main public function to test a plug version number PluginDetector.hasPluginVersion('flash',[9,0,125]);
184
- hasPluginVersion: function(plugin, v) {
185
- var pv = this.plugins[plugin];
186
- v[1] = v[1] || 0;
187
- v[2] = v[2] || 0;
188
- return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
189
- },
190
 
191
- // cached values
192
- nav: window.navigator,
193
- ua: window.navigator.userAgent.toLowerCase(),
194
 
195
- // stored version numbers
196
- plugins: [],
197
 
198
- // runs detectPlugin() and stores the version number
199
- addPlugin: function(p, pluginName, mimeType, activeX, axDetect) {
200
- this.plugins[p] = this.detectPlugin(pluginName, mimeType, activeX, axDetect);
201
- },
202
 
203
- // get the version number from the mimetype (all but IE) or ActiveX (IE)
204
- detectPlugin: function(pluginName, mimeType, activeX, axDetect) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
 
206
- var version = [0,0,0],
207
- description,
208
- i,
209
- ax;
210
 
211
- // Firefox, Webkit, Opera
212
- if (typeof(this.nav.plugins) != 'undefined' && typeof this.nav.plugins[pluginName] == 'object') {
213
- description = this.nav.plugins[pluginName].description;
214
- if (description && !(typeof this.nav.mimeTypes != 'undefined' && this.nav.mimeTypes[mimeType] && !this.nav.mimeTypes[mimeType].enabledPlugin)) {
215
- version = description.replace(pluginName, '').replace(/^\s+/,'').replace(/\sr/gi,'.').split('.');
216
- for (i=0; i<version.length; i++) {
217
- version[i] = parseInt(version[i].match(/\d+/), 10);
218
- }
219
  }
220
- // Internet Explorer / ActiveX
221
- } else if (typeof(window.ActiveXObject) != 'undefined') {
222
- try {
223
- ax = new ActiveXObject(activeX);
224
- if (ax) {
225
- version = axDetect(ax);
226
- }
227
  }
228
- catch (e) { }
229
  }
230
- return version;
 
 
 
 
 
 
 
231
  }
 
 
232
  };
233
 
234
- // Add Flash detection
235
- mejs.PluginDetector.addPlugin('flash','Shockwave Flash','application/x-shockwave-flash','ShockwaveFlash.ShockwaveFlash', function(ax) {
236
- // adapted from SWFObject
237
- var version = [],
238
- d = ax.GetVariable("$version");
239
- if (d) {
240
- d = d.split(" ")[1].split(",");
241
- version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
242
- }
243
- return version;
244
- });
245
 
246
- // Add Silverlight detection
247
- mejs.PluginDetector.addPlugin('silverlight','Silverlight Plug-In','application/x-silverlight-2','AgControl.AgControl', function (ax) {
248
- // Silverlight cannot report its version number to IE
249
- // but it does have a isVersionSupported function, so we have to loop through it to get a version number.
250
- // adapted from http://www.silverlightversion.com/
251
- var v = [0,0,0,0],
252
- loopMatch = function(ax, v, i, n) {
253
- while(ax.isVersionSupported(v[0]+ "."+ v[1] + "." + v[2] + "." + v[3])){
254
- v[i]+=n;
255
- }
256
- v[i] -= n;
257
- };
258
- loopMatch(ax, v, 0, 1);
259
- loopMatch(ax, v, 1, 1);
260
- loopMatch(ax, v, 2, 10000); // the third place in the version number is usually 5 digits (4.0.xxxxx)
261
- loopMatch(ax, v, 2, 1000);
262
- loopMatch(ax, v, 2, 100);
263
- loopMatch(ax, v, 2, 10);
264
- loopMatch(ax, v, 2, 1);
265
- loopMatch(ax, v, 3, 1);
266
-
267
- return v;
268
  });
269
- // add adobe acrobat
270
- /*
271
- PluginDetector.addPlugin('acrobat','Adobe Acrobat','application/pdf','AcroPDF.PDF', function (ax) {
272
- var version = [],
273
- d = ax.GetVersions().split(',')[0].split('=')[1].split('.');
274
 
275
- if (d) {
276
- version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
277
  }
278
- return version;
279
- });
280
- */
281
- // necessary detection (fixes for <IE9)
282
- mejs.MediaFeatures = {
283
- init: function() {
284
- var
285
- t = this,
286
- d = document,
287
- nav = mejs.PluginDetector.nav,
288
- ua = mejs.PluginDetector.ua.toLowerCase(),
289
- i,
290
- v,
291
- html5Elements = ['source','track','audio','video'];
292
-
293
- // detect browsers (only the ones that have some kind of quirk we need to work around)
294
- t.isiPad = (ua.match(/ipad/i) !== null);
295
- t.isiPhone = (ua.match(/iphone/i) !== null);
296
- t.isiOS = t.isiPhone || t.isiPad;
297
- t.isAndroid = (ua.match(/android/i) !== null);
298
- t.isBustedAndroid = (ua.match(/android 2\.[12]/) !== null);
299
- t.isIE = (nav.appName.toLowerCase().indexOf("microsoft") != -1);
300
- t.isChrome = (ua.match(/chrome/gi) !== null);
301
- t.isFirefox = (ua.match(/firefox/gi) !== null);
302
- t.isWebkit = (ua.match(/webkit/gi) !== null);
303
- t.isGecko = (ua.match(/gecko/gi) !== null) && !t.isWebkit;
304
- t.isOpera = (ua.match(/opera/gi) !== null);
305
- t.hasTouch = ('ontouchstart' in window);
306
-
307
- // create HTML5 media elements for IE before 9, get a <video> element for fullscreen detection
308
- for (i=0; i<html5Elements.length; i++) {
309
- v = document.createElement(html5Elements[i]);
310
- }
311
-
312
- t.supportsMediaTag = (typeof v.canPlayType !== 'undefined' || t.isBustedAndroid);
313
-
314
- // detect native JavaScript fullscreen (Safari/Firefox only, Chrome still fails)
315
-
316
- // iOS
317
- t.hasSemiNativeFullScreen = (typeof v.webkitEnterFullscreen !== 'undefined');
318
-
319
- // Webkit/firefox
320
- t.hasWebkitNativeFullScreen = (typeof v.webkitRequestFullScreen !== 'undefined');
321
- t.hasMozNativeFullScreen = (typeof v.mozRequestFullScreen !== 'undefined');
322
-
323
- t.hasTrueNativeFullScreen = (t.hasWebkitNativeFullScreen || t.hasMozNativeFullScreen);
324
- t.nativeFullScreenEnabled = t.hasTrueNativeFullScreen;
325
- if (t.hasMozNativeFullScreen) {
326
- t.nativeFullScreenEnabled = v.mozFullScreenEnabled;
327
- }
328
-
329
-
330
- if (this.isChrome) {
331
- t.hasSemiNativeFullScreen = false;
332
- }
333
-
334
- if (t.hasTrueNativeFullScreen) {
335
- t.fullScreenEventName = (t.hasWebkitNativeFullScreen) ? 'webkitfullscreenchange' : 'mozfullscreenchange';
336
-
337
-
338
- t.isFullScreen = function() {
339
- if (v.mozRequestFullScreen) {
340
- return d.mozFullScreen;
341
- } else if (v.webkitRequestFullScreen) {
342
- return d.webkitIsFullScreen;
343
- }
344
- }
345
-
346
- t.requestFullScreen = function(el) {
347
-
348
- if (t.hasWebkitNativeFullScreen) {
349
- el.webkitRequestFullScreen();
350
- } else if (t.hasMozNativeFullScreen) {
351
- el.mozRequestFullScreen();
352
- }
353
- }
354
-
355
- t.cancelFullScreen = function() {
356
- if (t.hasWebkitNativeFullScreen) {
357
- document.webkitCancelFullScreen();
358
- } else if (t.hasMozNativeFullScreen) {
359
- document.mozCancelFullScreen();
360
- }
361
- }
362
-
363
- }
364
-
365
-
366
- // OS X 10.5 can't do this even if it says it can :(
367
- if (t.hasSemiNativeFullScreen && ua.match(/mac os x 10_5/i)) {
368
- t.hasNativeFullScreen = false;
369
- t.hasSemiNativeFullScreen = false;
370
- }
371
-
372
  }
373
- };
374
- mejs.MediaFeatures.init();
375
 
 
 
376
 
377
- /*
378
- extension methods to <video> or <audio> object to bring it into parity with PluginMediaElement (see below)
379
- */
380
- mejs.HtmlMediaElement = {
381
- pluginType: 'native',
382
- isFullScreen: false,
383
 
384
- setCurrentTime: function (time) {
385
- this.currentTime = time;
386
- },
 
387
 
388
- setMuted: function (muted) {
389
- this.muted = muted;
390
- },
391
 
392
- setVolume: function (volume) {
393
- this.volume = volume;
394
- },
395
 
396
- // for parity with the plugin versions
397
- stop: function () {
398
- this.pause();
399
- },
 
 
 
 
 
 
 
 
 
 
 
 
400
 
401
- // This can be a url string
402
- // or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
403
- setSrc: function (url) {
404
-
405
- // Fix for IE9 which can't set .src when there are <source> elements. Awesome, right?
406
- var
407
- existingSources = this.getElementsByTagName('source');
408
- while (existingSources.length > 0){
409
- this.removeChild(existingSources[0]);
410
- }
411
-
412
- if (typeof url == 'string') {
413
- this.src = url;
414
- } else {
415
- var i, media;
416
 
417
- for (i=0; i<url.length; i++) {
418
- media = url[i];
419
- if (this.canPlayType(media.type)) {
420
- this.src = media.src;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
421
  }
422
- }
423
- }
424
- },
425
 
426
- setVideoSize: function (width, height) {
427
- this.width = width;
428
- this.height = height;
 
 
 
 
 
 
 
429
  }
430
- };
431
 
432
- /*
433
- Mimics the <video/audio> element by calling Flash's External Interface or Silverlights [ScriptableMember]
434
- */
435
- mejs.PluginMediaElement = function (pluginid, pluginType, mediaUrl) {
436
- this.id = pluginid;
437
- this.pluginType = pluginType;
438
- this.src = mediaUrl;
439
- this.events = {};
440
- };
441
 
442
- // JavaScript values and ExternalInterface methods that match HTML5 video properties methods
443
- // http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/video/FLVPlayback.html
444
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html
445
- mejs.PluginMediaElement.prototype = {
446
-
447
- // special
448
- pluginElement: null,
449
- pluginType: '',
450
- isFullScreen: false,
451
-
452
- // not implemented :(
453
- playbackRate: -1,
454
- defaultPlaybackRate: -1,
455
- seekable: [],
456
- played: [],
457
-
458
- // HTML5 read-only properties
459
- paused: true,
460
- ended: false,
461
- seeking: false,
462
- duration: 0,
463
- error: null,
464
- tagName: '',
465
-
466
- // HTML5 get/set properties, but only set (updated by event handlers)
467
- muted: false,
468
- volume: 1,
469
- currentTime: 0,
470
-
471
- // HTML5 methods
472
- play: function () {
473
- if (this.pluginApi != null) {
474
- if (this.pluginType == 'youtube') {
475
- this.pluginApi.playVideo();
476
- } else {
477
- this.pluginApi.playMedia();
478
  }
479
- this.paused = false;
 
 
480
  }
481
- },
482
- load: function () {
483
- if (this.pluginApi != null) {
484
- if (this.pluginType == 'youtube') {
485
- } else {
486
- this.pluginApi.loadMedia();
487
  }
488
-
489
- this.paused = false;
490
  }
491
- },
492
- pause: function () {
493
- if (this.pluginApi != null) {
494
- if (this.pluginType == 'youtube') {
495
- this.pluginApi.pauseVideo();
496
- } else {
497
- this.pluginApi.pauseMedia();
498
- }
499
-
500
-
501
- this.paused = true;
502
- }
503
- },
504
- stop: function () {
505
- if (this.pluginApi != null) {
506
- if (this.pluginType == 'youtube') {
507
- this.pluginApi.stopVideo();
508
- } else {
509
- this.pluginApi.stopMedia();
510
- }
511
- this.paused = true;
512
  }
513
- },
514
- canPlayType: function(type) {
515
- var i,
516
- j,
517
- pluginInfo,
518
- pluginVersions = mejs.plugins[this.pluginType];
519
-
520
- for (i=0; i<pluginVersions.length; i++) {
521
- pluginInfo = pluginVersions[i];
522
-
523
- // test if user has the correct plugin version
524
- if (mejs.PluginDetector.hasPluginVersion(this.pluginType, pluginInfo.version)) {
525
-
526
- // test for plugin playback types
527
- for (j=0; j<pluginInfo.types.length; j++) {
528
- // find plugin that can play the type
529
- if (type == pluginInfo.types[j]) {
530
- return true;
531
- }
532
- }
533
  }
534
  }
535
 
536
  return false;
537
- },
538
-
539
- positionFullscreenButton: function(x,y,visibleAndAbove) {
540
- if (this.pluginApi != null && this.pluginApi.positionFullscreenButton) {
541
- this.pluginApi.positionFullscreenButton(x,y,visibleAndAbove);
542
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
543
  },
544
-
545
- hideFullscreenButton: function() {
546
- if (this.pluginApi != null && this.pluginApi.hideFullscreenButton) {
547
- this.pluginApi.hideFullscreenButton();
548
- }
549
- },
550
-
551
-
552
- // custom methods since not all JavaScript implementations support get/set
553
-
554
- // This can be a url string
555
- // or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
556
- setSrc: function (url) {
557
- if (typeof url == 'string') {
558
- this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(url));
559
- this.src = mejs.Utility.absolutizeUrl(url);
560
- } else {
561
- var i, media;
562
 
563
- for (i=0; i<url.length; i++) {
564
- media = url[i];
565
- if (this.canPlayType(media.type)) {
566
- this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(media.src));
567
- this.src = mejs.Utility.absolutizeUrl(url);
 
 
568
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
569
  }
570
  }
571
 
572
- },
573
- setCurrentTime: function (time) {
574
- if (this.pluginApi != null) {
575
- if (this.pluginType == 'youtube') {
576
- this.pluginApi.seekTo(time);
577
- } else {
578
- this.pluginApi.setCurrentTime(time);
579
- }
580
-
581
-
582
-
583
- this.currentTime = time;
 
584
  }
 
 
585
  },
586
- setVolume: function (volume) {
587
- if (this.pluginApi != null) {
588
- // same on YouTube and MEjs
589
- if (this.pluginType == 'youtube') {
590
- this.pluginApi.setVolume(volume * 100);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
591
  } else {
592
- this.pluginApi.setVolume(volume);
593
  }
594
- this.volume = volume;
 
595
  }
596
  },
597
- setMuted: function (muted) {
598
- if (this.pluginApi != null) {
599
- if (this.pluginType == 'youtube') {
600
- if (muted) {
601
- this.pluginApi.mute();
 
 
 
 
 
 
 
 
602
  } else {
603
- this.pluginApi.unMute();
604
  }
605
- this.muted = muted;
606
- this.dispatchEvent('volumechange');
607
- } else {
608
- this.pluginApi.setMuted(muted);
609
  }
610
- this.muted = muted;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
611
  }
612
- },
613
 
614
- // additional non-HTML5 methods
615
- setVideoSize: function (width, height) {
616
-
617
- //if (this.pluginType == 'flash' || this.pluginType == 'silverlight') {
618
- if ( this.pluginElement.style) {
619
- this.pluginElement.style.width = width + 'px';
620
- this.pluginElement.style.height = height + 'px';
621
- }
622
- if (this.pluginApi != null && this.pluginApi.setVideoSize) {
623
- this.pluginApi.setVideoSize(width, height);
624
- }
625
- //}
626
- },
627
 
628
- setFullscreen: function (fullscreen) {
629
- if (this.pluginApi != null && this.pluginApi.setFullscreen) {
630
- this.pluginApi.setFullscreen(fullscreen);
631
  }
632
- },
633
-
634
- enterFullScreen: function() {
635
- if (this.pluginApi != null && this.pluginApi.setFullscreen) {
636
- this.setFullscreen(true);
637
- }
638
-
639
- },
640
-
641
- exitFullScreen: function() {
642
- if (this.pluginApi != null && this.pluginApi.setFullscreen) {
643
- this.setFullscreen(false);
644
  }
645
- },
646
 
647
- // start: fake events
648
- addEventListener: function (eventName, callback, bubble) {
649
- this.events[eventName] = this.events[eventName] || [];
650
- this.events[eventName].push(callback);
651
- },
652
- removeEventListener: function (eventName, callback) {
653
- if (!eventName) { this.events = {}; return true; }
654
- var callbacks = this.events[eventName];
655
- if (!callbacks) return true;
656
- if (!callback) { this.events[eventName] = []; return true; }
657
- for (i = 0; i < callbacks.length; i++) {
658
- if (callbacks[i] === callback) {
659
- this.events[eventName].splice(i, 1);
660
  return true;
661
  }
662
  }
663
  return false;
664
- },
665
- dispatchEvent: function (eventName) {
666
- var i,
667
- args,
668
- callbacks = this.events[eventName];
669
 
 
 
670
  if (callbacks) {
671
- args = Array.prototype.slice.call(arguments, 1);
672
- for (i = 0; i < callbacks.length; i++) {
673
- callbacks[i].apply(null, args);
674
  }
675
  }
676
- },
677
- // end: fake events
678
-
679
- // fake DOM attribute methods
680
- attributes: {},
681
- hasAttribute: function(name){
682
- return (name in this.attributes);
683
- },
684
- removeAttribute: function(name){
685
- delete this.attributes[name];
686
- },
687
- getAttribute: function(name){
688
- if (this.hasAttribute(name)) {
689
- return this.attributes[name];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
690
  }
691
- return '';
692
- },
693
- setAttribute: function(name, value){
694
- this.attributes[name] = value;
695
- },
696
 
697
- remove: function() {
698
- mejs.Utility.removeSwf(this.pluginElement.id);
 
699
  }
700
- };
701
 
702
- // Handles calls from Flash/Silverlight and reports them as native <video/audio> events and properties
703
- mejs.MediaPluginBridge = {
704
 
705
- pluginMediaElements:{},
706
- htmlMediaElements:{},
707
 
708
- registerPluginElement: function (id, pluginMediaElement, htmlMediaElement) {
709
- this.pluginMediaElements[id] = pluginMediaElement;
710
- this.htmlMediaElements[id] = htmlMediaElement;
711
- },
712
 
713
- // when Flash/Silverlight is ready, it calls out to this method
714
- initPlugin: function (id) {
715
 
716
- var pluginMediaElement = this.pluginMediaElements[id],
717
- htmlMediaElement = this.htmlMediaElements[id];
 
718
 
719
- if (pluginMediaElement) {
720
- // find the javascript bridge
721
- switch (pluginMediaElement.pluginType) {
722
- case "flash":
723
- pluginMediaElement.pluginElement = pluginMediaElement.pluginApi = document.getElementById(id);
724
- break;
725
- case "silverlight":
726
- pluginMediaElement.pluginElement = document.getElementById(pluginMediaElement.id);
727
- pluginMediaElement.pluginApi = pluginMediaElement.pluginElement.Content.MediaElementJS;
728
- break;
729
- }
730
-
731
- if (pluginMediaElement.pluginApi != null && pluginMediaElement.success) {
732
- pluginMediaElement.success(pluginMediaElement, htmlMediaElement);
733
- }
734
- }
735
- },
736
 
737
- // receives events from Flash/Silverlight and sends them out as HTML5 media events
738
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html
739
- fireEvent: function (id, eventName, values) {
740
 
741
- var
742
- e,
743
- i,
744
- bufferedTime,
745
- pluginMediaElement = this.pluginMediaElements[id];
746
 
747
- pluginMediaElement.ended = false;
748
- pluginMediaElement.paused = true;
749
 
750
- // fake event object to mimic real HTML media event.
751
- e = {
752
- type: eventName,
753
- target: pluginMediaElement
754
- };
755
 
756
- // attach all values to element and event object
757
- for (i in values) {
758
- pluginMediaElement[i] = values[i];
759
- e[i] = values[i];
760
- }
761
 
762
- // fake the newer W3C buffered TimeRange (loaded and total have been removed)
763
- bufferedTime = values.bufferedTime || 0;
764
 
765
- e.target.buffered = e.buffered = {
766
- start: function(index) {
767
- return 0;
768
- },
769
- end: function (index) {
770
- return bufferedTime;
771
- },
772
- length: 1
773
- };
774
 
775
- pluginMediaElement.dispatchEvent(e.type, e);
776
- }
777
  };
778
 
779
- /*
780
- Default options
781
- */
782
- mejs.MediaElementDefaults = {
783
- // allows testing on HTML5, flash, silverlight
784
- // auto: attempts to detect what the browser can do
785
- // auto_plugin: prefer plugins and then attempt native HTML5
786
- // native: forces HTML5 playback
787
- // shim: disallows HTML5, will attempt either Flash or Silverlight
788
- // none: forces fallback view
789
- mode: 'auto',
790
- // remove or reorder to change plugin priority and availability
791
- plugins: ['flash','silverlight','youtube','vimeo'],
792
- // shows debug errors on screen
793
- enablePluginDebug: false,
794
- // overrides the type specified, useful for dynamic instantiation
795
- type: '',
796
- // path to Flash and Silverlight plugins
797
- pluginPath: mejs.Utility.getScriptPath(['mediaelement.js','mediaelement.min.js','mediaelement-and-player.js','mediaelement-and-player.min.js']),
798
- // name of flash file
799
- flashName: 'flashmediaelement.swf',
800
- // streamer for RTMP streaming
801
- flashStreamer: '',
802
- // turns on the smoothing filter in Flash
803
- enablePluginSmoothing: false,
804
- // name of silverlight file
805
- silverlightName: 'silverlightmediaelement.xap',
806
- // default if the <video width> is not specified
807
- defaultVideoWidth: 480,
808
- // default if the <video height> is not specified
809
- defaultVideoHeight: 270,
810
- // overrides <video width>
811
- pluginWidth: -1,
812
- // overrides <video height>
813
- pluginHeight: -1,
814
- // additional plugin variables in 'key=value' form
815
- pluginVars: [],
816
- // rate in milliseconds for Flash and Silverlight to fire the timeupdate event
817
- // larger number is less accurate, but less strain on plugin->JavaScript bridge
818
- timerRate: 250,
819
- // initial volume for player
820
- startVolume: 0.8,
821
- success: function () { },
822
- error: function () { }
823
- };
824
 
825
- /*
826
- Determines if a browser supports the <video> or <audio> element
827
- and returns either the native element or a Flash/Silverlight version that
828
- mimics HTML5 MediaElement
829
- */
830
- mejs.MediaElement = function (el, o) {
831
- return mejs.HtmlMediaElementShim.create(el,o);
832
- };
833
 
834
- mejs.HtmlMediaElementShim = {
835
-
836
- create: function(el, o) {
837
- var
838
- options = mejs.MediaElementDefaults,
839
- htmlMediaElement = (typeof(el) == 'string') ? document.getElementById(el) : el,
840
- tagName = htmlMediaElement.tagName.toLowerCase(),
841
- isMediaTag = (tagName === 'audio' || tagName === 'video'),
842
- src = (isMediaTag) ? htmlMediaElement.getAttribute('src') : htmlMediaElement.getAttribute('href'),
843
- poster = htmlMediaElement.getAttribute('poster'),
844
- autoplay = htmlMediaElement.getAttribute('autoplay'),
845
- preload = htmlMediaElement.getAttribute('preload'),
846
- controls = htmlMediaElement.getAttribute('controls'),
847
- playback,
848
- prop;
849
-
850
- // extend options
851
- for (prop in o) {
852
- options[prop] = o[prop];
853
- }
854
-
855
- // clean up attributes
856
- src = (typeof src == 'undefined' || src === null || src == '') ? null : src;
857
- poster = (typeof poster == 'undefined' || poster === null) ? '' : poster;
858
- preload = (typeof preload == 'undefined' || preload === null || preload === 'false') ? 'none' : preload;
859
- autoplay = !(typeof autoplay == 'undefined' || autoplay === null || autoplay === 'false');
860
- controls = !(typeof controls == 'undefined' || controls === null || controls === 'false');
861
-
862
- // test for HTML5 and plugin capabilities
863
- playback = this.determinePlayback(htmlMediaElement, options, mejs.MediaFeatures.supportsMediaTag, isMediaTag, src);
864
- playback.url = (playback.url !== null) ? mejs.Utility.absolutizeUrl(playback.url) : '';
865
-
866
- if (playback.method == 'native') {
867
- // second fix for android
868
- if (mejs.MediaFeatures.isBustedAndroid) {
869
- htmlMediaElement.src = playback.url;
870
- htmlMediaElement.addEventListener('click', function() {
871
- htmlMediaElement.play();
872
- }, false);
873
- }
874
-
875
- // add methods to native HTMLMediaElement
876
- return this.updateNative(playback, options, autoplay, preload);
877
- } else if (playback.method !== '') {
878
- // create plugin to mimic HTMLMediaElement
879
-
880
- return this.createPlugin( playback, options, poster, autoplay, preload, controls);
881
- } else {
882
- // boo, no HTML5, no Flash, no Silverlight.
883
- this.createErrorMessage( playback, options, poster );
884
-
885
- return this;
886
- }
887
- },
888
-
889
- determinePlayback: function(htmlMediaElement, options, supportsMediaTag, isMediaTag, src) {
890
- var
891
- mediaFiles = [],
892
- i,
893
- j,
894
- k,
895
- l,
896
- n,
897
- type,
898
- result = { method: '', url: '', htmlMediaElement: htmlMediaElement, isVideo: (htmlMediaElement.tagName.toLowerCase() != 'audio')},
899
- pluginName,
900
- pluginVersions,
901
- pluginInfo,
902
- dummy;
903
-
904
- // STEP 1: Get URL and type from <video src> or <source src>
905
-
906
- // supplied type overrides <video type> and <source type>
907
- if (typeof options.type != 'undefined' && options.type !== '') {
908
-
909
- // accept either string or array of types
910
- if (typeof options.type == 'string') {
911
- mediaFiles.push({type:options.type, url:src});
912
- } else {
913
-
914
- for (i=0; i<options.type.length; i++) {
915
- mediaFiles.push({type:options.type[i], url:src});
916
- }
917
- }
918
 
919
- // test for src attribute first
920
- } else if (src !== null) {
921
- type = this.formatType(src, htmlMediaElement.getAttribute('type'));
922
- mediaFiles.push({type:type, url:src});
923
 
924
- // then test for <source> elements
925
- } else {
926
- // test <source> types to see if they are usable
927
- for (i = 0; i < htmlMediaElement.childNodes.length; i++) {
928
- n = htmlMediaElement.childNodes[i];
929
- if (n.nodeType == 1 && n.tagName.toLowerCase() == 'source') {
930
- src = n.getAttribute('src');
931
- type = this.formatType(src, n.getAttribute('type'));
932
- mediaFiles.push({type:type, url:src});
933
- }
934
- }
935
- }
936
-
937
- // in the case of dynamicly created players
938
- // check for audio types
939
- if (!isMediaTag && mediaFiles.length > 0 && mediaFiles[0].url !== null && this.getTypeFromFile(mediaFiles[0].url).indexOf('audio') > -1) {
940
- result.isVideo = false;
941
- }
942
-
943
 
944
- // STEP 2: Test for playback method
945
-
946
- // special case for Android which sadly doesn't implement the canPlayType function (always returns '')
947
- if (mejs.MediaFeatures.isBustedAndroid) {
948
- htmlMediaElement.canPlayType = function(type) {
949
- return (type.match(/video\/(mp4|m4v)/gi) !== null) ? 'maybe' : '';
950
- };
951
- }
952
-
953
 
954
- // test for native playback first
955
- if (supportsMediaTag && (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'native')) {
956
-
957
- if (!isMediaTag) {
958
 
959
- // create a real HTML5 Media Element
960
- dummy = document.createElement( result.isVideo ? 'video' : 'audio');
961
- htmlMediaElement.parentNode.insertBefore(dummy, htmlMediaElement);
962
- htmlMediaElement.style.display = 'none';
963
-
964
- // use this one from now on
965
- result.htmlMediaElement = htmlMediaElement = dummy;
966
- }
967
-
968
- for (i=0; i<mediaFiles.length; i++) {
969
- // normal check
970
- if (htmlMediaElement.canPlayType(mediaFiles[i].type).replace(/no/, '') !== ''
971
- // special case for Mac/Safari 5.0.3 which answers '' to canPlayType('audio/mp3') but 'maybe' to canPlayType('audio/mpeg')
972
- || htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/mp3/,'mpeg')).replace(/no/, '') !== '') {
973
- result.method = 'native';
974
- result.url = mediaFiles[i].url;
975
- break;
976
- }
977
- }
978
-
979
- if (result.method === 'native') {
980
- if (result.url !== null) {
981
- htmlMediaElement.src = result.url;
982
- }
983
-
984
- // if `auto_plugin` mode, then cache the native result but try plugins.
985
- if (options.mode !== 'auto_plugin') {
986
- return result;
987
- }
988
  }
 
 
 
989
  }
 
 
 
 
990
 
991
- // if native playback didn't work, then test plugins
992
- if (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'shim') {
993
- for (i=0; i<mediaFiles.length; i++) {
994
- type = mediaFiles[i].type;
995
 
996
- // test all plugins in order of preference [silverlight, flash]
997
- for (j=0; j<options.plugins.length; j++) {
998
 
999
- pluginName = options.plugins[j];
1000
-
1001
- // test version of plugin (for future features)
1002
- pluginVersions = mejs.plugins[pluginName];
1003
-
1004
- for (k=0; k<pluginVersions.length; k++) {
1005
- pluginInfo = pluginVersions[k];
1006
-
1007
- // test if user has the correct plugin version
1008
-
1009
- // for youtube/vimeo
1010
- if (pluginInfo.version == null ||
1011
-
1012
- mejs.PluginDetector.hasPluginVersion(pluginName, pluginInfo.version)) {
1013
-
1014
- // test for plugin playback types
1015
- for (l=0; l<pluginInfo.types.length; l++) {
1016
- // find plugin that can play the type
1017
- if (type == pluginInfo.types[l]) {
1018
- result.method = pluginName;
1019
- result.url = mediaFiles[i].url;
1020
- return result;
1021
- }
1022
- }
 
 
 
1023
  }
1024
  }
1025
  }
1026
  }
 
 
1027
  }
1028
-
1029
- // at this point, being in 'auto_plugin' mode implies that we tried plugins but failed.
1030
- // if we have native support then return that.
1031
- if (options.mode === 'auto_plugin' && result.method === 'native') {
1032
- return result;
 
 
 
 
 
 
1033
  }
 
 
 
 
 
 
1034
 
1035
- // what if there's nothing to play? just grab the first available
1036
- if (result.method === '' && mediaFiles.length > 0) {
1037
- result.url = mediaFiles[0].url;
 
1038
  }
 
1039
 
1040
- return result;
1041
- },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1042
 
1043
- formatType: function(url, type) {
1044
- var ext;
1045
 
1046
- // if no type is supplied, fake it with the extension
1047
- if (url && !type) {
1048
- return this.getTypeFromFile(url);
 
 
 
 
1049
  } else {
1050
- // only return the mime part of the type in case the attribute contains the codec
1051
- // see http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element
1052
- // `video/mp4; codecs="avc1.42E01E, mp4a.40.2"` becomes `video/mp4`
1053
-
1054
- if (type && ~type.indexOf(';')) {
1055
- return type.substr(0, type.indexOf(';'));
1056
- } else {
1057
- return type;
1058
- }
1059
  }
 
 
1060
  },
1061
-
1062
- getTypeFromFile: function(url) {
1063
- var ext = url.substring(url.lastIndexOf('.') + 1);
1064
- return (/(mp4|m4v|ogg|ogv|webm|webmv|flv|wmv|mpeg|mov)/gi.test(ext) ? 'video' : 'audio') + '/' + this.getTypeFromExtension(ext);
1065
- },
1066
-
1067
- getTypeFromExtension: function(ext) {
1068
-
1069
- switch (ext) {
1070
- case 'mp4':
1071
- case 'm4v':
1072
- return 'mp4';
1073
- case 'webm':
1074
- case 'webma':
1075
- case 'webmv':
1076
- return 'webm';
1077
- case 'ogg':
1078
- case 'oga':
1079
- case 'ogv':
1080
- return 'ogg';
1081
- default:
1082
- return ext;
1083
  }
1084
  },
1085
 
1086
- createErrorMessage: function(playback, options, poster) {
1087
- var
1088
- htmlMediaElement = playback.htmlMediaElement,
1089
- errorContainer = document.createElement('div');
1090
-
1091
- errorContainer.className = 'me-cannotplay';
1092
-
1093
- try {
1094
- errorContainer.style.width = htmlMediaElement.width + 'px';
1095
- errorContainer.style.height = htmlMediaElement.height + 'px';
1096
- } catch (e) {}
1097
 
1098
- errorContainer.innerHTML = (poster !== '') ?
1099
- '<a href="' + playback.url + '"><img src="' + poster + '" width="100%" height="100%" /></a>' :
1100
- '<a href="' + playback.url + '"><span>Download File</span></a>';
1101
 
1102
- htmlMediaElement.parentNode.insertBefore(errorContainer, htmlMediaElement);
1103
- htmlMediaElement.style.display = 'none';
 
 
1104
 
1105
- options.error(htmlMediaElement);
1106
- },
1107
 
1108
- createPlugin:function(playback, options, poster, autoplay, preload, controls) {
1109
- var
1110
- htmlMediaElement = playback.htmlMediaElement,
1111
- width = 1,
1112
- height = 1,
1113
- pluginid = 'me_' + playback.method + '_' + (mejs.meIndex++),
1114
- pluginMediaElement = new mejs.PluginMediaElement(pluginid, playback.method, playback.url),
1115
- container = document.createElement('div'),
1116
- specialIEContainer,
1117
- node,
1118
- initVars;
1119
-
1120
- // copy tagName from html media element
1121
- pluginMediaElement.tagName = htmlMediaElement.tagName
1122
-
1123
- // copy attributes from html media element to plugin media element
1124
- for (var i = 0; i < htmlMediaElement.attributes.length; i++) {
1125
- var attribute = htmlMediaElement.attributes[i];
1126
- if (attribute.specified == true) {
1127
- pluginMediaElement.setAttribute(attribute.name, attribute.value);
1128
- }
1129
- }
1130
-
1131
- // check for placement inside a <p> tag (sometimes WYSIWYG editors do this)
1132
- node = htmlMediaElement.parentNode;
1133
- while (node !== null && node.tagName.toLowerCase() != 'body') {
1134
- if (node.parentNode.tagName.toLowerCase() == 'p') {
1135
- node.parentNode.parentNode.insertBefore(node, node.parentNode);
1136
- break;
1137
- }
1138
- node = node.parentNode;
1139
  }
1140
 
1141
- if (playback.isVideo) {
1142
- width = (options.videoWidth > 0) ? options.videoWidth : (htmlMediaElement.getAttribute('width') !== null) ? htmlMediaElement.getAttribute('width') : options.defaultVideoWidth;
1143
- height = (options.videoHeight > 0) ? options.videoHeight : (htmlMediaElement.getAttribute('height') !== null) ? htmlMediaElement.getAttribute('height') : options.defaultVideoHeight;
1144
-
1145
- // in case of '%' make sure it's encoded
1146
- width = mejs.Utility.encodeUrl(width);
1147
- height = mejs.Utility.encodeUrl(height);
1148
-
1149
- } else {
1150
- if (options.enablePluginDebug) {
1151
- width = 320;
1152
- height = 240;
1153
- }
1154
- }
 
 
 
1155
 
1156
- // register plugin
1157
- pluginMediaElement.success = options.success;
1158
- mejs.MediaPluginBridge.registerPluginElement(pluginid, pluginMediaElement, htmlMediaElement);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1159
 
1160
- // add container (must be added to DOM before inserting HTML for IE)
1161
- container.className = 'me-plugin';
1162
- container.id = pluginid + '_container';
1163
-
1164
- if (playback.isVideo) {
1165
- htmlMediaElement.parentNode.insertBefore(container, htmlMediaElement);
1166
- } else {
1167
- document.body.insertBefore(container, document.body.childNodes[0]);
1168
- }
1169
-
1170
- // flash/silverlight vars
1171
- initVars = [
1172
- 'id=' + pluginid,
1173
- 'isvideo=' + ((playback.isVideo) ? "true" : "false"),
1174
- 'autoplay=' + ((autoplay) ? "true" : "false"),
1175
- 'preload=' + preload,
1176
- 'width=' + width,
1177
- 'startvolume=' + options.startVolume,
1178
- 'timerrate=' + options.timerRate,
1179
- 'flashstreamer=' + options.flashStreamer,
1180
- 'height=' + height];
1181
-
1182
- if (playback.url !== null) {
1183
- if (playback.method == 'flash') {
1184
- initVars.push('file=' + mejs.Utility.encodeUrl(playback.url));
1185
- } else {
1186
- initVars.push('file=' + playback.url);
1187
- }
1188
- }
1189
- if (options.enablePluginDebug) {
1190
- initVars.push('debug=true');
1191
- }
1192
- if (options.enablePluginSmoothing) {
1193
- initVars.push('smoothing=true');
1194
- }
1195
- if (controls) {
1196
- initVars.push('controls=true'); // shows controls in the plugin if desired
1197
  }
1198
- if (options.pluginVars) {
1199
- initVars = initVars.concat(options.pluginVars);
1200
- }
1201
 
1202
- switch (playback.method) {
1203
- case 'silverlight':
1204
- container.innerHTML =
1205
- '<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="' + pluginid + '" name="' + pluginid + '" width="' + width + '" height="' + height + '">' +
1206
- '<param name="initParams" value="' + initVars.join(',') + '" />' +
1207
- '<param name="windowless" value="true" />' +
1208
- '<param name="background" value="black" />' +
1209
- '<param name="minRuntimeVersion" value="3.0.0.0" />' +
1210
- '<param name="autoUpgrade" value="true" />' +
1211
- '<param name="source" value="' + options.pluginPath + options.silverlightName + '" />' +
1212
- '</object>';
1213
- break;
 
 
 
 
 
 
 
 
 
1214
 
1215
- case 'flash':
1216
-
1217
- if (mejs.MediaFeatures.isIE) {
1218
- specialIEContainer = document.createElement('div');
1219
- container.appendChild(specialIEContainer);
1220
- specialIEContainer.outerHTML =
1221
- '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' +
1222
- 'id="' + pluginid + '" width="' + width + '" height="' + height + '">' +
1223
- '<param name="movie" value="' + options.pluginPath + options.flashName + '?x=' + (new Date()) + '" />' +
1224
- '<param name="flashvars" value="' + initVars.join('&amp;') + '" />' +
1225
- '<param name="quality" value="high" />' +
1226
- '<param name="bgcolor" value="#000000" />' +
1227
- '<param name="wmode" value="transparent" />' +
1228
- '<param name="allowScriptAccess" value="always" />' +
1229
- '<param name="allowFullScreen" value="true" />' +
1230
- '</object>';
1231
 
1232
- } else {
 
 
1233
 
1234
- container.innerHTML =
1235
- '<embed id="' + pluginid + '" name="' + pluginid + '" ' +
1236
- 'play="true" ' +
1237
- 'loop="false" ' +
1238
- 'quality="high" ' +
1239
- 'bgcolor="#000000" ' +
1240
- 'wmode="transparent" ' +
1241
- 'allowScriptAccess="always" ' +
1242
- 'allowFullScreen="true" ' +
1243
- 'type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" ' +
1244
- 'src="' + options.pluginPath + options.flashName + '" ' +
1245
- 'flashvars="' + initVars.join('&') + '" ' +
1246
- 'width="' + width + '" ' +
1247
- 'height="' + height + '"></embed>';
1248
- }
1249
- break;
1250
-
1251
- case 'youtube':
1252
-
1253
-
1254
- var
1255
- videoId = playback.url.substr(playback.url.lastIndexOf('=')+1);
1256
- youtubeSettings = {
1257
- container: container,
1258
- containerId: container.id,
1259
- pluginMediaElement: pluginMediaElement,
1260
- pluginId: pluginid,
1261
- videoId: videoId,
1262
- height: height,
1263
- width: width
1264
- };
1265
-
1266
- if (mejs.PluginDetector.hasPluginVersion('flash', [10,0,0]) ) {
1267
- mejs.YouTubeApi.createFlash(youtubeSettings);
1268
  } else {
1269
- mejs.YouTubeApi.enqueueIframe(youtubeSettings);
 
 
1270
  }
1271
-
1272
- break;
1273
-
1274
- // DEMO Code. Does NOT work.
1275
- case 'vimeo':
1276
- //console.log('vimeoid');
1277
-
1278
- pluginMediaElement.vimeoid = playback.url.substr(playback.url.lastIndexOf('/')+1);
1279
-
1280
- container.innerHTML =
1281
- '<object width="' + width + '" height="' + height + '">' +
1282
- '<param name="allowfullscreen" value="true" />' +
1283
- '<param name="allowscriptaccess" value="always" />' +
1284
- '<param name="flashvars" value="api=1" />' +
1285
- '<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=' + pluginMediaElement.vimeoid + '&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" />' +
1286
- '<embed src="//vimeo.com/moogaloop.swf?api=1&amp;clip_id=' + pluginMediaElement.vimeoid + '&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="' + width + '" height="' + height + '"></embed>' +
1287
- '</object>';
1288
-
1289
- break;
1290
- }
1291
- // hide original element
1292
- htmlMediaElement.style.display = 'none';
1293
-
1294
- // FYI: options.success will be fired by the MediaPluginBridge
1295
-
1296
- return pluginMediaElement;
1297
- },
1298
 
1299
- updateNative: function(playback, options, autoplay, preload) {
1300
-
1301
- var htmlMediaElement = playback.htmlMediaElement,
1302
- m;
1303
-
1304
-
1305
- // add methods to video object to bring it into parity with Flash Object
1306
- for (m in mejs.HtmlMediaElement) {
1307
- htmlMediaElement[m] = mejs.HtmlMediaElement[m];
1308
- }
1309
-
1310
- /*
1311
- Chrome now supports preload="none"
1312
- if (mejs.MediaFeatures.isChrome) {
1313
-
1314
- // special case to enforce preload attribute (Chrome doesn't respect this)
1315
- if (preload === 'none' && !autoplay) {
1316
-
1317
- // forces the browser to stop loading (note: fails in IE9)
1318
- htmlMediaElement.src = '';
1319
- htmlMediaElement.load();
1320
- htmlMediaElement.canceledPreload = true;
1321
-
1322
- htmlMediaElement.addEventListener('play',function() {
1323
- if (htmlMediaElement.canceledPreload) {
1324
- htmlMediaElement.src = playback.url;
1325
- htmlMediaElement.load();
1326
- htmlMediaElement.play();
1327
- htmlMediaElement.canceledPreload = false;
1328
  }
1329
- }, false);
1330
- // for some reason Chrome forgets how to autoplay sometimes.
1331
- } else if (autoplay) {
1332
- htmlMediaElement.load();
1333
- htmlMediaElement.play();
1334
  }
1335
  }
1336
- */
1337
 
1338
- // fire success code
1339
- options.success(htmlMediaElement, htmlMediaElement);
1340
-
1341
- return htmlMediaElement;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1342
  }
1343
  };
1344
 
1345
- /*
1346
- - test on IE (object vs. embed)
1347
- - determine when to use iframe (Firefox, Safari, Mobile) vs. Flash (Chrome, IE)
1348
- - fullscreen?
1349
- */
1350
 
1351
- // YouTube Flash and Iframe API
1352
- mejs.YouTubeApi = {
1353
- isIframeStarted: false,
1354
- isIframeLoaded: false,
1355
- loadIframeApi: function() {
1356
- if (!this.isIframeStarted) {
1357
- var tag = document.createElement('script');
1358
- tag.src = "http://www.youtube.com/player_api";
1359
- var firstScriptTag = document.getElementsByTagName('script')[0];
1360
- firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
1361
- this.isIframeStarted = true;
1362
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1363
  },
1364
- iframeQueue: [],
1365
- enqueueIframe: function(yt) {
1366
-
1367
- if (this.isLoaded) {
1368
- this.createIframe(yt);
1369
- } else {
1370
- this.loadIframeApi();
1371
- this.iframeQueue.push(yt);
1372
- }
1373
  },
1374
- createIframe: function(settings) {
1375
-
1376
- var
1377
- pluginMediaElement = settings.pluginMediaElement,
1378
- player = new YT.Player(settings.containerId, {
1379
- height: settings.height,
1380
- width: settings.width,
1381
- videoId: settings.videoId,
1382
- playerVars: {controls:0},
1383
- events: {
1384
- 'onReady': function() {
1385
-
1386
- // hook up iframe object to MEjs
1387
- settings.pluginMediaElement.pluginApi = player;
1388
-
1389
- // init mejs
1390
- mejs.MediaPluginBridge.initPlugin(settings.pluginId);
1391
-
1392
- // create timer
1393
- setInterval(function() {
1394
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
1395
- }, 250);
1396
- },
1397
- 'onStateChange': function(e) {
1398
-
1399
- mejs.YouTubeApi.handleStateChange(e.data, player, pluginMediaElement);
1400
-
1401
  }
1402
  }
1403
- });
1404
- },
1405
-
1406
- createEvent: function (player, pluginMediaElement, eventName) {
1407
- var obj = {
1408
- type: eventName,
1409
- target: pluginMediaElement
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1410
  };
1411
 
1412
- if (player && player.getDuration) {
1413
-
1414
- // time
1415
- pluginMediaElement.currentTime = obj.currentTime = player.getCurrentTime();
1416
- pluginMediaElement.duration = obj.duration = player.getDuration();
1417
-
1418
- // state
1419
- obj.paused = pluginMediaElement.paused;
1420
- obj.ended = pluginMediaElement.ended;
1421
-
1422
- // sound
1423
- obj.muted = player.isMuted();
1424
- obj.volume = player.getVolume() / 100;
1425
-
1426
- // progress
1427
- obj.bytesTotal = player.getVideoBytesTotal();
1428
- obj.bufferedBytes = player.getVideoBytesLoaded();
1429
-
1430
- // fake the W3C buffered TimeRange
1431
- var bufferedTime = obj.bufferedBytes / obj.bytesTotal * obj.duration;
1432
-
1433
- obj.target.buffered = obj.buffered = {
1434
- start: function(index) {
1435
- return 0;
1436
- },
1437
- end: function (index) {
1438
- return bufferedTime;
1439
- },
1440
- length: 1
1441
  };
1442
-
1443
- }
1444
-
1445
- // send event up the chain
1446
- pluginMediaElement.dispatchEvent(obj.type, obj);
1447
- },
1448
-
1449
- iFrameReady: function() {
1450
-
1451
- this.isLoaded = true;
1452
- this.isIframeLoaded = true;
1453
-
1454
- while (this.iframeQueue.length > 0) {
1455
- var settings = this.iframeQueue.pop();
1456
- this.createIframe(settings);
1457
- }
1458
- },
1459
-
1460
- // FLASH!
1461
- flashPlayers: {},
1462
- createFlash: function(settings) {
1463
-
1464
- this.flashPlayers[settings.pluginId] = settings;
1465
-
1466
- /*
1467
- settings.container.innerHTML =
1468
- '<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0" ' +
1469
- 'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; ">' +
1470
- '<param name="allowScriptAccess" value="always">' +
1471
- '<param name="wmode" value="transparent">' +
1472
- '</object>';
1473
- */
1474
-
1475
- var specialIEContainer,
1476
- youtubeUrl = 'http://www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0';
1477
-
1478
- if (mejs.MediaFeatures.isIE) {
1479
-
1480
- specialIEContainer = document.createElement('div');
1481
- settings.container.appendChild(specialIEContainer);
1482
- specialIEContainer.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' +
1483
- 'id="' + settings.pluginId + '" width="' + settings.width + '" height="' + settings.height + '">' +
1484
- '<param name="movie" value="' + youtubeUrl + '" />' +
1485
- '<param name="wmode" value="transparent" />' +
1486
- '<param name="allowScriptAccess" value="always" />' +
1487
- '<param name="allowFullScreen" value="true" />' +
1488
- '</object>';
1489
- } else {
1490
- settings.container.innerHTML =
1491
- '<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="' + youtubeUrl + '" ' +
1492
- 'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; ">' +
1493
- '<param name="allowScriptAccess" value="always">' +
1494
- '<param name="wmode" value="transparent">' +
1495
- '</object>';
1496
- }
1497
-
1498
- },
1499
-
1500
- flashReady: function(id) {
1501
- var
1502
- settings = this.flashPlayers[id],
1503
- player = document.getElementById(id),
1504
- pluginMediaElement = settings.pluginMediaElement;
1505
-
1506
- // hook up and return to MediaELementPlayer.success
1507
- pluginMediaElement.pluginApi =
1508
- pluginMediaElement.pluginElement = player;
1509
- mejs.MediaPluginBridge.initPlugin(id);
1510
-
1511
- // load the youtube video
1512
- player.cueVideoById(settings.videoId);
1513
-
1514
- var callbackName = settings.containerId + '_callback'
1515
-
1516
- window[callbackName] = function(e) {
1517
- mejs.YouTubeApi.handleStateChange(e, player, pluginMediaElement);
1518
- }
1519
-
1520
- player.addEventListener('onStateChange', callbackName);
1521
-
1522
- setInterval(function() {
1523
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
1524
- }, 250);
1525
- },
1526
-
1527
- handleStateChange: function(youTubeState, player, pluginMediaElement) {
1528
- switch (youTubeState) {
1529
- case -1: // not started
1530
- pluginMediaElement.paused = true;
1531
- pluginMediaElement.ended = true;
1532
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'loadedmetadata');
1533
- //createYouTubeEvent(player, pluginMediaElement, 'loadeddata');
1534
- break;
1535
- case 0:
1536
- pluginMediaElement.paused = false;
1537
- pluginMediaElement.ended = true;
1538
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'ended');
1539
- break;
1540
- case 1:
1541
- pluginMediaElement.paused = false;
1542
- pluginMediaElement.ended = false;
1543
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'play');
1544
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'playing');
1545
- break;
1546
- case 2:
1547
- pluginMediaElement.paused = true;
1548
- pluginMediaElement.ended = false;
1549
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'pause');
1550
- break;
1551
- case 3: // buffering
1552
- mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'progress');
1553
- break;
1554
- case 5:
1555
- // cued?
1556
- break;
1557
-
1558
- }
1559
-
1560
- }
1561
- }
1562
- // IFRAME
1563
- function onYouTubePlayerAPIReady() {
1564
- mejs.YouTubeApi.iFrameReady();
1565
- }
1566
- // FLASH
1567
- function onYouTubePlayerReady(id) {
1568
- mejs.YouTubeApi.flashReady(id);
1569
- }
1570
 
1571
- window.mejs = mejs;
1572
- window.MediaElement = mejs.MediaElement;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1573
 
 
1
  /*!
2
+ * MediaElement.js
3
+ * http://www.mediaelementjs.com/
4
+ *
5
+ * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
+ * using a variety of technologies (pure JavaScript, Flash, iframe)
7
+ *
8
+ * Copyright 2010-2017, John Dyer (http://j.hn/)
9
+ * License: MIT
10
+ *
11
+ */(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
12
+
13
+ },{}],2:[function(_dereq_,module,exports){
14
+ (function (global){
15
+ var topLevel = typeof global !== 'undefined' ? global :
16
+ typeof window !== 'undefined' ? window : {}
17
+ var minDoc = _dereq_(1);
18
+
19
+ var doccy;
20
+
21
+ if (typeof document !== 'undefined') {
22
+ doccy = document;
23
+ } else {
24
+ doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];
25
+
26
+ if (!doccy) {
27
+ doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;
28
+ }
29
+ }
 
 
 
 
 
 
 
 
 
30
 
31
+ module.exports = doccy;
32
+
33
+ }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
34
+ },{"1":1}],3:[function(_dereq_,module,exports){
35
+ (function (global){
36
+ var win;
37
+
38
+ if (typeof window !== "undefined") {
39
+ win = window;
40
+ } else if (typeof global !== "undefined") {
41
+ win = global;
42
+ } else if (typeof self !== "undefined"){
43
+ win = self;
44
+ } else {
45
+ win = {};
46
+ }
47
+
48
+ module.exports = win;
49
+
50
+ }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
51
+ },{}],4:[function(_dereq_,module,exports){
52
+ (function (root) {
53
+
54
+ // Store setTimeout reference so promise-polyfill will be unaffected by
55
+ // other code modifying setTimeout (like sinon.useFakeTimers())
56
+ var setTimeoutFunc = setTimeout;
57
+
58
+ function noop() {}
59
+
60
+ // Polyfill for Function.prototype.bind
61
+ function bind(fn, thisArg) {
62
+ return function () {
63
+ fn.apply(thisArg, arguments);
64
+ };
65
+ }
66
+
67
+ function Promise(fn) {
68
+ if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');
69
+ if (typeof fn !== 'function') throw new TypeError('not a function');
70
+ this._state = 0;
71
+ this._handled = false;
72
+ this._value = undefined;
73
+ this._deferreds = [];
74
+
75
+ doResolve(fn, this);
76
+ }
77
+
78
+ function handle(self, deferred) {
79
+ while (self._state === 3) {
80
+ self = self._value;
81
+ }
82
+ if (self._state === 0) {
83
+ self._deferreds.push(deferred);
84
+ return;
85
+ }
86
+ self._handled = true;
87
+ Promise._immediateFn(function () {
88
+ var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;
89
+ if (cb === null) {
90
+ (self._state === 1 ? resolve : reject)(deferred.promise, self._value);
91
+ return;
92
+ }
93
+ var ret;
94
+ try {
95
+ ret = cb(self._value);
96
+ } catch (e) {
97
+ reject(deferred.promise, e);
98
+ return;
99
+ }
100
+ resolve(deferred.promise, ret);
101
+ });
102
+ }
103
+
104
+ function resolve(self, newValue) {
105
+ try {
106
+ // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure
107
+ if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');
108
+ if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {
109
+ var then = newValue.then;
110
+ if (newValue instanceof Promise) {
111
+ self._state = 3;
112
+ self._value = newValue;
113
+ finale(self);
114
+ return;
115
+ } else if (typeof then === 'function') {
116
+ doResolve(bind(then, newValue), self);
117
+ return;
118
+ }
119
+ }
120
+ self._state = 1;
121
+ self._value = newValue;
122
+ finale(self);
123
+ } catch (e) {
124
+ reject(self, e);
125
+ }
126
+ }
127
+
128
+ function reject(self, newValue) {
129
+ self._state = 2;
130
+ self._value = newValue;
131
+ finale(self);
132
+ }
133
+
134
+ function finale(self) {
135
+ if (self._state === 2 && self._deferreds.length === 0) {
136
+ Promise._immediateFn(function() {
137
+ if (!self._handled) {
138
+ Promise._unhandledRejectionFn(self._value);
139
+ }
140
+ });
141
+ }
142
+
143
+ for (var i = 0, len = self._deferreds.length; i < len; i++) {
144
+ handle(self, self._deferreds[i]);
145
+ }
146
+ self._deferreds = null;
147
+ }
148
+
149
+ function Handler(onFulfilled, onRejected, promise) {
150
+ this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
151
+ this.onRejected = typeof onRejected === 'function' ? onRejected : null;
152
+ this.promise = promise;
153
+ }
154
+
155
+ /**
156
+ * Take a potentially misbehaving resolver function and make sure
157
+ * onFulfilled and onRejected are only called once.
158
+ *
159
+ * Makes no guarantees about asynchrony.
160
+ */
161
+ function doResolve(fn, self) {
162
+ var done = false;
163
+ try {
164
+ fn(function (value) {
165
+ if (done) return;
166
+ done = true;
167
+ resolve(self, value);
168
+ }, function (reason) {
169
+ if (done) return;
170
+ done = true;
171
+ reject(self, reason);
172
+ });
173
+ } catch (ex) {
174
+ if (done) return;
175
+ done = true;
176
+ reject(self, ex);
177
+ }
178
+ }
179
+
180
+ Promise.prototype['catch'] = function (onRejected) {
181
+ return this.then(null, onRejected);
182
+ };
183
+
184
+ Promise.prototype.then = function (onFulfilled, onRejected) {
185
+ var prom = new (this.constructor)(noop);
186
+
187
+ handle(this, new Handler(onFulfilled, onRejected, prom));
188
+ return prom;
189
+ };
190
+
191
+ Promise.all = function (arr) {
192
+ var args = Array.prototype.slice.call(arr);
193
+
194
+ return new Promise(function (resolve, reject) {
195
+ if (args.length === 0) return resolve([]);
196
+ var remaining = args.length;
197
+
198
+ function res(i, val) {
199
+ try {
200
+ if (val && (typeof val === 'object' || typeof val === 'function')) {
201
+ var then = val.then;
202
+ if (typeof then === 'function') {
203
+ then.call(val, function (val) {
204
+ res(i, val);
205
+ }, reject);
206
+ return;
207
+ }
208
+ }
209
+ args[i] = val;
210
+ if (--remaining === 0) {
211
+ resolve(args);
212
+ }
213
+ } catch (ex) {
214
+ reject(ex);
215
+ }
216
+ }
217
+
218
+ for (var i = 0; i < args.length; i++) {
219
+ res(i, args[i]);
220
+ }
221
+ });
222
+ };
223
+
224
+ Promise.resolve = function (value) {
225
+ if (value && typeof value === 'object' && value.constructor === Promise) {
226
+ return value;
227
+ }
228
+
229
+ return new Promise(function (resolve) {
230
+ resolve(value);
231
+ });
232
+ };
233
+
234
+ Promise.reject = function (value) {
235
+ return new Promise(function (resolve, reject) {
236
+ reject(value);
237
+ });
238
+ };
239
+
240
+ Promise.race = function (values) {
241
+ return new Promise(function (resolve, reject) {
242
+ for (var i = 0, len = values.length; i < len; i++) {
243
+ values[i].then(resolve, reject);
244
+ }
245
+ });
246
+ };
247
+
248
+ // Use polyfill for setImmediate for performance gains
249
+ Promise._immediateFn = (typeof setImmediate === 'function' && function (fn) { setImmediate(fn); }) ||
250
+ function (fn) {
251
+ setTimeoutFunc(fn, 0);
252
+ };
253
+
254
+ Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {
255
+ if (typeof console !== 'undefined' && console) {
256
+ console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console
257
+ }
258
+ };
259
+
260
+ /**
261
+ * Set the immediate function to execute callbacks
262
+ * @param fn {function} Function to execute
263
+ * @deprecated
264
+ */
265
+ Promise._setImmediateFn = function _setImmediateFn(fn) {
266
+ Promise._immediateFn = fn;
267
+ };
268
+
269
+ /**
270
+ * Change the function to execute on unhandled rejection
271
+ * @param {function} fn Function to execute on unhandled rejection
272
+ * @deprecated
273
+ */
274
+ Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {
275
+ Promise._unhandledRejectionFn = fn;
276
+ };
277
+
278
+ if (typeof module !== 'undefined' && module.exports) {
279
+ module.exports = Promise;
280
+ } else if (!root.Promise) {
281
+ root.Promise = Promise;
282
+ }
283
+
284
+ })(this);
285
+
286
+ },{}],5:[function(_dereq_,module,exports){
287
+ 'use strict';
288
+
289
+ Object.defineProperty(exports, "__esModule", {
290
+ value: true
291
+ });
292
+
293
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
294
+
295
+ var _mejs = _dereq_(7);
296
+
297
+ var _mejs2 = _interopRequireDefault(_mejs);
298
+
299
+ var _en = _dereq_(9);
300
+
301
+ var _general = _dereq_(18);
302
+
303
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
304
+
305
+ var i18n = { lang: 'en', en: _en.EN };
306
+
307
+ i18n.language = function () {
308
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
309
+ args[_key] = arguments[_key];
310
+ }
311
+
312
+ if (args !== null && args !== undefined && args.length) {
313
+
314
+ if (typeof args[0] !== 'string') {
315
+ throw new TypeError('Language code must be a string value');
316
  }
317
+
318
+ if (!/^[a-z]{2,3}((\-|_)[a-z]{2})?$/i.test(args[0])) {
319
+ throw new TypeError('Language code must have format 2-3 letters and. optionally, hyphen, underscore followed by 2 more letters');
320
+ }
321
+
322
+ i18n.lang = args[0];
323
+
324
+ if (i18n[args[0]] === undefined) {
325
+ args[1] = args[1] !== null && args[1] !== undefined && _typeof(args[1]) === 'object' ? args[1] : {};
326
+ i18n[args[0]] = !(0, _general.isObjectEmpty)(args[1]) ? args[1] : _en.EN;
327
+ } else if (args[1] !== null && args[1] !== undefined && _typeof(args[1]) === 'object') {
328
+ i18n[args[0]] = args[1];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
  }
 
 
 
 
 
 
 
 
 
 
 
330
  }
331
+
332
+ return i18n.lang;
333
  };
334
 
335
+ i18n.t = function (message) {
336
+ var pluralParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
337
 
 
 
338
 
339
+ if (typeof message === 'string' && message.length) {
 
 
 
 
 
 
340
 
341
+ var str = void 0,
342
+ pluralForm = void 0;
 
343
 
344
+ var language = i18n.language();
 
345
 
346
+ var _plural = function _plural(input, number, form) {
 
 
 
347
 
348
+ if ((typeof input === 'undefined' ? 'undefined' : _typeof(input)) !== 'object' || typeof number !== 'number' || typeof form !== 'number') {
349
+ return input;
350
+ }
351
+
352
+ var _pluralForms = function () {
353
+ return [function () {
354
+ return arguments.length <= 1 ? undefined : arguments[1];
355
+ }, function () {
356
+ return (arguments.length <= 0 ? undefined : arguments[0]) === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
357
+ }, function () {
358
+ return (arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
359
+ }, function () {
360
+ if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) {
361
+ return arguments.length <= 1 ? undefined : arguments[1];
362
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) !== 0) {
363
+ return arguments.length <= 2 ? undefined : arguments[2];
364
+ } else {
365
+ return arguments.length <= 3 ? undefined : arguments[3];
366
+ }
367
+ }, function () {
368
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1 || (arguments.length <= 0 ? undefined : arguments[0]) === 11) {
369
+ return arguments.length <= 1 ? undefined : arguments[1];
370
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2 || (arguments.length <= 0 ? undefined : arguments[0]) === 12) {
371
+ return arguments.length <= 2 ? undefined : arguments[2];
372
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 2 && (arguments.length <= 0 ? undefined : arguments[0]) < 20) {
373
+ return arguments.length <= 3 ? undefined : arguments[3];
374
+ } else {
375
+ return arguments.length <= 4 ? undefined : arguments[4];
376
+ }
377
+ }, function () {
378
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
379
+ return arguments.length <= 1 ? undefined : arguments[1];
380
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 > 0 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 20) {
381
+ return arguments.length <= 2 ? undefined : arguments[2];
382
+ } else {
383
+ return arguments.length <= 3 ? undefined : arguments[3];
384
+ }
385
+ }, function () {
386
+ if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) {
387
+ return arguments.length <= 1 ? undefined : arguments[1];
388
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
389
+ return arguments.length <= 2 ? undefined : arguments[2];
390
+ } else {
391
+ return [3];
392
+ }
393
+ }, function () {
394
+ if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) {
395
+ return arguments.length <= 1 ? undefined : arguments[1];
396
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
397
+ return arguments.length <= 2 ? undefined : arguments[2];
398
+ } else {
399
+ return arguments.length <= 3 ? undefined : arguments[3];
400
+ }
401
+ }, function () {
402
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
403
+ return arguments.length <= 1 ? undefined : arguments[1];
404
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) <= 4) {
405
+ return arguments.length <= 2 ? undefined : arguments[2];
406
+ } else {
407
+ return arguments.length <= 3 ? undefined : arguments[3];
408
+ }
409
+ }, function () {
410
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
411
+ return arguments.length <= 1 ? undefined : arguments[1];
412
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
413
+ return arguments.length <= 2 ? undefined : arguments[2];
414
+ } else {
415
+ return arguments.length <= 3 ? undefined : arguments[3];
416
+ }
417
+ }, function () {
418
+ if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 1) {
419
+ return arguments.length <= 2 ? undefined : arguments[2];
420
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 2) {
421
+ return arguments.length <= 3 ? undefined : arguments[3];
422
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 3 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 === 4) {
423
+ return arguments.length <= 4 ? undefined : arguments[4];
424
+ } else {
425
+ return arguments.length <= 1 ? undefined : arguments[1];
426
+ }
427
+ }, function () {
428
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
429
+ return arguments.length <= 1 ? undefined : arguments[1];
430
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
431
+ return arguments.length <= 2 ? undefined : arguments[2];
432
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 2 && (arguments.length <= 0 ? undefined : arguments[0]) < 7) {
433
+ return arguments.length <= 3 ? undefined : arguments[3];
434
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 6 && (arguments.length <= 0 ? undefined : arguments[0]) < 11) {
435
+ return arguments.length <= 4 ? undefined : arguments[4];
436
+ } else {
437
+ return arguments.length <= 5 ? undefined : arguments[5];
438
+ }
439
+ }, function () {
440
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 0) {
441
+ return arguments.length <= 1 ? undefined : arguments[1];
442
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
443
+ return arguments.length <= 2 ? undefined : arguments[2];
444
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
445
+ return arguments.length <= 3 ? undefined : arguments[3];
446
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 3 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 <= 10) {
447
+ return arguments.length <= 4 ? undefined : arguments[4];
448
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 11) {
449
+ return arguments.length <= 5 ? undefined : arguments[5];
450
+ } else {
451
+ return arguments.length <= 6 ? undefined : arguments[6];
452
+ }
453
+ }, function () {
454
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
455
+ return arguments.length <= 1 ? undefined : arguments[1];
456
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 > 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 11) {
457
+ return arguments.length <= 2 ? undefined : arguments[2];
458
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 > 10 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 20) {
459
+ return arguments.length <= 3 ? undefined : arguments[3];
460
+ } else {
461
+ return arguments.length <= 4 ? undefined : arguments[4];
462
+ }
463
+ }, function () {
464
+ if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1) {
465
+ return arguments.length <= 1 ? undefined : arguments[1];
466
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 2) {
467
+ return arguments.length <= 2 ? undefined : arguments[2];
468
+ } else {
469
+ return arguments.length <= 3 ? undefined : arguments[3];
470
+ }
471
+ }, function () {
472
+ return (arguments.length <= 0 ? undefined : arguments[0]) !== 11 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
473
+ }, function () {
474
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
475
+ return arguments.length <= 1 ? undefined : arguments[1];
476
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
477
+ return arguments.length <= 2 ? undefined : arguments[2];
478
+ } else {
479
+ return arguments.length <= 3 ? undefined : arguments[3];
480
+ }
481
+ }, function () {
482
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
483
+ return arguments.length <= 1 ? undefined : arguments[1];
484
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
485
+ return arguments.length <= 2 ? undefined : arguments[2];
486
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) !== 8 && (arguments.length <= 0 ? undefined : arguments[0]) !== 11) {
487
+ return arguments.length <= 3 ? undefined : arguments[3];
488
+ } else {
489
+ return arguments.length <= 4 ? undefined : arguments[4];
490
+ }
491
+ }, function () {
492
+ return (arguments.length <= 0 ? undefined : arguments[0]) === 0 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
493
+ }, function () {
494
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
495
+ return arguments.length <= 1 ? undefined : arguments[1];
496
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
497
+ return arguments.length <= 2 ? undefined : arguments[2];
498
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 3) {
499
+ return arguments.length <= 3 ? undefined : arguments[3];
500
+ } else {
501
+ return arguments.length <= 4 ? undefined : arguments[4];
502
+ }
503
+ }, function () {
504
+ if ((arguments.length <= 0 ? undefined : arguments[0]) === 0) {
505
+ return arguments.length <= 1 ? undefined : arguments[1];
506
+ } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
507
+ return arguments.length <= 2 ? undefined : arguments[2];
508
+ } else {
509
+ return arguments.length <= 3 ? undefined : arguments[3];
510
+ }
511
+ }];
512
+ }();
513
 
514
+ return _pluralForms[form].apply(null, [number].concat(input));
515
+ };
 
 
516
 
517
+ if (i18n[language] !== undefined) {
518
+ str = i18n[language][message];
519
+ if (pluralParam !== null && typeof pluralParam === 'number') {
520
+ pluralForm = i18n[language]['mejs.plural-form'];
521
+ str = _plural.apply(null, [str, pluralParam, pluralForm]);
 
 
 
522
  }
523
+ }
524
+
525
+ if (!str && i18n.en) {
526
+ str = i18n.en[message];
527
+ if (pluralParam !== null && typeof pluralParam === 'number') {
528
+ pluralForm = i18n.en['mejs.plural-form'];
529
+ str = _plural.apply(null, [str, pluralParam, pluralForm]);
530
  }
 
531
  }
532
+
533
+ str = str || message;
534
+
535
+ if (pluralParam !== null && typeof pluralParam === 'number') {
536
+ str = str.replace('%1', pluralParam);
537
+ }
538
+
539
+ return (0, _general.escapeHTML)(str);
540
  }
541
+
542
+ return message;
543
  };
544
 
545
+ _mejs2.default.i18n = i18n;
 
 
 
 
 
 
 
 
 
 
546
 
547
+ if (typeof mejsL10n !== 'undefined') {
548
+ _mejs2.default.i18n.language(mejsL10n.language, mejsL10n.strings);
549
+ }
550
+
551
+ exports.default = i18n;
552
+
553
+ },{"18":18,"7":7,"9":9}],6:[function(_dereq_,module,exports){
554
+ 'use strict';
555
+
556
+ Object.defineProperty(exports, "__esModule", {
557
+ value: true
 
 
 
 
 
 
 
 
 
 
 
558
  });
 
 
 
 
 
559
 
560
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
561
+
562
+ var _window = _dereq_(3);
563
+
564
+ var _window2 = _interopRequireDefault(_window);
565
+
566
+ var _document = _dereq_(2);
567
+
568
+ var _document2 = _interopRequireDefault(_document);
569
+
570
+ var _mejs = _dereq_(7);
571
+
572
+ var _mejs2 = _interopRequireDefault(_mejs);
573
+
574
+ var _general = _dereq_(18);
575
+
576
+ var _media2 = _dereq_(19);
577
+
578
+ var _renderer = _dereq_(8);
579
+
580
+ var _constants = _dereq_(16);
581
+
582
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
583
+
584
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
585
+
586
+ var MediaElement = function MediaElement(idOrNode, options, sources) {
587
+ var _this = this;
588
+
589
+ _classCallCheck(this, MediaElement);
590
+
591
+ var t = this;
592
+
593
+ sources = Array.isArray(sources) ? sources : null;
594
+
595
+ t.defaults = {
596
+ renderers: [],
597
+
598
+ fakeNodeName: 'mediaelementwrapper',
599
+
600
+ pluginPath: 'build/',
601
+
602
+ shimScriptAccess: 'sameDomain'
603
+ };
604
+
605
+ options = Object.assign(t.defaults, options);
606
+
607
+ t.mediaElement = _document2.default.createElement(options.fakeNodeName);
608
+
609
+ var id = idOrNode,
610
+ error = false;
611
+
612
+ if (typeof idOrNode === 'string') {
613
+ t.mediaElement.originalNode = _document2.default.getElementById(idOrNode);
614
+ } else {
615
+ t.mediaElement.originalNode = idOrNode;
616
+ id = idOrNode.id;
617
  }
618
+
619
+ if (t.mediaElement.originalNode === undefined || t.mediaElement.originalNode === null) {
620
+ return null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
621
  }
 
 
622
 
623
+ t.mediaElement.options = options;
624
+ id = id || 'mejs_' + Math.random().toString().slice(2);
625
 
626
+ t.mediaElement.originalNode.setAttribute('id', id + '_from_mejs');
 
 
 
 
 
627
 
628
+ var tagName = t.mediaElement.originalNode.tagName.toLowerCase();
629
+ if (['video', 'audio'].indexOf(tagName) > -1 && !t.mediaElement.originalNode.getAttribute('preload')) {
630
+ t.mediaElement.originalNode.setAttribute('preload', 'none');
631
+ }
632
 
633
+ t.mediaElement.originalNode.parentNode.insertBefore(t.mediaElement, t.mediaElement.originalNode);
 
 
634
 
635
+ t.mediaElement.appendChild(t.mediaElement.originalNode);
 
 
636
 
637
+ var processURL = function processURL(url, type) {
638
+ if (_window2.default.location.protocol === 'https:' && url.indexOf('http:') === 0 && _constants.IS_IOS && _mejs2.default.html5media.mediaTypes.indexOf(type) > -1) {
639
+ var xhr = new XMLHttpRequest();
640
+ xhr.onreadystatechange = function () {
641
+ if (this.readyState === 4 && this.status === 200) {
642
+ var _url = _window2.default.URL || _window2.default.webkitURL,
643
+ blobUrl = _url.createObjectURL(this.response);
644
+ t.mediaElement.originalNode.setAttribute('src', blobUrl);
645
+ return blobUrl;
646
+ }
647
+ return url;
648
+ };
649
+ xhr.open('GET', url);
650
+ xhr.responseType = 'blob';
651
+ xhr.send();
652
+ }
653
 
654
+ return url;
655
+ };
656
+
657
+ var mediaFiles = void 0;
658
+
659
+ if (sources !== null) {
660
+ mediaFiles = sources;
661
+ } else if (t.mediaElement.originalNode !== null) {
662
+
663
+ mediaFiles = [];
 
 
 
 
 
664
 
665
+ switch (t.mediaElement.originalNode.nodeName.toLowerCase()) {
666
+ case 'iframe':
667
+ mediaFiles.push({
668
+ type: '',
669
+ src: t.mediaElement.originalNode.getAttribute('src')
670
+ });
671
+ break;
672
+ case 'audio':
673
+ case 'video':
674
+ var _sources = t.mediaElement.originalNode.children.length,
675
+ nodeSource = t.mediaElement.originalNode.getAttribute('src');
676
+
677
+ if (nodeSource) {
678
+ var node = t.mediaElement.originalNode,
679
+ type = (0, _media2.formatType)(nodeSource, node.getAttribute('type'));
680
+ mediaFiles.push({
681
+ type: type,
682
+ src: processURL(nodeSource, type)
683
+ });
684
  }
 
 
 
685
 
686
+ for (var i = 0; i < _sources; i++) {
687
+ var n = t.mediaElement.originalNode.children[i];
688
+ if (n.tagName.toLowerCase() === 'source') {
689
+ var src = n.getAttribute('src'),
690
+ _type = (0, _media2.formatType)(src, n.getAttribute('type'));
691
+ mediaFiles.push({ type: _type, src: processURL(src, _type) });
692
+ }
693
+ }
694
+ break;
695
+ }
696
  }
 
697
 
698
+ t.mediaElement.id = id;
699
+ t.mediaElement.renderers = {};
700
+ t.mediaElement.events = {};
701
+ t.mediaElement.promises = [];
702
+ t.mediaElement.renderer = null;
703
+ t.mediaElement.rendererName = null;
 
 
 
704
 
705
+ t.mediaElement.changeRenderer = function (rendererName, mediaFiles) {
706
+
707
+ var t = _this,
708
+ media = Object.keys(mediaFiles[0]).length > 2 ? mediaFiles[0] : mediaFiles[0].src;
709
+
710
+ if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && t.mediaElement.renderer.name === rendererName) {
711
+ t.mediaElement.renderer.pause();
712
+ if (t.mediaElement.renderer.stop) {
713
+ t.mediaElement.renderer.stop();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
714
  }
715
+ t.mediaElement.renderer.show();
716
+ t.mediaElement.renderer.setSrc(media);
717
+ return true;
718
  }
719
+
720
+ if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) {
721
+ t.mediaElement.renderer.pause();
722
+ if (t.mediaElement.renderer.stop) {
723
+ t.mediaElement.renderer.stop();
 
724
  }
725
+ t.mediaElement.renderer.hide();
 
726
  }
727
+
728
+ var newRenderer = t.mediaElement.renderers[rendererName],
729
+ newRendererType = null;
730
+
731
+ if (newRenderer !== undefined && newRenderer !== null) {
732
+ newRenderer.show();
733
+ newRenderer.setSrc(media);
734
+ t.mediaElement.renderer = newRenderer;
735
+ t.mediaElement.rendererName = rendererName;
736
+ return true;
 
 
 
 
 
 
 
 
 
 
 
737
  }
738
+
739
+ var rendererArray = t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : _renderer.renderer.order;
740
+
741
+ for (var _i = 0, total = rendererArray.length; _i < total; _i++) {
742
+ var index = rendererArray[_i];
743
+
744
+ if (index === rendererName) {
745
+ var rendererList = _renderer.renderer.renderers;
746
+ newRendererType = rendererList[index];
747
+
748
+ var renderOptions = Object.assign(newRendererType.options, t.mediaElement.options);
749
+ newRenderer = newRendererType.create(t.mediaElement, renderOptions, mediaFiles);
750
+ newRenderer.name = rendererName;
751
+
752
+ t.mediaElement.renderers[newRendererType.name] = newRenderer;
753
+ t.mediaElement.renderer = newRenderer;
754
+ t.mediaElement.rendererName = rendererName;
755
+ newRenderer.show();
756
+ return true;
 
757
  }
758
  }
759
 
760
  return false;
761
+ };
762
+
763
+ t.mediaElement.setSize = function (width, height) {
764
+ if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) {
765
+ t.mediaElement.renderer.setSize(width, height);
766
  }
767
+ };
768
+
769
+ t.mediaElement.generateError = function (message, urlList) {
770
+ message = message || '';
771
+ urlList = Array.isArray(urlList) ? urlList : [];
772
+ var event = (0, _general.createEvent)('error', t.mediaElement);
773
+ event.message = message;
774
+ event.urls = urlList;
775
+ t.mediaElement.dispatchEvent(event);
776
+ error = true;
777
+ };
778
+
779
+ var props = _mejs2.default.html5media.properties,
780
+ methods = _mejs2.default.html5media.methods,
781
+ addProperty = function addProperty(obj, name, onGet, onSet) {
782
+ var oldValue = obj[name];
783
+ var getFn = function getFn() {
784
+ return onGet.apply(obj, [oldValue]);
785
+ },
786
+ setFn = function setFn(newValue) {
787
+ oldValue = onSet.apply(obj, [newValue]);
788
+ return oldValue;
789
+ };
790
+
791
+ Object.defineProperty(obj, name, {
792
+ get: getFn,
793
+ set: setFn
794
+ });
795
  },
796
+ assignGettersSetters = function assignGettersSetters(propName) {
797
+ if (propName !== 'src') {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
798
 
799
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1),
800
+ getFn = function getFn() {
801
+ return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['get' + capName] === 'function' ? t.mediaElement.renderer['get' + capName]() : null;
802
+ },
803
+ setFn = function setFn(value) {
804
+ if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['set' + capName] === 'function') {
805
+ t.mediaElement.renderer['set' + capName](value);
806
  }
807
+ };
808
+
809
+ addProperty(t.mediaElement, propName, getFn, setFn);
810
+ t.mediaElement['get' + capName] = getFn;
811
+ t.mediaElement['set' + capName] = setFn;
812
+ }
813
+ },
814
+ getSrc = function getSrc() {
815
+ return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null ? t.mediaElement.renderer.getSrc() : null;
816
+ },
817
+ setSrc = function setSrc(value) {
818
+ var mediaFiles = [];
819
+
820
+ if (typeof value === 'string') {
821
+ mediaFiles.push({
822
+ src: value,
823
+ type: value ? (0, _media2.getTypeFromFile)(value) : ''
824
+ });
825
+ } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src !== undefined) {
826
+ var _src = (0, _media2.absolutizeUrl)(value.src),
827
+ _type2 = value.type,
828
+ media = Object.assign(value, {
829
+ src: _src,
830
+ type: (_type2 === '' || _type2 === null || _type2 === undefined) && _src ? (0, _media2.getTypeFromFile)(_src) : _type2
831
+ });
832
+ mediaFiles.push(media);
833
+ } else if (Array.isArray(value)) {
834
+ for (var _i2 = 0, total = value.length; _i2 < total; _i2++) {
835
+
836
+ var _src2 = (0, _media2.absolutizeUrl)(value[_i2].src),
837
+ _type3 = value[_i2].type,
838
+ _media = Object.assign(value[_i2], {
839
+ src: _src2,
840
+ type: (_type3 === '' || _type3 === null || _type3 === undefined) && _src2 ? (0, _media2.getTypeFromFile)(_src2) : _type3
841
+ });
842
+
843
+ mediaFiles.push(_media);
844
  }
845
  }
846
 
847
+ var renderInfo = _renderer.renderer.select(mediaFiles, t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : []),
848
+ event = void 0;
849
+
850
+ if (!t.mediaElement.paused) {
851
+ t.mediaElement.pause();
852
+ event = (0, _general.createEvent)('pause', t.mediaElement);
853
+ t.mediaElement.dispatchEvent(event);
854
+ }
855
+ t.mediaElement.originalNode.src = mediaFiles[0].src || '';
856
+
857
+ if (renderInfo === null && mediaFiles[0].src) {
858
+ t.mediaElement.generateError('No renderer found', mediaFiles);
859
+ return;
860
  }
861
+
862
+ return mediaFiles[0].src ? t.mediaElement.changeRenderer(renderInfo.rendererName, mediaFiles) : null;
863
  },
864
+ triggerAction = function triggerAction(methodName, args) {
865
+ try {
866
+ if (methodName === 'play' && t.mediaElement.rendererName === 'native_dash') {
867
+ var response = t.mediaElement.renderer[methodName](args);
868
+ if (response && typeof response.then === 'function') {
869
+ response.catch(function () {
870
+ if (t.mediaElement.paused) {
871
+ setTimeout(function () {
872
+ var tmpResponse = t.mediaElement.renderer.play();
873
+ if (tmpResponse !== undefined) {
874
+ tmpResponse.catch(function () {
875
+ if (!t.mediaElement.renderer.paused) {
876
+ t.mediaElement.renderer.pause();
877
+ }
878
+ });
879
+ }
880
+ }, 150);
881
+ }
882
+ });
883
+ }
884
  } else {
885
+ t.mediaElement.renderer[methodName](args);
886
  }
887
+ } catch (e) {
888
+ t.mediaElement.generateError(e, mediaFiles);
889
  }
890
  },
891
+ assignMethods = function assignMethods(methodName) {
892
+ t.mediaElement[methodName] = function () {
893
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
894
+ args[_key] = arguments[_key];
895
+ }
896
+
897
+ if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer[methodName] === 'function') {
898
+ if (t.mediaElement.promises.length) {
899
+ Promise.all(t.mediaElement.promises).then(function () {
900
+ triggerAction(methodName, args);
901
+ }).catch(function (e) {
902
+ t.mediaElement.generateError(e, mediaFiles);
903
+ });
904
  } else {
905
+ triggerAction(methodName, args);
906
  }
 
 
 
 
907
  }
908
+ return null;
909
+ };
910
+ };
911
+
912
+ addProperty(t.mediaElement, 'src', getSrc, setSrc);
913
+ t.mediaElement.getSrc = getSrc;
914
+ t.mediaElement.setSrc = setSrc;
915
+
916
+ for (var _i3 = 0, total = props.length; _i3 < total; _i3++) {
917
+ assignGettersSetters(props[_i3]);
918
+ }
919
+
920
+ for (var _i4 = 0, _total = methods.length; _i4 < _total; _i4++) {
921
+ assignMethods(methods[_i4]);
922
+ }
923
+
924
+ t.mediaElement.addEventListener = function (eventName, callback) {
925
+ t.mediaElement.events[eventName] = t.mediaElement.events[eventName] || [];
926
+
927
+ t.mediaElement.events[eventName].push(callback);
928
+ };
929
+ t.mediaElement.removeEventListener = function (eventName, callback) {
930
+ if (!eventName) {
931
+ t.mediaElement.events = {};
932
+ return true;
933
  }
 
934
 
935
+ var callbacks = t.mediaElement.events[eventName];
 
 
 
 
 
 
 
 
 
 
 
 
936
 
937
+ if (!callbacks) {
938
+ return true;
 
939
  }
940
+
941
+ if (!callback) {
942
+ t.mediaElement.events[eventName] = [];
943
+ return true;
 
 
 
 
 
 
 
 
944
  }
 
945
 
946
+ for (var _i5 = 0; _i5 < callbacks.length; _i5++) {
947
+ if (callbacks[_i5] === callback) {
948
+ t.mediaElement.events[eventName].splice(_i5, 1);
 
 
 
 
 
 
 
 
 
 
949
  return true;
950
  }
951
  }
952
  return false;
953
+ };
 
 
 
 
954
 
955
+ t.mediaElement.dispatchEvent = function (event) {
956
+ var callbacks = t.mediaElement.events[event.type];
957
  if (callbacks) {
958
+ for (var _i6 = 0; _i6 < callbacks.length; _i6++) {
959
+ callbacks[_i6].apply(null, [event]);
 
960
  }
961
  }
962
+ };
963
+
964
+ t.mediaElement.destroy = function () {
965
+ var mediaElement = t.mediaElement.originalNode.cloneNode(true);
966
+ var wrapper = t.mediaElement.parentElement;
967
+ mediaElement.removeAttribute('id');
968
+ mediaElement.remove();
969
+ t.mediaElement.remove();
970
+ wrapper.append(mediaElement);
971
+ };
972
+
973
+ if (mediaFiles.length) {
974
+ t.mediaElement.src = mediaFiles;
975
+ }
976
+
977
+ if (t.mediaElement.promises.length) {
978
+ Promise.all(t.mediaElement.promises).then(function () {
979
+ if (t.mediaElement.options.success) {
980
+ t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode);
981
+ }
982
+ }).catch(function () {
983
+ if (error && t.mediaElement.options.error) {
984
+ t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode);
985
+ }
986
+ });
987
+ } else {
988
+ if (t.mediaElement.options.success) {
989
+ t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode);
990
  }
 
 
 
 
 
991
 
992
+ if (error && t.mediaElement.options.error) {
993
+ t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode);
994
+ }
995
  }
 
996
 
997
+ return t.mediaElement;
998
+ };
999
 
1000
+ _window2.default.MediaElement = MediaElement;
1001
+ _mejs2.default.MediaElement = MediaElement;
1002
 
1003
+ exports.default = MediaElement;
 
 
 
1004
 
1005
+ },{"16":16,"18":18,"19":19,"2":2,"3":3,"7":7,"8":8}],7:[function(_dereq_,module,exports){
1006
+ 'use strict';
1007
 
1008
+ Object.defineProperty(exports, "__esModule", {
1009
+ value: true
1010
+ });
1011
 
1012
+ var _window = _dereq_(3);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1013
 
1014
+ var _window2 = _interopRequireDefault(_window);
 
 
1015
 
1016
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 
 
 
1017
 
1018
+ var mejs = {};
 
1019
 
1020
+ mejs.version = '4.2.8';
 
 
 
 
1021
 
1022
+ mejs.html5media = {
1023
+ properties: ['volume', 'src', 'currentTime', 'muted', 'duration', 'paused', 'ended', 'buffered', 'error', 'networkState', 'readyState', 'seeking', 'seekable', 'currentSrc', 'preload', 'bufferedBytes', 'bufferedTime', 'initialTime', 'startOffsetTime', 'defaultPlaybackRate', 'playbackRate', 'played', 'autoplay', 'loop', 'controls'],
1024
+ readOnlyProperties: ['duration', 'paused', 'ended', 'buffered', 'error', 'networkState', 'readyState', 'seeking', 'seekable'],
 
 
1025
 
1026
+ methods: ['load', 'play', 'pause', 'canPlayType'],
 
1027
 
1028
+ events: ['loadstart', 'durationchange', 'loadedmetadata', 'loadeddata', 'progress', 'canplay', 'canplaythrough', 'suspend', 'abort', 'error', 'emptied', 'stalled', 'play', 'playing', 'pause', 'waiting', 'seeking', 'seeked', 'timeupdate', 'ended', 'ratechange', 'volumechange'],
 
 
 
 
 
 
 
 
1029
 
1030
+ mediaTypes: ['audio/mp3', 'audio/ogg', 'audio/oga', 'audio/wav', 'audio/x-wav', 'audio/wave', 'audio/x-pn-wav', 'audio/mpeg', 'audio/mp4', 'video/mp4', 'video/webm', 'video/ogg', 'video/ogv']
 
1031
  };
1032
 
1033
+ _window2.default.mejs = mejs;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1034
 
1035
+ exports.default = mejs;
 
 
 
 
 
 
 
1036
 
1037
+ },{"3":3}],8:[function(_dereq_,module,exports){
1038
+ 'use strict';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1039
 
1040
+ Object.defineProperty(exports, "__esModule", {
1041
+ value: true
1042
+ });
1043
+ exports.renderer = undefined;
1044
 
1045
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1046
 
1047
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
 
 
 
 
 
 
 
 
1048
 
1049
+ var _mejs = _dereq_(7);
 
 
 
1050
 
1051
+ var _mejs2 = _interopRequireDefault(_mejs);
1052
+
1053
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1054
+
1055
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1056
+
1057
+ var Renderer = function () {
1058
+ function Renderer() {
1059
+ _classCallCheck(this, Renderer);
1060
+
1061
+ this.renderers = {};
1062
+ this.order = [];
1063
+ }
1064
+
1065
+ _createClass(Renderer, [{
1066
+ key: 'add',
1067
+ value: function add(renderer) {
1068
+ if (renderer.name === undefined) {
1069
+ throw new TypeError('renderer must contain at least `name` property');
 
 
 
 
 
 
 
 
 
 
1070
  }
1071
+
1072
+ this.renderers[renderer.name] = renderer;
1073
+ this.order.push(renderer.name);
1074
  }
1075
+ }, {
1076
+ key: 'select',
1077
+ value: function select(mediaFiles) {
1078
+ var renderers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
1079
 
1080
+ var renderersLength = renderers.length;
 
 
 
1081
 
1082
+ renderers = renderers.length ? renderers : this.order;
 
1083
 
1084
+ if (!renderersLength) {
1085
+ var rendererIndicator = [/^(html5|native)/i, /^flash/i, /iframe$/i],
1086
+ rendererRanking = function rendererRanking(renderer) {
1087
+ for (var i = 0, total = rendererIndicator.length; i < total; i++) {
1088
+ if (rendererIndicator[i].test(renderer)) {
1089
+ return i;
1090
+ }
1091
+ }
1092
+ return rendererIndicator.length;
1093
+ };
1094
+
1095
+ renderers.sort(function (a, b) {
1096
+ return rendererRanking(a) - rendererRanking(b);
1097
+ });
1098
+ }
1099
+
1100
+ for (var i = 0, total = renderers.length; i < total; i++) {
1101
+ var key = renderers[i],
1102
+ _renderer = this.renderers[key];
1103
+
1104
+ if (_renderer !== null && _renderer !== undefined) {
1105
+ for (var j = 0, jl = mediaFiles.length; j < jl; j++) {
1106
+ if (typeof _renderer.canPlayType === 'function' && typeof mediaFiles[j].type === 'string' && _renderer.canPlayType(mediaFiles[j].type)) {
1107
+ return {
1108
+ rendererName: _renderer.name,
1109
+ src: mediaFiles[j].src
1110
+ };
1111
  }
1112
  }
1113
  }
1114
  }
1115
+
1116
+ return null;
1117
  }
1118
+ }, {
1119
+ key: 'order',
1120
+ set: function set(order) {
1121
+ if (!Array.isArray(order)) {
1122
+ throw new TypeError('order must be an array of strings.');
1123
+ }
1124
+
1125
+ this._order = order;
1126
+ },
1127
+ get: function get() {
1128
+ return this._order;
1129
  }
1130
+ }, {
1131
+ key: 'renderers',
1132
+ set: function set(renderers) {
1133
+ if (renderers !== null && (typeof renderers === 'undefined' ? 'undefined' : _typeof(renderers)) !== 'object') {
1134
+ throw new TypeError('renderers must be an array of objects.');
1135
+ }
1136
 
1137
+ this._renderers = renderers;
1138
+ },
1139
+ get: function get() {
1140
+ return this._renderers;
1141
  }
1142
+ }]);
1143
 
1144
+ return Renderer;
1145
+ }();
1146
+
1147
+ var renderer = exports.renderer = new Renderer();
1148
+
1149
+ _mejs2.default.Renderers = renderer;
1150
+
1151
+ },{"7":7}],9:[function(_dereq_,module,exports){
1152
+ 'use strict';
1153
+
1154
+ Object.defineProperty(exports, "__esModule", {
1155
+ value: true
1156
+ });
1157
+ var EN = exports.EN = {
1158
+ 'mejs.plural-form': 1,
1159
+
1160
+ 'mejs.download-file': 'Download File',
1161
+
1162
+ 'mejs.install-flash': 'You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/',
1163
+
1164
+ 'mejs.fullscreen': 'Fullscreen',
1165
+
1166
+ 'mejs.play': 'Play',
1167
+ 'mejs.pause': 'Pause',
1168
+
1169
+ 'mejs.time-slider': 'Time Slider',
1170
+ 'mejs.time-help-text': 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.',
1171
+ 'mejs.live-broadcast': 'Live Broadcast',
1172
+
1173
+ 'mejs.volume-help-text': 'Use Up/Down Arrow keys to increase or decrease volume.',
1174
+ 'mejs.unmute': 'Unmute',
1175
+ 'mejs.mute': 'Mute',
1176
+ 'mejs.volume-slider': 'Volume Slider',
1177
+
1178
+ 'mejs.video-player': 'Video Player',
1179
+ 'mejs.audio-player': 'Audio Player',
1180
+
1181
+ 'mejs.captions-subtitles': 'Captions/Subtitles',
1182
+ 'mejs.captions-chapters': 'Chapters',
1183
+ 'mejs.none': 'None',
1184
+ 'mejs.afrikaans': 'Afrikaans',
1185
+ 'mejs.albanian': 'Albanian',
1186
+ 'mejs.arabic': 'Arabic',
1187
+ 'mejs.belarusian': 'Belarusian',
1188
+ 'mejs.bulgarian': 'Bulgarian',
1189
+ 'mejs.catalan': 'Catalan',
1190
+ 'mejs.chinese': 'Chinese',
1191
+ 'mejs.chinese-simplified': 'Chinese (Simplified)',
1192
+ 'mejs.chinese-traditional': 'Chinese (Traditional)',
1193
+ 'mejs.croatian': 'Croatian',
1194
+ 'mejs.czech': 'Czech',
1195
+ 'mejs.danish': 'Danish',
1196
+ 'mejs.dutch': 'Dutch',
1197
+ 'mejs.english': 'English',
1198
+ 'mejs.estonian': 'Estonian',
1199
+ 'mejs.filipino': 'Filipino',
1200
+ 'mejs.finnish': 'Finnish',
1201
+ 'mejs.french': 'French',
1202
+ 'mejs.galician': 'Galician',
1203
+ 'mejs.german': 'German',
1204
+ 'mejs.greek': 'Greek',
1205
+ 'mejs.haitian-creole': 'Haitian Creole',
1206
+ 'mejs.hebrew': 'Hebrew',
1207
+ 'mejs.hindi': 'Hindi',
1208
+ 'mejs.hungarian': 'Hungarian',
1209
+ 'mejs.icelandic': 'Icelandic',
1210
+ 'mejs.indonesian': 'Indonesian',
1211
+ 'mejs.irish': 'Irish',
1212
+ 'mejs.italian': 'Italian',
1213
+ 'mejs.japanese': 'Japanese',
1214
+ 'mejs.korean': 'Korean',
1215
+ 'mejs.latvian': 'Latvian',
1216
+ 'mejs.lithuanian': 'Lithuanian',
1217
+ 'mejs.macedonian': 'Macedonian',
1218
+ 'mejs.malay': 'Malay',
1219
+ 'mejs.maltese': 'Maltese',
1220
+ 'mejs.norwegian': 'Norwegian',
1221
+ 'mejs.persian': 'Persian',
1222
+ 'mejs.polish': 'Polish',
1223
+ 'mejs.portuguese': 'Portuguese',
1224
+ 'mejs.romanian': 'Romanian',
1225
+ 'mejs.russian': 'Russian',
1226
+ 'mejs.serbian': 'Serbian',
1227
+ 'mejs.slovak': 'Slovak',
1228
+ 'mejs.slovenian': 'Slovenian',
1229
+ 'mejs.spanish': 'Spanish',
1230
+ 'mejs.swahili': 'Swahili',
1231
+ 'mejs.swedish': 'Swedish',
1232
+ 'mejs.tagalog': 'Tagalog',
1233
+ 'mejs.thai': 'Thai',
1234
+ 'mejs.turkish': 'Turkish',
1235
+ 'mejs.ukrainian': 'Ukrainian',
1236
+ 'mejs.vietnamese': 'Vietnamese',
1237
+ 'mejs.welsh': 'Welsh',
1238
+ 'mejs.yiddish': 'Yiddish'
1239
+ };
1240
+
1241
+ },{}],10:[function(_dereq_,module,exports){
1242
+ 'use strict';
1243
+
1244
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
1245
+
1246
+ var _window = _dereq_(3);
1247
+
1248
+ var _window2 = _interopRequireDefault(_window);
1249
+
1250
+ var _mejs = _dereq_(7);
1251
+
1252
+ var _mejs2 = _interopRequireDefault(_mejs);
1253
+
1254
+ var _renderer = _dereq_(8);
1255
+
1256
+ var _general = _dereq_(18);
1257
+
1258
+ var _media = _dereq_(19);
1259
+
1260
+ var _constants = _dereq_(16);
1261
+
1262
+ var _dom = _dereq_(17);
1263
+
1264
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1265
+
1266
+ var NativeDash = {
1267
 
1268
+ promise: null,
 
1269
 
1270
+ load: function load(settings) {
1271
+ if (typeof dashjs !== 'undefined') {
1272
+ NativeDash.promise = new Promise(function (resolve) {
1273
+ resolve();
1274
+ }).then(function () {
1275
+ NativeDash._createPlayer(settings);
1276
+ });
1277
  } else {
1278
+ settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.dashjs.org/latest/dash.all.min.js';
1279
+
1280
+ NativeDash.promise = NativeDash.promise || (0, _dom.loadScript)(settings.options.path);
1281
+ NativeDash.promise.then(function () {
1282
+ NativeDash._createPlayer(settings);
1283
+ });
 
 
 
1284
  }
1285
+
1286
+ return NativeDash.promise;
1287
  },
1288
+
1289
+ _createPlayer: function _createPlayer(settings) {
1290
+ var player = dashjs.MediaPlayer().create();
1291
+ _window2.default['__ready__' + settings.id](player);
1292
+ return player;
1293
+ }
1294
+ };
1295
+
1296
+ var DashNativeRenderer = {
1297
+ name: 'native_dash',
1298
+ options: {
1299
+ prefix: 'native_dash',
1300
+ dash: {
1301
+ path: 'https://cdn.dashjs.org/latest/dash.all.min.js',
1302
+ debug: false,
1303
+ drm: {},
1304
+
1305
+ robustnessLevel: ''
 
 
 
 
1306
  }
1307
  },
1308
 
1309
+ canPlayType: function canPlayType(type) {
1310
+ return _constants.HAS_MSE && ['application/dash+xml'].indexOf(type.toLowerCase()) > -1;
1311
+ },
 
 
 
 
 
 
 
 
1312
 
1313
+ create: function create(mediaElement, options, mediaFiles) {
 
 
1314
 
1315
+ var originalNode = mediaElement.originalNode,
1316
+ id = mediaElement.id + '_' + options.prefix,
1317
+ autoplay = originalNode.autoplay,
1318
+ children = originalNode.children;
1319
 
1320
+ var node = null,
1321
+ dashPlayer = null;
1322
 
1323
+ originalNode.removeAttribute('type');
1324
+ for (var i = 0, total = children.length; i < total; i++) {
1325
+ children[i].removeAttribute('type');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1326
  }
1327
 
1328
+ node = originalNode.cloneNode(true);
1329
+ options = Object.assign(options, mediaElement.options);
1330
+
1331
+ var props = _mejs2.default.html5media.properties,
1332
+ events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
1333
+ return e !== 'error';
1334
+ }),
1335
+ attachNativeEvents = function attachNativeEvents(e) {
1336
+ var event = (0, _general.createEvent)(e.type, mediaElement);
1337
+ mediaElement.dispatchEvent(event);
1338
+ },
1339
+ assignGettersSetters = function assignGettersSetters(propName) {
1340
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
1341
+
1342
+ node['get' + capName] = function () {
1343
+ return dashPlayer !== null ? node[propName] : null;
1344
+ };
1345
 
1346
+ node['set' + capName] = function (value) {
1347
+ if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
1348
+ if (propName === 'src') {
1349
+ var source = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
1350
+ node[propName] = source;
1351
+ if (dashPlayer !== null) {
1352
+ dashPlayer.reset();
1353
+ for (var _i = 0, _total = events.length; _i < _total; _i++) {
1354
+ node.removeEventListener(events[_i], attachNativeEvents);
1355
+ }
1356
+ dashPlayer = NativeDash._createPlayer({
1357
+ options: options.dash,
1358
+ id: id
1359
+ });
1360
+
1361
+ if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && _typeof(value.drm) === 'object') {
1362
+ dashPlayer.setProtectionData(value.drm);
1363
+ if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) {
1364
+ dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel);
1365
+ }
1366
+ }
1367
+ dashPlayer.attachSource(source);
1368
+ if (autoplay) {
1369
+ dashPlayer.play();
1370
+ }
1371
+ }
1372
+ } else {
1373
+ node[propName] = value;
1374
+ }
1375
+ }
1376
+ };
1377
+ };
1378
 
1379
+ for (var _i2 = 0, _total2 = props.length; _i2 < _total2; _i2++) {
1380
+ assignGettersSetters(props[_i2]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1381
  }
 
 
 
1382
 
1383
+ _window2.default['__ready__' + id] = function (_dashPlayer) {
1384
+ mediaElement.dashPlayer = dashPlayer = _dashPlayer;
1385
+
1386
+ var dashEvents = dashjs.MediaPlayer.events,
1387
+ assignEvents = function assignEvents(eventName) {
1388
+ if (eventName === 'loadedmetadata') {
1389
+ dashPlayer.getDebug().setLogToBrowserConsole(options.dash.debug);
1390
+ dashPlayer.initialize();
1391
+ dashPlayer.setScheduleWhilePaused(false);
1392
+ dashPlayer.setFastSwitchEnabled(true);
1393
+ dashPlayer.attachView(node);
1394
+ dashPlayer.setAutoPlay(false);
1395
+
1396
+ if (_typeof(options.dash.drm) === 'object' && !_mejs2.default.Utils.isObjectEmpty(options.dash.drm)) {
1397
+ dashPlayer.setProtectionData(options.dash.drm);
1398
+ if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) {
1399
+ dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel);
1400
+ }
1401
+ }
1402
+ dashPlayer.attachSource(node.getSrc());
1403
+ }
1404
 
1405
+ node.addEventListener(eventName, attachNativeEvents);
1406
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1407
 
1408
+ for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
1409
+ assignEvents(events[_i3]);
1410
+ }
1411
 
1412
+ var assignMdashEvents = function assignMdashEvents(e) {
1413
+ if (e.type.toLowerCase() === 'error') {
1414
+ mediaElement.generateError(e.message, node.src);
1415
+ console.error(e);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1416
  } else {
1417
+ var _event = (0, _general.createEvent)(e.type, mediaElement);
1418
+ _event.data = e;
1419
+ mediaElement.dispatchEvent(_event);
1420
  }
1421
+ };
1422
+
1423
+ for (var eventType in dashEvents) {
1424
+ if (dashEvents.hasOwnProperty(eventType)) {
1425
+ dashPlayer.on(dashEvents[eventType], function (e) {
1426
+ return assignMdashEvents(e);
1427
+ });
1428
+ }
1429
+ }
1430
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1431
 
1432
+ if (mediaFiles && mediaFiles.length > 0) {
1433
+ for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) {
1434
+ if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) {
1435
+ node.setAttribute('src', mediaFiles[_i4].src);
1436
+ if (typeof mediaFiles[_i4].drm !== 'undefined') {
1437
+ options.dash.drm = mediaFiles[_i4].drm;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1438
  }
1439
+ break;
1440
+ }
 
 
 
1441
  }
1442
  }
 
1443
 
1444
+ node.setAttribute('id', id);
1445
+
1446
+ originalNode.parentNode.insertBefore(node, originalNode);
1447
+ originalNode.autoplay = false;
1448
+ originalNode.style.display = 'none';
1449
+
1450
+ node.setSize = function (width, height) {
1451
+ node.style.width = width + 'px';
1452
+ node.style.height = height + 'px';
1453
+ return node;
1454
+ };
1455
+
1456
+ node.hide = function () {
1457
+ node.pause();
1458
+ node.style.display = 'none';
1459
+ return node;
1460
+ };
1461
+
1462
+ node.show = function () {
1463
+ node.style.display = '';
1464
+ return node;
1465
+ };
1466
+
1467
+ node.destroy = function () {
1468
+ if (dashPlayer !== null) {
1469
+ dashPlayer.reset();
1470
+ }
1471
+ };
1472
+
1473
+ var event = (0, _general.createEvent)('rendererready', node);
1474
+ mediaElement.dispatchEvent(event);
1475
+
1476
+ mediaElement.promises.push(NativeDash.load({
1477
+ options: options.dash,
1478
+ id: id
1479
+ }));
1480
+
1481
+ return node;
1482
  }
1483
  };
1484
 
1485
+ _media.typeChecks.push(function (url) {
1486
+ return ~url.toLowerCase().indexOf('.mpd') ? 'application/dash+xml' : null;
1487
+ });
 
 
1488
 
1489
+ _renderer.renderer.add(DashNativeRenderer);
1490
+
1491
+ },{"16":16,"17":17,"18":18,"19":19,"3":3,"7":7,"8":8}],11:[function(_dereq_,module,exports){
1492
+ 'use strict';
1493
+
1494
+ Object.defineProperty(exports, "__esModule", {
1495
+ value: true
1496
+ });
1497
+ exports.PluginDetector = undefined;
1498
+
1499
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
1500
+
1501
+ var _window = _dereq_(3);
1502
+
1503
+ var _window2 = _interopRequireDefault(_window);
1504
+
1505
+ var _document = _dereq_(2);
1506
+
1507
+ var _document2 = _interopRequireDefault(_document);
1508
+
1509
+ var _mejs = _dereq_(7);
1510
+
1511
+ var _mejs2 = _interopRequireDefault(_mejs);
1512
+
1513
+ var _i18n = _dereq_(5);
1514
+
1515
+ var _i18n2 = _interopRequireDefault(_i18n);
1516
+
1517
+ var _renderer = _dereq_(8);
1518
+
1519
+ var _general = _dereq_(18);
1520
+
1521
+ var _constants = _dereq_(16);
1522
+
1523
+ var _media = _dereq_(19);
1524
+
1525
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1526
+
1527
+ var PluginDetector = exports.PluginDetector = {
1528
+ plugins: [],
1529
+
1530
+ hasPluginVersion: function hasPluginVersion(plugin, v) {
1531
+ var pv = PluginDetector.plugins[plugin];
1532
+ v[1] = v[1] || 0;
1533
+ v[2] = v[2] || 0;
1534
+ return pv[0] > v[0] || pv[0] === v[0] && pv[1] > v[1] || pv[0] === v[0] && pv[1] === v[1] && pv[2] >= v[2];
1535
  },
1536
+
1537
+ addPlugin: function addPlugin(p, pluginName, mimeType, activeX, axDetect) {
1538
+ PluginDetector.plugins[p] = PluginDetector.detectPlugin(pluginName, mimeType, activeX, axDetect);
 
 
 
 
 
 
1539
  },
1540
+
1541
+ detectPlugin: function detectPlugin(pluginName, mimeType, activeX, axDetect) {
1542
+
1543
+ var version = [0, 0, 0],
1544
+ description = void 0,
1545
+ ax = void 0;
1546
+
1547
+ if (_constants.NAV.plugins !== null && _constants.NAV.plugins !== undefined && _typeof(_constants.NAV.plugins[pluginName]) === 'object') {
1548
+ description = _constants.NAV.plugins[pluginName].description;
1549
+ if (description && !(typeof _constants.NAV.mimeTypes !== 'undefined' && _constants.NAV.mimeTypes[mimeType] && !_constants.NAV.mimeTypes[mimeType].enabledPlugin)) {
1550
+ version = description.replace(pluginName, '').replace(/^\s+/, '').replace(/\sr/gi, '.').split('.');
1551
+ for (var i = 0, total = version.length; i < total; i++) {
1552
+ version[i] = parseInt(version[i].match(/\d+/), 10);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1553
  }
1554
  }
1555
+ } else if (_window2.default.ActiveXObject !== undefined) {
1556
+ try {
1557
+ ax = new ActiveXObject(activeX);
1558
+ if (ax) {
1559
+ version = axDetect(ax);
1560
+ }
1561
+ } catch (e) {
1562
+
1563
+ }
1564
+ }
1565
+ return version;
1566
+ }
1567
+ };
1568
+
1569
+ PluginDetector.addPlugin('flash', 'Shockwave Flash', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash', function (ax) {
1570
+ var version = [],
1571
+ d = ax.GetVariable("$version");
1572
+
1573
+ if (d) {
1574
+ d = d.split(" ")[1].split(",");
1575
+ version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
1576
+ }
1577
+ return version;
1578
+ });
1579
+
1580
+ var FlashMediaElementRenderer = {
1581
+ create: function create(mediaElement, options, mediaFiles) {
1582
+
1583
+ var flash = {};
1584
+ var isActive = false;
1585
+
1586
+ flash.options = options;
1587
+ flash.id = mediaElement.id + '_' + flash.options.prefix;
1588
+ flash.mediaElement = mediaElement;
1589
+ flash.flashState = {};
1590
+ flash.flashApi = null;
1591
+ flash.flashApiStack = [];
1592
+
1593
+ var props = _mejs2.default.html5media.properties,
1594
+ assignGettersSetters = function assignGettersSetters(propName) {
1595
+ flash.flashState[propName] = null;
1596
+
1597
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
1598
+
1599
+ flash['get' + capName] = function () {
1600
+ if (flash.flashApi !== null) {
1601
+ if (typeof flash.flashApi['get_' + propName] === 'function') {
1602
+ var value = flash.flashApi['get_' + propName]();
1603
+
1604
+ if (propName === 'buffered') {
1605
+ return {
1606
+ start: function start() {
1607
+ return 0;
1608
+ },
1609
+ end: function end() {
1610
+ return value;
1611
+ },
1612
+ length: 1
1613
+ };
1614
+ }
1615
+ return value;
1616
+ } else {
1617
+ return null;
1618
+ }
1619
+ } else {
1620
+ return null;
1621
+ }
1622
+ };
1623
+
1624
+ flash['set' + capName] = function (value) {
1625
+ if (propName === 'src') {
1626
+ value = (0, _media.absolutizeUrl)(value);
1627
+ }
1628
+
1629
+ if (flash.flashApi !== null && flash.flashApi['set_' + propName] !== undefined) {
1630
+ try {
1631
+ flash.flashApi['set_' + propName](value);
1632
+ } catch (e) {
1633
+
1634
+ }
1635
+ } else {
1636
+ flash.flashApiStack.push({
1637
+ type: 'set',
1638
+ propName: propName,
1639
+ value: value
1640
+ });
1641
+ }
1642
+ };
1643
  };
1644
 
1645
+ for (var i = 0, total = props.length; i < total; i++) {
1646
+ assignGettersSetters(props[i]);
1647
+ }
1648
+
1649
+ var methods = _mejs2.default.html5media.methods,
1650
+ assignMethods = function assignMethods(methodName) {
1651
+ flash[methodName] = function () {
1652
+ if (isActive) {
1653
+ if (flash.flashApi !== null) {
1654
+ if (flash.flashApi['fire_' + methodName]) {
1655
+ try {
1656
+ flash.flashApi['fire_' + methodName]();
1657
+ } catch (e) {
1658
+
1659
+ }
1660
+ } else {
1661
+
1662
+ }
1663
+ } else {
1664
+ flash.flashApiStack.push({
1665
+ type: 'call',
1666
+ methodName: methodName
1667
+ });
1668
+ }
1669
+ }
 
 
 
 
1670
  };
1671
+ };
1672
+ methods.push('stop');
1673
+ for (var _i = 0, _total = methods.length; _i < _total; _i++) {
1674
+ assignMethods(methods[_i]);
1675
+ }
1676
+
1677
+ var initEvents = ['rendererready'];
1678
+
1679
+ for (var _i2 = 0, _total2 = initEvents.length; _i2 < _total2; _i2++) {
1680
+ var event = (0, _general.createEvent)(initEvents[_i2], flash);
1681
+ mediaElement.dispatchEvent(event);
1682
+ }
1683
+
1684
+ _window2.default['__ready__' + flash.id] = function () {
1685
+
1686
+ flash.flashReady = true;
1687
+ flash.flashApi = _document2.default.getElementById('__' + flash.id);
1688
+
1689
+ if (flash.flashApiStack.length) {
1690
+ for (var _i3 = 0, _total3 = flash.flashApiStack.length; _i3 < _total3; _i3++) {
1691
+ var stackItem = flash.flashApiStack[_i3];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1692
 
1693
+ if (stackItem.type === 'set') {
1694
+ var propName = stackItem.propName,
1695
+ capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
1696
+
1697
+ flash['set' + capName](stackItem.value);
1698
+ } else if (stackItem.type === 'call') {
1699
+ flash[stackItem.methodName]();
1700
+ }
1701
+ }
1702
+ }
1703
+ };
1704
+
1705
+ _window2.default['__event__' + flash.id] = function (eventName, message) {
1706
+ var event = (0, _general.createEvent)(eventName, flash);
1707
+ if (message) {
1708
+ try {
1709
+ event.data = JSON.parse(message);
1710
+ event.details.data = JSON.parse(message);
1711
+ } catch (e) {
1712
+ event.message = message;
1713
+ }
1714
+ }
1715
+
1716
+ flash.mediaElement.dispatchEvent(event);
1717
+ };
1718
+
1719
+ flash.flashWrapper = _document2.default.createElement('div');
1720
+
1721
+ if (['always', 'sameDomain'].indexOf(flash.options.shimScriptAccess) === -1) {
1722
+ flash.options.shimScriptAccess = 'sameDomain';
1723
+ }
1724
+
1725
+ var autoplay = mediaElement.originalNode.autoplay,
1726
+ flashVars = ['uid=' + flash.id, 'autoplay=' + autoplay, 'allowScriptAccess=' + flash.options.shimScriptAccess, 'preload=' + (mediaElement.originalNode.getAttribute('preload') || '')],
1727
+ isVideo = mediaElement.originalNode !== null && mediaElement.originalNode.tagName.toLowerCase() === 'video',
1728
+ flashHeight = isVideo ? mediaElement.originalNode.height : 1,
1729
+ flashWidth = isVideo ? mediaElement.originalNode.width : 1;
1730
+
1731
+ if (mediaElement.originalNode.getAttribute('src')) {
1732
+ flashVars.push('src=' + mediaElement.originalNode.getAttribute('src'));
1733
+ }
1734
+
1735
+ if (flash.options.enablePseudoStreaming === true) {
1736
+ flashVars.push('pseudostreamstart=' + flash.options.pseudoStreamingStartQueryParam);
1737
+ flashVars.push('pseudostreamtype=' + flash.options.pseudoStreamingType);
1738
+ }
1739
+
1740
+ if (flash.options.streamDelimiter) {
1741
+ flashVars.push('streamdelimiter=' + encodeURIComponent(flash.options.streamDelimiter));
1742
+ }
1743
+
1744
+ if (flash.options.proxyType) {
1745
+ flashVars.push('proxytype=' + flash.options.proxyType);
1746
+ }
1747
+
1748
+ mediaElement.appendChild(flash.flashWrapper);
1749
+ mediaElement.originalNode.style.display = 'none';
1750
+
1751
+ var settings = [];
1752
+
1753
+ if (_constants.IS_IE || _constants.IS_EDGE) {
1754
+ var specialIEContainer = _document2.default.createElement('div');
1755
+ flash.flashWrapper.appendChild(specialIEContainer);
1756
+
1757
+ if (_constants.IS_EDGE) {
1758
+ settings = ['type="application/x-shockwave-flash"', 'data="' + flash.options.pluginPath + flash.options.filename + '"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '\'"'];
1759
+ } else {
1760
+ settings = ['classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"', 'codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '"'];
1761
+ }
1762
+
1763
+ if (!isVideo) {
1764
+ settings.push('style="clip: rect(0 0 0 0); position: absolute;"');
1765
+ }
1766
+
1767
+ specialIEContainer.outerHTML = '<object ' + settings.join(' ') + '>' + ('<param name="movie" value="' + flash.options.pluginPath + flash.options.filename + '?x=' + new Date() + '" />') + ('<param name="flashvars" value="' + flashVars.join('&amp;') + '" />') + '<param name="quality" value="high" />' + '<param name="bgcolor" value="#000000" />' + '<param name="wmode" value="transparent" />' + ('<param name="allowScriptAccess" value="' + flash.options.shimScriptAccess + '" />') + '<param name="allowFullScreen" value="true" />' + ('<div>' + _i18n2.default.t('mejs.install-flash') + '</div>') + '</object>';
1768
+ } else {
1769
+
1770
+ settings = ['id="__' + flash.id + '"', 'name="__' + flash.id + '"', 'play="true"', 'loop="false"', 'quality="high"', 'bgcolor="#000000"', 'wmode="transparent"', 'allowScriptAccess="' + flash.options.shimScriptAccess + '"', 'allowFullScreen="true"', 'type="application/x-shockwave-flash"', 'pluginspage="//www.macromedia.com/go/getflashplayer"', 'src="' + flash.options.pluginPath + flash.options.filename + '"', 'flashvars="' + flashVars.join('&') + '"'];
1771
+
1772
+ if (isVideo) {
1773
+ settings.push('width="' + flashWidth + '"');
1774
+ settings.push('height="' + flashHeight + '"');
1775
+ } else {
1776
+ settings.push('style="position: fixed; left: -9999em; top: -9999em;"');
1777
+ }
1778
+
1779
+ flash.flashWrapper.innerHTML = '<embed ' + settings.join(' ') + '>';
1780
+ }
1781
+
1782
+ flash.flashNode = flash.flashWrapper.lastChild;
1783
+
1784
+ flash.hide = function () {
1785
+ isActive = false;
1786
+ if (isVideo) {
1787
+ flash.flashNode.style.display = 'none';
1788
+ }
1789
+ };
1790
+ flash.show = function () {
1791
+ isActive = true;
1792
+ if (isVideo) {
1793
+ flash.flashNode.style.display = '';
1794
+ }
1795
+ };
1796
+ flash.setSize = function (width, height) {
1797
+ flash.flashNode.style.width = width + 'px';
1798
+ flash.flashNode.style.height = height + 'px';
1799
+
1800
+ if (flash.flashApi !== null && typeof flash.flashApi.fire_setSize === 'function') {
1801
+ flash.flashApi.fire_setSize(width, height);
1802
+ }
1803
+ };
1804
+
1805
+ flash.destroy = function () {
1806
+ flash.flashNode.remove();
1807
+ };
1808
+
1809
+ if (mediaFiles && mediaFiles.length > 0) {
1810
+ for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) {
1811
+ if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) {
1812
+ flash.setSrc(mediaFiles[_i4].src);
1813
+ break;
1814
+ }
1815
+ }
1816
+ }
1817
+
1818
+ return flash;
1819
+ }
1820
+ };
1821
+
1822
+ var hasFlash = PluginDetector.hasPluginVersion('flash', [10, 0, 0]);
1823
+
1824
+ if (hasFlash) {
1825
+ _media.typeChecks.push(function (url) {
1826
+ url = url.toLowerCase();
1827
+
1828
+ if (url.startsWith('rtmp')) {
1829
+ if (~url.indexOf('.mp3')) {
1830
+ return 'audio/rtmp';
1831
+ } else {
1832
+ return 'video/rtmp';
1833
+ }
1834
+ } else if (/\.og(a|g)/i.test(url)) {
1835
+ return 'audio/ogg';
1836
+ } else if (~url.indexOf('.m3u8')) {
1837
+ return 'application/x-mpegURL';
1838
+ } else if (~url.indexOf('.mpd')) {
1839
+ return 'application/dash+xml';
1840
+ } else if (~url.indexOf('.flv')) {
1841
+ return 'video/flv';
1842
+ } else {
1843
+ return null;
1844
+ }
1845
+ });
1846
+
1847
+ var FlashMediaElementVideoRenderer = {
1848
+ name: 'flash_video',
1849
+ options: {
1850
+ prefix: 'flash_video',
1851
+ filename: 'mediaelement-flash-video.swf',
1852
+ enablePseudoStreaming: false,
1853
+
1854
+ pseudoStreamingStartQueryParam: 'start',
1855
+
1856
+ pseudoStreamingType: 'byte',
1857
+
1858
+ proxyType: '',
1859
+
1860
+ streamDelimiter: ''
1861
+ },
1862
+
1863
+ canPlayType: function canPlayType(type) {
1864
+ return ~['video/mp4', 'video/rtmp', 'audio/rtmp', 'rtmp/mp4', 'audio/mp4', 'video/flv', 'video/x-flv'].indexOf(type.toLowerCase());
1865
+ },
1866
+
1867
+ create: FlashMediaElementRenderer.create
1868
+
1869
+ };
1870
+ _renderer.renderer.add(FlashMediaElementVideoRenderer);
1871
+
1872
+ var FlashMediaElementHlsVideoRenderer = {
1873
+ name: 'flash_hls',
1874
+ options: {
1875
+ prefix: 'flash_hls',
1876
+ filename: 'mediaelement-flash-video-hls.swf'
1877
+ },
1878
+
1879
+ canPlayType: function canPlayType(type) {
1880
+ return ~['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase());
1881
+ },
1882
+
1883
+ create: FlashMediaElementRenderer.create
1884
+ };
1885
+ _renderer.renderer.add(FlashMediaElementHlsVideoRenderer);
1886
+
1887
+ var FlashMediaElementMdashVideoRenderer = {
1888
+ name: 'flash_dash',
1889
+ options: {
1890
+ prefix: 'flash_dash',
1891
+ filename: 'mediaelement-flash-video-mdash.swf'
1892
+ },
1893
+
1894
+ canPlayType: function canPlayType(type) {
1895
+ return ~['application/dash+xml'].indexOf(type.toLowerCase());
1896
+ },
1897
+
1898
+ create: FlashMediaElementRenderer.create
1899
+ };
1900
+ _renderer.renderer.add(FlashMediaElementMdashVideoRenderer);
1901
+
1902
+ var FlashMediaElementAudioRenderer = {
1903
+ name: 'flash_audio',
1904
+ options: {
1905
+ prefix: 'flash_audio',
1906
+ filename: 'mediaelement-flash-audio.swf'
1907
+ },
1908
+
1909
+ canPlayType: function canPlayType(type) {
1910
+ return ~['audio/mp3'].indexOf(type.toLowerCase());
1911
+ },
1912
+
1913
+ create: FlashMediaElementRenderer.create
1914
+ };
1915
+ _renderer.renderer.add(FlashMediaElementAudioRenderer);
1916
+
1917
+ var FlashMediaElementAudioOggRenderer = {
1918
+ name: 'flash_audio_ogg',
1919
+ options: {
1920
+ prefix: 'flash_audio_ogg',
1921
+ filename: 'mediaelement-flash-audio-ogg.swf'
1922
+ },
1923
+
1924
+ canPlayType: function canPlayType(type) {
1925
+ return ~['audio/ogg', 'audio/oga', 'audio/ogv'].indexOf(type.toLowerCase());
1926
+ },
1927
+
1928
+ create: FlashMediaElementRenderer.create
1929
+ };
1930
+ _renderer.renderer.add(FlashMediaElementAudioOggRenderer);
1931
+ }
1932
+
1933
+ },{"16":16,"18":18,"19":19,"2":2,"3":3,"5":5,"7":7,"8":8}],12:[function(_dereq_,module,exports){
1934
+ 'use strict';
1935
+
1936
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
1937
+
1938
+ var _window = _dereq_(3);
1939
+
1940
+ var _window2 = _interopRequireDefault(_window);
1941
+
1942
+ var _mejs = _dereq_(7);
1943
+
1944
+ var _mejs2 = _interopRequireDefault(_mejs);
1945
+
1946
+ var _renderer = _dereq_(8);
1947
+
1948
+ var _general = _dereq_(18);
1949
+
1950
+ var _constants = _dereq_(16);
1951
+
1952
+ var _media = _dereq_(19);
1953
+
1954
+ var _dom = _dereq_(17);
1955
+
1956
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1957
+
1958
+ var NativeFlv = {
1959
+
1960
+ promise: null,
1961
+
1962
+ load: function load(settings) {
1963
+ if (typeof flvjs !== 'undefined') {
1964
+ NativeFlv.promise = new Promise(function (resolve) {
1965
+ resolve();
1966
+ }).then(function () {
1967
+ NativeFlv._createPlayer(settings);
1968
+ });
1969
+ } else {
1970
+ settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/flv.js@latest';
1971
+
1972
+ NativeFlv.promise = NativeFlv.promise || (0, _dom.loadScript)(settings.options.path);
1973
+ NativeFlv.promise.then(function () {
1974
+ NativeFlv._createPlayer(settings);
1975
+ });
1976
+ }
1977
+
1978
+ return NativeFlv.promise;
1979
+ },
1980
+
1981
+ _createPlayer: function _createPlayer(settings) {
1982
+ flvjs.LoggingControl.enableDebug = settings.options.debug;
1983
+ flvjs.LoggingControl.enableVerbose = settings.options.debug;
1984
+ var player = flvjs.createPlayer(settings.options, settings.configs);
1985
+ _window2.default['__ready__' + settings.id](player);
1986
+ return player;
1987
+ }
1988
+ };
1989
+
1990
+ var FlvNativeRenderer = {
1991
+ name: 'native_flv',
1992
+ options: {
1993
+ prefix: 'native_flv',
1994
+ flv: {
1995
+ path: 'https://cdn.jsdelivr.net/npm/flv.js@latest',
1996
+
1997
+ cors: true,
1998
+ debug: false
1999
+ }
2000
+ },
2001
+
2002
+ canPlayType: function canPlayType(type) {
2003
+ return _constants.HAS_MSE && ['video/x-flv', 'video/flv'].indexOf(type.toLowerCase()) > -1;
2004
+ },
2005
+
2006
+ create: function create(mediaElement, options, mediaFiles) {
2007
+
2008
+ var originalNode = mediaElement.originalNode,
2009
+ id = mediaElement.id + '_' + options.prefix;
2010
+
2011
+ var node = null,
2012
+ flvPlayer = null;
2013
+
2014
+ node = originalNode.cloneNode(true);
2015
+ options = Object.assign(options, mediaElement.options);
2016
+
2017
+ var props = _mejs2.default.html5media.properties,
2018
+ events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
2019
+ return e !== 'error';
2020
+ }),
2021
+ attachNativeEvents = function attachNativeEvents(e) {
2022
+ var event = (0, _general.createEvent)(e.type, mediaElement);
2023
+ mediaElement.dispatchEvent(event);
2024
+ },
2025
+ assignGettersSetters = function assignGettersSetters(propName) {
2026
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
2027
+
2028
+ node['get' + capName] = function () {
2029
+ return flvPlayer !== null ? node[propName] : null;
2030
+ };
2031
+
2032
+ node['set' + capName] = function (value) {
2033
+ if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
2034
+ if (propName === 'src') {
2035
+ node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
2036
+ if (flvPlayer !== null) {
2037
+ var _flvOptions = {};
2038
+ _flvOptions.type = 'flv';
2039
+ _flvOptions.url = value;
2040
+ _flvOptions.cors = options.flv.cors;
2041
+ _flvOptions.debug = options.flv.debug;
2042
+ _flvOptions.path = options.flv.path;
2043
+ var _flvConfigs = options.flv.configs;
2044
+
2045
+ flvPlayer.destroy();
2046
+ for (var i = 0, total = events.length; i < total; i++) {
2047
+ node.removeEventListener(events[i], attachNativeEvents);
2048
+ }
2049
+ flvPlayer = NativeFlv._createPlayer({
2050
+ options: _flvOptions,
2051
+ configs: _flvConfigs,
2052
+ id: id
2053
+ });
2054
+ flvPlayer.attachMediaElement(node);
2055
+ flvPlayer.load();
2056
+ }
2057
+ } else {
2058
+ node[propName] = value;
2059
+ }
2060
+ }
2061
+ };
2062
+ };
2063
+
2064
+ for (var i = 0, total = props.length; i < total; i++) {
2065
+ assignGettersSetters(props[i]);
2066
+ }
2067
+
2068
+ _window2.default['__ready__' + id] = function (_flvPlayer) {
2069
+ mediaElement.flvPlayer = flvPlayer = _flvPlayer;
2070
+
2071
+ var flvEvents = flvjs.Events,
2072
+ assignEvents = function assignEvents(eventName) {
2073
+ if (eventName === 'loadedmetadata') {
2074
+ flvPlayer.unload();
2075
+ flvPlayer.detachMediaElement();
2076
+ flvPlayer.attachMediaElement(node);
2077
+ flvPlayer.load();
2078
+ }
2079
+
2080
+ node.addEventListener(eventName, attachNativeEvents);
2081
+ };
2082
+
2083
+ for (var _i = 0, _total = events.length; _i < _total; _i++) {
2084
+ assignEvents(events[_i]);
2085
+ }
2086
+
2087
+ var assignFlvEvents = function assignFlvEvents(name, data) {
2088
+ if (name === 'error') {
2089
+ var message = data[0] + ': ' + data[1] + ' ' + data[2].msg;
2090
+ mediaElement.generateError(message, node.src);
2091
+ } else {
2092
+ var _event = (0, _general.createEvent)(name, mediaElement);
2093
+ _event.data = data;
2094
+ mediaElement.dispatchEvent(_event);
2095
+ }
2096
+ };
2097
+
2098
+ var _loop = function _loop(eventType) {
2099
+ if (flvEvents.hasOwnProperty(eventType)) {
2100
+ flvPlayer.on(flvEvents[eventType], function () {
2101
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
2102
+ args[_key] = arguments[_key];
2103
+ }
2104
+
2105
+ return assignFlvEvents(flvEvents[eventType], args);
2106
+ });
2107
+ }
2108
+ };
2109
+
2110
+ for (var eventType in flvEvents) {
2111
+ _loop(eventType);
2112
+ }
2113
+ };
2114
+
2115
+ if (mediaFiles && mediaFiles.length > 0) {
2116
+ for (var _i2 = 0, _total2 = mediaFiles.length; _i2 < _total2; _i2++) {
2117
+ if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i2].type)) {
2118
+ node.setAttribute('src', mediaFiles[_i2].src);
2119
+ break;
2120
+ }
2121
+ }
2122
+ }
2123
+
2124
+ node.setAttribute('id', id);
2125
+
2126
+ originalNode.parentNode.insertBefore(node, originalNode);
2127
+ originalNode.autoplay = false;
2128
+ originalNode.style.display = 'none';
2129
+
2130
+ var flvOptions = {};
2131
+ flvOptions.type = 'flv';
2132
+ flvOptions.url = node.src;
2133
+ flvOptions.cors = options.flv.cors;
2134
+ flvOptions.debug = options.flv.debug;
2135
+ flvOptions.path = options.flv.path;
2136
+ var flvConfigs = options.flv.configs;
2137
+
2138
+ node.setSize = function (width, height) {
2139
+ node.style.width = width + 'px';
2140
+ node.style.height = height + 'px';
2141
+ return node;
2142
+ };
2143
+
2144
+ node.hide = function () {
2145
+ if (flvPlayer !== null) {
2146
+ flvPlayer.pause();
2147
+ }
2148
+ node.style.display = 'none';
2149
+ return node;
2150
+ };
2151
+
2152
+ node.show = function () {
2153
+ node.style.display = '';
2154
+ return node;
2155
+ };
2156
+
2157
+ node.destroy = function () {
2158
+ if (flvPlayer !== null) {
2159
+ flvPlayer.destroy();
2160
+ }
2161
+ };
2162
+
2163
+ var event = (0, _general.createEvent)('rendererready', node);
2164
+ mediaElement.dispatchEvent(event);
2165
+
2166
+ mediaElement.promises.push(NativeFlv.load({
2167
+ options: flvOptions,
2168
+ configs: flvConfigs,
2169
+ id: id
2170
+ }));
2171
+
2172
+ return node;
2173
+ }
2174
+ };
2175
+
2176
+ _media.typeChecks.push(function (url) {
2177
+ return ~url.toLowerCase().indexOf('.flv') ? 'video/flv' : null;
2178
+ });
2179
+
2180
+ _renderer.renderer.add(FlvNativeRenderer);
2181
+
2182
+ },{"16":16,"17":17,"18":18,"19":19,"3":3,"7":7,"8":8}],13:[function(_dereq_,module,exports){
2183
+ 'use strict';
2184
+
2185
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
2186
+
2187
+ var _window = _dereq_(3);
2188
+
2189
+ var _window2 = _interopRequireDefault(_window);
2190
+
2191
+ var _mejs = _dereq_(7);
2192
+
2193
+ var _mejs2 = _interopRequireDefault(_mejs);
2194
+
2195
+ var _renderer = _dereq_(8);
2196
+
2197
+ var _general = _dereq_(18);
2198
+
2199
+ var _constants = _dereq_(16);
2200
+
2201
+ var _media = _dereq_(19);
2202
+
2203
+ var _dom = _dereq_(17);
2204
+
2205
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2206
+
2207
+ var NativeHls = {
2208
+
2209
+ promise: null,
2210
+
2211
+ load: function load(settings) {
2212
+ if (typeof Hls !== 'undefined') {
2213
+ NativeHls.promise = new Promise(function (resolve) {
2214
+ resolve();
2215
+ }).then(function () {
2216
+ NativeHls._createPlayer(settings);
2217
+ });
2218
+ } else {
2219
+ settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/hls.js@latest';
2220
+
2221
+ NativeHls.promise = NativeHls.promise || (0, _dom.loadScript)(settings.options.path);
2222
+ NativeHls.promise.then(function () {
2223
+ NativeHls._createPlayer(settings);
2224
+ });
2225
+ }
2226
+
2227
+ return NativeHls.promise;
2228
+ },
2229
+
2230
+ _createPlayer: function _createPlayer(settings) {
2231
+ var player = new Hls(settings.options);
2232
+ _window2.default['__ready__' + settings.id](player);
2233
+ return player;
2234
+ }
2235
+ };
2236
+
2237
+ var HlsNativeRenderer = {
2238
+ name: 'native_hls',
2239
+ options: {
2240
+ prefix: 'native_hls',
2241
+ hls: {
2242
+ path: 'https://cdn.jsdelivr.net/npm/hls.js@latest',
2243
+
2244
+ autoStartLoad: false,
2245
+ debug: false
2246
+ }
2247
+ },
2248
+
2249
+ canPlayType: function canPlayType(type) {
2250
+ return _constants.HAS_MSE && ['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) > -1;
2251
+ },
2252
+
2253
+ create: function create(mediaElement, options, mediaFiles) {
2254
+
2255
+ var originalNode = mediaElement.originalNode,
2256
+ id = mediaElement.id + '_' + options.prefix,
2257
+ preload = originalNode.getAttribute('preload'),
2258
+ autoplay = originalNode.autoplay;
2259
+
2260
+ var hlsPlayer = null,
2261
+ node = null,
2262
+ index = 0,
2263
+ total = mediaFiles.length;
2264
+
2265
+ node = originalNode.cloneNode(true);
2266
+ options = Object.assign(options, mediaElement.options);
2267
+ options.hls.autoStartLoad = preload && preload !== 'none' || autoplay;
2268
+
2269
+ var props = _mejs2.default.html5media.properties,
2270
+ events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
2271
+ return e !== 'error';
2272
+ }),
2273
+ attachNativeEvents = function attachNativeEvents(e) {
2274
+ var event = (0, _general.createEvent)(e.type, mediaElement);
2275
+ mediaElement.dispatchEvent(event);
2276
+ },
2277
+ assignGettersSetters = function assignGettersSetters(propName) {
2278
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
2279
+
2280
+ node['get' + capName] = function () {
2281
+ return hlsPlayer !== null ? node[propName] : null;
2282
+ };
2283
+
2284
+ node['set' + capName] = function (value) {
2285
+ if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
2286
+ if (propName === 'src') {
2287
+ node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
2288
+ if (hlsPlayer !== null) {
2289
+ hlsPlayer.destroy();
2290
+ for (var i = 0, _total = events.length; i < _total; i++) {
2291
+ node.removeEventListener(events[i], attachNativeEvents);
2292
+ }
2293
+ hlsPlayer = NativeHls._createPlayer({
2294
+ options: options.hls,
2295
+ id: id
2296
+ });
2297
+ hlsPlayer.loadSource(value);
2298
+ hlsPlayer.attachMedia(node);
2299
+ }
2300
+ } else {
2301
+ node[propName] = value;
2302
+ }
2303
+ }
2304
+ };
2305
+ };
2306
+
2307
+ for (var i = 0, _total2 = props.length; i < _total2; i++) {
2308
+ assignGettersSetters(props[i]);
2309
+ }
2310
+
2311
+ _window2.default['__ready__' + id] = function (_hlsPlayer) {
2312
+ mediaElement.hlsPlayer = hlsPlayer = _hlsPlayer;
2313
+ var hlsEvents = Hls.Events,
2314
+ assignEvents = function assignEvents(eventName) {
2315
+ if (eventName === 'loadedmetadata') {
2316
+ var url = mediaElement.originalNode.src;
2317
+ hlsPlayer.detachMedia();
2318
+ hlsPlayer.loadSource(url);
2319
+ hlsPlayer.attachMedia(node);
2320
+ }
2321
+
2322
+ node.addEventListener(eventName, attachNativeEvents);
2323
+ };
2324
+
2325
+ for (var _i = 0, _total3 = events.length; _i < _total3; _i++) {
2326
+ assignEvents(events[_i]);
2327
+ }
2328
+
2329
+ var recoverDecodingErrorDate = void 0,
2330
+ recoverSwapAudioCodecDate = void 0;
2331
+ var assignHlsEvents = function assignHlsEvents(name, data) {
2332
+ if (name === 'hlsError') {
2333
+ console.warn(data);
2334
+ data = data[1];
2335
+
2336
+ if (data.fatal) {
2337
+ switch (data.type) {
2338
+ case 'mediaError':
2339
+ var now = new Date().getTime();
2340
+ if (!recoverDecodingErrorDate || now - recoverDecodingErrorDate > 3000) {
2341
+ recoverDecodingErrorDate = new Date().getTime();
2342
+ hlsPlayer.recoverMediaError();
2343
+ } else if (!recoverSwapAudioCodecDate || now - recoverSwapAudioCodecDate > 3000) {
2344
+ recoverSwapAudioCodecDate = new Date().getTime();
2345
+ console.warn('Attempting to swap Audio Codec and recover from media error');
2346
+ hlsPlayer.swapAudioCodec();
2347
+ hlsPlayer.recoverMediaError();
2348
+ } else {
2349
+ var message = 'Cannot recover, last media error recovery failed';
2350
+ mediaElement.generateError(message, node.src);
2351
+ console.error(message);
2352
+ }
2353
+ break;
2354
+ case 'networkError':
2355
+ if (data.details === 'manifestLoadError') {
2356
+ if (index < total && mediaFiles[index + 1] !== undefined) {
2357
+ node.setSrc(mediaFiles[index++].src);
2358
+ node.load();
2359
+ node.play();
2360
+ } else {
2361
+ var _message = 'Network error';
2362
+ mediaElement.generateError(_message, mediaFiles);
2363
+ console.error(_message);
2364
+ }
2365
+ } else {
2366
+ var _message2 = 'Network error';
2367
+ mediaElement.generateError(_message2, mediaFiles);
2368
+ console.error(_message2);
2369
+ }
2370
+ break;
2371
+ default:
2372
+ hlsPlayer.destroy();
2373
+ break;
2374
+ }
2375
+ }
2376
+ } else {
2377
+ var _event = (0, _general.createEvent)(name, mediaElement);
2378
+ _event.data = data;
2379
+ mediaElement.dispatchEvent(_event);
2380
+ }
2381
+ };
2382
+
2383
+ var _loop = function _loop(eventType) {
2384
+ if (hlsEvents.hasOwnProperty(eventType)) {
2385
+ hlsPlayer.on(hlsEvents[eventType], function () {
2386
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
2387
+ args[_key] = arguments[_key];
2388
+ }
2389
+
2390
+ return assignHlsEvents(hlsEvents[eventType], args);
2391
+ });
2392
+ }
2393
+ };
2394
+
2395
+ for (var eventType in hlsEvents) {
2396
+ _loop(eventType);
2397
+ }
2398
+ };
2399
+
2400
+ if (total > 0) {
2401
+ for (; index < total; index++) {
2402
+ if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) {
2403
+ node.setAttribute('src', mediaFiles[index].src);
2404
+ break;
2405
+ }
2406
+ }
2407
+ }
2408
+
2409
+ if (preload !== 'auto' && !autoplay) {
2410
+ node.addEventListener('play', function () {
2411
+ if (hlsPlayer !== null) {
2412
+ hlsPlayer.startLoad();
2413
+ }
2414
+ });
2415
+
2416
+ node.addEventListener('pause', function () {
2417
+ if (hlsPlayer !== null) {
2418
+ hlsPlayer.stopLoad();
2419
+ }
2420
+ });
2421
+ }
2422
+
2423
+ node.setAttribute('id', id);
2424
+
2425
+ originalNode.parentNode.insertBefore(node, originalNode);
2426
+ originalNode.autoplay = false;
2427
+ originalNode.style.display = 'none';
2428
+
2429
+ node.setSize = function (width, height) {
2430
+ node.style.width = width + 'px';
2431
+ node.style.height = height + 'px';
2432
+ return node;
2433
+ };
2434
+
2435
+ node.hide = function () {
2436
+ node.pause();
2437
+ node.style.display = 'none';
2438
+ return node;
2439
+ };
2440
+
2441
+ node.show = function () {
2442
+ node.style.display = '';
2443
+ return node;
2444
+ };
2445
+
2446
+ node.destroy = function () {
2447
+ if (hlsPlayer !== null) {
2448
+ hlsPlayer.stopLoad();
2449
+ hlsPlayer.destroy();
2450
+ }
2451
+ };
2452
+
2453
+ var event = (0, _general.createEvent)('rendererready', node);
2454
+ mediaElement.dispatchEvent(event);
2455
+
2456
+ mediaElement.promises.push(NativeHls.load({
2457
+ options: options.hls,
2458
+ id: id
2459
+ }));
2460
+
2461
+ return node;
2462
+ }
2463
+ };
2464
+
2465
+ _media.typeChecks.push(function (url) {
2466
+ return ~url.toLowerCase().indexOf('.m3u8') ? 'application/x-mpegURL' : null;
2467
+ });
2468
+
2469
+ _renderer.renderer.add(HlsNativeRenderer);
2470
+
2471
+ },{"16":16,"17":17,"18":18,"19":19,"3":3,"7":7,"8":8}],14:[function(_dereq_,module,exports){
2472
+ 'use strict';
2473
+
2474
+ var _window = _dereq_(3);
2475
+
2476
+ var _window2 = _interopRequireDefault(_window);
2477
+
2478
+ var _document = _dereq_(2);
2479
+
2480
+ var _document2 = _interopRequireDefault(_document);
2481
+
2482
+ var _mejs = _dereq_(7);
2483
+
2484
+ var _mejs2 = _interopRequireDefault(_mejs);
2485
+
2486
+ var _renderer = _dereq_(8);
2487
+
2488
+ var _general = _dereq_(18);
2489
+
2490
+ var _constants = _dereq_(16);
2491
+
2492
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2493
+
2494
+ var HtmlMediaElement = {
2495
+ name: 'html5',
2496
+ options: {
2497
+ prefix: 'html5'
2498
+ },
2499
+
2500
+ canPlayType: function canPlayType(type) {
2501
+
2502
+ var mediaElement = _document2.default.createElement('video');
2503
+
2504
+ if (_constants.IS_ANDROID && /\/mp(3|4)$/i.test(type) || ~['application/x-mpegurl', 'vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) && _constants.SUPPORTS_NATIVE_HLS) {
2505
+ return 'yes';
2506
+ } else if (mediaElement.canPlayType) {
2507
+ return mediaElement.canPlayType(type.toLowerCase()).replace(/no/, '');
2508
+ } else {
2509
+ return '';
2510
+ }
2511
+ },
2512
+
2513
+ create: function create(mediaElement, options, mediaFiles) {
2514
+
2515
+ var id = mediaElement.id + '_' + options.prefix;
2516
+ var isActive = false;
2517
+
2518
+ var node = null;
2519
+
2520
+ if (mediaElement.originalNode === undefined || mediaElement.originalNode === null) {
2521
+ node = _document2.default.createElement('audio');
2522
+ mediaElement.appendChild(node);
2523
+ } else {
2524
+ node = mediaElement.originalNode;
2525
+ }
2526
+
2527
+ node.setAttribute('id', id);
2528
+
2529
+ var props = _mejs2.default.html5media.properties,
2530
+ assignGettersSetters = function assignGettersSetters(propName) {
2531
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
2532
+
2533
+ node['get' + capName] = function () {
2534
+ return node[propName];
2535
+ };
2536
+
2537
+ node['set' + capName] = function (value) {
2538
+ if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
2539
+ node[propName] = value;
2540
+ }
2541
+ };
2542
+ };
2543
+
2544
+ for (var i = 0, _total = props.length; i < _total; i++) {
2545
+ assignGettersSetters(props[i]);
2546
+ }
2547
+
2548
+ var events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
2549
+ return e !== 'error';
2550
+ }),
2551
+ assignEvents = function assignEvents(eventName) {
2552
+ node.addEventListener(eventName, function (e) {
2553
+ if (isActive) {
2554
+ var _event = (0, _general.createEvent)(e.type, e.target);
2555
+ mediaElement.dispatchEvent(_event);
2556
+ }
2557
+ });
2558
+ };
2559
+
2560
+ for (var _i = 0, _total2 = events.length; _i < _total2; _i++) {
2561
+ assignEvents(events[_i]);
2562
+ }
2563
+
2564
+ node.setSize = function (width, height) {
2565
+ node.style.width = width + 'px';
2566
+ node.style.height = height + 'px';
2567
+ return node;
2568
+ };
2569
+
2570
+ node.hide = function () {
2571
+ isActive = false;
2572
+ node.style.display = 'none';
2573
+
2574
+ return node;
2575
+ };
2576
+
2577
+ node.show = function () {
2578
+ isActive = true;
2579
+ node.style.display = '';
2580
+
2581
+ return node;
2582
+ };
2583
+
2584
+ var index = 0,
2585
+ total = mediaFiles.length;
2586
+ if (total > 0) {
2587
+ for (; index < total; index++) {
2588
+ if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) {
2589
+ node.setAttribute('src', mediaFiles[index].src);
2590
+ break;
2591
+ }
2592
+ }
2593
+ }
2594
+
2595
+ node.addEventListener('error', function (e) {
2596
+ if (e.target.error.code === 4 && isActive) {
2597
+ if (index < total && mediaFiles[index + 1] !== undefined) {
2598
+ node.src = mediaFiles[index++].src;
2599
+ node.load();
2600
+ node.play();
2601
+ } else {
2602
+ mediaElement.generateError('Media error: Format(s) not supported or source(s) not found', mediaFiles);
2603
+ }
2604
+ }
2605
+ });
2606
+
2607
+ var event = (0, _general.createEvent)('rendererready', node);
2608
+ mediaElement.dispatchEvent(event);
2609
+
2610
+ return node;
2611
+ }
2612
+ };
2613
+
2614
+ _window2.default.HtmlMediaElement = _mejs2.default.HtmlMediaElement = HtmlMediaElement;
2615
+
2616
+ _renderer.renderer.add(HtmlMediaElement);
2617
+
2618
+ },{"16":16,"18":18,"2":2,"3":3,"7":7,"8":8}],15:[function(_dereq_,module,exports){
2619
+ 'use strict';
2620
+
2621
+ var _window = _dereq_(3);
2622
+
2623
+ var _window2 = _interopRequireDefault(_window);
2624
+
2625
+ var _document = _dereq_(2);
2626
+
2627
+ var _document2 = _interopRequireDefault(_document);
2628
+
2629
+ var _mejs = _dereq_(7);
2630
+
2631
+ var _mejs2 = _interopRequireDefault(_mejs);
2632
+
2633
+ var _renderer = _dereq_(8);
2634
+
2635
+ var _general = _dereq_(18);
2636
+
2637
+ var _media = _dereq_(19);
2638
+
2639
+ var _dom = _dereq_(17);
2640
+
2641
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2642
+
2643
+ var YouTubeApi = {
2644
+ isIframeStarted: false,
2645
+
2646
+ isIframeLoaded: false,
2647
+
2648
+ iframeQueue: [],
2649
+
2650
+ enqueueIframe: function enqueueIframe(settings) {
2651
+ YouTubeApi.isLoaded = typeof YT !== 'undefined' && YT.loaded;
2652
+
2653
+ if (YouTubeApi.isLoaded) {
2654
+ YouTubeApi.createIframe(settings);
2655
+ } else {
2656
+ YouTubeApi.loadIframeApi();
2657
+ YouTubeApi.iframeQueue.push(settings);
2658
+ }
2659
+ },
2660
+
2661
+ loadIframeApi: function loadIframeApi() {
2662
+ if (!YouTubeApi.isIframeStarted) {
2663
+ (0, _dom.loadScript)('https://www.youtube.com/player_api');
2664
+ YouTubeApi.isIframeStarted = true;
2665
+ }
2666
+ },
2667
+
2668
+ iFrameReady: function iFrameReady() {
2669
+
2670
+ YouTubeApi.isLoaded = true;
2671
+ YouTubeApi.isIframeLoaded = true;
2672
+
2673
+ while (YouTubeApi.iframeQueue.length > 0) {
2674
+ var settings = YouTubeApi.iframeQueue.pop();
2675
+ YouTubeApi.createIframe(settings);
2676
+ }
2677
+ },
2678
+
2679
+ createIframe: function createIframe(settings) {
2680
+ return new YT.Player(settings.containerId, settings);
2681
+ },
2682
+
2683
+ getYouTubeId: function getYouTubeId(url) {
2684
+
2685
+ var youTubeId = '';
2686
+
2687
+ if (url.indexOf('?') > 0) {
2688
+ youTubeId = YouTubeApi.getYouTubeIdFromParam(url);
2689
+
2690
+ if (youTubeId === '') {
2691
+ youTubeId = YouTubeApi.getYouTubeIdFromUrl(url);
2692
+ }
2693
+ } else {
2694
+ youTubeId = YouTubeApi.getYouTubeIdFromUrl(url);
2695
+ }
2696
+
2697
+ var id = youTubeId.substring(youTubeId.lastIndexOf('/') + 1);
2698
+ youTubeId = id.split('?');
2699
+ return youTubeId[0];
2700
+ },
2701
+
2702
+ getYouTubeIdFromParam: function getYouTubeIdFromParam(url) {
2703
+
2704
+ if (url === undefined || url === null || !url.trim().length) {
2705
+ return null;
2706
+ }
2707
+
2708
+ var parts = url.split('?'),
2709
+ parameters = parts[1].split('&');
2710
+
2711
+ var youTubeId = '';
2712
+
2713
+ for (var i = 0, total = parameters.length; i < total; i++) {
2714
+ var paramParts = parameters[i].split('=');
2715
+ if (paramParts[0] === 'v') {
2716
+ youTubeId = paramParts[1];
2717
+ break;
2718
+ }
2719
+ }
2720
+
2721
+ return youTubeId;
2722
+ },
2723
+
2724
+ getYouTubeIdFromUrl: function getYouTubeIdFromUrl(url) {
2725
+
2726
+ if (url === undefined || url === null || !url.trim().length) {
2727
+ return null;
2728
+ }
2729
+
2730
+ var parts = url.split('?');
2731
+ url = parts[0];
2732
+ return url.substring(url.lastIndexOf('/') + 1);
2733
+ },
2734
+
2735
+ getYouTubeNoCookieUrl: function getYouTubeNoCookieUrl(url) {
2736
+ if (url === undefined || url === null || !url.trim().length || url.indexOf('//www.youtube') === -1) {
2737
+ return url;
2738
+ }
2739
+
2740
+ var parts = url.split('/');
2741
+ parts[2] = parts[2].replace('.com', '-nocookie.com');
2742
+ return parts.join('/');
2743
+ }
2744
+ };
2745
+
2746
+ var YouTubeIframeRenderer = {
2747
+ name: 'youtube_iframe',
2748
+
2749
+ options: {
2750
+ prefix: 'youtube_iframe',
2751
+
2752
+ youtube: {
2753
+ autoplay: 0,
2754
+ controls: 0,
2755
+ disablekb: 1,
2756
+ end: 0,
2757
+ loop: 0,
2758
+ modestbranding: 0,
2759
+ playsinline: 0,
2760
+ rel: 0,
2761
+ showinfo: 0,
2762
+ start: 0,
2763
+ iv_load_policy: 3,
2764
+
2765
+ nocookie: false,
2766
+
2767
+ imageQuality: null
2768
+ }
2769
+ },
2770
+
2771
+ canPlayType: function canPlayType(type) {
2772
+ return ~['video/youtube', 'video/x-youtube'].indexOf(type.toLowerCase());
2773
+ },
2774
+
2775
+ create: function create(mediaElement, options, mediaFiles) {
2776
+
2777
+ var youtube = {},
2778
+ apiStack = [],
2779
+ readyState = 4;
2780
+
2781
+ var youTubeApi = null,
2782
+ paused = true,
2783
+ ended = false,
2784
+ youTubeIframe = null,
2785
+ volume = 1;
2786
+
2787
+ youtube.options = options;
2788
+ youtube.id = mediaElement.id + '_' + options.prefix;
2789
+ youtube.mediaElement = mediaElement;
2790
+
2791
+ var props = _mejs2.default.html5media.properties,
2792
+ assignGettersSetters = function assignGettersSetters(propName) {
2793
+
2794
+ var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
2795
+
2796
+ youtube['get' + capName] = function () {
2797
+ if (youTubeApi !== null) {
2798
+ var value = null;
2799
+
2800
+ switch (propName) {
2801
+ case 'currentTime':
2802
+ return youTubeApi.getCurrentTime();
2803
+ case 'duration':
2804
+ return youTubeApi.getDuration();
2805
+ case 'volume':
2806
+ volume = youTubeApi.getVolume() / 100;
2807
+ return volume;
2808
+ case 'paused':
2809
+ return paused;
2810
+ case 'ended':
2811
+ return ended;
2812
+ case 'muted':
2813
+ return youTubeApi.isMuted();
2814
+ case 'buffered':
2815
+ var percentLoaded = youTubeApi.getVideoLoadedFraction(),
2816
+ duration = youTubeApi.getDuration();
2817
+ return {
2818
+ start: function start() {
2819
+ return 0;
2820
+ },
2821
+ end: function end() {
2822
+ return percentLoaded * duration;
2823
+ },
2824
+ length: 1
2825
+ };
2826
+ case 'src':
2827
+ return youTubeApi.getVideoUrl();
2828
+ case 'readyState':
2829
+ return readyState;
2830
+ }
2831
+
2832
+ return value;
2833
+ } else {
2834
+ return null;
2835
+ }
2836
+ };
2837
+
2838
+ youtube['set' + capName] = function (value) {
2839
+ if (youTubeApi !== null) {
2840
+ switch (propName) {
2841
+ case 'src':
2842
+ var url = typeof value === 'string' ? value : value[0].src,
2843
+ _videoId = YouTubeApi.getYouTubeId(url);
2844
+
2845
+ if (mediaElement.originalNode.autoplay) {
2846
+ youTubeApi.loadVideoById(_videoId);
2847
+ } else {
2848
+ youTubeApi.cueVideoById(_videoId);
2849
+ }
2850
+ break;
2851
+ case 'currentTime':
2852
+ youTubeApi.seekTo(value);
2853
+ break;
2854
+ case 'muted':
2855
+ if (value) {
2856
+ youTubeApi.mute();
2857
+ } else {
2858
+ youTubeApi.unMute();
2859
+ }
2860
+ setTimeout(function () {
2861
+ var event = (0, _general.createEvent)('volumechange', youtube);
2862
+ mediaElement.dispatchEvent(event);
2863
+ }, 50);
2864
+ break;
2865
+ case 'volume':
2866
+ volume = value;
2867
+ youTubeApi.setVolume(value * 100);
2868
+ setTimeout(function () {
2869
+ var event = (0, _general.createEvent)('volumechange', youtube);
2870
+ mediaElement.dispatchEvent(event);
2871
+ }, 50);
2872
+ break;
2873
+ case 'readyState':
2874
+ var event = (0, _general.createEvent)('canplay', youtube);
2875
+ mediaElement.dispatchEvent(event);
2876
+ break;
2877
+ default:
2878
+
2879
+ break;
2880
+ }
2881
+ } else {
2882
+ apiStack.push({ type: 'set', propName: propName, value: value });
2883
+ }
2884
+ };
2885
+ };
2886
+
2887
+ for (var i = 0, total = props.length; i < total; i++) {
2888
+ assignGettersSetters(props[i]);
2889
+ }
2890
+
2891
+ var methods = _mejs2.default.html5media.methods,
2892
+ assignMethods = function assignMethods(methodName) {
2893
+ youtube[methodName] = function () {
2894
+ if (youTubeApi !== null) {
2895
+ switch (methodName) {
2896
+ case 'play':
2897
+ paused = false;
2898
+ return youTubeApi.playVideo();
2899
+ case 'pause':
2900
+ paused = true;
2901
+ return youTubeApi.pauseVideo();
2902
+ case 'load':
2903
+ return null;
2904
+ }
2905
+ } else {
2906
+ apiStack.push({ type: 'call', methodName: methodName });
2907
+ }
2908
+ };
2909
+ };
2910
+
2911
+ for (var _i = 0, _total = methods.length; _i < _total; _i++) {
2912
+ assignMethods(methods[_i]);
2913
+ }
2914
+
2915
+ var errorHandler = function errorHandler(error) {
2916
+ var message = '';
2917
+ switch (error.data) {
2918
+ case 2:
2919
+ message = 'The request contains an invalid parameter value. Verify that video ID has 11 characters and that contains no invalid characters, such as exclamation points or asterisks.';
2920
+ break;
2921
+ case 5:
2922
+ message = 'The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.';
2923
+ break;
2924
+ case 100:
2925
+ message = 'The video requested was not found. Either video has been removed or has been marked as private.';
2926
+ break;
2927
+ case 101:
2928
+ case 105:
2929
+ message = 'The owner of the requested video does not allow it to be played in embedded players.';
2930
+ break;
2931
+ default:
2932
+ message = 'Unknown error.';
2933
+ break;
2934
+ }
2935
+ mediaElement.generateError('Code ' + error.data + ': ' + message, mediaFiles);
2936
+ };
2937
+
2938
+ var youtubeContainer = _document2.default.createElement('div');
2939
+ youtubeContainer.id = youtube.id;
2940
+
2941
+ if (youtube.options.youtube.nocookie) {
2942
+ mediaElement.originalNode.src = YouTubeApi.getYouTubeNoCookieUrl(mediaFiles[0].src);
2943
+ }
2944
+
2945
+ mediaElement.originalNode.parentNode.insertBefore(youtubeContainer, mediaElement.originalNode);
2946
+ mediaElement.originalNode.style.display = 'none';
2947
+
2948
+ var isAudio = mediaElement.originalNode.tagName.toLowerCase() === 'audio',
2949
+ height = isAudio ? '1' : mediaElement.originalNode.height,
2950
+ width = isAudio ? '1' : mediaElement.originalNode.width,
2951
+ videoId = YouTubeApi.getYouTubeId(mediaFiles[0].src),
2952
+ youtubeSettings = {
2953
+ id: youtube.id,
2954
+ containerId: youtubeContainer.id,
2955
+ videoId: videoId,
2956
+ height: height,
2957
+ width: width,
2958
+ playerVars: Object.assign({
2959
+ controls: 0,
2960
+ rel: 0,
2961
+ disablekb: 1,
2962
+ showinfo: 0,
2963
+ modestbranding: 0,
2964
+ html5: 1,
2965
+ iv_load_policy: 3
2966
+ }, youtube.options.youtube),
2967
+ origin: _window2.default.location.host,
2968
+ events: {
2969
+ onReady: function onReady(e) {
2970
+ mediaElement.youTubeApi = youTubeApi = e.target;
2971
+ mediaElement.youTubeState = {
2972
+ paused: true,
2973
+ ended: false
2974
+ };
2975
+
2976
+ if (apiStack.length) {
2977
+ for (var _i2 = 0, _total2 = apiStack.length; _i2 < _total2; _i2++) {
2978
+
2979
+ var stackItem = apiStack[_i2];
2980
+
2981
+ if (stackItem.type === 'set') {
2982
+ var propName = stackItem.propName,
2983
+ capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
2984
+
2985
+ youtube['set' + capName](stackItem.value);
2986
+ } else if (stackItem.type === 'call') {
2987
+ youtube[stackItem.methodName]();
2988
+ }
2989
+ }
2990
+ }
2991
+
2992
+ youTubeIframe = youTubeApi.getIframe();
2993
+
2994
+ if (mediaElement.originalNode.muted) {
2995
+ youTubeApi.mute();
2996
+ }
2997
+
2998
+ var events = ['mouseover', 'mouseout'],
2999
+ assignEvents = function assignEvents(e) {
3000
+ var newEvent = (0, _general.createEvent)(e.type, youtube);
3001
+ mediaElement.dispatchEvent(newEvent);
3002
+ };
3003
+
3004
+ for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
3005
+ youTubeIframe.addEventListener(events[_i3], assignEvents, false);
3006
+ }
3007
+
3008
+ var initEvents = ['rendererready', 'loadedmetadata', 'loadeddata', 'canplay'];
3009
+
3010
+ for (var _i4 = 0, _total4 = initEvents.length; _i4 < _total4; _i4++) {
3011
+ var event = (0, _general.createEvent)(initEvents[_i4], youtube);
3012
+ mediaElement.dispatchEvent(event);
3013
+ }
3014
+ },
3015
+ onStateChange: function onStateChange(e) {
3016
+ var events = [];
3017
+
3018
+ switch (e.data) {
3019
+ case -1:
3020
+ events = ['loadedmetadata'];
3021
+ paused = true;
3022
+ ended = false;
3023
+ break;
3024
+ case 0:
3025
+ events = ['ended'];
3026
+ paused = false;
3027
+ ended = !youtube.options.youtube.loop;
3028
+ if (!youtube.options.youtube.loop) {
3029
+ youtube.stopInterval();
3030
+ }
3031
+ break;
3032
+ case 1:
3033
+ events = ['play', 'playing'];
3034
+ paused = false;
3035
+ ended = false;
3036
+ youtube.startInterval();
3037
+ break;
3038
+ case 2:
3039
+ events = ['pause'];
3040
+ paused = true;
3041
+ ended = false;
3042
+ youtube.stopInterval();
3043
+ break;
3044
+ case 3:
3045
+ events = ['progress'];
3046
+ ended = false;
3047
+ break;
3048
+ case 5:
3049
+ events = ['loadeddata', 'loadedmetadata', 'canplay'];
3050
+ paused = true;
3051
+ ended = false;
3052
+ break;
3053
+ }
3054
+
3055
+ for (var _i5 = 0, _total5 = events.length; _i5 < _total5; _i5++) {
3056
+ var event = (0, _general.createEvent)(events[_i5], youtube);
3057
+ mediaElement.dispatchEvent(event);
3058
+ }
3059
+ },
3060
+ onError: function onError(e) {
3061
+ return errorHandler(e);
3062
+ }
3063
+ }
3064
+ };
3065
+
3066
+ if (isAudio || mediaElement.originalNode.hasAttribute('playsinline')) {
3067
+ youtubeSettings.playerVars.playsinline = 1;
3068
+ }
3069
+
3070
+ if (mediaElement.originalNode.controls) {
3071
+ youtubeSettings.playerVars.controls = 1;
3072
+ }
3073
+ if (mediaElement.originalNode.autoplay) {
3074
+ youtubeSettings.playerVars.autoplay = 1;
3075
+ }
3076
+ if (mediaElement.originalNode.loop) {
3077
+ youtubeSettings.playerVars.loop = 1;
3078
+ }
3079
+
3080
+ if ((youtubeSettings.playerVars.loop && parseInt(youtubeSettings.playerVars.loop, 10) === 1 || mediaElement.originalNode.src.indexOf('loop=') > -1) && !youtubeSettings.playerVars.playlist && mediaElement.originalNode.src.indexOf('playlist=') === -1) {
3081
+ youtubeSettings.playerVars.playlist = YouTubeApi.getYouTubeId(mediaElement.originalNode.src);
3082
+ }
3083
+
3084
+ YouTubeApi.enqueueIframe(youtubeSettings);
3085
+
3086
+ youtube.onEvent = function (eventName, player, _youTubeState) {
3087
+ if (_youTubeState !== null && _youTubeState !== undefined) {
3088
+ mediaElement.youTubeState = _youTubeState;
3089
+ }
3090
+ };
3091
+
3092
+ youtube.setSize = function (width, height) {
3093
+ if (youTubeApi !== null) {
3094
+ youTubeApi.setSize(width, height);
3095
+ }
3096
+ };
3097
+ youtube.hide = function () {
3098
+ youtube.stopInterval();
3099
+ youtube.pause();
3100
+ if (youTubeIframe) {
3101
+ youTubeIframe.style.display = 'none';
3102
+ }
3103
+ };
3104
+ youtube.show = function () {
3105
+ if (youTubeIframe) {
3106
+ youTubeIframe.style.display = '';
3107
+ }
3108
+ };
3109
+ youtube.destroy = function () {
3110
+ youTubeApi.destroy();
3111
+ };
3112
+ youtube.interval = null;
3113
+
3114
+ youtube.startInterval = function () {
3115
+ youtube.interval = setInterval(function () {
3116
+ var event = (0, _general.createEvent)('timeupdate', youtube);
3117
+ mediaElement.dispatchEvent(event);
3118
+ }, 250);
3119
+ };
3120
+ youtube.stopInterval = function () {
3121
+ if (youtube.interval) {
3122
+ clearInterval(youtube.interval);
3123
+ }
3124
+ };
3125
+ youtube.getPosterUrl = function () {
3126
+ var quality = options.youtube.imageQuality,
3127
+ resolutions = ['default', 'hqdefault', 'mqdefault', 'sddefault', 'maxresdefault'],
3128
+ id = YouTubeApi.getYouTubeId(mediaElement.originalNode.src);
3129
+ return quality && resolutions.indexOf(quality) > -1 && id ? 'https://img.youtube.com/vi/' + id + '/' + quality + '.jpg' : '';
3130
+ };
3131
+
3132
+ return youtube;
3133
+ }
3134
+ };
3135
+
3136
+ _window2.default.onYouTubePlayerAPIReady = function () {
3137
+ YouTubeApi.iFrameReady();
3138
+ };
3139
+
3140
+ _media.typeChecks.push(function (url) {
3141
+ return (/\/\/(www\.youtube|youtu\.?be)/i.test(url) ? 'video/x-youtube' : null
3142
+ );
3143
+ });
3144
+
3145
+ _renderer.renderer.add(YouTubeIframeRenderer);
3146
+
3147
+ },{"17":17,"18":18,"19":19,"2":2,"3":3,"7":7,"8":8}],16:[function(_dereq_,module,exports){
3148
+ 'use strict';
3149
+
3150
+ Object.defineProperty(exports, "__esModule", {
3151
+ value: true
3152
+ });
3153
+ exports.cancelFullScreen = exports.requestFullScreen = exports.isFullScreen = exports.FULLSCREEN_EVENT_NAME = exports.HAS_NATIVE_FULLSCREEN_ENABLED = exports.HAS_TRUE_NATIVE_FULLSCREEN = exports.HAS_IOS_FULLSCREEN = exports.HAS_MS_NATIVE_FULLSCREEN = exports.HAS_MOZ_NATIVE_FULLSCREEN = exports.HAS_WEBKIT_NATIVE_FULLSCREEN = exports.HAS_NATIVE_FULLSCREEN = exports.SUPPORTS_NATIVE_HLS = exports.SUPPORT_PASSIVE_EVENT = exports.SUPPORT_POINTER_EVENTS = exports.HAS_MSE = exports.IS_STOCK_ANDROID = exports.IS_SAFARI = exports.IS_FIREFOX = exports.IS_CHROME = exports.IS_EDGE = exports.IS_IE = exports.IS_ANDROID = exports.IS_IOS = exports.IS_IPOD = exports.IS_IPHONE = exports.IS_IPAD = exports.UA = exports.NAV = undefined;
3154
+
3155
+ var _window = _dereq_(3);
3156
+
3157
+ var _window2 = _interopRequireDefault(_window);
3158
+
3159
+ var _document = _dereq_(2);
3160
+
3161
+ var _document2 = _interopRequireDefault(_document);
3162
+
3163
+ var _mejs = _dereq_(7);
3164
+
3165
+ var _mejs2 = _interopRequireDefault(_mejs);
3166
+
3167
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3168
+
3169
+ var NAV = exports.NAV = _window2.default.navigator;
3170
+ var UA = exports.UA = NAV.userAgent.toLowerCase();
3171
+ var IS_IPAD = exports.IS_IPAD = /ipad/i.test(UA) && !_window2.default.MSStream;
3172
+ var IS_IPHONE = exports.IS_IPHONE = /iphone/i.test(UA) && !_window2.default.MSStream;
3173
+ var IS_IPOD = exports.IS_IPOD = /ipod/i.test(UA) && !_window2.default.MSStream;
3174
+ var IS_IOS = exports.IS_IOS = /ipad|iphone|ipod/i.test(UA) && !_window2.default.MSStream;
3175
+ var IS_ANDROID = exports.IS_ANDROID = /android/i.test(UA);
3176
+ var IS_IE = exports.IS_IE = /(trident|microsoft)/i.test(NAV.appName);
3177
+ var IS_EDGE = exports.IS_EDGE = 'msLaunchUri' in NAV && !('documentMode' in _document2.default);
3178
+ var IS_CHROME = exports.IS_CHROME = /chrome/i.test(UA);
3179
+ var IS_FIREFOX = exports.IS_FIREFOX = /firefox/i.test(UA);
3180
+ var IS_SAFARI = exports.IS_SAFARI = /safari/i.test(UA) && !IS_CHROME;
3181
+ var IS_STOCK_ANDROID = exports.IS_STOCK_ANDROID = /^mozilla\/\d+\.\d+\s\(linux;\su;/i.test(UA);
3182
+ var HAS_MSE = exports.HAS_MSE = 'MediaSource' in _window2.default;
3183
+ var SUPPORT_POINTER_EVENTS = exports.SUPPORT_POINTER_EVENTS = function () {
3184
+ var element = _document2.default.createElement('x'),
3185
+ documentElement = _document2.default.documentElement,
3186
+ getComputedStyle = _window2.default.getComputedStyle;
3187
+
3188
+ if (!('pointerEvents' in element.style)) {
3189
+ return false;
3190
+ }
3191
+
3192
+ element.style.pointerEvents = 'auto';
3193
+ element.style.pointerEvents = 'x';
3194
+ documentElement.appendChild(element);
3195
+ var supports = getComputedStyle && getComputedStyle(element, '').pointerEvents === 'auto';
3196
+ element.remove();
3197
+ return !!supports;
3198
+ }();
3199
+
3200
+ var SUPPORT_PASSIVE_EVENT = exports.SUPPORT_PASSIVE_EVENT = function () {
3201
+ var supportsPassive = false;
3202
+ try {
3203
+ var opts = Object.defineProperty({}, 'passive', {
3204
+ get: function get() {
3205
+ supportsPassive = true;
3206
+ }
3207
+ });
3208
+ _window2.default.addEventListener('test', null, opts);
3209
+ } catch (e) {}
3210
+
3211
+ return supportsPassive;
3212
+ }();
3213
+
3214
+ var html5Elements = ['source', 'track', 'audio', 'video'];
3215
+ var video = void 0;
3216
+
3217
+ for (var i = 0, total = html5Elements.length; i < total; i++) {
3218
+ video = _document2.default.createElement(html5Elements[i]);
3219
+ }
3220
+
3221
+ var SUPPORTS_NATIVE_HLS = exports.SUPPORTS_NATIVE_HLS = IS_SAFARI || IS_ANDROID && (IS_CHROME || IS_STOCK_ANDROID) || IS_IE && /edge/i.test(UA);
3222
+
3223
+ var hasiOSFullScreen = video.webkitEnterFullscreen !== undefined;
3224
+
3225
+ var hasNativeFullscreen = video.requestFullscreen !== undefined;
3226
+
3227
+ if (hasiOSFullScreen && /mac os x 10_5/i.test(UA)) {
3228
+ hasNativeFullscreen = false;
3229
+ hasiOSFullScreen = false;
3230
+ }
3231
+
3232
+ var hasWebkitNativeFullScreen = video.webkitRequestFullScreen !== undefined;
3233
+ var hasMozNativeFullScreen = video.mozRequestFullScreen !== undefined;
3234
+ var hasMsNativeFullScreen = video.msRequestFullscreen !== undefined;
3235
+ var hasTrueNativeFullScreen = hasWebkitNativeFullScreen || hasMozNativeFullScreen || hasMsNativeFullScreen;
3236
+ var nativeFullScreenEnabled = hasTrueNativeFullScreen;
3237
+ var fullScreenEventName = '';
3238
+ var isFullScreen = void 0,
3239
+ requestFullScreen = void 0,
3240
+ cancelFullScreen = void 0;
3241
+
3242
+ if (hasMozNativeFullScreen) {
3243
+ nativeFullScreenEnabled = _document2.default.mozFullScreenEnabled;
3244
+ } else if (hasMsNativeFullScreen) {
3245
+ nativeFullScreenEnabled = _document2.default.msFullscreenEnabled;
3246
+ }
3247
+
3248
+ if (IS_CHROME) {
3249
+ hasiOSFullScreen = false;
3250
+ }
3251
+
3252
+ if (hasTrueNativeFullScreen) {
3253
+ if (hasWebkitNativeFullScreen) {
3254
+ fullScreenEventName = 'webkitfullscreenchange';
3255
+ } else if (hasMozNativeFullScreen) {
3256
+ fullScreenEventName = 'mozfullscreenchange';
3257
+ } else if (hasMsNativeFullScreen) {
3258
+ fullScreenEventName = 'MSFullscreenChange';
3259
+ }
3260
+
3261
+ exports.isFullScreen = isFullScreen = function isFullScreen() {
3262
+ if (hasMozNativeFullScreen) {
3263
+ return _document2.default.mozFullScreen;
3264
+ } else if (hasWebkitNativeFullScreen) {
3265
+ return _document2.default.webkitIsFullScreen;
3266
+ } else if (hasMsNativeFullScreen) {
3267
+ return _document2.default.msFullscreenElement !== null;
3268
+ }
3269
+ };
3270
+
3271
+ exports.requestFullScreen = requestFullScreen = function requestFullScreen(el) {
3272
+ if (hasWebkitNativeFullScreen) {
3273
+ el.webkitRequestFullScreen();
3274
+ } else if (hasMozNativeFullScreen) {
3275
+ el.mozRequestFullScreen();
3276
+ } else if (hasMsNativeFullScreen) {
3277
+ el.msRequestFullscreen();
3278
+ }
3279
+ };
3280
+
3281
+ exports.cancelFullScreen = cancelFullScreen = function cancelFullScreen() {
3282
+ if (hasWebkitNativeFullScreen) {
3283
+ _document2.default.webkitCancelFullScreen();
3284
+ } else if (hasMozNativeFullScreen) {
3285
+ _document2.default.mozCancelFullScreen();
3286
+ } else if (hasMsNativeFullScreen) {
3287
+ _document2.default.msExitFullscreen();
3288
+ }
3289
+ };
3290
+ }
3291
+
3292
+ var HAS_NATIVE_FULLSCREEN = exports.HAS_NATIVE_FULLSCREEN = hasNativeFullscreen;
3293
+ var HAS_WEBKIT_NATIVE_FULLSCREEN = exports.HAS_WEBKIT_NATIVE_FULLSCREEN = hasWebkitNativeFullScreen;
3294
+ var HAS_MOZ_NATIVE_FULLSCREEN = exports.HAS_MOZ_NATIVE_FULLSCREEN = hasMozNativeFullScreen;
3295
+ var HAS_MS_NATIVE_FULLSCREEN = exports.HAS_MS_NATIVE_FULLSCREEN = hasMsNativeFullScreen;
3296
+ var HAS_IOS_FULLSCREEN = exports.HAS_IOS_FULLSCREEN = hasiOSFullScreen;
3297
+ var HAS_TRUE_NATIVE_FULLSCREEN = exports.HAS_TRUE_NATIVE_FULLSCREEN = hasTrueNativeFullScreen;
3298
+ var HAS_NATIVE_FULLSCREEN_ENABLED = exports.HAS_NATIVE_FULLSCREEN_ENABLED = nativeFullScreenEnabled;
3299
+ var FULLSCREEN_EVENT_NAME = exports.FULLSCREEN_EVENT_NAME = fullScreenEventName;
3300
+ exports.isFullScreen = isFullScreen;
3301
+ exports.requestFullScreen = requestFullScreen;
3302
+ exports.cancelFullScreen = cancelFullScreen;
3303
+
3304
+
3305
+ _mejs2.default.Features = _mejs2.default.Features || {};
3306
+ _mejs2.default.Features.isiPad = IS_IPAD;
3307
+ _mejs2.default.Features.isiPod = IS_IPOD;
3308
+ _mejs2.default.Features.isiPhone = IS_IPHONE;
3309
+ _mejs2.default.Features.isiOS = _mejs2.default.Features.isiPhone || _mejs2.default.Features.isiPad;
3310
+ _mejs2.default.Features.isAndroid = IS_ANDROID;
3311
+ _mejs2.default.Features.isIE = IS_IE;
3312
+ _mejs2.default.Features.isEdge = IS_EDGE;
3313
+ _mejs2.default.Features.isChrome = IS_CHROME;
3314
+ _mejs2.default.Features.isFirefox = IS_FIREFOX;
3315
+ _mejs2.default.Features.isSafari = IS_SAFARI;
3316
+ _mejs2.default.Features.isStockAndroid = IS_STOCK_ANDROID;
3317
+ _mejs2.default.Features.hasMSE = HAS_MSE;
3318
+ _mejs2.default.Features.supportsNativeHLS = SUPPORTS_NATIVE_HLS;
3319
+ _mejs2.default.Features.supportsPointerEvents = SUPPORT_POINTER_EVENTS;
3320
+ _mejs2.default.Features.supportsPassiveEvent = SUPPORT_PASSIVE_EVENT;
3321
+ _mejs2.default.Features.hasiOSFullScreen = HAS_IOS_FULLSCREEN;
3322
+ _mejs2.default.Features.hasNativeFullscreen = HAS_NATIVE_FULLSCREEN;
3323
+ _mejs2.default.Features.hasWebkitNativeFullScreen = HAS_WEBKIT_NATIVE_FULLSCREEN;
3324
+ _mejs2.default.Features.hasMozNativeFullScreen = HAS_MOZ_NATIVE_FULLSCREEN;
3325
+ _mejs2.default.Features.hasMsNativeFullScreen = HAS_MS_NATIVE_FULLSCREEN;
3326
+ _mejs2.default.Features.hasTrueNativeFullScreen = HAS_TRUE_NATIVE_FULLSCREEN;
3327
+ _mejs2.default.Features.nativeFullScreenEnabled = HAS_NATIVE_FULLSCREEN_ENABLED;
3328
+ _mejs2.default.Features.fullScreenEventName = FULLSCREEN_EVENT_NAME;
3329
+ _mejs2.default.Features.isFullScreen = isFullScreen;
3330
+ _mejs2.default.Features.requestFullScreen = requestFullScreen;
3331
+ _mejs2.default.Features.cancelFullScreen = cancelFullScreen;
3332
+
3333
+ },{"2":2,"3":3,"7":7}],17:[function(_dereq_,module,exports){
3334
+ 'use strict';
3335
+
3336
+ Object.defineProperty(exports, "__esModule", {
3337
+ value: true
3338
+ });
3339
+ exports.removeClass = exports.addClass = exports.hasClass = undefined;
3340
+ exports.loadScript = loadScript;
3341
+ exports.offset = offset;
3342
+ exports.toggleClass = toggleClass;
3343
+ exports.fadeOut = fadeOut;
3344
+ exports.fadeIn = fadeIn;
3345
+ exports.siblings = siblings;
3346
+ exports.visible = visible;
3347
+ exports.ajax = ajax;
3348
+
3349
+ var _window = _dereq_(3);
3350
+
3351
+ var _window2 = _interopRequireDefault(_window);
3352
+
3353
+ var _document = _dereq_(2);
3354
+
3355
+ var _document2 = _interopRequireDefault(_document);
3356
+
3357
+ var _mejs = _dereq_(7);
3358
+
3359
+ var _mejs2 = _interopRequireDefault(_mejs);
3360
+
3361
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3362
+
3363
+ function loadScript(url) {
3364
+ return new Promise(function (resolve, reject) {
3365
+ var script = _document2.default.createElement('script');
3366
+ script.src = url;
3367
+ script.async = true;
3368
+ script.onload = function () {
3369
+ script.remove();
3370
+ resolve();
3371
+ };
3372
+ script.onerror = function () {
3373
+ script.remove();
3374
+ reject();
3375
+ };
3376
+ _document2.default.head.appendChild(script);
3377
+ });
3378
+ }
3379
+
3380
+ function offset(el) {
3381
+ var rect = el.getBoundingClientRect(),
3382
+ scrollLeft = _window2.default.pageXOffset || _document2.default.documentElement.scrollLeft,
3383
+ scrollTop = _window2.default.pageYOffset || _document2.default.documentElement.scrollTop;
3384
+ return { top: rect.top + scrollTop, left: rect.left + scrollLeft };
3385
+ }
3386
+
3387
+ var hasClassMethod = void 0,
3388
+ addClassMethod = void 0,
3389
+ removeClassMethod = void 0;
3390
+
3391
+ if ('classList' in _document2.default.documentElement) {
3392
+ hasClassMethod = function hasClassMethod(el, className) {
3393
+ return el.classList !== undefined && el.classList.contains(className);
3394
+ };
3395
+ addClassMethod = function addClassMethod(el, className) {
3396
+ return el.classList.add(className);
3397
+ };
3398
+ removeClassMethod = function removeClassMethod(el, className) {
3399
+ return el.classList.remove(className);
3400
+ };
3401
+ } else {
3402
+ hasClassMethod = function hasClassMethod(el, className) {
3403
+ return new RegExp('\\b' + className + '\\b').test(el.className);
3404
+ };
3405
+ addClassMethod = function addClassMethod(el, className) {
3406
+ if (!hasClass(el, className)) {
3407
+ el.className += ' ' + className;
3408
+ }
3409
+ };
3410
+ removeClassMethod = function removeClassMethod(el, className) {
3411
+ el.className = el.className.replace(new RegExp('\\b' + className + '\\b', 'g'), '');
3412
+ };
3413
+ }
3414
+
3415
+ var hasClass = exports.hasClass = hasClassMethod;
3416
+ var addClass = exports.addClass = addClassMethod;
3417
+ var removeClass = exports.removeClass = removeClassMethod;
3418
+
3419
+ function toggleClass(el, className) {
3420
+ hasClass(el, className) ? removeClass(el, className) : addClass(el, className);
3421
+ }
3422
+
3423
+ function fadeOut(el) {
3424
+ var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
3425
+ var callback = arguments[2];
3426
+
3427
+ if (!el.style.opacity) {
3428
+ el.style.opacity = 1;
3429
+ }
3430
+
3431
+ var start = null;
3432
+ _window2.default.requestAnimationFrame(function animate(timestamp) {
3433
+ start = start || timestamp;
3434
+ var progress = timestamp - start;
3435
+ var opacity = parseFloat(1 - progress / duration, 2);
3436
+ el.style.opacity = opacity < 0 ? 0 : opacity;
3437
+ if (progress > duration) {
3438
+ if (callback && typeof callback === 'function') {
3439
+ callback();
3440
+ }
3441
+ } else {
3442
+ _window2.default.requestAnimationFrame(animate);
3443
+ }
3444
+ });
3445
+ }
3446
+
3447
+ function fadeIn(el) {
3448
+ var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
3449
+ var callback = arguments[2];
3450
+
3451
+ if (!el.style.opacity) {
3452
+ el.style.opacity = 0;
3453
+ }
3454
+
3455
+ var start = null;
3456
+ _window2.default.requestAnimationFrame(function animate(timestamp) {
3457
+ start = start || timestamp;
3458
+ var progress = timestamp - start;
3459
+ var opacity = parseFloat(progress / duration, 2);
3460
+ el.style.opacity = opacity > 1 ? 1 : opacity;
3461
+ if (progress > duration) {
3462
+ if (callback && typeof callback === 'function') {
3463
+ callback();
3464
+ }
3465
+ } else {
3466
+ _window2.default.requestAnimationFrame(animate);
3467
+ }
3468
+ });
3469
+ }
3470
+
3471
+ function siblings(el, filter) {
3472
+ var siblings = [];
3473
+ el = el.parentNode.firstChild;
3474
+ do {
3475
+ if (!filter || filter(el)) {
3476
+ siblings.push(el);
3477
+ }
3478
+ } while (el = el.nextSibling);
3479
+ return siblings;
3480
+ }
3481
+
3482
+ function visible(elem) {
3483
+ if (elem.getClientRects !== undefined && elem.getClientRects === 'function') {
3484
+ return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);
3485
+ }
3486
+ return !!(elem.offsetWidth || elem.offsetHeight);
3487
+ }
3488
+
3489
+ function ajax(url, dataType, success, error) {
3490
+ var xhr = _window2.default.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
3491
+
3492
+ var type = 'application/x-www-form-urlencoded; charset=UTF-8',
3493
+ completed = false,
3494
+ accept = '*/'.concat('*');
3495
+
3496
+ switch (dataType) {
3497
+ case 'text':
3498
+ type = 'text/plain';
3499
+ break;
3500
+ case 'json':
3501
+ type = 'application/json, text/javascript';
3502
+ break;
3503
+ case 'html':
3504
+ type = 'text/html';
3505
+ break;
3506
+ case 'xml':
3507
+ type = 'application/xml, text/xml';
3508
+ break;
3509
+ }
3510
+
3511
+ if (type !== 'application/x-www-form-urlencoded') {
3512
+ accept = type + ', */*; q=0.01';
3513
+ }
3514
+
3515
+ if (xhr) {
3516
+ xhr.open('GET', url, true);
3517
+ xhr.setRequestHeader('Accept', accept);
3518
+ xhr.onreadystatechange = function () {
3519
+ if (completed) {
3520
+ return;
3521
+ }
3522
+
3523
+ if (xhr.readyState === 4) {
3524
+ if (xhr.status === 200) {
3525
+ completed = true;
3526
+ var data = void 0;
3527
+ switch (dataType) {
3528
+ case 'json':
3529
+ data = JSON.parse(xhr.responseText);
3530
+ break;
3531
+ case 'xml':
3532
+ data = xhr.responseXML;
3533
+ break;
3534
+ default:
3535
+ data = xhr.responseText;
3536
+ break;
3537
+ }
3538
+ success(data);
3539
+ } else if (typeof error === 'function') {
3540
+ error(xhr.status);
3541
+ }
3542
+ }
3543
+ };
3544
+
3545
+ xhr.send();
3546
+ }
3547
+ }
3548
+
3549
+ _mejs2.default.Utils = _mejs2.default.Utils || {};
3550
+ _mejs2.default.Utils.offset = offset;
3551
+ _mejs2.default.Utils.hasClass = hasClass;
3552
+ _mejs2.default.Utils.addClass = addClass;
3553
+ _mejs2.default.Utils.removeClass = removeClass;
3554
+ _mejs2.default.Utils.toggleClass = toggleClass;
3555
+ _mejs2.default.Utils.fadeIn = fadeIn;
3556
+ _mejs2.default.Utils.fadeOut = fadeOut;
3557
+ _mejs2.default.Utils.siblings = siblings;
3558
+ _mejs2.default.Utils.visible = visible;
3559
+ _mejs2.default.Utils.ajax = ajax;
3560
+ _mejs2.default.Utils.loadScript = loadScript;
3561
+
3562
+ },{"2":2,"3":3,"7":7}],18:[function(_dereq_,module,exports){
3563
+ 'use strict';
3564
+
3565
+ Object.defineProperty(exports, "__esModule", {
3566
+ value: true
3567
+ });
3568
+ exports.escapeHTML = escapeHTML;
3569
+ exports.debounce = debounce;
3570
+ exports.isObjectEmpty = isObjectEmpty;
3571
+ exports.splitEvents = splitEvents;
3572
+ exports.createEvent = createEvent;
3573
+ exports.isNodeAfter = isNodeAfter;
3574
+ exports.isString = isString;
3575
+
3576
+ var _mejs = _dereq_(7);
3577
+
3578
+ var _mejs2 = _interopRequireDefault(_mejs);
3579
+
3580
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3581
+
3582
+ function escapeHTML(input) {
3583
+
3584
+ if (typeof input !== 'string') {
3585
+ throw new Error('Argument passed must be a string');
3586
+ }
3587
+
3588
+ var map = {
3589
+ '&': '&amp;',
3590
+ '<': '&lt;',
3591
+ '>': '&gt;',
3592
+ '"': '&quot;'
3593
+ };
3594
+
3595
+ return input.replace(/[&<>"]/g, function (c) {
3596
+ return map[c];
3597
+ });
3598
+ }
3599
+
3600
+ function debounce(func, wait) {
3601
+ var _this = this,
3602
+ _arguments = arguments;
3603
+
3604
+ var immediate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
3605
+
3606
+
3607
+ if (typeof func !== 'function') {
3608
+ throw new Error('First argument must be a function');
3609
+ }
3610
+
3611
+ if (typeof wait !== 'number') {
3612
+ throw new Error('Second argument must be a numeric value');
3613
+ }
3614
+
3615
+ var timeout = void 0;
3616
+ return function () {
3617
+ var context = _this,
3618
+ args = _arguments;
3619
+ var later = function later() {
3620
+ timeout = null;
3621
+ if (!immediate) {
3622
+ func.apply(context, args);
3623
+ }
3624
+ };
3625
+ var callNow = immediate && !timeout;
3626
+ clearTimeout(timeout);
3627
+ timeout = setTimeout(later, wait);
3628
+
3629
+ if (callNow) {
3630
+ func.apply(context, args);
3631
+ }
3632
+ };
3633
+ }
3634
+
3635
+ function isObjectEmpty(instance) {
3636
+ return Object.getOwnPropertyNames(instance).length <= 0;
3637
+ }
3638
+
3639
+ function splitEvents(events, id) {
3640
+ var rwindow = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;
3641
+
3642
+ var ret = { d: [], w: [] };
3643
+ (events || '').split(' ').forEach(function (v) {
3644
+ var eventName = '' + v + (id ? '.' + id : '');
3645
+
3646
+ if (eventName.startsWith('.')) {
3647
+ ret.d.push(eventName);
3648
+ ret.w.push(eventName);
3649
+ } else {
3650
+ ret[rwindow.test(v) ? 'w' : 'd'].push(eventName);
3651
+ }
3652
+ });
3653
+
3654
+ ret.d = ret.d.join(' ');
3655
+ ret.w = ret.w.join(' ');
3656
+ return ret;
3657
+ }
3658
+
3659
+ function createEvent(eventName, target) {
3660
+
3661
+ if (typeof eventName !== 'string') {
3662
+ throw new Error('Event name must be a string');
3663
+ }
3664
+
3665
+ var eventFrags = eventName.match(/([a-z]+\.([a-z]+))/i),
3666
+ detail = {
3667
+ target: target
3668
+ };
3669
+
3670
+ if (eventFrags !== null) {
3671
+ eventName = eventFrags[1];
3672
+ detail.namespace = eventFrags[2];
3673
+ }
3674
+
3675
+ return new window.CustomEvent(eventName, {
3676
+ detail: detail
3677
+ });
3678
+ }
3679
+
3680
+ function isNodeAfter(sourceNode, targetNode) {
3681
+
3682
+ return !!(sourceNode && targetNode && sourceNode.compareDocumentPosition(targetNode) & 2);
3683
+ }
3684
+
3685
+ function isString(value) {
3686
+ return typeof value === 'string';
3687
+ }
3688
+
3689
+ _mejs2.default.Utils = _mejs2.default.Utils || {};
3690
+ _mejs2.default.Utils.escapeHTML = escapeHTML;
3691
+ _mejs2.default.Utils.debounce = debounce;
3692
+ _mejs2.default.Utils.isObjectEmpty = isObjectEmpty;
3693
+ _mejs2.default.Utils.splitEvents = splitEvents;
3694
+ _mejs2.default.Utils.createEvent = createEvent;
3695
+ _mejs2.default.Utils.isNodeAfter = isNodeAfter;
3696
+ _mejs2.default.Utils.isString = isString;
3697
+
3698
+ },{"7":7}],19:[function(_dereq_,module,exports){
3699
+ 'use strict';
3700
+
3701
+ Object.defineProperty(exports, "__esModule", {
3702
+ value: true
3703
+ });
3704
+ exports.typeChecks = undefined;
3705
+ exports.absolutizeUrl = absolutizeUrl;
3706
+ exports.formatType = formatType;
3707
+ exports.getMimeFromType = getMimeFromType;
3708
+ exports.getTypeFromFile = getTypeFromFile;
3709
+ exports.getExtension = getExtension;
3710
+ exports.normalizeExtension = normalizeExtension;
3711
+
3712
+ var _mejs = _dereq_(7);
3713
+
3714
+ var _mejs2 = _interopRequireDefault(_mejs);
3715
+
3716
+ var _general = _dereq_(18);
3717
+
3718
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3719
+
3720
+ var typeChecks = exports.typeChecks = [];
3721
+
3722
+ function absolutizeUrl(url) {
3723
+
3724
+ if (typeof url !== 'string') {
3725
+ throw new Error('`url` argument must be a string');
3726
+ }
3727
+
3728
+ var el = document.createElement('div');
3729
+ el.innerHTML = '<a href="' + (0, _general.escapeHTML)(url) + '">x</a>';
3730
+ return el.firstChild.href;
3731
+ }
3732
+
3733
+ function formatType(url) {
3734
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
3735
+
3736
+ return url && !type ? getTypeFromFile(url) : type;
3737
+ }
3738
+
3739
+ function getMimeFromType(type) {
3740
+
3741
+ if (typeof type !== 'string') {
3742
+ throw new Error('`type` argument must be a string');
3743
+ }
3744
+
3745
+ return type && type.indexOf(';') > -1 ? type.substr(0, type.indexOf(';')) : type;
3746
+ }
3747
+
3748
+ function getTypeFromFile(url) {
3749
+
3750
+ if (typeof url !== 'string') {
3751
+ throw new Error('`url` argument must be a string');
3752
+ }
3753
+
3754
+ for (var i = 0, total = typeChecks.length; i < total; i++) {
3755
+ var type = typeChecks[i](url);
3756
+
3757
+ if (type) {
3758
+ return type;
3759
+ }
3760
+ }
3761
+
3762
+ var ext = getExtension(url),
3763
+ normalizedExt = normalizeExtension(ext);
3764
+
3765
+ var mime = 'video/mp4';
3766
+
3767
+ if (normalizedExt) {
3768
+ if (~['mp4', 'm4v', 'ogg', 'ogv', 'webm', 'flv', 'mpeg', 'mov'].indexOf(normalizedExt)) {
3769
+ mime = 'video/' + normalizedExt;
3770
+ } else if (~['mp3', 'oga', 'wav', 'mid', 'midi'].indexOf(normalizedExt)) {
3771
+ mime = 'audio/' + normalizedExt;
3772
+ }
3773
+ }
3774
+
3775
+ return mime;
3776
+ }
3777
+
3778
+ function getExtension(url) {
3779
+
3780
+ if (typeof url !== 'string') {
3781
+ throw new Error('`url` argument must be a string');
3782
+ }
3783
+
3784
+ var baseUrl = url.split('?')[0],
3785
+ baseName = baseUrl.split('\\').pop().split('/').pop();
3786
+ return ~baseName.indexOf('.') ? baseName.substring(baseName.lastIndexOf('.') + 1) : '';
3787
+ }
3788
+
3789
+ function normalizeExtension(extension) {
3790
+
3791
+ if (typeof extension !== 'string') {
3792
+ throw new Error('`extension` argument must be a string');
3793
+ }
3794
+
3795
+ switch (extension) {
3796
+ case 'mp4':
3797
+ case 'm4v':
3798
+ return 'mp4';
3799
+ case 'webm':
3800
+ case 'webma':
3801
+ case 'webmv':
3802
+ return 'webm';
3803
+ case 'ogg':
3804
+ case 'oga':
3805
+ case 'ogv':
3806
+ return 'ogg';
3807
+ default:
3808
+ return extension;
3809
+ }
3810
+ }
3811
+
3812
+ _mejs2.default.Utils = _mejs2.default.Utils || {};
3813
+ _mejs2.default.Utils.typeChecks = typeChecks;
3814
+ _mejs2.default.Utils.absolutizeUrl = absolutizeUrl;
3815
+ _mejs2.default.Utils.formatType = formatType;
3816
+ _mejs2.default.Utils.getMimeFromType = getMimeFromType;
3817
+ _mejs2.default.Utils.getTypeFromFile = getTypeFromFile;
3818
+ _mejs2.default.Utils.getExtension = getExtension;
3819
+ _mejs2.default.Utils.normalizeExtension = normalizeExtension;
3820
+
3821
+ },{"18":18,"7":7}],20:[function(_dereq_,module,exports){
3822
+ 'use strict';
3823
+
3824
+ var _document = _dereq_(2);
3825
+
3826
+ var _document2 = _interopRequireDefault(_document);
3827
+
3828
+ var _promisePolyfill = _dereq_(4);
3829
+
3830
+ var _promisePolyfill2 = _interopRequireDefault(_promisePolyfill);
3831
+
3832
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3833
+
3834
+ (function (arr) {
3835
+ arr.forEach(function (item) {
3836
+ if (item.hasOwnProperty('remove')) {
3837
+ return;
3838
+ }
3839
+ Object.defineProperty(item, 'remove', {
3840
+ configurable: true,
3841
+ enumerable: true,
3842
+ writable: true,
3843
+ value: function remove() {
3844
+ this.parentNode.removeChild(this);
3845
+ }
3846
+ });
3847
+ });
3848
+ })([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
3849
+
3850
+ (function () {
3851
+
3852
+ if (typeof window.CustomEvent === 'function') {
3853
+ return false;
3854
+ }
3855
+
3856
+ function CustomEvent(event, params) {
3857
+ params = params || { bubbles: false, cancelable: false, detail: undefined };
3858
+ var evt = _document2.default.createEvent('CustomEvent');
3859
+ evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
3860
+ return evt;
3861
+ }
3862
+
3863
+ CustomEvent.prototype = window.Event.prototype;
3864
+ window.CustomEvent = CustomEvent;
3865
+ })();
3866
+
3867
+ if (typeof Object.assign !== 'function') {
3868
+ Object.assign = function (target) {
3869
+
3870
+ if (target === null || target === undefined) {
3871
+ throw new TypeError('Cannot convert undefined or null to object');
3872
+ }
3873
+
3874
+ var to = Object(target);
3875
+
3876
+ for (var index = 1, total = arguments.length; index < total; index++) {
3877
+ var nextSource = arguments[index];
3878
+
3879
+ if (nextSource !== null) {
3880
+ for (var nextKey in nextSource) {
3881
+ if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
3882
+ to[nextKey] = nextSource[nextKey];
3883
+ }
3884
+ }
3885
+ }
3886
+ }
3887
+ return to;
3888
+ };
3889
+ }
3890
+
3891
+ if (!String.prototype.startsWith) {
3892
+ String.prototype.startsWith = function (searchString, position) {
3893
+ position = position || 0;
3894
+ return this.substr(position, searchString.length) === searchString;
3895
+ };
3896
+ }
3897
+
3898
+ if (!Element.prototype.matches) {
3899
+ Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) {
3900
+ var matches = (this.document || this.ownerDocument).querySelectorAll(s),
3901
+ i = matches.length - 1;
3902
+ while (--i >= 0 && matches.item(i) !== this) {}
3903
+ return i > -1;
3904
+ };
3905
+ }
3906
+
3907
+ if (window.Element && !Element.prototype.closest) {
3908
+ Element.prototype.closest = function (s) {
3909
+ var matches = (this.document || this.ownerDocument).querySelectorAll(s),
3910
+ i = void 0,
3911
+ el = this;
3912
+ do {
3913
+ i = matches.length;
3914
+ while (--i >= 0 && matches.item(i) !== el) {}
3915
+ } while (i < 0 && (el = el.parentElement));
3916
+ return el;
3917
+ };
3918
+ }
3919
+
3920
+ (function () {
3921
+ var lastTime = 0;
3922
+ var vendors = ['ms', 'moz', 'webkit', 'o'];
3923
+ for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
3924
+ window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
3925
+ window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];
3926
+ }
3927
+
3928
+ if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback) {
3929
+ var currTime = new Date().getTime();
3930
+ var timeToCall = Math.max(0, 16 - (currTime - lastTime));
3931
+ var id = window.setTimeout(function () {
3932
+ callback(currTime + timeToCall);
3933
+ }, timeToCall);
3934
+ lastTime = currTime + timeToCall;
3935
+ return id;
3936
+ };
3937
+
3938
+ if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) {
3939
+ clearTimeout(id);
3940
+ };
3941
+ })();
3942
+
3943
+ if (/firefox/i.test(navigator.userAgent)) {
3944
+ var getComputedStyle = window.getComputedStyle;
3945
+ window.getComputedStyle = function (el, pseudoEl) {
3946
+ var t = getComputedStyle(el, pseudoEl);
3947
+ return t === null ? { getPropertyValue: function getPropertyValue() {} } : t;
3948
+ };
3949
+ }
3950
+
3951
+ if (!window.Promise) {
3952
+ window.Promise = _promisePolyfill2.default;
3953
+ }
3954
+
3955
+ (function (constructor) {
3956
+ if (constructor && constructor.prototype && constructor.prototype.children === null) {
3957
+ Object.defineProperty(constructor.prototype, 'children', {
3958
+ get: function get() {
3959
+ var i = 0,
3960
+ node = void 0,
3961
+ nodes = this.childNodes,
3962
+ children = [];
3963
+ while (node = nodes[i++]) {
3964
+ if (node.nodeType === 1) {
3965
+ children.push(node);
3966
+ }
3967
+ }
3968
+ return children;
3969
+ }
3970
+ });
3971
+ }
3972
+ })(window.Node || window.Element);
3973
 
3974
+ },{"2":2,"4":4}]},{},[20,6,5,9,14,11,10,12,13,15]);
lib/media-element/mediaelement.min.js CHANGED
@@ -1,61 +1,12 @@
1
  /*!
2
- * MediaElement.js
3
- * HTML5 <video> and <audio> shim and player
4
- * http://mediaelementjs.com/
5
- *
6
- * Creates a JavaScript object that mimics HTML5 MediaElement API
7
- * for browsers that don't understand HTML5 or can't play the provided codec
8
- * Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
9
- *
10
- * Copyright 2010-2012, John Dyer (http://j.hn)
11
- * Dual licensed under the MIT or GPL Version 2 licenses.
12
- *
13
- */var mejs=mejs||{};mejs.version="2.9.5";mejs.meIndex=0;
14
- mejs.plugins={silverlight:[{version:[3,0],types:["video/mp4","video/m4v","video/mov","video/wmv","audio/wma","audio/m4a","audio/mp3","audio/wav","audio/mpeg"]}],flash:[{version:[9,0,124],types:["video/mp4","video/m4v","video/mov","video/flv","video/rtmp","video/x-flv","audio/flv","audio/x-flv","audio/mp3","audio/m4a","audio/mpeg","video/youtube","video/x-youtube"]}],youtube:[{version:null,types:["video/youtube","video/x-youtube"]}],vimeo:[{version:null,types:["video/vimeo"]}]};
15
- mejs.Utility={encodeUrl:function(a){return encodeURIComponent(a)},escapeHTML:function(a){return a.toString().split("&").join("&amp;").split("<").join("&lt;").split('"').join("&quot;")},absolutizeUrl:function(a){var b=document.createElement("div");b.innerHTML='<a href="'+this.escapeHTML(a)+'">x</a>';return b.firstChild.href},getScriptPath:function(a){for(var b=0,c,d="",e="",g,f=document.getElementsByTagName("script"),j=f.length,h=a.length;b<j;b++){g=f[b].src;for(c=0;c<h;c++){e=a[c];if(g.indexOf(e)>
16
- -1){d=g.substring(0,g.indexOf(e));break}}if(d!=="")break}return d},secondsToTimeCode:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d=="undefined")d=25;var e=Math.floor(a/3600)%24,g=Math.floor(a/60)%60,f=Math.floor(a%60);a=Math.floor((a%1*d).toFixed(3));return(b||e>0?(e<10?"0"+e:e)+":":"")+(g<10?"0"+g:g)+":"+(f<10?"0"+f:f)+(c?":"+(a<10?"0"+a:a):"")},timeCodeToSeconds:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d=="undefined")d=25;a=a.split(":");b=parseInt(a[0],
17
- 10);var e=parseInt(a[1],10),g=parseInt(a[2],10),f=0,j=0;if(c)f=parseInt(a[3])/d;return j=b*3600+e*60+g+f},convertSMPTEtoSeconds:function(a){if(typeof a!="string")return false;a=a.replace(",",".");var b=0,c=a.indexOf(".")!=-1?a.split(".")[1].length:0,d=1;a=a.split(":").reverse();for(var e=0;e<a.length;e++){d=1;if(e>0)d=Math.pow(60,e);b+=Number(a[e])*d}return Number(b.toFixed(c))},removeSwf:function(a){var b=document.getElementById(a);if(b&&b.nodeName=="OBJECT")if(mejs.MediaFeatures.isIE){b.style.display=
18
- "none";(function(){b.readyState==4?mejs.Utility.removeObjectInIE(a):setTimeout(arguments.callee,10)})()}else b.parentNode.removeChild(b)},removeObjectInIE:function(a){if(a=document.getElementById(a)){for(var b in a)if(typeof a[b]=="function")a[b]=null;a.parentNode.removeChild(a)}}};
19
- mejs.PluginDetector={hasPluginVersion:function(a,b){var c=this.plugins[a];b[1]=b[1]||0;b[2]=b[2]||0;return c[0]>b[0]||c[0]==b[0]&&c[1]>b[1]||c[0]==b[0]&&c[1]==b[1]&&c[2]>=b[2]?true:false},nav:window.navigator,ua:window.navigator.userAgent.toLowerCase(),plugins:[],addPlugin:function(a,b,c,d,e){this.plugins[a]=this.detectPlugin(b,c,d,e)},detectPlugin:function(a,b,c,d){var e=[0,0,0],g;if(typeof this.nav.plugins!="undefined"&&typeof this.nav.plugins[a]=="object"){if((c=this.nav.plugins[a].description)&&
20
- !(typeof this.nav.mimeTypes!="undefined"&&this.nav.mimeTypes[b]&&!this.nav.mimeTypes[b].enabledPlugin)){e=c.replace(a,"").replace(/^\s+/,"").replace(/\sr/gi,".").split(".");for(a=0;a<e.length;a++)e[a]=parseInt(e[a].match(/\d+/),10)}}else if(typeof window.ActiveXObject!="undefined")try{if(g=new ActiveXObject(c))e=d(g)}catch(f){}return e}};
21
- mejs.PluginDetector.addPlugin("flash","Shockwave Flash","application/x-shockwave-flash","ShockwaveFlash.ShockwaveFlash",function(a){var b=[];if(a=a.GetVariable("$version")){a=a.split(" ")[1].split(",");b=[parseInt(a[0],10),parseInt(a[1],10),parseInt(a[2],10)]}return b});
22
- mejs.PluginDetector.addPlugin("silverlight","Silverlight Plug-In","application/x-silverlight-2","AgControl.AgControl",function(a){var b=[0,0,0,0],c=function(d,e,g,f){for(;d.isVersionSupported(e[0]+"."+e[1]+"."+e[2]+"."+e[3]);)e[g]+=f;e[g]-=f};c(a,b,0,1);c(a,b,1,1);c(a,b,2,1E4);c(a,b,2,1E3);c(a,b,2,100);c(a,b,2,10);c(a,b,2,1);c(a,b,3,1);return b});
23
- mejs.MediaFeatures={init:function(){var a=this,b=document,c=mejs.PluginDetector.nav,d=mejs.PluginDetector.ua.toLowerCase(),e,g=["source","track","audio","video"];a.isiPad=d.match(/ipad/i)!==null;a.isiPhone=d.match(/iphone/i)!==null;a.isiOS=a.isiPhone||a.isiPad;a.isAndroid=d.match(/android/i)!==null;a.isBustedAndroid=d.match(/android 2\.[12]/)!==null;a.isIE=c.appName.toLowerCase().indexOf("microsoft")!=-1;a.isChrome=d.match(/chrome/gi)!==null;a.isFirefox=d.match(/firefox/gi)!==null;a.isWebkit=d.match(/webkit/gi)!==
24
- null;a.isGecko=d.match(/gecko/gi)!==null&&!a.isWebkit;a.isOpera=d.match(/opera/gi)!==null;a.hasTouch="ontouchstart"in window;for(c=0;c<g.length;c++)e=document.createElement(g[c]);a.supportsMediaTag=typeof e.canPlayType!=="undefined"||a.isBustedAndroid;a.hasSemiNativeFullScreen=typeof e.webkitEnterFullscreen!=="undefined";a.hasWebkitNativeFullScreen=typeof e.webkitRequestFullScreen!=="undefined";a.hasMozNativeFullScreen=typeof e.mozRequestFullScreen!=="undefined";a.hasTrueNativeFullScreen=a.hasWebkitNativeFullScreen||
25
- a.hasMozNativeFullScreen;a.nativeFullScreenEnabled=a.hasTrueNativeFullScreen;if(a.hasMozNativeFullScreen)a.nativeFullScreenEnabled=e.mozFullScreenEnabled;if(this.isChrome)a.hasSemiNativeFullScreen=false;if(a.hasTrueNativeFullScreen){a.fullScreenEventName=a.hasWebkitNativeFullScreen?"webkitfullscreenchange":"mozfullscreenchange";a.isFullScreen=function(){if(e.mozRequestFullScreen)return b.mozFullScreen;else if(e.webkitRequestFullScreen)return b.webkitIsFullScreen};a.requestFullScreen=function(f){if(a.hasWebkitNativeFullScreen)f.webkitRequestFullScreen();
26
- else a.hasMozNativeFullScreen&&f.mozRequestFullScreen()};a.cancelFullScreen=function(){if(a.hasWebkitNativeFullScreen)document.webkitCancelFullScreen();else a.hasMozNativeFullScreen&&document.mozCancelFullScreen()}}if(a.hasSemiNativeFullScreen&&d.match(/mac os x 10_5/i)){a.hasNativeFullScreen=false;a.hasSemiNativeFullScreen=false}}};mejs.MediaFeatures.init();
27
- mejs.HtmlMediaElement={pluginType:"native",isFullScreen:false,setCurrentTime:function(a){this.currentTime=a},setMuted:function(a){this.muted=a},setVolume:function(a){this.volume=a},stop:function(){this.pause()},setSrc:function(a){for(var b=this.getElementsByTagName("source");b.length>0;)this.removeChild(b[0]);if(typeof a=="string")this.src=a;else{var c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type))this.src=c.src}}},setVideoSize:function(a,b){this.width=a;this.height=b}};
28
- mejs.PluginMediaElement=function(a,b,c){this.id=a;this.pluginType=b;this.src=c;this.events={}};
29
- mejs.PluginMediaElement.prototype={pluginElement:null,pluginType:"",isFullScreen:false,playbackRate:-1,defaultPlaybackRate:-1,seekable:[],played:[],paused:true,ended:false,seeking:false,duration:0,error:null,tagName:"",muted:false,volume:1,currentTime:0,play:function(){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.playVideo():this.pluginApi.playMedia();this.paused=false}},load:function(){if(this.pluginApi!=null){this.pluginType!="youtube"&&this.pluginApi.loadMedia();this.paused=
30
- false}},pause:function(){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.pauseVideo():this.pluginApi.pauseMedia();this.paused=true}},stop:function(){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.stopVideo():this.pluginApi.stopMedia();this.paused=true}},canPlayType:function(a){var b,c,d,e=mejs.plugins[this.pluginType];for(b=0;b<e.length;b++){d=e[b];if(mejs.PluginDetector.hasPluginVersion(this.pluginType,d.version))for(c=0;c<d.types.length;c++)if(a==d.types[c])return true}return false},
31
- positionFullscreenButton:function(a,b,c){this.pluginApi!=null&&this.pluginApi.positionFullscreenButton&&this.pluginApi.positionFullscreenButton(a,b,c)},hideFullscreenButton:function(){this.pluginApi!=null&&this.pluginApi.hideFullscreenButton&&this.pluginApi.hideFullscreenButton()},setSrc:function(a){if(typeof a=="string"){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(a));this.src=mejs.Utility.absolutizeUrl(a)}else{var b,c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(c.src));
32
- this.src=mejs.Utility.absolutizeUrl(a)}}}},setCurrentTime:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.seekTo(a):this.pluginApi.setCurrentTime(a);this.currentTime=a}},setVolume:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.setVolume(a*100):this.pluginApi.setVolume(a);this.volume=a}},setMuted:function(a){if(this.pluginApi!=null){if(this.pluginType=="youtube"){a?this.pluginApi.mute():this.pluginApi.unMute();this.muted=a;this.dispatchEvent("volumechange")}else this.pluginApi.setMuted(a);
33
- this.muted=a}},setVideoSize:function(a,b){if(this.pluginElement.style){this.pluginElement.style.width=a+"px";this.pluginElement.style.height=b+"px"}this.pluginApi!=null&&this.pluginApi.setVideoSize&&this.pluginApi.setVideoSize(a,b)},setFullscreen:function(a){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.pluginApi.setFullscreen(a)},enterFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.setFullscreen(true)},exitFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&
34
- this.setFullscreen(false)},addEventListener:function(a,b){this.events[a]=this.events[a]||[];this.events[a].push(b)},removeEventListener:function(a,b){if(!a){this.events={};return true}var c=this.events[a];if(!c)return true;if(!b){this.events[a]=[];return true}for(i=0;i<c.length;i++)if(c[i]===b){this.events[a].splice(i,1);return true}return false},dispatchEvent:function(a){var b,c,d=this.events[a];if(d){c=Array.prototype.slice.call(arguments,1);for(b=0;b<d.length;b++)d[b].apply(null,c)}},attributes:{},
35
- hasAttribute:function(a){return a in this.attributes},removeAttribute:function(a){delete this.attributes[a]},getAttribute:function(a){if(this.hasAttribute(a))return this.attributes[a];return""},setAttribute:function(a,b){this.attributes[a]=b},remove:function(){mejs.Utility.removeSwf(this.pluginElement.id)}};
36
- mejs.MediaPluginBridge={pluginMediaElements:{},htmlMediaElements:{},registerPluginElement:function(a,b,c){this.pluginMediaElements[a]=b;this.htmlMediaElements[a]=c},initPlugin:function(a){var b=this.pluginMediaElements[a],c=this.htmlMediaElements[a];if(b){switch(b.pluginType){case "flash":b.pluginElement=b.pluginApi=document.getElementById(a);break;case "silverlight":b.pluginElement=document.getElementById(b.id);b.pluginApi=b.pluginElement.Content.MediaElementJS}b.pluginApi!=null&&b.success&&b.success(b,
37
- c)}},fireEvent:function(a,b,c){var d,e;a=this.pluginMediaElements[a];a.ended=false;a.paused=true;b={type:b,target:a};for(d in c){a[d]=c[d];b[d]=c[d]}e=c.bufferedTime||0;b.target.buffered=b.buffered={start:function(){return 0},end:function(){return e},length:1};a.dispatchEvent(b.type,b)}};
38
- mejs.MediaElementDefaults={mode:"auto",plugins:["flash","silverlight","youtube","vimeo"],enablePluginDebug:false,type:"",pluginPath:mejs.Utility.getScriptPath(["mediaelement.js","mediaelement.min.js","mediaelement-and-player.js","mediaelement-and-player.min.js"]),flashName:"flashmediaelement.swf",flashStreamer:"",enablePluginSmoothing:false,silverlightName:"silverlightmediaelement.xap",defaultVideoWidth:480,defaultVideoHeight:270,pluginWidth:-1,pluginHeight:-1,pluginVars:[],timerRate:250,startVolume:0.8,
39
- success:function(){},error:function(){}};mejs.MediaElement=function(a,b){return mejs.HtmlMediaElementShim.create(a,b)};
40
- mejs.HtmlMediaElementShim={create:function(a,b){var c=mejs.MediaElementDefaults,d=typeof a=="string"?document.getElementById(a):a,e=d.tagName.toLowerCase(),g=e==="audio"||e==="video",f=g?d.getAttribute("src"):d.getAttribute("href");e=d.getAttribute("poster");var j=d.getAttribute("autoplay"),h=d.getAttribute("preload"),l=d.getAttribute("controls"),k;for(k in b)c[k]=b[k];f=typeof f=="undefined"||f===null||f==""?null:f;e=typeof e=="undefined"||e===null?"":e;h=typeof h=="undefined"||h===null||h==="false"?
41
- "none":h;j=!(typeof j=="undefined"||j===null||j==="false");l=!(typeof l=="undefined"||l===null||l==="false");k=this.determinePlayback(d,c,mejs.MediaFeatures.supportsMediaTag,g,f);k.url=k.url!==null?mejs.Utility.absolutizeUrl(k.url):"";if(k.method=="native"){if(mejs.MediaFeatures.isBustedAndroid){d.src=k.url;d.addEventListener("click",function(){d.play()},false)}return this.updateNative(k,c,j,h)}else if(k.method!=="")return this.createPlugin(k,c,e,j,h,l);else{this.createErrorMessage(k,c,e);return this}},
42
- determinePlayback:function(a,b,c,d,e){var g=[],f,j,h={method:"",url:"",htmlMediaElement:a,isVideo:a.tagName.toLowerCase()!="audio"},l,k;if(typeof b.type!="undefined"&&b.type!=="")if(typeof b.type=="string")g.push({type:b.type,url:e});else for(f=0;f<b.type.length;f++)g.push({type:b.type[f],url:e});else if(e!==null){j=this.formatType(e,a.getAttribute("type"));g.push({type:j,url:e})}else for(f=0;f<a.childNodes.length;f++){j=a.childNodes[f];if(j.nodeType==1&&j.tagName.toLowerCase()=="source"){e=j.getAttribute("src");
43
- j=this.formatType(e,j.getAttribute("type"));g.push({type:j,url:e})}}if(!d&&g.length>0&&g[0].url!==null&&this.getTypeFromFile(g[0].url).indexOf("audio")>-1)h.isVideo=false;if(mejs.MediaFeatures.isBustedAndroid)a.canPlayType=function(m){return m.match(/video\/(mp4|m4v)/gi)!==null?"maybe":""};if(c&&(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="native")){if(!d){f=document.createElement(h.isVideo?"video":"audio");a.parentNode.insertBefore(f,a);a.style.display="none";h.htmlMediaElement=a=f}for(f=
44
- 0;f<g.length;f++)if(a.canPlayType(g[f].type).replace(/no/,"")!==""||a.canPlayType(g[f].type.replace(/mp3/,"mpeg")).replace(/no/,"")!==""){h.method="native";h.url=g[f].url;break}if(h.method==="native"){if(h.url!==null)a.src=h.url;if(b.mode!=="auto_plugin")return h}}if(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="shim")for(f=0;f<g.length;f++){j=g[f].type;for(a=0;a<b.plugins.length;a++){e=b.plugins[a];l=mejs.plugins[e];for(c=0;c<l.length;c++){k=l[c];if(k.version==null||mejs.PluginDetector.hasPluginVersion(e,
45
- k.version))for(d=0;d<k.types.length;d++)if(j==k.types[d]){h.method=e;h.url=g[f].url;return h}}}}if(b.mode==="auto_plugin"&&h.method==="native")return h;if(h.method===""&&g.length>0)h.url=g[0].url;return h},formatType:function(a,b){return a&&!b?this.getTypeFromFile(a):b&&~b.indexOf(";")?b.substr(0,b.indexOf(";")):b},getTypeFromFile:function(a){a=a.substring(a.lastIndexOf(".")+1);return(/(mp4|m4v|ogg|ogv|webm|webmv|flv|wmv|mpeg|mov)/gi.test(a)?"video":"audio")+"/"+this.getTypeFromExtension(a)},getTypeFromExtension:function(a){switch(a){case "mp4":case "m4v":return"mp4";
46
- case "webm":case "webma":case "webmv":return"webm";case "ogg":case "oga":case "ogv":return"ogg";default:return a}},createErrorMessage:function(a,b,c){var d=a.htmlMediaElement,e=document.createElement("div");e.className="me-cannotplay";try{e.style.width=d.width+"px";e.style.height=d.height+"px"}catch(g){}e.innerHTML=c!==""?'<a href="'+a.url+'"><img src="'+c+'" width="100%" height="100%" /></a>':'<a href="'+a.url+'"><span>Download File</span></a>';d.parentNode.insertBefore(e,d);d.style.display="none";
47
- b.error(d)},createPlugin:function(a,b,c,d,e,g){c=a.htmlMediaElement;var f=1,j=1,h="me_"+a.method+"_"+mejs.meIndex++,l=new mejs.PluginMediaElement(h,a.method,a.url),k=document.createElement("div"),m;l.tagName=c.tagName;for(m=0;m<c.attributes.length;m++){var n=c.attributes[m];n.specified==true&&l.setAttribute(n.name,n.value)}for(m=c.parentNode;m!==null&&m.tagName.toLowerCase()!="body";){if(m.parentNode.tagName.toLowerCase()=="p"){m.parentNode.parentNode.insertBefore(m,m.parentNode);break}m=m.parentNode}if(a.isVideo){f=
48
- b.videoWidth>0?b.videoWidth:c.getAttribute("width")!==null?c.getAttribute("width"):b.defaultVideoWidth;j=b.videoHeight>0?b.videoHeight:c.getAttribute("height")!==null?c.getAttribute("height"):b.defaultVideoHeight;f=mejs.Utility.encodeUrl(f);j=mejs.Utility.encodeUrl(j)}else if(b.enablePluginDebug){f=320;j=240}l.success=b.success;mejs.MediaPluginBridge.registerPluginElement(h,l,c);k.className="me-plugin";k.id=h+"_container";a.isVideo?c.parentNode.insertBefore(k,c):document.body.insertBefore(k,document.body.childNodes[0]);
49
- d=["id="+h,"isvideo="+(a.isVideo?"true":"false"),"autoplay="+(d?"true":"false"),"preload="+e,"width="+f,"startvolume="+b.startVolume,"timerrate="+b.timerRate,"flashstreamer="+b.flashStreamer,"height="+j];if(a.url!==null)a.method=="flash"?d.push("file="+mejs.Utility.encodeUrl(a.url)):d.push("file="+a.url);b.enablePluginDebug&&d.push("debug=true");b.enablePluginSmoothing&&d.push("smoothing=true");g&&d.push("controls=true");if(b.pluginVars)d=d.concat(b.pluginVars);switch(a.method){case "silverlight":k.innerHTML=
50
- '<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="'+h+'" name="'+h+'" width="'+f+'" height="'+j+'"><param name="initParams" value="'+d.join(",")+'" /><param name="windowless" value="true" /><param name="background" value="black" /><param name="minRuntimeVersion" value="3.0.0.0" /><param name="autoUpgrade" value="true" /><param name="source" value="'+b.pluginPath+b.silverlightName+'" /></object>';break;case "flash":if(mejs.MediaFeatures.isIE){a=document.createElement("div");
51
- k.appendChild(a);a.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+h+'" width="'+f+'" height="'+j+'"><param name="movie" value="'+b.pluginPath+b.flashName+"?x="+new Date+'" /><param name="flashvars" value="'+d.join("&amp;")+'" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else k.innerHTML=
52
- '<embed id="'+h+'" name="'+h+'" play="true" loop="false" quality="high" bgcolor="#000000" wmode="transparent" allowScriptAccess="always" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" src="'+b.pluginPath+b.flashName+'" flashvars="'+d.join("&")+'" width="'+f+'" height="'+j+'"></embed>';break;case "youtube":b=a.url.substr(a.url.lastIndexOf("=")+1);youtubeSettings={container:k,containerId:k.id,pluginMediaElement:l,pluginId:h,videoId:b,
53
- height:j,width:f};mejs.PluginDetector.hasPluginVersion("flash",[10,0,0])?mejs.YouTubeApi.createFlash(youtubeSettings):mejs.YouTubeApi.enqueueIframe(youtubeSettings);break;case "vimeo":l.vimeoid=a.url.substr(a.url.lastIndexOf("/")+1);k.innerHTML='<object width="'+f+'" height="'+j+'"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="flashvars" value="api=1" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id='+l.vimeoid+'&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed src="//vimeo.com/moogaloop.swf?api=1&amp;clip_id='+
54
- l.vimeoid+'&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="'+f+'" height="'+j+'"></embed></object>'}c.style.display="none";return l},updateNative:function(a,b){var c=a.htmlMediaElement,d;for(d in mejs.HtmlMediaElement)c[d]=mejs.HtmlMediaElement[d];b.success(c,c);return c}};
55
- mejs.YouTubeApi={isIframeStarted:false,isIframeLoaded:false,loadIframeApi:function(){if(!this.isIframeStarted){var a=document.createElement("script");a.src="http://www.youtube.com/player_api";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);this.isIframeStarted=true}},iframeQueue:[],enqueueIframe:function(a){if(this.isLoaded)this.createIframe(a);else{this.loadIframeApi();this.iframeQueue.push(a)}},createIframe:function(a){var b=a.pluginMediaElement,c=new YT.Player(a.containerId,
56
- {height:a.height,width:a.width,videoId:a.videoId,playerVars:{controls:0},events:{onReady:function(){a.pluginMediaElement.pluginApi=c;mejs.MediaPluginBridge.initPlugin(a.pluginId);setInterval(function(){mejs.YouTubeApi.createEvent(c,b,"timeupdate")},250)},onStateChange:function(d){mejs.YouTubeApi.handleStateChange(d.data,c,b)}}})},createEvent:function(a,b,c){c={type:c,target:b};if(a&&a.getDuration){b.currentTime=c.currentTime=a.getCurrentTime();b.duration=c.duration=a.getDuration();c.paused=b.paused;
57
- c.ended=b.ended;c.muted=a.isMuted();c.volume=a.getVolume()/100;c.bytesTotal=a.getVideoBytesTotal();c.bufferedBytes=a.getVideoBytesLoaded();var d=c.bufferedBytes/c.bytesTotal*c.duration;c.target.buffered=c.buffered={start:function(){return 0},end:function(){return d},length:1}}b.dispatchEvent(c.type,c)},iFrameReady:function(){for(this.isIframeLoaded=this.isLoaded=true;this.iframeQueue.length>0;)this.createIframe(this.iframeQueue.pop())},flashPlayers:{},createFlash:function(a){this.flashPlayers[a.pluginId]=
58
- a;var b,c="http://www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid="+a.pluginId+"&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0";if(mejs.MediaFeatures.isIE){b=document.createElement("div");a.container.appendChild(b);b.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+a.pluginId+'" width="'+a.width+'" height="'+a.height+'"><param name="movie" value="'+c+'" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else a.container.innerHTML=
59
- '<object type="application/x-shockwave-flash" id="'+a.pluginId+'" data="'+c+'" width="'+a.width+'" height="'+a.height+'" style="visibility: visible; "><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"></object>'},flashReady:function(a){var b=this.flashPlayers[a],c=document.getElementById(a),d=b.pluginMediaElement;d.pluginApi=d.pluginElement=c;mejs.MediaPluginBridge.initPlugin(a);c.cueVideoById(b.videoId);a=b.containerId+"_callback";window[a]=function(e){mejs.YouTubeApi.handleStateChange(e,
60
- c,d)};c.addEventListener("onStateChange",a);setInterval(function(){mejs.YouTubeApi.createEvent(c,d,"timeupdate")},250)},handleStateChange:function(a,b,c){switch(a){case -1:c.paused=true;c.ended=true;mejs.YouTubeApi.createEvent(b,c,"loadedmetadata");break;case 0:c.paused=false;c.ended=true;mejs.YouTubeApi.createEvent(b,c,"ended");break;case 1:c.paused=false;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"play");mejs.YouTubeApi.createEvent(b,c,"playing");break;case 2:c.paused=true;c.ended=false;mejs.YouTubeApi.createEvent(b,
61
- c,"pause");break;case 3:mejs.YouTubeApi.createEvent(b,c,"progress")}}};function onYouTubePlayerAPIReady(){mejs.YouTubeApi.iFrameReady()}function onYouTubePlayerReady(a){mejs.YouTubeApi.flashReady(a)}window.mejs=mejs;window.MediaElement=mejs.MediaElement;
1
  /*!
2
+ * MediaElement.js
3
+ * http://www.mediaelementjs.com/
4
+ *
5
+ * Wrapper that mimics native HTML5 MediaElement (audio and video)
6
+ * using a variety of technologies (pure JavaScript, Flash, iframe)
7
+ *
8
+ * Copyright 2010-2017, John Dyer (http://j.hn/)
9
+ * License: MIT
10
+ *
11
+ */
12
+ !function e(t,n,r){function i(a,l){if(!n[a]){if(!t[a]){var s="function"==typeof require&&require;if(!l&&s)return s(a,!0);if(o)return o(a,!0);var d=new Error("Cannot find module '"+a+"'");throw d.code="MODULE_NOT_FOUND",d}var u=n[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return i(n||e)},u,u.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(e,t,n){},{}],2:[function(e,t,n){(function(n){var r,i=void 0!==n?n:"undefined"!=typeof window?window:{},o=e(1);"undefined"!=typeof document?r=document:(r=i["__GLOBAL_DOCUMENT_CACHE@4"])||(r=i["__GLOBAL_DOCUMENT_CACHE@4"]=o),t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{1:1}],3:[function(e,t,n){(function(e){var n;n="undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{},t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,t,n){!function(e){function n(){}function r(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],s(e,this)}function i(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,r._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var r;try{r=n(e._value)}catch(e){return void a(t.promise,e)}o(t.promise,r)}else(1===e._state?o:a)(t.promise,e._value)})):e._deferreds.push(t)}function o(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if(t instanceof r)return e._state=3,e._value=t,void l(e);if("function"==typeof n)return void s(function(e,t){return function(){e.apply(t,arguments)}}(n,t),e)}e._state=1,e._value=t,l(e)}catch(t){a(e,t)}}function a(e,t){e._state=2,e._value=t,l(e)}function l(e){2===e._state&&0===e._deferreds.length&&r._immediateFn(function(){e._handled||r._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t<n;t++)i(e,e._deferreds[t]);e._deferreds=null}function s(e,t){var n=!1;try{e(function(e){n||(n=!0,o(t,e))},function(e){n||(n=!0,a(t,e))})}catch(e){if(n)return;n=!0,a(t,e)}}var d=setTimeout;r.prototype.catch=function(e){return this.then(null,e)},r.prototype.then=function(e,t){var r=new this.constructor(n);return i(this,new function(e,t,n){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=n}(e,t,r)),r},r.all=function(e){var t=Array.prototype.slice.call(e);return new r(function(e,n){function r(o,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var l=a.then;if("function"==typeof l)return void l.call(a,function(e){r(o,e)},n)}t[o]=a,0==--i&&e(t)}catch(e){n(e)}}if(0===t.length)return e([]);for(var i=t.length,o=0;o<t.length;o++)r(o,t[o])})},r.resolve=function(e){return e&&"object"==typeof e&&e.constructor===r?e:new r(function(t){t(e)})},r.reject=function(e){return new r(function(t,n){n(e)})},r.race=function(e){return new r(function(t,n){for(var r=0,i=e.length;r<i;r++)e[r].then(t,n)})},r._immediateFn="function"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){d(e,0)},r._unhandledRejectionFn=function(e){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)},r._setImmediateFn=function(e){r._immediateFn=e},r._setUnhandledRejectionFn=function(e){r._unhandledRejectionFn=e},void 0!==t&&t.exports?t.exports=r:e.Promise||(e.Promise=r)}(this)},{}],5:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(e){return e&&e.__esModule?e:{default:e}}(e(7)),o=e(9),a=e(18),l={lang:"en",en:o.EN};l.language=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];if(null!==t&&void 0!==t&&t.length){if("string"!=typeof t[0])throw new TypeError("Language code must be a string value");if(!/^[a-z]{2,3}((\-|_)[a-z]{2})?$/i.test(t[0]))throw new TypeError("Language code must have format 2-3 letters and. optionally, hyphen, underscore followed by 2 more letters");l.lang=t[0],void 0===l[t[0]]?(t[1]=null!==t[1]&&void 0!==t[1]&&"object"===r(t[1])?t[1]:{},l[t[0]]=(0,a.isObjectEmpty)(t[1])?o.EN:t[1]):null!==t[1]&&void 0!==t[1]&&"object"===r(t[1])&&(l[t[0]]=t[1])}return l.lang},l.t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if("string"==typeof e&&e.length){var n=void 0,i=void 0,o=l.language(),s=function(e,t,n){if("object"!==(void 0===e?"undefined":r(e))||"number"!=typeof t||"number"!=typeof n)return e;return[function(){return arguments.length<=1?void 0:arguments[1]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:arguments.length<=2?void 0:arguments[2]},function(){return 0===(arguments.length<=0?void 0:arguments[0])||1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:arguments.length<=2?void 0:arguments[2]},function(){return(arguments.length<=0?void 0:arguments[0])%10==1&&(arguments.length<=0?void 0:arguments[0])%100!=11?arguments.length<=1?void 0:arguments[1]:0!==(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return 1===(arguments.length<=0?void 0:arguments[0])||11===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:2===(arguments.length<=0?void 0:arguments[0])||12===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:(arguments.length<=0?void 0:arguments[0])>2&&(arguments.length<=0?void 0:arguments[0])<20?arguments.length<=3?void 0:arguments[3]:arguments.length<=4?void 0:arguments[4]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:0===(arguments.length<=0?void 0:arguments[0])||(arguments.length<=0?void 0:arguments[0])%100>0&&(arguments.length<=0?void 0:arguments[0])%100<20?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return(arguments.length<=0?void 0:arguments[0])%10==1&&(arguments.length<=0?void 0:arguments[0])%100!=11?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])%10>=2&&((arguments.length<=0?void 0:arguments[0])%100<10||(arguments.length<=0?void 0:arguments[0])%100>=20)?arguments.length<=2?void 0:arguments[2]:[3]},function(){return(arguments.length<=0?void 0:arguments[0])%10==1&&(arguments.length<=0?void 0:arguments[0])%100!=11?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])%10>=2&&(arguments.length<=0?void 0:arguments[0])%10<=4&&((arguments.length<=0?void 0:arguments[0])%100<10||(arguments.length<=0?void 0:arguments[0])%100>=20)?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])>=2&&(arguments.length<=0?void 0:arguments[0])<=4?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])%10>=2&&(arguments.length<=0?void 0:arguments[0])%10<=4&&((arguments.length<=0?void 0:arguments[0])%100<10||(arguments.length<=0?void 0:arguments[0])%100>=20)?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return(arguments.length<=0?void 0:arguments[0])%100==1?arguments.length<=2?void 0:arguments[2]:(arguments.length<=0?void 0:arguments[0])%100==2?arguments.length<=3?void 0:arguments[3]:(arguments.length<=0?void 0:arguments[0])%100==3||(arguments.length<=0?void 0:arguments[0])%100==4?arguments.length<=4?void 0:arguments[4]:arguments.length<=1?void 0:arguments[1]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:2===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:(arguments.length<=0?void 0:arguments[0])>2&&(arguments.length<=0?void 0:arguments[0])<7?arguments.length<=3?void 0:arguments[3]:(arguments.length<=0?void 0:arguments[0])>6&&(arguments.length<=0?void 0:arguments[0])<11?arguments.length<=4?void 0:arguments[4]:arguments.length<=5?void 0:arguments[5]},function(){return 0===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:2===(arguments.length<=0?void 0:arguments[0])?arguments.length<=3?void 0:arguments[3]:(arguments.length<=0?void 0:arguments[0])%100>=3&&(arguments.length<=0?void 0:arguments[0])%100<=10?arguments.length<=4?void 0:arguments[4]:(arguments.length<=0?void 0:arguments[0])%100>=11?arguments.length<=5?void 0:arguments[5]:arguments.length<=6?void 0:arguments[6]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:0===(arguments.length<=0?void 0:arguments[0])||(arguments.length<=0?void 0:arguments[0])%100>1&&(arguments.length<=0?void 0:arguments[0])%100<11?arguments.length<=2?void 0:arguments[2]:(arguments.length<=0?void 0:arguments[0])%100>10&&(arguments.length<=0?void 0:arguments[0])%100<20?arguments.length<=3?void 0:arguments[3]:arguments.length<=4?void 0:arguments[4]},function(){return(arguments.length<=0?void 0:arguments[0])%10==1?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])%10==2?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return 11!==(arguments.length<=0?void 0:arguments[0])&&(arguments.length<=0?void 0:arguments[0])%10==1?arguments.length<=1?void 0:arguments[1]:arguments.length<=2?void 0:arguments[2]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:(arguments.length<=0?void 0:arguments[0])%10>=2&&(arguments.length<=0?void 0:arguments[0])%10<=4&&((arguments.length<=0?void 0:arguments[0])%100<10||(arguments.length<=0?void 0:arguments[0])%100>=20)?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:2===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:8!==(arguments.length<=0?void 0:arguments[0])&&11!==(arguments.length<=0?void 0:arguments[0])?arguments.length<=3?void 0:arguments[3]:arguments.length<=4?void 0:arguments[4]},function(){return 0===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:arguments.length<=2?void 0:arguments[2]},function(){return 1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:2===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:3===(arguments.length<=0?void 0:arguments[0])?arguments.length<=3?void 0:arguments[3]:arguments.length<=4?void 0:arguments[4]},function(){return 0===(arguments.length<=0?void 0:arguments[0])?arguments.length<=1?void 0:arguments[1]:1===(arguments.length<=0?void 0:arguments[0])?arguments.length<=2?void 0:arguments[2]:arguments.length<=3?void 0:arguments[3]}][n].apply(null,[t].concat(e))};return void 0!==l[o]&&(n=l[o][e],null!==t&&"number"==typeof t&&(i=l[o]["mejs.plural-form"],n=s.apply(null,[n,t,i]))),!n&&l.en&&(n=l.en[e],null!==t&&"number"==typeof t&&(i=l.en["mejs.plural-form"],n=s.apply(null,[n,t,i]))),n=n||e,null!==t&&"number"==typeof t&&(n=n.replace("%1",t)),(0,a.escapeHTML)(n)}return e},i.default.i18n=l,"undefined"!=typeof mejsL10n&&i.default.i18n.language(mejsL10n.language,mejsL10n.strings),n.default=l},{18:18,7:7,9:9}],6:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=r(e(3)),a=r(e(2)),l=r(e(7)),s=e(18),d=e(19),u=e(8),c=e(16),f=function e(t,n,r){var f=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var m=this;r=Array.isArray(r)?r:null,m.defaults={renderers:[],fakeNodeName:"mediaelementwrapper",pluginPath:"build/",shimScriptAccess:"sameDomain"},n=Object.assign(m.defaults,n),m.mediaElement=a.default.createElement(n.fakeNodeName);var p=t,h=!1;if("string"==typeof t?m.mediaElement.originalNode=a.default.getElementById(t):(m.mediaElement.originalNode=t,p=t.id),void 0===m.mediaElement.originalNode||null===m.mediaElement.originalNode)return null;m.mediaElement.options=n,p=p||"mejs_"+Math.random().toString().slice(2),m.mediaElement.originalNode.setAttribute("id",p+"_from_mejs");var v=m.mediaElement.originalNode.tagName.toLowerCase();["video","audio"].indexOf(v)>-1&&!m.mediaElement.originalNode.getAttribute("preload")&&m.mediaElement.originalNode.setAttribute("preload","none"),m.mediaElement.originalNode.parentNode.insertBefore(m.mediaElement,m.mediaElement.originalNode),m.mediaElement.appendChild(m.mediaElement.originalNode);var g=function(e,t){if("https:"===o.default.location.protocol&&0===e.indexOf("http:")&&c.IS_IOS&&l.default.html5media.mediaTypes.indexOf(t)>-1){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(4===this.readyState&&200===this.status){var t=(o.default.URL||o.default.webkitURL).createObjectURL(this.response);return m.mediaElement.originalNode.setAttribute("src",t),t}return e},n.open("GET",e),n.responseType="blob",n.send()}return e},y=void 0;if(null!==r)y=r;else if(null!==m.mediaElement.originalNode)switch(y=[],m.mediaElement.originalNode.nodeName.toLowerCase()){case"iframe":y.push({type:"",src:m.mediaElement.originalNode.getAttribute("src")});break;case"audio":case"video":var E=m.mediaElement.originalNode.children.length,b=m.mediaElement.originalNode.getAttribute("src");if(b){var w=m.mediaElement.originalNode,_=(0,d.formatType)(b,w.getAttribute("type"));y.push({type:_,src:g(b,_)})}for(var S=0;S<E;S++){var N=m.mediaElement.originalNode.children[S];if("source"===N.tagName.toLowerCase()){var j=N.getAttribute("src"),A=(0,d.formatType)(j,N.getAttribute("type"));y.push({type:A,src:g(j,A)})}}}m.mediaElement.id=p,m.mediaElement.renderers={},m.mediaElement.events={},m.mediaElement.promises=[],m.mediaElement.renderer=null,m.mediaElement.rendererName=null,m.mediaElement.changeRenderer=function(e,t){var n=f,r=Object.keys(t[0]).length>2?t[0]:t[0].src;if(void 0!==n.mediaElement.renderer&&null!==n.mediaElement.renderer&&n.mediaElement.renderer.name===e)return n.mediaElement.renderer.pause(),n.mediaElement.renderer.stop&&n.mediaElement.renderer.stop(),n.mediaElement.renderer.show(),n.mediaElement.renderer.setSrc(r),!0;void 0!==n.mediaElement.renderer&&null!==n.mediaElement.renderer&&(n.mediaElement.renderer.pause(),n.mediaElement.renderer.stop&&n.mediaElement.renderer.stop(),n.mediaElement.renderer.hide());var i=n.mediaElement.renderers[e],o=null;if(void 0!==i&&null!==i)return i.show(),i.setSrc(r),n.mediaElement.renderer=i,n.mediaElement.rendererName=e,!0;for(var a=n.mediaElement.options.renderers.length?n.mediaElement.options.renderers:u.renderer.order,l=0,s=a.length;l<s;l++){var d=a[l];if(d===e){o=u.renderer.renderers[d];var c=Object.assign(o.options,n.mediaElement.options);return i=o.create(n.mediaElement,c,t),i.name=e,n.mediaElement.renderers[o.name]=i,n.mediaElement.renderer=i,n.mediaElement.rendererName=e,i.show(),!0}}return!1},m.mediaElement.setSize=function(e,t){void 0!==m.mediaElement.renderer&&null!==m.mediaElement.renderer&&m.mediaElement.renderer.setSize(e,t)},m.mediaElement.generateError=function(e,t){e=e||"",t=Array.isArray(t)?t:[];var n=(0,s.createEvent)("error",m.mediaElement);n.message=e,n.urls=t,m.mediaElement.dispatchEvent(n),h=!0};var T=l.default.html5media.properties,F=l.default.html5media.methods,P=function(e,t,n,r){var i=e[t];Object.defineProperty(e,t,{get:function(){return n.apply(e,[i])},set:function(t){return i=r.apply(e,[t])}})},x=function(e){if("src"!==e){var t=""+e.substring(0,1).toUpperCase()+e.substring(1),n=function(){return void 0!==m.mediaElement.renderer&&null!==m.mediaElement.renderer&&"function"==typeof m.mediaElement.renderer["get"+t]?m.mediaElement.renderer["get"+t]():null},r=function(e){void 0!==m.mediaElement.renderer&&null!==m.mediaElement.renderer&&"function"==typeof m.mediaElement.renderer["set"+t]&&m.mediaElement.renderer["set"+t](e)};P(m.mediaElement,e,n,r),m.mediaElement["get"+t]=n,m.mediaElement["set"+t]=r}},L=function(){return void 0!==m.mediaElement.renderer&&null!==m.mediaElement.renderer?m.mediaElement.renderer.getSrc():null},O=function(e){var t=[];if("string"==typeof e)t.push({src:e,type:e?(0,d.getTypeFromFile)(e):""});else if("object"===(void 0===e?"undefined":i(e))&&void 0!==e.src){var n=(0,d.absolutizeUrl)(e.src),r=e.type,o=Object.assign(e,{src:n,type:""!==r&&null!==r&&void 0!==r||!n?r:(0,d.getTypeFromFile)(n)});t.push(o)}else if(Array.isArray(e))for(var a=0,l=e.length;a<l;a++){var c=(0,d.absolutizeUrl)(e[a].src),f=e[a].type,p=Object.assign(e[a],{src:c,type:""!==f&&null!==f&&void 0!==f||!c?f:(0,d.getTypeFromFile)(c)});t.push(p)}var h=u.renderer.select(t,m.mediaElement.options.renderers.length?m.mediaElement.options.renderers:[]),v=void 0;if(m.mediaElement.paused||(m.mediaElement.pause(),v=(0,s.createEvent)("pause",m.mediaElement),m.mediaElement.dispatchEvent(v)),m.mediaElement.originalNode.src=t[0].src||"",null!==h||!t[0].src)return t[0].src?m.mediaElement.changeRenderer(h.rendererName,t):null;m.mediaElement.generateError("No renderer found",t)},C=function(e,t){try{if("play"===e&&"native_dash"===m.mediaElement.rendererName){var n=m.mediaElement.renderer[e](t);n&&"function"==typeof n.then&&n.catch(function(){m.mediaElement.paused&&setTimeout(function(){var e=m.mediaElement.renderer.play();void 0!==e&&e.catch(function(){m.mediaElement.renderer.paused||m.mediaElement.renderer.pause()})},150)})}else m.mediaElement.renderer[e](t)}catch(e){m.mediaElement.generateError(e,y)}},I=function(e){m.mediaElement[e]=function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return void 0!==m.mediaElement.renderer&&null!==m.mediaElement.renderer&&"function"==typeof m.mediaElement.renderer[e]&&(m.mediaElement.promises.length?Promise.all(m.mediaElement.promises).then(function(){C(e,n)}).catch(function(e){m.mediaElement.generateError(e,y)}):C(e,n)),null}};P(m.mediaElement,"src",L,O),m.mediaElement.getSrc=L,m.mediaElement.setSrc=O;for(var k=0,U=T.length;k<U;k++)x(T[k]);for(var M=0,R=F.length;M<R;M++)I(F[M]);return m.mediaElement.addEventListener=function(e,t){m.mediaElement.events[e]=m.mediaElement.events[e]||[],m.mediaElement.events[e].push(t)},m.mediaElement.removeEventListener=function(e,t){if(!e)return m.mediaElement.events={},!0;var n=m.mediaElement.events[e];if(!n)return!0;if(!t)return m.mediaElement.events[e]=[],!0;for(var r=0;r<n.length;r++)if(n[r]===t)return m.mediaElement.events[e].splice(r,1),!0;return!1},m.mediaElement.dispatchEvent=function(e){var t=m.mediaElement.events[e.type];if(t)for(var n=0;n<t.length;n++)t[n].apply(null,[e])},m.mediaElement.destroy=function(){var e=m.mediaElement.originalNode.cloneNode(!0),t=m.mediaElement.parentElement;e.removeAttribute("id"),e.remove(),m.mediaElement.remove(),t.append(e)},y.length&&(m.mediaElement.src=y),m.mediaElement.promises.length?Promise.all(m.mediaElement.promises).then(function(){m.mediaElement.options.success&&m.mediaElement.options.success(m.mediaElement,m.mediaElement.originalNode)}).catch(function(){h&&m.mediaElement.options.error&&m.mediaElement.options.error(m.mediaElement,m.mediaElement.originalNode)}):(m.mediaElement.options.success&&m.mediaElement.options.success(m.mediaElement,m.mediaElement.originalNode),h&&m.mediaElement.options.error&&m.mediaElement.options.error(m.mediaElement,m.mediaElement.originalNode)),m.mediaElement};o.default.MediaElement=f,l.default.MediaElement=f,n.default=f},{16:16,18:18,19:19,2:2,3:3,7:7,8:8}],7:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(e(3)),i={};i.version="4.2.8",i.html5media={properties:["volume","src","currentTime","muted","duration","paused","ended","buffered","error","networkState","readyState","seeking","seekable","currentSrc","preload","bufferedBytes","bufferedTime","initialTime","startOffsetTime","defaultPlaybackRate","playbackRate","played","autoplay","loop","controls"],readOnlyProperties:["duration","paused","ended","buffered","error","networkState","readyState","seeking","seekable"],methods:["load","play","pause","canPlayType"],events:["loadstart","durationchange","loadedmetadata","loadeddata","progress","canplay","canplaythrough","suspend","abort","error","emptied","stalled","play","playing","pause","waiting","seeking","seeked","timeupdate","ended","ratechange","volumechange"],mediaTypes:["audio/mp3","audio/ogg","audio/oga","audio/wav","audio/x-wav","audio/wave","audio/x-pn-wav","audio/mpeg","audio/mp4","video/mp4","video/webm","video/ogg","video/ogv"]},r.default.mejs=i,n.default=i},{3:3}],8:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.renderer=void 0;var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=function(e){return e&&e.__esModule?e:{default:e}}(e(7)),a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.renderers={},this.order=[]}return i(e,[{key:"add",value:function(e){if(void 0===e.name)throw new TypeError("renderer must contain at least `name` property");this.renderers[e.name]=e,this.order.push(e.name)}},{key:"select",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=t.length;if(t=t.length?t:this.order,!n){var r=[/^(html5|native)/i,/^flash/i,/iframe$/i],i=function(e){for(var t=0,n=r.length;t<n;t++)if(r[t].test(e))return t;return r.length};t.sort(function(e,t){return i(e)-i(t)})}for(var o=0,a=t.length;o<a;o++){var l=t[o],s=this.renderers[l];if(null!==s&&void 0!==s)for(var d=0,u=e.length;d<u;d++)if("function"==typeof s.canPlayType&&"string"==typeof e[d].type&&s.canPlayType(e[d].type))return{rendererName:s.name,src:e[d].src}}return null}},{key:"order",set:function(e){if(!Array.isArray(e))throw new TypeError("order must be an array of strings.");this._order=e},get:function(){return this._order}},{key:"renderers",set:function(e){if(null!==e&&"object"!==(void 0===e?"undefined":r(e)))throw new TypeError("renderers must be an array of objects.");this._renderers=e},get:function(){return this._renderers}}]),e}(),l=n.renderer=new a;o.default.Renderers=l},{7:7}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.EN={"mejs.plural-form":1,"mejs.download-file":"Download File","mejs.install-flash":"You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/","mejs.fullscreen":"Fullscreen","mejs.play":"Play","mejs.pause":"Pause","mejs.time-slider":"Time Slider","mejs.time-help-text":"Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.","mejs.live-broadcast":"Live Broadcast","mejs.volume-help-text":"Use Up/Down Arrow keys to increase or decrease volume.","mejs.unmute":"Unmute","mejs.mute":"Mute","mejs.volume-slider":"Volume Slider","mejs.video-player":"Video Player","mejs.audio-player":"Audio Player","mejs.captions-subtitles":"Captions/Subtitles","mejs.captions-chapters":"Chapters","mejs.none":"None","mejs.afrikaans":"Afrikaans","mejs.albanian":"Albanian","mejs.arabic":"Arabic","mejs.belarusian":"Belarusian","mejs.bulgarian":"Bulgarian","mejs.catalan":"Catalan","mejs.chinese":"Chinese","mejs.chinese-simplified":"Chinese (Simplified)","mejs.chinese-traditional":"Chinese (Traditional)","mejs.croatian":"Croatian","mejs.czech":"Czech","mejs.danish":"Danish","mejs.dutch":"Dutch","mejs.english":"English","mejs.estonian":"Estonian","mejs.filipino":"Filipino","mejs.finnish":"Finnish","mejs.french":"French","mejs.galician":"Galician","mejs.german":"German","mejs.greek":"Greek","mejs.haitian-creole":"Haitian Creole","mejs.hebrew":"Hebrew","mejs.hindi":"Hindi","mejs.hungarian":"Hungarian","mejs.icelandic":"Icelandic","mejs.indonesian":"Indonesian","mejs.irish":"Irish","mejs.italian":"Italian","mejs.japanese":"Japanese","mejs.korean":"Korean","mejs.latvian":"Latvian","mejs.lithuanian":"Lithuanian","mejs.macedonian":"Macedonian","mejs.malay":"Malay","mejs.maltese":"Maltese","mejs.norwegian":"Norwegian","mejs.persian":"Persian","mejs.polish":"Polish","mejs.portuguese":"Portuguese","mejs.romanian":"Romanian","mejs.russian":"Russian","mejs.serbian":"Serbian","mejs.slovak":"Slovak","mejs.slovenian":"Slovenian","mejs.spanish":"Spanish","mejs.swahili":"Swahili","mejs.swedish":"Swedish","mejs.tagalog":"Tagalog","mejs.thai":"Thai","mejs.turkish":"Turkish","mejs.ukrainian":"Ukrainian","mejs.vietnamese":"Vietnamese","mejs.welsh":"Welsh","mejs.yiddish":"Yiddish"}},{}],10:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=r(e(3)),a=r(e(7)),l=e(8),s=e(18),d=e(19),u=e(16),c=e(17),f={promise:null,load:function(e){return"undefined"!=typeof dashjs?f.promise=new Promise(function(e){e()}).then(function(){f._createPlayer(e)}):(e.options.path="string"==typeof e.options.path?e.options.path:"https://cdn.dashjs.org/latest/dash.all.min.js",f.promise=f.promise||(0,c.loadScript)(e.options.path),f.promise.then(function(){f._createPlayer(e)})),f.promise},_createPlayer:function(e){var t=dashjs.MediaPlayer().create();return o.default["__ready__"+e.id](t),t}},m={name:"native_dash",options:{prefix:"native_dash",dash:{path:"https://cdn.dashjs.org/latest/dash.all.min.js",debug:!1,drm:{},robustnessLevel:""}},canPlayType:function(e){return u.HAS_MSE&&["application/dash+xml"].indexOf(e.toLowerCase())>-1},create:function(e,t,n){var r=e.originalNode,d=e.id+"_"+t.prefix,u=r.autoplay,c=r.children,m=null,p=null;r.removeAttribute("type");for(var h=0,v=c.length;h<v;h++)c[h].removeAttribute("type");m=r.cloneNode(!0),t=Object.assign(t,e.options);for(var g=a.default.html5media.properties,y=a.default.html5media.events.concat(["click","mouseover","mouseout"]).filter(function(e){return"error"!==e}),E=function(t){var n=(0,s.createEvent)(t.type,e);e.dispatchEvent(n)},b=function(e){var n=""+e.substring(0,1).toUpperCase()+e.substring(1);m["get"+n]=function(){return null!==p?m[e]:null},m["set"+n]=function(n){if(-1===a.default.html5media.readOnlyProperties.indexOf(e))if("src"===e){var r="object"===(void 0===n?"undefined":i(n))&&n.src?n.src:n;if(m[e]=r,null!==p){p.reset();for(var o=0,l=y.length;o<l;o++)m.removeEventListener(y[o],E);p=f._createPlayer({options:t.dash,id:d}),n&&"object"===(void 0===n?"undefined":i(n))&&"object"===i(n.drm)&&(p.setProtectionData(n.drm),(0,s.isString)(t.dash.robustnessLevel)&&t.dash.robustnessLevel&&p.getProtectionController().setRobustnessLevel(t.dash.robustnessLevel)),p.attachSource(r),u&&p.play()}}else m[e]=n}},w=0,_=g.length;w<_;w++)b(g[w]);if(o.default["__ready__"+d]=function(n){e.dashPlayer=p=n;for(var r=dashjs.MediaPlayer.events,o=function(e){"loadedmetadata"===e&&(p.getDebug().setLogToBrowserConsole(t.dash.debug),p.initialize(),p.setScheduleWhilePaused(!1),p.setFastSwitchEnabled(!0),p.attachView(m),p.setAutoPlay(!1),"object"!==i(t.dash.drm)||a.default.Utils.isObjectEmpty(t.dash.drm)||(p.setProtectionData(t.dash.drm),(0,s.isString)(t.dash.robustnessLevel)&&t.dash.robustnessLevel&&p.getProtectionController().setRobustnessLevel(t.dash.robustnessLevel)),p.attachSource(m.getSrc())),m.addEventListener(e,E)},l=0,d=y.length;l<d;l++)o(y[l]);var u=function(t){if("error"===t.type.toLowerCase())e.generateError(t.message,m.src),console.error(t);else{var n=(0,s.createEvent)(t.type,e);n.data=t,e.dispatchEvent(n)}};for(var c in r)r.hasOwnProperty(c)&&p.on(r[c],function(e){return u(e)})},n&&n.length>0)for(var S=0,N=n.length;S<N;S++)if(l.renderer.renderers[t.prefix].canPlayType(n[S].type)){m.setAttribute("src",n[S].src),void 0!==n[S].drm&&(t.dash.drm=n[S].drm);break}m.setAttribute("id",d),r.parentNode.insertBefore(m,r),r.autoplay=!1,r.style.display="none",m.setSize=function(e,t){return m.style.width=e+"px",m.style.height=t+"px",m},m.hide=function(){return m.pause(),m.style.display="none",m},m.show=function(){return m.style.display="",m},m.destroy=function(){null!==p&&p.reset()};var j=(0,s.createEvent)("rendererready",m);return e.dispatchEvent(j),e.promises.push(f.load({options:t.dash,id:d})),m}};d.typeChecks.push(function(e){return~e.toLowerCase().indexOf(".mpd")?"application/dash+xml":null}),l.renderer.add(m)},{16:16,17:17,18:18,19:19,3:3,7:7,8:8}],11:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.PluginDetector=void 0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=r(e(3)),a=r(e(2)),l=r(e(7)),s=r(e(5)),d=e(8),u=e(18),c=e(16),f=e(19),m=n.PluginDetector={plugins:[],hasPluginVersion:function(e,t){var n=m.plugins[e];return t[1]=t[1]||0,t[2]=t[2]||0,n[0]>t[0]||n[0]===t[0]&&n[1]>t[1]||n[0]===t[0]&&n[1]===t[1]&&n[2]>=t[2]},addPlugin:function(e,t,n,r,i){m.plugins[e]=m.detectPlugin(t,n,r,i)},detectPlugin:function(e,t,n,r){var a=[0,0,0],l=void 0,s=void 0;if(null!==c.NAV.plugins&&void 0!==c.NAV.plugins&&"object"===i(c.NAV.plugins[e])){if((l=c.NAV.plugins[e].description)&&(void 0===c.NAV.mimeTypes||!c.NAV.mimeTypes[t]||c.NAV.mimeTypes[t].enabledPlugin))for(var d=0,u=(a=l.replace(e,"").replace(/^\s+/,"").replace(/\sr/gi,".").split(".")).length;d<u;d++)a[d]=parseInt(a[d].match(/\d+/),10)}else if(void 0!==o.default.ActiveXObject)try{(s=new ActiveXObject(n))&&(a=r(s))}catch(e){}return a}};m.addPlugin("flash","Shockwave Flash","application/x-shockwave-flash","ShockwaveFlash.ShockwaveFlash",function(e){var t=[],n=e.GetVariable("$version");return n&&(n=n.split(" ")[1].split(","),t=[parseInt(n[0],10),parseInt(n[1],10),parseInt(n[2],10)]),t});var p=function(e,t,n){var r={},i=!1;r.options=t,r.id=e.id+"_"+r.options.prefix,r.mediaElement=e,r.flashState={},r.flashApi=null,r.flashApiStack=[];for(var m=l.default.html5media.properties,p=function(e){r.flashState[e]=null;var t=""+e.substring(0,1).toUpperCase()+e.substring(1);r["get"+t]=function(){if(null!==r.flashApi){if("function"==typeof r.flashApi["get_"+e]){var t=r.flashApi["get_"+e]();return"buffered"===e?{start:function(){return 0},end:function(){return t},length:1}:t}return null}return null},r["set"+t]=function(t){if("src"===e&&(t=(0,f.absolutizeUrl)(t)),null!==r.flashApi&&void 0!==r.flashApi["set_"+e])try{r.flashApi["set_"+e](t)}catch(e){}else r.flashApiStack.push({type:"set",propName:e,value:t})}},h=0,v=m.length;h<v;h++)p(m[h]);var g=l.default.html5media.methods,y=function(e){r[e]=function(){if(i)if(null!==r.flashApi){if(r.flashApi["fire_"+e])try{r.flashApi["fire_"+e]()}catch(e){}}else r.flashApiStack.push({type:"call",methodName:e})}};g.push("stop");for(var E=0,b=g.length;E<b;E++)y(g[E]);for(var w=["rendererready"],_=0,S=w.length;_<S;_++){var N=(0,u.createEvent)(w[_],r);e.dispatchEvent(N)}o.default["__ready__"+r.id]=function(){if(r.flashReady=!0,r.flashApi=a.default.getElementById("__"+r.id),r.flashApiStack.length)for(var e=0,t=r.flashApiStack.length;e<t;e++){var n=r.flashApiStack[e];if("set"===n.type){var i=n.propName,o=""+i.substring(0,1).toUpperCase()+i.substring(1);r["set"+o](n.value)}else"call"===n.type&&r[n.methodName]()}},o.default["__event__"+r.id]=function(e,t){var n=(0,u.createEvent)(e,r);if(t)try{n.data=JSON.parse(t),n.details.data=JSON.parse(t)}catch(e){n.message=t}r.mediaElement.dispatchEvent(n)},r.flashWrapper=a.default.createElement("div"),-1===["always","sameDomain"].indexOf(r.options.shimScriptAccess)&&(r.options.shimScriptAccess="sameDomain");var j=e.originalNode.autoplay,A=["uid="+r.id,"autoplay="+j,"allowScriptAccess="+r.options.shimScriptAccess,"preload="+(e.originalNode.getAttribute("preload")||"")],T=null!==e.originalNode&&"video"===e.originalNode.tagName.toLowerCase(),F=T?e.originalNode.height:1,P=T?e.originalNode.width:1;e.originalNode.getAttribute("src")&&A.push("src="+e.originalNode.getAttribute("src")),!0===r.options.enablePseudoStreaming&&(A.push("pseudostreamstart="+r.options.pseudoStreamingStartQueryParam),A.push("pseudostreamtype="+r.options.pseudoStreamingType)),r.options.streamDelimiter&&A.push("streamdelimiter="+encodeURIComponent(r.options.streamDelimiter)),r.options.proxyType&&A.push("proxytype="+r.options.proxyType),e.appendChild(r.flashWrapper),e.originalNode.style.display="none";var x=[];if(c.IS_IE||c.IS_EDGE){var L=a.default.createElement("div");r.flashWrapper.appendChild(L),x=c.IS_EDGE?['type="application/x-shockwave-flash"','data="'+r.options.pluginPath+r.options.filename+'"','id="__'+r.id+'"','width="'+P+'"','height="'+F+"'\""]:['classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"','codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"','id="__'+r.id+'"','width="'+P+'"','height="'+F+'"'],T||x.push('style="clip: rect(0 0 0 0); position: absolute;"'),L.outerHTML="<object "+x.join(" ")+'><param name="movie" value="'+r.options.pluginPath+r.options.filename+"?x="+new Date+'" /><param name="flashvars" value="'+A.join("&amp;")+'" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="'+r.options.shimScriptAccess+'" /><param name="allowFullScreen" value="true" /><div>'+s.default.t("mejs.install-flash")+"</div></object>"}else x=['id="__'+r.id+'"','name="__'+r.id+'"','play="true"','loop="false"','quality="high"','bgcolor="#000000"','wmode="transparent"','allowScriptAccess="'+r.options.shimScriptAccess+'"','allowFullScreen="true"','type="application/x-shockwave-flash"','pluginspage="//www.macromedia.com/go/getflashplayer"','src="'+r.options.pluginPath+r.options.filename+'"','flashvars="'+A.join("&")+'"'],T?(x.push('width="'+P+'"'),x.push('height="'+F+'"')):x.push('style="position: fixed; left: -9999em; top: -9999em;"'),r.flashWrapper.innerHTML="<embed "+x.join(" ")+">";if(r.flashNode=r.flashWrapper.lastChild,r.hide=function(){i=!1,T&&(r.flashNode.style.display="none")},r.show=function(){i=!0,T&&(r.flashNode.style.display="")},r.setSize=function(e,t){r.flashNode.style.width=e+"px",r.flashNode.style.height=t+"px",null!==r.flashApi&&"function"==typeof r.flashApi.fire_setSize&&r.flashApi.fire_setSize(e,t)},r.destroy=function(){r.flashNode.remove()},n&&n.length>0)for(var O=0,C=n.length;O<C;O++)if(d.renderer.renderers[t.prefix].canPlayType(n[O].type)){r.setSrc(n[O].src);break}return r};if(m.hasPluginVersion("flash",[10,0,0])){f.typeChecks.push(function(e){return(e=e.toLowerCase()).startsWith("rtmp")?~e.indexOf(".mp3")?"audio/rtmp":"video/rtmp":/\.og(a|g)/i.test(e)?"audio/ogg":~e.indexOf(".m3u8")?"application/x-mpegURL":~e.indexOf(".mpd")?"application/dash+xml":~e.indexOf(".flv")?"video/flv":null});var h={name:"flash_video",options:{prefix:"flash_video",filename:"mediaelement-flash-video.swf",enablePseudoStreaming:!1,pseudoStreamingStartQueryParam:"start",pseudoStreamingType:"byte",proxyType:"",streamDelimiter:""},canPlayType:function(e){return~["video/mp4","video/rtmp","audio/rtmp","rtmp/mp4","audio/mp4","video/flv","video/x-flv"].indexOf(e.toLowerCase())},create:p};d.renderer.add(h);var v={name:"flash_hls",options:{prefix:"flash_hls",filename:"mediaelement-flash-video-hls.swf"},canPlayType:function(e){return~["application/x-mpegurl","application/vnd.apple.mpegurl","audio/mpegurl","audio/hls","video/hls"].indexOf(e.toLowerCase())},create:p};d.renderer.add(v);var g={name:"flash_dash",options:{prefix:"flash_dash",filename:"mediaelement-flash-video-mdash.swf"},canPlayType:function(e){return~["application/dash+xml"].indexOf(e.toLowerCase())},create:p};d.renderer.add(g);var y={name:"flash_audio",options:{prefix:"flash_audio",filename:"mediaelement-flash-audio.swf"},canPlayType:function(e){return~["audio/mp3"].indexOf(e.toLowerCase())},create:p};d.renderer.add(y);var E={name:"flash_audio_ogg",options:{prefix:"flash_audio_ogg",filename:"mediaelement-flash-audio-ogg.swf"},canPlayType:function(e){return~["audio/ogg","audio/oga","audio/ogv"].indexOf(e.toLowerCase())},create:p};d.renderer.add(E)}},{16:16,18:18,19:19,2:2,3:3,5:5,7:7,8:8}],12:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=r(e(3)),a=r(e(7)),l=e(8),s=e(18),d=e(16),u=e(19),c=e(17),f={promise:null,load:function(e){return"undefined"!=typeof flvjs?f.promise=new Promise(function(e){e()}).then(function(){f._createPlayer(e)}):(e.options.path="string"==typeof e.options.path?e.options.path:"https://cdn.jsdelivr.net/npm/flv.js@latest",f.promise=f.promise||(0,c.loadScript)(e.options.path),f.promise.then(function(){f._createPlayer(e)})),f.promise},_createPlayer:function(e){flvjs.LoggingControl.enableDebug=e.options.debug,flvjs.LoggingControl.enableVerbose=e.options.debug;var t=flvjs.createPlayer(e.options,e.configs);return o.default["__ready__"+e.id](t),t}},m={name:"native_flv",options:{prefix:"native_flv",flv:{path:"https://cdn.jsdelivr.net/npm/flv.js@latest",cors:!0,debug:!1}},canPlayType:function(e){return d.HAS_MSE&&["video/x-flv","video/flv"].indexOf(e.toLowerCase())>-1},create:function(e,t,n){var r=e.originalNode,d=e.id+"_"+t.prefix,u=null,c=null;u=r.cloneNode(!0),t=Object.assign(t,e.options);for(var m=a.default.html5media.properties,p=a.default.html5media.events.concat(["click","mouseover","mouseout"]).filter(function(e){return"error"!==e}),h=function(t){var n=(0,s.createEvent)(t.type,e);e.dispatchEvent(n)},v=function(e){var n=""+e.substring(0,1).toUpperCase()+e.substring(1);u["get"+n]=function(){return null!==c?u[e]:null},u["set"+n]=function(n){if(-1===a.default.html5media.readOnlyProperties.indexOf(e))if("src"===e){if(u[e]="object"===(void 0===n?"undefined":i(n))&&n.src?n.src:n,null!==c){var r={};r.type="flv",r.url=n,r.cors=t.flv.cors,r.debug=t.flv.debug,r.path=t.flv.path;var o=t.flv.configs;c.destroy();for(var l=0,s=p.length;l<s;l++)u.removeEventListener(p[l],h);(c=f._createPlayer({options:r,configs:o,id:d})).attachMediaElement(u),c.load()}}else u[e]=n}},g=0,y=m.length;g<y;g++)v(m[g]);if(o.default["__ready__"+d]=function(t){e.flvPlayer=c=t;for(var n=flvjs.Events,r=function(e){"loadedmetadata"===e&&(c.unload(),c.detachMediaElement(),c.attachMediaElement(u),c.load()),u.addEventListener(e,h)},i=0,o=p.length;i<o;i++)r(p[i]);var a=function(t){n.hasOwnProperty(t)&&c.on(n[t],function(){for(var r=arguments.length,i=Array(r),o=0;o<r;o++)i[o]=arguments[o];return function(t,n){if("error"===t){var r=n[0]+": "+n[1]+" "+n[2].msg;e.generateError(r,u.src)}else{var i=(0,s.createEvent)(t,e);i.data=n,e.dispatchEvent(i)}}(n[t],i)})};for(var l in n)a(l)},n&&n.length>0)for(var E=0,b=n.length;E<b;E++)if(l.renderer.renderers[t.prefix].canPlayType(n[E].type)){u.setAttribute("src",n[E].src);break}u.setAttribute("id",d),r.parentNode.insertBefore(u,r),r.autoplay=!1,r.style.display="none";var w={};w.type="flv",w.url=u.src,w.cors=t.flv.cors,w.debug=t.flv.debug,w.path=t.flv.path;var _=t.flv.configs;u.setSize=function(e,t){return u.style.width=e+"px",u.style.height=t+"px",u},u.hide=function(){return null!==c&&c.pause(),u.style.display="none",u},u.show=function(){return u.style.display="",u},u.destroy=function(){null!==c&&c.destroy()};var S=(0,s.createEvent)("rendererready",u);return e.dispatchEvent(S),e.promises.push(f.load({options:w,configs:_,id:d})),u}};u.typeChecks.push(function(e){return~e.toLowerCase().indexOf(".flv")?"video/flv":null}),l.renderer.add(m)},{16:16,17:17,18:18,19:19,3:3,7:7,8:8}],13:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=r(e(3)),a=r(e(7)),l=e(8),s=e(18),d=e(16),u=e(19),c=e(17),f={promise:null,load:function(e){return"undefined"!=typeof Hls?f.promise=new Promise(function(e){e()}).then(function(){f._createPlayer(e)}):(e.options.path="string"==typeof e.options.path?e.options.path:"https://cdn.jsdelivr.net/npm/hls.js@latest",f.promise=f.promise||(0,c.loadScript)(e.options.path),f.promise.then(function(){f._createPlayer(e)})),f.promise},_createPlayer:function(e){var t=new Hls(e.options);return o.default["__ready__"+e.id](t),t}},m={name:"native_hls",options:{prefix:"native_hls",hls:{path:"https://cdn.jsdelivr.net/npm/hls.js@latest",autoStartLoad:!1,debug:!1}},canPlayType:function(e){return d.HAS_MSE&&["application/x-mpegurl","application/vnd.apple.mpegurl","audio/mpegurl","audio/hls","video/hls"].indexOf(e.toLowerCase())>-1},create:function(e,t,n){var r=e.originalNode,d=e.id+"_"+t.prefix,u=r.getAttribute("preload"),c=r.autoplay,m=null,p=null,h=0,v=n.length;p=r.cloneNode(!0),(t=Object.assign(t,e.options)).hls.autoStartLoad=u&&"none"!==u||c;for(var g=a.default.html5media.properties,y=a.default.html5media.events.concat(["click","mouseover","mouseout"]).filter(function(e){return"error"!==e}),E=function(t){var n=(0,s.createEvent)(t.type,e);e.dispatchEvent(n)},b=function(e){var n=""+e.substring(0,1).toUpperCase()+e.substring(1);p["get"+n]=function(){return null!==m?p[e]:null},p["set"+n]=function(n){if(-1===a.default.html5media.readOnlyProperties.indexOf(e))if("src"===e){if(p[e]="object"===(void 0===n?"undefined":i(n))&&n.src?n.src:n,null!==m){m.destroy();for(var r=0,o=y.length;r<o;r++)p.removeEventListener(y[r],E);(m=f._createPlayer({options:t.hls,id:d})).loadSource(n),m.attachMedia(p)}}else p[e]=n}},w=0,_=g.length;w<_;w++)b(g[w]);if(o.default["__ready__"+d]=function(t){e.hlsPlayer=m=t;for(var r=Hls.Events,i=function(t){if("loadedmetadata"===t){var n=e.originalNode.src;m.detachMedia(),m.loadSource(n),m.attachMedia(p)}p.addEventListener(t,E)},o=0,a=y.length;o<a;o++)i(y[o]);var l=void 0,d=void 0,u=function(t){r.hasOwnProperty(t)&&m.on(r[t],function(){for(var i=arguments.length,o=Array(i),a=0;a<i;a++)o[a]=arguments[a];return function(t,r){if("hlsError"===t){if(console.warn(r),(r=r[1]).fatal)switch(r.type){case"mediaError":var i=(new Date).getTime();if(!l||i-l>3e3)l=(new Date).getTime(),m.recoverMediaError();else if(!d||i-d>3e3)d=(new Date).getTime(),console.warn("Attempting to swap Audio Codec and recover from media error"),m.swapAudioCodec(),m.recoverMediaError();else{var o="Cannot recover, last media error recovery failed";e.generateError(o,p.src),console.error(o)}break;case"networkError":"manifestLoadError"===r.details&&h<v&&void 0!==n[h+1]?(p.setSrc(n[h++].src),p.load(),p.play()):(e.generateError("Network error",n),console.error("Network error"));break;default:m.destroy()}}else{var a=(0,s.createEvent)(t,e);a.data=r,e.dispatchEvent(a)}}(r[t],o)})};for(var c in r)u(c)},v>0)for(;h<v;h++)if(l.renderer.renderers[t.prefix].canPlayType(n[h].type)){p.setAttribute("src",n[h].src);break}"auto"===u||c||(p.addEventListener("play",function(){null!==m&&m.startLoad()}),p.addEventListener("pause",function(){null!==m&&m.stopLoad()})),p.setAttribute("id",d),r.parentNode.insertBefore(p,r),r.autoplay=!1,r.style.display="none",p.setSize=function(e,t){return p.style.width=e+"px",p.style.height=t+"px",p},p.hide=function(){return p.pause(),p.style.display="none",p},p.show=function(){return p.style.display="",p},p.destroy=function(){null!==m&&(m.stopLoad(),m.destroy())};var S=(0,s.createEvent)("rendererready",p);return e.dispatchEvent(S),e.promises.push(f.load({options:t.hls,id:d})),p}};u.typeChecks.push(function(e){return~e.toLowerCase().indexOf(".m3u8")?"application/x-mpegURL":null}),l.renderer.add(m)},{16:16,17:17,18:18,19:19,3:3,7:7,8:8}],14:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=r(e(3)),o=r(e(2)),a=r(e(7)),l=e(8),s=e(18),d=e(16),u={name:"html5",options:{prefix:"html5"},canPlayType:function(e){var t=o.default.createElement("video");return d.IS_ANDROID&&/\/mp(3|4)$/i.test(e)||~["application/x-mpegurl","vnd.apple.mpegurl","audio/mpegurl","audio/hls","video/hls"].indexOf(e.toLowerCase())&&d.SUPPORTS_NATIVE_HLS?"yes":t.canPlayType?t.canPlayType(e.toLowerCase()).replace(/no/,""):""},create:function(e,t,n){var r=e.id+"_"+t.prefix,i=!1,d=null;void 0===e.originalNode||null===e.originalNode?(d=o.default.createElement("audio"),e.appendChild(d)):d=e.originalNode,d.setAttribute("id",r);for(var u=a.default.html5media.properties,c=function(e){var t=""+e.substring(0,1).toUpperCase()+e.substring(1);d["get"+t]=function(){return d[e]},d["set"+t]=function(t){-1===a.default.html5media.readOnlyProperties.indexOf(e)&&(d[e]=t)}},f=0,m=u.length;f<m;f++)c(u[f]);for(var p=a.default.html5media.events.concat(["click","mouseover","mouseout"]).filter(function(e){return"error"!==e}),h=function(t){d.addEventListener(t,function(t){if(i){var n=(0,s.createEvent)(t.type,t.target);e.dispatchEvent(n)}})},v=0,g=p.length;v<g;v++)h(p[v]);d.setSize=function(e,t){return d.style.width=e+"px",d.style.height=t+"px",d},d.hide=function(){return i=!1,d.style.display="none",d},d.show=function(){return i=!0,d.style.display="",d};var y=0,E=n.length;if(E>0)for(;y<E;y++)if(l.renderer.renderers[t.prefix].canPlayType(n[y].type)){d.setAttribute("src",n[y].src);break}d.addEventListener("error",function(t){4===t.target.error.code&&i&&(y<E&&void 0!==n[y+1]?(d.src=n[y++].src,d.load(),d.play()):e.generateError("Media error: Format(s) not supported or source(s) not found",n))});var b=(0,s.createEvent)("rendererready",d);return e.dispatchEvent(b),d}};i.default.HtmlMediaElement=a.default.HtmlMediaElement=u,l.renderer.add(u)},{16:16,18:18,2:2,3:3,7:7,8:8}],15:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=r(e(3)),o=r(e(2)),a=r(e(7)),l=e(8),s=e(18),d=e(19),u=e(17),c={isIframeStarted:!1,isIframeLoaded:!1,iframeQueue:[],enqueueIframe:function(e){c.isLoaded="undefined"!=typeof YT&&YT.loaded,c.isLoaded?c.createIframe(e):(c.loadIframeApi(),c.iframeQueue.push(e))},loadIframeApi:function(){c.isIframeStarted||((0,u.loadScript)("https://www.youtube.com/player_api"),c.isIframeStarted=!0)},iFrameReady:function(){for(c.isLoaded=!0,c.isIframeLoaded=!0;c.iframeQueue.length>0;){var e=c.iframeQueue.pop();c.createIframe(e)}},createIframe:function(e){return new YT.Player(e.containerId,e)},getYouTubeId:function(e){var t="";e.indexOf("?")>0?""===(t=c.getYouTubeIdFromParam(e))&&(t=c.getYouTubeIdFromUrl(e)):t=c.getYouTubeIdFromUrl(e);return(t=t.substring(t.lastIndexOf("/")+1).split("?"))[0]},getYouTubeIdFromParam:function(e){if(void 0===e||null===e||!e.trim().length)return null;for(var t=e.split("?")[1].split("&"),n="",r=0,i=t.length;r<i;r++){var o=t[r].split("=");if("v"===o[0]){n=o[1];break}}return n},getYouTubeIdFromUrl:function(e){if(void 0===e||null===e||!e.trim().length)return null;return(e=e.split("?")[0]).substring(e.lastIndexOf("/")+1)},getYouTubeNoCookieUrl:function(e){if(void 0===e||null===e||!e.trim().length||-1===e.indexOf("//www.youtube"))return e;var t=e.split("/");return t[2]=t[2].replace(".com","-nocookie.com"),t.join("/")}},f={name:"youtube_iframe",options:{prefix:"youtube_iframe",youtube:{autoplay:0,controls:0,disablekb:1,end:0,loop:0,modestbranding:0,playsinline:0,rel:0,showinfo:0,start:0,iv_load_policy:3,nocookie:!1,imageQuality:null}},canPlayType:function(e){return~["video/youtube","video/x-youtube"].indexOf(e.toLowerCase())},create:function(e,t,n){var r={},l=[],d=null,u=!0,f=!1,m=null;r.options=t,r.id=e.id+"_"+t.prefix,r.mediaElement=e;for(var p=a.default.html5media.properties,h=function(t){var n=""+t.substring(0,1).toUpperCase()+t.substring(1);r["get"+n]=function(){if(null!==d){switch(t){case"currentTime":return d.getCurrentTime();case"duration":return d.getDuration();case"volume":return d.getVolume()/100;case"paused":return u;case"ended":return f;case"muted":return d.isMuted();case"buffered":var e=d.getVideoLoadedFraction(),n=d.getDuration();return{start:function(){return 0},end:function(){return e*n},length:1};case"src":return d.getVideoUrl();case"readyState":return 4}return null}return null},r["set"+n]=function(n){if(null!==d)switch(t){case"src":var i="string"==typeof n?n:n[0].src,o=c.getYouTubeId(i);e.originalNode.autoplay?d.loadVideoById(o):d.cueVideoById(o);break;case"currentTime":d.seekTo(n);break;case"muted":n?d.mute():d.unMute(),setTimeout(function(){var t=(0,s.createEvent)("volumechange",r);e.dispatchEvent(t)},50);break;case"volume":n,d.setVolume(100*n),setTimeout(function(){var t=(0,s.createEvent)("volumechange",r);e.dispatchEvent(t)},50);break;case"readyState":var a=(0,s.createEvent)("canplay",r);e.dispatchEvent(a)}else l.push({type:"set",propName:t,value:n})}},v=0,g=p.length;v<g;v++)h(p[v]);for(var y=a.default.html5media.methods,E=function(e){r[e]=function(){if(null!==d)switch(e){case"play":return u=!1,d.playVideo();case"pause":return u=!0,d.pauseVideo();case"load":return null}else l.push({type:"call",methodName:e})}},b=0,w=y.length;b<w;b++)E(y[b]);var _=o.default.createElement("div");_.id=r.id,r.options.youtube.nocookie&&(e.originalNode.src=c.getYouTubeNoCookieUrl(n[0].src)),e.originalNode.parentNode.insertBefore(_,e.originalNode),e.originalNode.style.display="none";var S="audio"===e.originalNode.tagName.toLowerCase(),N=S?"1":e.originalNode.height,j=S?"1":e.originalNode.width,A=c.getYouTubeId(n[0].src),T={id:r.id,containerId:_.id,videoId:A,height:N,width:j,playerVars:Object.assign({controls:0,rel:0,disablekb:1,showinfo:0,modestbranding:0,html5:1,iv_load_policy:3},r.options.youtube),origin:i.default.location.host,events:{onReady:function(t){if(e.youTubeApi=d=t.target,e.youTubeState={paused:!0,ended:!1},l.length)for(var n=0,i=l.length;n<i;n++){var o=l[n];if("set"===o.type){var a=o.propName,u=""+a.substring(0,1).toUpperCase()+a.substring(1);r["set"+u](o.value)}else"call"===o.type&&r[o.methodName]()}m=d.getIframe(),e.originalNode.muted&&d.mute();for(var c=["mouseover","mouseout"],f=function(t){var n=(0,s.createEvent)(t.type,r);e.dispatchEvent(n)},p=0,h=c.length;p<h;p++)m.addEventListener(c[p],f,!1);for(var v=["rendererready","loadedmetadata","loadeddata","canplay"],g=0,y=v.length;g<y;g++){var E=(0,s.createEvent)(v[g],r);e.dispatchEvent(E)}},onStateChange:function(t){var n=[];switch(t.data){case-1:n=["loadedmetadata"],u=!0,f=!1;break;case 0:n=["ended"],u=!1,f=!r.options.youtube.loop,r.options.youtube.loop||r.stopInterval();break;case 1:n=["play","playing"],u=!1,f=!1,r.startInterval();break;case 2:n=["pause"],u=!0,f=!1,r.stopInterval();break;case 3:n=["progress"],f=!1;break;case 5:n=["loadeddata","loadedmetadata","canplay"],u=!0,f=!1}for(var i=0,o=n.length;i<o;i++){var a=(0,s.createEvent)(n[i],r);e.dispatchEvent(a)}},onError:function(t){return function(t){var r="";switch(t.data){case 2:r="The request contains an invalid parameter value. Verify that video ID has 11 characters and that contains no invalid characters, such as exclamation points or asterisks.";break;case 5:r="The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.";break;case 100:r="The video requested was not found. Either video has been removed or has been marked as private.";break;case 101:case 105:r="The owner of the requested video does not allow it to be played in embedded players.";break;default:r="Unknown error."}e.generateError("Code "+t.data+": "+r,n)}(t)}}};return(S||e.originalNode.hasAttribute("playsinline"))&&(T.playerVars.playsinline=1),e.originalNode.controls&&(T.playerVars.controls=1),e.originalNode.autoplay&&(T.playerVars.autoplay=1),e.originalNode.loop&&(T.playerVars.loop=1),(T.playerVars.loop&&1===parseInt(T.playerVars.loop,10)||e.originalNode.src.indexOf("loop=")>-1)&&!T.playerVars.playlist&&-1===e.originalNode.src.indexOf("playlist=")&&(T.playerVars.playlist=c.getYouTubeId(e.originalNode.src)),c.enqueueIframe(T),r.onEvent=function(t,n,r){null!==r&&void 0!==r&&(e.youTubeState=r)},r.setSize=function(e,t){null!==d&&d.setSize(e,t)},r.hide=function(){r.stopInterval(),r.pause(),m&&(m.style.display="none")},r.show=function(){m&&(m.style.display="")},r.destroy=function(){d.destroy()},r.interval=null,r.startInterval=function(){r.interval=setInterval(function(){var t=(0,s.createEvent)("timeupdate",r);e.dispatchEvent(t)},250)},r.stopInterval=function(){r.interval&&clearInterval(r.interval)},r.getPosterUrl=function(){var n=t.youtube.imageQuality,r=c.getYouTubeId(e.originalNode.src);return n&&["default","hqdefault","mqdefault","sddefault","maxresdefault"].indexOf(n)>-1&&r?"https://img.youtube.com/vi/"+r+"/"+n+".jpg":""},r}};i.default.onYouTubePlayerAPIReady=function(){c.iFrameReady()},d.typeChecks.push(function(e){return/\/\/(www\.youtube|youtu\.?be)/i.test(e)?"video/x-youtube":null}),l.renderer.add(f)},{17:17,18:18,19:19,2:2,3:3,7:7,8:8}],16:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.cancelFullScreen=n.requestFullScreen=n.isFullScreen=n.FULLSCREEN_EVENT_NAME=n.HAS_NATIVE_FULLSCREEN_ENABLED=n.HAS_TRUE_NATIVE_FULLSCREEN=n.HAS_IOS_FULLSCREEN=n.HAS_MS_NATIVE_FULLSCREEN=n.HAS_MOZ_NATIVE_FULLSCREEN=n.HAS_WEBKIT_NATIVE_FULLSCREEN=n.HAS_NATIVE_FULLSCREEN=n.SUPPORTS_NATIVE_HLS=n.SUPPORT_PASSIVE_EVENT=n.SUPPORT_POINTER_EVENTS=n.HAS_MSE=n.IS_STOCK_ANDROID=n.IS_SAFARI=n.IS_FIREFOX=n.IS_CHROME=n.IS_EDGE=n.IS_IE=n.IS_ANDROID=n.IS_IOS=n.IS_IPOD=n.IS_IPHONE=n.IS_IPAD=n.UA=n.NAV=void 0;for(var i=r(e(3)),o=r(e(2)),a=r(e(7)),l=n.NAV=i.default.navigator,s=n.UA=l.userAgent.toLowerCase(),d=n.IS_IPAD=/ipad/i.test(s)&&!i.default.MSStream,u=n.IS_IPHONE=/iphone/i.test(s)&&!i.default.MSStream,c=n.IS_IPOD=/ipod/i.test(s)&&!i.default.MSStream,f=(n.IS_IOS=/ipad|iphone|ipod/i.test(s)&&!i.default.MSStream,n.IS_ANDROID=/android/i.test(s)),m=n.IS_IE=/(trident|microsoft)/i.test(l.appName),p=(n.IS_EDGE="msLaunchUri"in l&&!("documentMode"in o.default)),h=n.IS_CHROME=/chrome/i.test(s),v=n.IS_FIREFOX=/firefox/i.test(s),g=n.IS_SAFARI=/safari/i.test(s)&&!h,y=n.IS_STOCK_ANDROID=/^mozilla\/\d+\.\d+\s\(linux;\su;/i.test(s),E=(n.HAS_MSE="MediaSource"in i.default),b=n.SUPPORT_POINTER_EVENTS=function(){var e=o.default.createElement("x"),t=o.default.documentElement,n=i.default.getComputedStyle;if(!("pointerEvents"in e.style))return!1;e.style.pointerEvents="auto",e.style.pointerEvents="x",t.appendChild(e);var r=n&&"auto"===n(e,"").pointerEvents;return e.remove(),!!r}(),w=n.SUPPORT_PASSIVE_EVENT=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});i.default.addEventListener("test",null,t)}catch(e){}return e}(),_=["source","track","audio","video"],S=void 0,N=0,j=_.length;N<j;N++)S=o.default.createElement(_[N]);var A=n.SUPPORTS_NATIVE_HLS=g||f&&(h||y)||m&&/edge/i.test(s),T=void 0!==S.webkitEnterFullscreen,F=void 0!==S.requestFullscreen;T&&/mac os x 10_5/i.test(s)&&(F=!1,T=!1);var P=void 0!==S.webkitRequestFullScreen,x=void 0!==S.mozRequestFullScreen,L=void 0!==S.msRequestFullscreen,O=P||x||L,C=O,I="",k=void 0,U=void 0,M=void 0;x?C=o.default.mozFullScreenEnabled:L&&(C=o.default.msFullscreenEnabled),h&&(T=!1),O&&(P?I="webkitfullscreenchange":x?I="mozfullscreenchange":L&&(I="MSFullscreenChange"),n.isFullScreen=k=function(){return x?o.default.mozFullScreen:P?o.default.webkitIsFullScreen:L?null!==o.default.msFullscreenElement:void 0},n.requestFullScreen=U=function(e){P?e.webkitRequestFullScreen():x?e.mozRequestFullScreen():L&&e.msRequestFullscreen()},n.cancelFullScreen=M=function(){P?o.default.webkitCancelFullScreen():x?o.default.mozCancelFullScreen():L&&o.default.msExitFullscreen()});var R=n.HAS_NATIVE_FULLSCREEN=F,V=n.HAS_WEBKIT_NATIVE_FULLSCREEN=P,D=n.HAS_MOZ_NATIVE_FULLSCREEN=x,H=n.HAS_MS_NATIVE_FULLSCREEN=L,q=n.HAS_IOS_FULLSCREEN=T,z=n.HAS_TRUE_NATIVE_FULLSCREEN=O,B=n.HAS_NATIVE_FULLSCREEN_ENABLED=C,Y=n.FULLSCREEN_EVENT_NAME=I;n.isFullScreen=k,n.requestFullScreen=U,n.cancelFullScreen=M,a.default.Features=a.default.Features||{},a.default.Features.isiPad=d,a.default.Features.isiPod=c,a.default.Features.isiPhone=u,a.default.Features.isiOS=a.default.Features.isiPhone||a.default.Features.isiPad,a.default.Features.isAndroid=f,a.default.Features.isIE=m,a.default.Features.isEdge=p,a.default.Features.isChrome=h,a.default.Features.isFirefox=v,a.default.Features.isSafari=g,a.default.Features.isStockAndroid=y,a.default.Features.hasMSE=E,a.default.Features.supportsNativeHLS=A,a.default.Features.supportsPointerEvents=b,a.default.Features.supportsPassiveEvent=w,a.default.Features.hasiOSFullScreen=q,a.default.Features.hasNativeFullscreen=R,a.default.Features.hasWebkitNativeFullScreen=V,a.default.Features.hasMozNativeFullScreen=D,a.default.Features.hasMsNativeFullScreen=H,a.default.Features.hasTrueNativeFullScreen=z,a.default.Features.nativeFullScreenEnabled=B,a.default.Features.fullScreenEventName=Y,a.default.Features.isFullScreen=k,a.default.Features.requestFullScreen=U,a.default.Features.cancelFullScreen=M},{2:2,3:3,7:7}],17:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return new Promise(function(t,n){var r=m.default.createElement("script");r.src=e,r.async=!0,r.onload=function(){r.remove(),t()},r.onerror=function(){r.remove(),n()},m.default.head.appendChild(r)})}function o(e){var t=e.getBoundingClientRect(),n=f.default.pageXOffset||m.default.documentElement.scrollLeft,r=f.default.pageYOffset||m.default.documentElement.scrollTop;return{top:t.top+r,left:t.left+n}}function a(e,t){y(e,t)?b(e,t):E(e,t)}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:400,n=arguments[2];e.style.opacity||(e.style.opacity=1);var r=null;f.default.requestAnimationFrame(function i(o){var a=o-(r=r||o),l=parseFloat(1-a/t,2);e.style.opacity=l<0?0:l,a>t?n&&"function"==typeof n&&n():f.default.requestAnimationFrame(i)})}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:400,n=arguments[2];e.style.opacity||(e.style.opacity=0);var r=null;f.default.requestAnimationFrame(function i(o){var a=o-(r=r||o),l=parseFloat(a/t,2);e.style.opacity=l>1?1:l,a>t?n&&"function"==typeof n&&n():f.default.requestAnimationFrame(i)})}function d(e,t){var n=[];e=e.parentNode.firstChild;do{t&&!t(e)||n.push(e)}while(e=e.nextSibling);return n}function u(e){return void 0!==e.getClientRects&&"function"===e.getClientRects?!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length):!(!e.offsetWidth&&!e.offsetHeight)}function c(e,t,n,r){var i=f.default.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),o="application/x-www-form-urlencoded; charset=UTF-8",a=!1,l="*/".concat("*");switch(t){case"text":o="text/plain";break;case"json":o="application/json, text/javascript";break;case"html":o="text/html";break;case"xml":o="application/xml, text/xml"}"application/x-www-form-urlencoded"!==o&&(l=o+", */*; q=0.01"),i&&(i.open("GET",e,!0),i.setRequestHeader("Accept",l),i.onreadystatechange=function(){if(!a&&4===i.readyState)if(200===i.status){a=!0;var e=void 0;switch(t){case"json":e=JSON.parse(i.responseText);break;case"xml":e=i.responseXML;break;default:e=i.responseText}n(e)}else"function"==typeof r&&r(i.status)},i.send())}Object.defineProperty(n,"__esModule",{value:!0}),n.removeClass=n.addClass=n.hasClass=void 0,n.loadScript=i,n.offset=o,n.toggleClass=a,n.fadeOut=l,n.fadeIn=s,n.siblings=d,n.visible=u,n.ajax=c;var f=r(e(3)),m=r(e(2)),p=r(e(7)),h=void 0,v=void 0,g=void 0;"classList"in m.default.documentElement?(h=function(e,t){return void 0!==e.classList&&e.classList.contains(t)},v=function(e,t){return e.classList.add(t)},g=function(e,t){return e.classList.remove(t)}):(h=function(e,t){return new RegExp("\\b"+t+"\\b").test(e.className)},v=function(e,t){y(e,t)||(e.className+=" "+t)},g=function(e,t){e.className=e.className.replace(new RegExp("\\b"+t+"\\b","g"),"")});var y=n.hasClass=h,E=n.addClass=v,b=n.removeClass=g;p.default.Utils=p.default.Utils||{},p.default.Utils.offset=o,p.default.Utils.hasClass=y,p.default.Utils.addClass=E,p.default.Utils.removeClass=b,p.default.Utils.toggleClass=a,p.default.Utils.fadeIn=s,p.default.Utils.fadeOut=l,p.default.Utils.siblings=d,p.default.Utils.visible=u,p.default.Utils.ajax=c,p.default.Utils.loadScript=i},{2:2,3:3,7:7}],18:[function(e,t,n){"use strict";function r(e){if("string"!=typeof e)throw new Error("Argument passed must be a string");var t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};return e.replace(/[&<>"]/g,function(e){return t[e]})}function i(e,t){var n=this,r=arguments,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("function"!=typeof e)throw new Error("First argument must be a function");if("number"!=typeof t)throw new Error("Second argument must be a numeric value");var o=void 0;return function(){var a=n,l=r,s=i&&!o;clearTimeout(o),o=setTimeout(function(){o=null,i||e.apply(a,l)},t),s&&e.apply(a,l)}}function o(e){return Object.getOwnPropertyNames(e).length<=0}function a(e,t){var n=/^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/,r={d:[],w:[]};return(e||"").split(" ").forEach(function(e){var i=e+(t?"."+t:"");i.startsWith(".")?(r.d.push(i),r.w.push(i)):r[n.test(e)?"w":"d"].push(i)}),r.d=r.d.join(" "),r.w=r.w.join(" "),r}function l(e,t){if("string"!=typeof e)throw new Error("Event name must be a string");var n=e.match(/([a-z]+\.([a-z]+))/i),r={target:t};return null!==n&&(e=n[1],r.namespace=n[2]),new window.CustomEvent(e,{detail:r})}function s(e,t){return!!(e&&t&&2&e.compareDocumentPosition(t))}function d(e){return"string"==typeof e}Object.defineProperty(n,"__esModule",{value:!0}),n.escapeHTML=r,n.debounce=i,n.isObjectEmpty=o,n.splitEvents=a,n.createEvent=l,n.isNodeAfter=s,n.isString=d;var u=function(e){return e&&e.__esModule?e:{default:e}}(e(7));u.default.Utils=u.default.Utils||{},u.default.Utils.escapeHTML=r,u.default.Utils.debounce=i,u.default.Utils.isObjectEmpty=o,u.default.Utils.splitEvents=a,u.default.Utils.createEvent=l,u.default.Utils.isNodeAfter=s,u.default.Utils.isString=d},{7:7}],19:[function(e,t,n){"use strict";function r(e){if("string"!=typeof e)throw new Error("`url` argument must be a string");var t=document.createElement("div");return t.innerHTML='<a href="'+(0,u.escapeHTML)(e)+'">x</a>',t.firstChild.href}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e&&!t?a(e):t}function o(e){if("string"!=typeof e)throw new Error("`type` argument must be a string");return e&&e.indexOf(";")>-1?e.substr(0,e.indexOf(";")):e}function a(e){if("string"!=typeof e)throw new Error("`url` argument must be a string");for(var t=0,n=c.length;t<n;t++){var r=c[t](e);if(r)return r}var i=s(l(e)),o="video/mp4";return i&&(~["mp4","m4v","ogg","ogv","webm","flv","mpeg","mov"].indexOf(i)?o="video/"+i:~["mp3","oga","wav","mid","midi"].indexOf(i)&&(o="audio/"+i)),o}function l(e){if("string"!=typeof e)throw new Error("`url` argument must be a string");var t=e.split("?")[0].split("\\").pop().split("/").pop();return~t.indexOf(".")?t.substring(t.lastIndexOf(".")+1):""}function s(e){if("string"!=typeof e)throw new Error("`extension` argument must be a string");switch(e){case"mp4":case"m4v":return"mp4";case"webm":case"webma":case"webmv":return"webm";case"ogg":case"oga":case"ogv":return"ogg";default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.typeChecks=void 0,n.absolutizeUrl=r,n.formatType=i,n.getMimeFromType=o,n.getTypeFromFile=a,n.getExtension=l,n.normalizeExtension=s;var d=function(e){return e&&e.__esModule?e:{default:e}}(e(7)),u=e(18),c=n.typeChecks=[];d.default.Utils=d.default.Utils||{},d.default.Utils.typeChecks=c,d.default.Utils.absolutizeUrl=r,d.default.Utils.formatType=i,d.default.Utils.getMimeFromType=o,d.default.Utils.getTypeFromFile=a,d.default.Utils.getExtension=l,d.default.Utils.normalizeExtension=s},{18:18,7:7}],20:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=r(e(2)),o=r(e(4));if([Element.prototype,CharacterData.prototype,DocumentType.prototype].forEach(function(e){e.hasOwnProperty("remove")||Object.defineProperty(e,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){this.parentNode.removeChild(this)}})}),function(){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=i.default.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}if("function"==typeof window.CustomEvent)return!1;e.prototype=window.Event.prototype,window.CustomEvent=e}(),"function"!=typeof Object.assign&&(Object.assign=function(e){if(null===e||void 0===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1,r=arguments.length;n<r;n++){var i=arguments[n];if(null!==i)for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(t[o]=i[o])}return t}),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}),Element.prototype.matches||(Element.prototype.matches=Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector||function(e){for(var t=(this.document||this.ownerDocument).querySelectorAll(e),n=t.length-1;--n>=0&&t.item(n)!==this;);return n>-1}),window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t=(this.document||this.ownerDocument).querySelectorAll(e),n=void 0,r=this;do{for(n=t.length;--n>=0&&t.item(n)!==r;);}while(n<0&&(r=r.parentElement));return r}),function(){for(var e=0,t=["ms","moz","webkit","o"],n=0;n<t.length&&!window.requestAnimationFrame;++n)window.requestAnimationFrame=window[t[n]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[t[n]+"CancelAnimationFrame"]||window[t[n]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var n=(new Date).getTime(),r=Math.max(0,16-(n-e)),i=window.setTimeout(function(){t(n+r)},r);return e=n+r,i}),window.cancelA