(function(){
var licenseJsId = "ulizahtml5-license-JS";
removeLicenseJs();
/* プレイヤーと親scriptを一対一で紐付けるため、
このタイミングでPlayerTagと同様のidを親scriptに振ります。*/
var curScripts = document.getElementsByTagName('script');
var firstScript;
for (var i = 0; i < curScripts.length; i++) {
var src = curScripts[i].src;
if (src && src.match(/uliza\.jp\/IF\/RequestVideoTag\.aspx?/) && src.split('?')[1] == "clientid=629&u_option_autoplay=0&u_base_pw=648&u_base_ph=365&episodeid=166405&playertype=HTML5Player") {
firstScript = curScripts[i];
}
}
if(!firstScript) {
curScripts[curScripts.length - 1].id = 'UlizaScript-30b43c86-0178-4271-8141-48e3d7867d0e';
} else {
firstScript.id = 'UlizaScript-30b43c86-0178-4271-8141-48e3d7867d0e';
}
if(false) {
var uuidScriptIdName = 'ForVast_JS';
if (!document.getElementById(uuidScriptIdName)) {
uuidScript = document.createElement('script');
uuidScript.type = 'text/javascript';
uuidScript.src = 'https://aka-secure-img.uliza.jp/Player/js/ForVast.v1.2.js';
uuidScript.charset = 'UTF-8';
uuidScript.tag = '%Tag%';
uuidScript.id = uuidScriptIdName;
uuidScript.language = getLanguage();
uuidScript.loadflag = false;
var firstScript = document.getElementById('UlizaScript-30b43c86-0178-4271-8141-48e3d7867d0e');
addElemenetLoadListener(uuidScript, function() {uuidScript.loadflag = true;});
firstScript.parentNode.insertBefore(uuidScript,firstScript);
mainMethod();
} else {
uuidScript = document.getElementById(uuidScriptIdName);
if (uuidScript.loadflag) {
mainMethod();
} else {
addElemenetLoadListener(uuidScript, function () {
uuidScript.loadflag = true;
mainMethod();
});
}
}
} else {
mainMethod();
}
function mainMethod() {
var lang = getLanguage();
var uuidScript = '';
var strUuid = '';
var linkcssArray = [];
var linkcss = document.createElement('link');
linkcss.rel = "stylesheet";
linkcss.href = "https://aka-secure-img.uliza.jp/Player/css/ulizahtml5.min.v1.7.2.css";
linkcss.id = "ulizahtml5_CSS";
linkcssArray.push(linkcss);
var scriptId = "ulizahtml5_JS";
var script = document.getElementById(scriptId);
if (!script) {
script = document.createElement("script");
script.type = "text/javascript";
script.charset = "UTF-8";
script.language = lang;
script.src = "https://aka-secure-img.uliza.jp/Player/js/ulizahtml5.min.v1.7.2.js";
script.id = scriptId;
script.loadflag = false;
}
var readScript = [];
if(false){
var exscript4 = document.createElement("script");
exscript4.type = "text/javascript";
exscript4.charset = "UTF-8";
exscript4.language = lang;
exscript4.src="https://aka-secure-img.uliza.jp/Player/js/ulizahtml5-advertising.min.v1.7.2.js";
readScript.push(exscript4);
}
if(false){
var exscript1 = document.createElement("script");
exscript1.type = "text/javascript";
exscript1.charset = "UTF-8";
exscript1.language = lang;
exscript1.src="https://aka-secure-img.uliza.jp/Player/js/ulizahtml5-dash1.min.v1.7.2.js";
readScript.push(exscript1);
}
if(true){
var exscript2 = document.createElement("script");
exscript2.type = "text/javascript";
exscript2.charset = "UTF-8";
exscript2.language = lang;
exscript2.src="https://aka-secure-img.uliza.jp/Player/js/ulizahtml5-hls.min.v1.7.2.js";
readScript.push(exscript2);
}
if(false){
var exscript3 = document.createElement("script");
exscript3.type = "text/javascript";
exscript3.charset = "UTF-8";
exscript3.language = lang;
exscript3.src="https://aka-secure-img.uliza.jp/Player/js/ulizahtml5-akamai-analytics.min.v1.7.2.js";
readScript.push(exscript3);
}
if(false){
var exscript5 = document.createElement("script");
exscript5.type = "text/javascript";
exscript5.charset = "UTF-8";
exscript5.language = lang;
exscript5.src="https://aka-secure-img.uliza.jp/Player/js/ulizahtml5-flashls.min.v1.7.2.js";
readScript.push(exscript5);
}
// panorama対応
if (false) {
var linkcssPanorama = document.createElement('link');
linkcssPanorama.rel = "stylesheet";
linkcssPanorama.href = "https://aka-secure-img.uliza.jp/Player/css/ulizahtml5-panorama.min.v1.7.2.css";
linkcssPanorama.id = "ulizahtml5_panorama_CSS";
linkcssArray.push(linkcssPanorama);
var exscript6 = document.createElement("script");
exscript6.type = "text/javascript";
exscript6.charset = "UTF-8";
exscript6.language = lang;
exscript6.src="https://aka-secure-img.uliza.jp/Player/js/ulizahtml5-panorama.min.v1.7.2.js";
readScript.push(exscript6);
}
// AirPlay・GoogleCast対応
if(false){
var exscript7 = document.createElement("script");
exscript7.type = "text/javascript";
exscript7.charset = "UTF-8";
exscript7.language = lang;
exscript7.src="https://aka-secure-img.uliza.jp/Player/js/ulizahtml5-cast.min.v1.7.2.js";
readScript.push(exscript7);
}
// skin対応
if(false){
var linkcssSkin = document.createElement('link');
linkcssSkin.rel = "stylesheet";
linkcssSkin.href = "https://aka-secure-img.uliza.jp/Player/css/ulizahtml5-.min.v1.7.2.css";
linkcssSkin.id = "ulizahtml5__CSS";
linkcssArray.push(linkcssSkin);
}
// googleAnalytics
if(false){
var exscript8 = document.createElement("script");
exscript8.type = "text/javascript";
exscript8.charset = "UTF-8";
exscript8.language = lang;
exscript8.src="https://aka-secure-img.uliza.jp/Player/js/ulizahtml5-google-analytics.min.v1.7.2.js";
readScript.push(exscript8);
}
var playBeaconSent = {};
var firstScript = document.getElementById('UlizaScript-30b43c86-0178-4271-8141-48e3d7867d0e');
// CSSを複数読み込まないようにする
for (var i = 0; i < linkcssArray.length; i++) {
if(!document.getElementById(linkcssArray[i].id)) {
firstScript.parentNode.insertBefore(linkcssArray[i],firstScript);
}
}
firstScript.parentNode.insertBefore(script,firstScript);
var playerTag = document.createElement("video");
playerTag.id = "UlizaPlayer-30b43c86-0178-4271-8141-48e3d7867d0e";
playerTag.classList.add("ulizahtml5");
playerTag.width = 648;
playerTag.height = 365;
if((false || true) && !false) {
playerTag.preload = "none";
}
var img = "http://www.tv-tokyo.co.jp/mv/images/thumbnail/youhananishini/20181119_youhananishini_pv01_09dac951caf5074d_9.jpg";
if(img != "") {
playerTag.poster = img;
}
playerTag.streamType = "vod";
// 自動再生(SP)
if (false) {
playerTag.setAttribute("playsinline","");
}
// 音声ミュート
if (false) {
playerTag.setAttribute("muted","");
}
// panorama対応
if (false) {
playerTag.setAttribute("crossorigin","anonymous");
}
var targetId = "";
var targetElem = document.getElementById(targetId);
if (targetElem) {
/* 指定されたIDの要素の子要素として追加する*/
targetElem.appendChild(playerTag);
} else {
/* 従来の document.write に近い動きで、最後に評価された script 要素の直前に要素を追加する
冒頭で振ったIDを利用して親scriptを取得し、playerTagを紐付ける*/
var parentScript = document.getElementById('UlizaScript-30b43c86-0178-4271-8141-48e3d7867d0e');
parentScript.parentNode.insertBefore(playerTag, parentScript);
}
// 最初に読み込まれるjsファイルをscriptの下に挿入
if (script.loadflag) {
if(readScript.length != 0) {
addLoadScriptListener(readScript, readScript.length - 1, script, playerTag);
script.parentNode.insertBefore(readScript[readScript.length - 1], script);
}else {
if(!false) {
setHTML5Player(playerTag);
}
else if (uuidScript.loadflag) {
strUuid = getUuid();
setHTML5Player(playerTag);
}else{
addElemenetLoadListener(uuidScript, function (e) {
uuidScript.loadflag = true;
strUuid = getUuid();
setHTML5Player(playerTag);
});
}
}
}
addElemenetLoadListener(script, function (e) {
script.loadflag = true;
if(readScript.length != 0) {
addLoadScriptListener(readScript, readScript.length - 1, script, playerTag);
script.parentNode.insertBefore(readScript[readScript.length - 1], script);
}else {
if(!false) {
setHTML5Player(playerTag);
}
else if (uuidScript.loadflag) {
strUuid = getUuid();
setHTML5Player(playerTag);
}else{
addElemenetLoadListener(uuidScript, function (e) {
uuidScript.loadflag = true;
strUuid = getUuid();
setHTML5Player(playerTag);
});
}
}
});
}
// jsファイルを順番に読み込むメソッド
function addLoadScriptListener(exScriptList, x, targetScript, playerTag) {
if (x == 0) {
addElemenetLoadListener(exScriptList[x], function (e) {
setUuidScript(targetScript,playerTag);
});
} else {
addElemenetLoadListener(exScriptList[x], function (e) {
targetScript.parentNode.insertBefore(exScriptList[x - 1], targetScript);
});
addLoadScriptListener(exScriptList, x - 1, targetScript,playerTag);
}
}
function setUuidScript(targetScript,playerTag) {
if(!false) {
setHTML5Player(playerTag);
}
else if (uuidScript.loadflag) {
strUuid = getUuid();
setHTML5Player(playerTag);
}else{
addElemenetLoadListener(uuidScript, function (e) {
uuidScript.loadflag = true;
strUuid = getUuid();
setHTML5Player(playerTag);
});
}
}
//プレイヤーサイズ計算
function fixUlizaPlayerSize(parentWidth,parentHeight,playerTag){
if ((parentWidth*9/16) < parentHeight || parentHeight == 0) {
playerTag.width = parentWidth;
playerTag.height = playerTag.width*9/16;
}else {
playerTag.width = parentHeight*16/9;
playerTag.height = parentHeight;
}
}
// リサイズ前のプレイヤーサイズを保存する変数
var beforeFullscreenWidth;
var beforeFullscreenHeight;
//リサイズ
function UlizaPlayerResized(setIntervalPool, playerTag) {
var videoObjectsCount = document.getElementsByTagName("div");
for(var i=0; i= parentHeight) {
parentHeight = parentWidth*9/16;
}
}
// parent内にプレイヤー以外にobjectがある場合を想定し、parentHeightから他objectのheightを除きます
if (isStyleHeightSet && childsHeightSum != 0) {
parentHeight = parentHeight - childsHeightSum;
}
}
return parentHeight;
}
// movdiv内の子要素高さを合計し返却します(movobjの高さは除外します)
function SumChildsHeight(movdiv, movobj) {
var childsHeightSum = 0;
var movobjWidth = movobj.clientWidth;
var movobjHeight = movobj.clientHeight;
var childNodes = movdiv.childNodes;
var childs = [];
for (var i = 0, l = childNodes.length; i < l; ++i) {
childs[i] = childNodes[i];
}
if (movobj != null) {
var movobjPosition = childs.indexOf(movobj);
childs.splice(movobjPosition,1);
}
for (var i = 0; i < childs.length; i++) {
if (isFinite(childs[i].offsetHeight)) {
childsHeightSum = childsHeightSum + childs[i].offsetHeight;
}
}
return childsHeightSum;
}
function AdResizeForHTML5Player(playerTag) {
var adElement = document.getElementById('UlizaPlayer-30b43c86-0178-4271-8141-48e3d7867d0e_ad');
if (adElement != null ) {
adElement.style.width = playerTag.width;
adElement.style.height = playerTag.height;
}
}
function UlizaPlayerResizeForHTML5Player(id, setIntervalPool,playerTag) {
var movobj = document.getElementById(id);
var movdiv = movobj.parentElement;
var parentWidth;
var parentHeight;
if (!movdiv.clientWidth) {
parentWidth = movdiv.offsetWidth;
} else {
parentWidth = parseInt(movdiv.clientWidth);
}
if (!movdiv.clientHeight) {
parentHeight = movdiv.offsetHeight;
} else {
parentHeight = parseInt(movdiv.clientHeight);
}
// parentHeightを調整(広告は調整しません)
if (!id.match("_ad")) {
parentHeight = AdjustParentHeight(movdiv, movobj, parentWidth, parentHeight);
}
if(parentWidth == 0 || parentHeight == 0)
{
if(id in setIntervalPool)
{
clearInterval(setIntervalPool[id]);
}
setIntervalPool[id] = setInterval(function(){UlizaPlayerResized(setIntervalPool,playerTag);},'100');
}
else
{
if(id in setIntervalPool)
{
clearInterval(setIntervalPool[id]);
}
fixUlizaPlayerSize(parentWidth,parentHeight,playerTag);
//リサイズ前のサイズを保存
if(movobj.style.width != "" && movobj.style.height != "") {
beforeFullscreenWidth = movobj.style.width;
beforeFullscreenHeight = movobj.style.height;
}
movobj.style.width = playerTag.width + "px";
movobj.style.height = playerTag.height + "px";
}
}
function setHTML5Player(playerTag){
ulizahtml5.uuid.setUUID("UlizaPlayer-30b43c86-0178-4271-8141-48e3d7867d0e");
var player = ulizahtml5("UlizaPlayer-30b43c86-0178-4271-8141-48e3d7867d0e",{ sources:[{src:"https://www2.uliza.jp/IF/iphone/iPhonePlaylist.m3u8?v=166405-716596&p=1372&d=629&n=405&cpv=1",type:"application/x-mpegURL"}],streamType:"vod",html5:{hlsjsConfig:{authDomain: ["www2.uliza.jp"]}},fullscreenType:'native',hotkey:{enable:false} });
var playFlag = false;
player.on("play", function(){
if(!false) {
if(!playFlag) {
var img = document.createElement("img");
if (false) {
img.src = "https://www2.uliza.jp/IF/iphone/iPhonePlaylist.m3u8?v=166405-716596&p=1372&d=629&n=405&cpv=1";
}else{
img.src = "https://www2.uliza.jp/IF/iphone/iPhonePlaylist.m3u8?v=166405-716596&p=1372&d=629&n=405&cpv=1" + "&logging=1";
}
img.style.cssText = "display:none";
document.body.appendChild(img);
playFlag = true;
}
}
});
// midroll,postrollがリサイズしないため、一時停時止時と再生終了時にリサイズする処理
if (false && false){
player.on("pause",function(){
AdResizeForHTML5Player(playerTag);
});
player.on("ended",function(){
AdResizeForHTML5Player(playerTag);
});
}
// playersize=autoの場合の処理
var setIntervalPool = {};
if (false) {
UlizaPlayerResized(setIntervalPool,playerTag);
window.addEventListener("resize", function() {windowOnResizeEventHandler(setIntervalPool,playerTag);}, false);
window.addEventListener("webkitfullscreenchange", handleFullScreenEvent, false);
window.addEventListener("mozfullscreenchange", handleFullScreenEvent, false);
window.addEventListener("MSFullscreenChange", handleFullScreenEvent, false);
window.addEventListener("fullscreenchange", handleFullScreenEvent, false);
}
// autoplay=2の場合の処理
if (false) {
window.addEventListener("load", function() {PlayOrStop(player);}, false);
window.addEventListener("scroll", function() {PlayOrStop(player);}, false);
window.addEventListener("resize", function() {PlayOrStop(player);}, false);
var element = document.getElementById(player.id());
if (false) {
// SPの場合
var spPlayButton = element.getElementsByClassName("vjs-center-play-toggle vjs-control vjs-button");
spPlayButton[0].addEventListener("touchstart",playerClick,false);
}else{
// PCの場合
var vjsTech = element.getElementsByClassName("vjs-tech");
var playButton = element.getElementsByClassName("vjs-play-control vjs-control vjs-button");
vjsTech[0].addEventListener("mousedown",playerClick,false);
playButton[0].addEventListener("mousedown",playerClick,false);
}
}
if((typeof setULIZAPlayerBeacon) == "function")
{
setULIZAPlayerBeacon(player);
}
addLicenseJs();
}
function addElemenetLoadListener(elem, callback) {
/* for IE6,7,8 */
if ('onreadystatechange' in elem) {
elem.onreadystatechange = function(e) {
if (this.readyState == 'complete' || this.readyState == 'loaded')
callback(e);
}
} else {
if (elem.addEventListener) {
elem.addEventListener('load', callback, false);
} else {
elem.attachEvent('onload', callback);
}
}
}
function getLanguage()
{
try {
return (navigator.browserLanguage || navigator.language || navigator.userLanguage).substr(0,2)
}
catch(e) {
return undefined;
}
}
function getUuid()
{
var fp = new Fingerprint();
var uuidOriginal = ulizaMakeMD5.MD5.calc(fp.get());
var uuid = uuidOriginal.substr(0, 18);
return uuid;
}
//フルスクリーンフラグ用
var ResizeFlag = true;
var EndFullscreenEvent = true;
var ResizeEvent = false;
var InFullscreenFlag = false;
// windowのリサイズに発火するMethod
function windowOnResizeEventHandler(setIntervalPool, playerTag) {
// フルスクリーンボタン押下時にリサイズメソッドが起動しないようにする
if(ResizeFlag) {
if(EndFullscreenEvent) {
ResizeEvent = true;
UlizaPlayerResized(setIntervalPool,playerTag);
} else {
EndFullscreenEvent = true;
}
} else {
// Fullscreen解除前にリサイズイベント
InFullscreenFlag = true;
}
}
// Fullscreenイベントハンドラ
function handleFullScreenEvent() {
if((document.webkitFullscreenElement && document.webkitFullscreenElement !== null)
|| (document.mozFullScreenElement && document.mozFullScreenElement !== null)
|| (document.msFullscreenElement && document.msFullscreenElement !== null)
|| (document.fullScreenElement && document.fullScreenElement !== null))
{
//リサイズ禁止
if(ResizeEvent) {
setBeforeFullscreenSize();
ResizeEvent = false;
}
ResizeFlag = false;
} else {
//リサイズ許可
ResizeFlag = true;
EndFullscreenEvent = true;
if (InFullscreenFlag) {
var playerTag = document.getElementById("UlizaPlayer-30b43c86-0178-4271-8141-48e3d7867d0e");
UlizaPlayerResized({},playerTag);
InFullscreenFlag = false;
}
}
}
// リサイズ -> フルスクリーンの順でイベントが発生した場合の処理
function setBeforeFullscreenSize() {
var videoObjectsCount = document.getElementsByTagName("div");
for(var i=0; i= (-1 * conditionPx))){
returnFlag = true;
} else {
returnFlag = false;
}
return returnFlag;
}
// プレイヤークリックイベント
var clickPauseElement = new Array();
function playerClick(event){
var elementId = "UlizaPlayer-30b43c86-0178-4271-8141-48e3d7867d0e";
var playerTag = document.getElementById(elementId);
var ua = window.navigator.userAgent.toLowerCase();
var isChrome = (ua.indexOf('chrome') > -1) && (ua.indexOf('edge') == -1);
var isFirefox = (ua.indexOf('firefox') > -1);
var isSafari = (ua.indexOf('safari') > -1) && (ua.indexOf('chrome') == -1);
var isOpera = (ua.indexOf('opera') > -1);
if (isChrome || isFirefox || isSafari || isOpera) {
if (playerTag.className.match("vjs-playing")){
if (clickPauseElement.indexOf(elementId) == -1) {
clickPauseElement.push(elementId);
}
}else{
if (clickPauseElement.indexOf(elementId) >= 0) {
clickPauseElement.some(function(v,i){
if (v == elementId) {
clickPauseElement.splice(i,1);
}
})
}
}
}else{
// IE
var target = event.target;
var type = target.type;
if (type == "button") {
// 左下再生ボタン押下時
if (playerTag.className.match("vjs-playing")){
if (clickPauseElement.indexOf(elementId) == -1) {
clickPauseElement.push(elementId);
}
}else{
if (clickPauseElement.indexOf(elementId) >= 0) {
clickPauseElement.some(function(v,i){
if (v == elementId) {
clickPauseElement.splice(i,1);
}
})
}
}
}else{
// プレイヤー押下時
if (playerTag.className.match("vjs-paused")){
if (clickPauseElement.indexOf(elementId) == -1) {
clickPauseElement.push(elementId);
}
}else{
if (clickPauseElement.indexOf(elementId) >= 0) {
clickPauseElement.some(function(v,i){
if (v == elementId) {
clickPauseElement.splice(i,1);
}
})
}
}
}
}
}
// ulizahtml5-license追加処理
function addLicenseJs(){
var licenseScript = document.createElement("script");
licenseScript.id = licenseJsId;
licenseScript.type = "text/javascript";
licenseScript.charset = "UTF-8";
licenseScript.lang = getLanguage();
licenseScript.src = "https://aka-secure-img.uliza.jp/Player/js/ulizahtml5-license.v1.7.2.js";
if (!document.getElementById(licenseJsId)) {
document.body.appendChild(licenseScript);
}
}
// ulizahtml5-license削除処理
// 複数プレイヤの場合、2個目以降のプレイヤの処理でlicense.jsが評価されてしまうため削除する
function removeLicenseJs(){
var licenseScript = document.getElementById(licenseJsId);
if (licenseScript) {
document.body.removeChild(licenseScript);
}
}
})();