var loadingFlag = true;
var loadEndFlag = false;
var consoleMode = false;
const time_loadout_wait = 1000; //ms


var commonFn = {};
commonFn.bodyFixed = bodyFixed;
commonFn.getInitParam = getInitParam;



// Default global var 
var ua;
var isOS;
var isDevice;
var clickevent;
var isSize;
var isMini;
var isTouchDevice = false;

//Device
var ua = navigator.userAgent.toLowerCase();
var isWindows = /windows/.test(ua);
var isMac = /mac/.test(ua);
var isIPhone = /i(phone|pod)/.test(ua);
var isIPad = /ipad/.test(ua);
var isIOS = isIPhone || isIPad;
var isAndroid = /android/.test(ua);
var isAndroidMobile = /android(.+)?mobile/.test(ua);
var isIE = /msie/.test(ua);
var isFirefox = /firefox/.test(ua);
var isChrome = /chrome/.test(ua);
var isCrios = /crios/.test(ua);
var isSafari = /safari/.test(ua);
var isOpera = /opera/.test(ua);
var isOperaMobile = /opera mobi/.test(ua);
var isOperaMini = /opera mini/.test(ua);
var isSmartphone = isIPhone || isAndroidMobile;
var isPC = !isIOS && !isAndroid;
var chkTouch = ('ontouchstart' in window);
var isTablet;

var ua2 = navigator.userAgent;
if (ua2.indexOf('iPhone') > 0 || ua2.indexOf('iPod') > 0 || ua2.indexOf('Android') > 0 && ua2.indexOf('Mobile') > 0) {
  if (consoleMode) {
    console.log('smart phone');
  }
  var viewMode = true;
} else if (ua2.indexOf('iPad') > 0 || ua2.indexOf('Android') > 0) {
  if (consoleMode) {
    console.log('ipad');
  }
  var viewMode = true;
} else if (isSafari && typeof document.ontouchstart !== 'undefined') {
  if (consoleMode) {
    console.log('ipadOS tablet');
  }
  var viewMode = true;
  isTablet = true;
} else {
  if (consoleMode) {
    console.log('pc');
  }
  var viewMode = false;
}


if ((ua2.indexOf('Android') > 0 && ua2.indexOf('Mobile') == -1) || ua2.indexOf('iPad') > 0 || ua2.indexOf('Kindle') > 0 || ua2.indexOf('Silk') > 0) {
  isTablet = true;
}


if (isSmartphone) {
  isDevice = "sp";
  isTouchDevice = true;
} else if (isIOS) {
  isDevice = "ios";
  isTouchDevice = true;
} else {
  isDevice = "pc";
}

//os
if (isIOS) {
  isOS = "ios";
} else if (isAndroid) {
  isOS = "android";
} else if (isMac) {
  isOS = "mac";
} else if (isWindows) {
  isOS = "windows";
}




/**
 * ピンチを制御
 */
function no_scaling() {
  document.addEventListener("touchmove", mobile_no_scroll, {
    passive: false
  });
}
/**
 * タッチ操作での拡大縮小禁止解除
 */
function return_scaling() {
  document.removeEventListener('touchmove', mobile_no_scroll, {
    passive: false
  });
}
/**
 * 拡大縮小禁止
 */
function mobile_no_scroll(event) {
  // ２本指での操作の場合
  if (event.touches.length >= 2) {
    // デフォルトの動作をさせない
    event.preventDefault();
  }
}







//100vh css
const setFillHeight = () => {
  const vh = window.innerHeight * 0.01;
  document.documentElement.style.setProperty('--vh', `${vh}px`);
}


window.addEventListener('resize', setFillHeight);
setFillHeight();




//アドレスバーのパラメーター取得
function getInitParam(name, url) {
  if (!url) url = window.location.href;
  name = name.replace(/[\[\]]/g, "\\$&");
  var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
    results = regex.exec(url);
  if (!results) return null;
  if (!results[2]) return '';
  return decodeURIComponent(results[2].replace(/\+/g, " "));
}

var bodyLockFlag = false;
//画面ロック
var bodyFixed_Pos;
function bodyFixed(action) {
    
    if(isPC){
          if (action == 'on') {
             bodyLockFlag = true;
            bodyFixed_Pos = $(window).scrollTop();
            console.log('ON++=' + bodyFixed_Pos);
            $('body').addClass('fixed');
            $('#scrollBody').addClass('fixed');
            $('#container').css({top: -bodyFixed_Pos + 'px',transform: 'translate3d(0,0,0)'});



            $('html,body').animate({scrollTop: 0}, 0);
          } else if(action == 'off') {
            $('body').removeClass('fixed');
            $('#scrollBody').removeClass('fixed');
            $('#container').css({top: 0,transform: 'translate3d(0,-'+ bodyFixed_Pos+'px,0)'});
            console.log('OFF=' + bodyFixed_Pos);
            $('html,body').animate({scrollTop: bodyFixed_Pos}, 0);
              setTimeout(function () {
                bodyLockFlag = false;
              }, 1500);

          }
    }else{
       if (action == 'on') {
        bodyLockFlag = true;
        bodyFixed_Pos = $(window).scrollTop();
        console.log('ON++=' + bodyFixed_Pos);
        $('body').addClass('fixed');
        $('#scrollBody').addClass('fixed');
        $('#container').css({top: -bodyFixed_Pos + 'px',transform: 'translate3d(0,0,0)'});
        $('html,body').animate({scrollTop: 0}, 0);
      } else if(action == 'off') {
        $('body').removeClass('fixed');
        $('#scrollBody').removeClass('fixed');
        $('#container').css({top: 0,transform: 'translate3d(0,0,0)'});
        console.log('OFF=' + bodyFixed_Pos);
        $('html,body').animate({scrollTop: bodyFixed_Pos}, 0);
          setTimeout(function () {
            bodyLockFlag = false;
          }, 1500);

      }
    }

    
    
    
    
}






$(function () {

  commonFn.bodyFixed = bodyFixed;
  commonFn.getInitParam = getInitParam;


    
    $(window).on('resize', function () {
      $('body').addClass('resize');
      resizeAction = true;
      setTimeout(function () {
        $('body').removeClass('resize');
        resizeAction = false;
      }, 500);

    });
    
  //loading cover object
  if (loadingFlag) {
    
    $('body').prepend('<div id="loader"><div id="loadingCircle" class=""><div class="tent"></div><div class="text"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div></div><div id="loadingAnim" class=""><div class="bar"></div></div></div>');
    setTimeout(function () {$('#loader').addClass('in');}, 100);

    //loading check image
    var addList = [];
    var imgList = new Array();
    var totalCnt = 0;
    var loadPer = 0;

    function loadInit() {
      //searchImg();
      addImg();
      loadStart();
    }

    function searchImg() {
      const addSrcList = new Array();
      $("img").each(function () {
        const img = $(this).attr("src");
        if (arryCheck(addSrcList, img)) {
          addSrcList.push(img);
          imgList.push(img);
        }
      });

      const addStyleList = new Array();
      $("div,a,span").each(function () {
        const bg = $(this).css("backgroundImage");
        if (bg != "none" && bg.indexOf("(") != -1) {
          const imgSrc = bg.substring(bg.indexOf("(") + 1, bg.lastIndexOf(")")).replace(/\"/g, "");
          if (arryCheck(addStyleList, imgSrc)) {
            addStyleList.push(imgSrc);
            imgList.push(imgSrc);
            //console.log(imgSrc);
          }
        }
      });

    }//searchImg

    function arryCheck(arry, src) {
      const ret = true;
      for (let i = 0; i < arry.length; i++) {
        if (arry[i] == src) {
          ret = false;
          break;
        }
      }
      return (ret);
    }

    function imgRegist(src) {
      imgList.push(src);
      console.log('src_' + src);
    }

    function addImg() {
      for (let i = 0; i < addList.length; i++) {
        imgList.push(addList[i]);
      }
    }

    function loadStart() {
      totalCnt = imgList.length;
        //console.log('totalCnt='+totalCnt);
    }


    function loaderOut() {
      //console.log('loaderOut');
      setTimeout(function () {
         
        Fn_loop();// common.js include loop function
        
        $('body').removeClass('fixed').addClass('loadingFinish');
          
          
          
          $('.modalWindow').show();
          
          loadEndFlag = true;
          loaderDelete();
      }, time_loadout_wait);
    }

    function loaderDelete() {
      //console.log('loaderDelete');
      
      $('body').addClass('loaderDelete siteActive');
      Fn_siteActive();
        setTimeout(function () {
            $('#loader').remove();
        }, time_loadout_wait);
    }

    //loading check image 
    $('body').imagesLoaded({
        background: true
      }, function () {
        //console.log('all done');
      }).always(function (instance) {
        //console.log('all images loaded');
      })
      .done(function (instance) {
        //console.log('all images successfully loaded!!!');
        loaderOut();
      })
      .fail(function () {
        //console.log('all images loaded, at least one is broken');
      })
      .progress(advanceLoading, function (instance, image) {
        const result = image.isLoaded ? 'loaded' : 'broken';
        //console.log( 'image is ' + result + ' for ' + image.img.src );
      });


    function advanceLoading(e) {
      // プログレスバーを進める
      const length = e.images.length, // 画像の枚数
        count = e.progressedCount, // 読み込み完了した枚数
        progress = (count / length) * 100; // パーセントの値に
      //bar.width( progress + '%' );
      //console.log(progress + '%');
      $('#loader .bar').css({'width': progress + '%'});
        
      //$('#loader .per').html(Math.ceil(progress) + '%');	

      if (progress == 100) {
        //$('#loader .bar').fadeOut();
      }
    }
      
      
      loadInit();  


  } else {


  } //loadingFlag

});

