//不要領域(高)
var marginHeight = window.outerHeight - window.innerHeight;
//不要領域(幅)
var marginWidth = window.outerWidth - window.innerWidth;
function getRecData(){
if(play_unique_id != null){
jikan = 0;
console.log("取得");
//再生用
$.ajax({
type: "get",
url: "https://douganavi.jp/web_analyze/admin/movie?play_unique_id=" + play_unique_id + "&keika_idx=" + play_start_idx + "&callback=getsavedata",
dataType: "jsonp",
crossDomain: true,
success:function(data){
console.log("取得成功");
play_start_idx = data.recdata[play_unique_id].finish_idx;
fStart(data.recdata[play_unique_id]);
} ,
error:function(){
alert("失敗");
allFinish();
}
});
}
}
if(realtime == false){
play_start_idx = 0;
getRecData(); //最初から再生
}else{
timing = 100;
getRecData(); //本スクリプト表示時点における時間の5秒前のインデックス
}
function fStart(data){
if(typeof data === "undefined"){
alert("データがなかった");
return;
}
saveData = data.savedata;
if(saveData != ""){
console.log(saveData);
$("#saveData").val(saveData);
//alert(saveData);
}
var splitData = saveData.split(":");
source = [];
source[-1] = [];
source[-1].Jikan = 0;
source[-1].ScrollPosition = 0;
source[-1].windowHeight = 0;
source[-1].windowWidth = 0;
source[-1].mouseX = 0;
source[-1].mouseY = 0;
source[-1].height = 0;
idx[0]=0;
setRecData(splitData);
if(maxIdx[0] == -1){
allFinish();
return;
}
totalJikan = source[maxIdx[0]].Jikan; //最後の時間 現在時間がこれを超えたら再生終了。「最後まで」ボタンだと即時代入。
setMaxJikan(); //コントロールパネルに、最後の時間を表示
console.log("タイマースタート");
timecount(); //タイマースタート
}
function move(){ //ウィンドウ、マウス、スクロールの描画
if(typeof source[idx[0]] === "undefined"){
return false;
}else{
data = source[idx[0]];
$("html,body").animate({scrollTop:data.ScrollPosition},{duration: timing,easing:"linear"});
//不要領域(高)
//不要領域(幅)
console.log(parseInt(data.windowWidth) + "/" + parseInt(data.windowHeight));
console.log(parseInt(data.windowWidth) + parseInt(marginWidth) + "/" + parseInt(data.windowHeight) + parseInt(marginHeight));
window.resizeTo(parseInt(data.windowWidth) + parseInt(marginWidth),parseInt(data.windowHeight) + parseInt(marginHeight));
if($("#pointer").attr("id") == undefined){
$("body").append('');
}
$("#pointer").animate({top:(data.mouseY + data.ScrollPosition),left:data.mouseX},{duration: timing,easing:"linear"});
}
}
function setRecData(splitData){
maxIdx[0] = -1;
$.each(splitData , function(i , val){ //iはsplitDataの添字そのもの。リアル再生の場合にもこの仕様を採用する。つまり新規データ取得ごとに添え字は0から始まりインクリメントしていく。
if(val == ""){
}else{
var splitValues = val.split("0");
source[i] = [];
source[i].Jikan = source[i-1].Jikan + cipher(splitValues[0]);
source[i].ScrollPosition = cipher(splitValues[1]);
if(splitValues[1] == "") source[i].ScrollPosition = source[i-1].ScrollPosition;
source[i].windowHeight = cipher(splitValues[2]);
if(splitValues[2] == "") source[i].windowHeight = source[i-1].windowHeight;
source[i].windowWidth = cipher(splitValues[3]);
if(splitValues[3] == "") source[i].windowWidth = source[i-1].windowWidth;
source[i].mouseX = cipher(splitValues[4]);
if(splitValues[4] == "") source[i].mouseX = source[i-1].mouseX;
source[i].mouseY = cipher(splitValues[5]);
if(splitValues[5] == "") source[i].mouseY = source[i-1].mouseY;
source[i].height = cipher(splitValues[6]);
if(splitValues[6] == "") source[i].height = source[i-1].height;
console.log(source[i]);
maxIdx[0] = i;
}
})
}
function timecount(){
console.log("timecount()の前");
if(pause == false){
console.log("timecount()の中");
ret = true;
if(playMode == "front"){
if(jikan >= totalJikan){
// setTimeout(timecount,1 * timing);
allFinish();
return;
}else{
jikan = jikan + 5;
$("#console_jikan").val(jikan);
}
}
if(playMode == "back"){
if(jikan <= 0){
// setTimeout(timecount,1 * timing);
allFinish();
return;
}else{
jikan = jikan - 5;
$("#console_jikan").val(jikan);
}
}
setDigital();
if(source[idx[0]]){ //存在したら
if(playMode == "front"){
if(idx[0] <= maxIdx[0]){
$("#next_jikan").val(source[idx[0]].Jikan);
if(source[idx[0]].Jikan <= jikan){
ret = move();
if(idx[0] < maxIdx[0]) idx[0]++;
}
}
}else{
if(idx[0] >= -1){
if(source[idx[0]].Jikan + 5 >= jikan){
ret = move();
if(idx[0] >= 0) idx[0]--;
}
}
}
}else{
//すべての再生が完了した
allFinish();
return;
}
if(step){
pause = true;
step = false
}
if(jikan <= 0 || jikan > totalJikan){
allFinish();
return;
}
}
setTimeout(timecount,1 * timing);
}
function allFinish(){
if(realtime){
//3秒ごとに
console.log("終了");
setTimeout(getRecData,3000);
}else{
pause = true;
}
}
function controlbutton_click(kubun){
if(kubun == "step"){
pause = false;
step = true;
}
if(kubun == "rewind"){
$.each(idx , function(i , val){
idx[i]--;
})
pause = false;
if(playMode == "front"){
timing = 500;
}else{
if(timing == 500){
timing = 100;
}else{
if(timing == 100){
timing = 50;
}else{
if(timing == 50){
timing = 1000;
}else{
if(timing == 1000){
timing = 500;
}
}
}
}
}
playMode = "back";
}
if(kubun == "pause"){
pause = true;
}
if(kubun == "play"){
pause = false;
timing = 500;
playMode = "front";
}
if(kubun == "start"){
$.each(idx , function(i , val){
idx[i] = -1;
})
if(rec_id_data != null && rec_id == null){
$.each(idx , function(i , val){
move_multi(i);
})
}else{
move();
}
jikan = 0;
setDigital();
}
if(kubun == "end"){
$.each(idx , function(i , val){
idx[i] = maxIdx[i];
})
if(rec_id_data != null && rec_id == null){
$.each(idx , function(i , val){
move_multi(i);
})
}else{
move();
}
jikan = totalJikan;
setDigital();
}
if(kubun == "fast"){
pause = false;
if(timing == 500){
timing = 100;
}else{
if(timing == 100){
timing = 50;
}else{
if(timing == 50){
timing = 1000;
}else{
if(timing == 1000){
timing = 500;
}
}
}
}
playMode = "front";
}
}
function setMaxJikan(){
ms = secondTOhms(Math.floor((totalJikan + 1) / 10));
var number1 = ms.substring(0,1);
var number2 = ms.substring(1,2);
var number3 = ms.substring(2,3);
var number4 = ms.substring(3,4);
$("#max_digital_1").attr("src","https://douganavi.jp/web_analyze/resource/images/digital" + number1 + ".gif");
$("#max_digital_2").attr("src","https://douganavi.jp/web_analyze/resource/images/digital" + number2 + ".gif");
$("#max_digital_3").attr("src","https://douganavi.jp/web_analyze/resource/images/digital" + number3 + ".gif");
$("#max_digital_4").attr("src","https://douganavi.jp/web_analyze/resource/images/digital" + number4 + ".gif");
}
function setDigital(){
if(playMode == "front"){
ms = secondTOhms(Math.floor(jikan / 10));
}else{
ms = secondTOhms(Math.ceil(jikan / 10));
}
var number1 = ms.substring(0,1);
var number2 = ms.substring(1,2);
var number3 = ms.substring(2,3);
var number4 = ms.substring(3,4);
$("#digital_1").attr("src","https://douganavi.jp/web_analyze/resource/images/digital" + number1 + ".gif");
$("#digital_2").attr("src","https://douganavi.jp/web_analyze/resource/images/digital" + number2 + ".gif");
$("#digital_3").attr("src","https://douganavi.jp/web_analyze/resource/images/digital" + number3 + ".gif");
$("#digital_4").attr("src","https://douganavi.jp/web_analyze/resource/images/digital" + number4 + ".gif");
}
if(mode == "play"){
if(realtime == false){
controlpanel_source = '';
controlpanel_source += '