String.prototype.replaceAll = function (org, dest) {
  return this.split(org).join(dest);
}

function includeJs(jsFilePath) {
  var js = document.createElement("script");

  js.type = "text/javascript";
  js.src = jsFilePath;

  document.body.appendChild(js);
}

function getTemplate(url) {
  var template;
  $.get({ url: url, async: false }, function (text) {
    template = text;
  });
  return template;
}

function getNoResultMessage() {
  const noResultMsg = $("<div/>", {
    width: "auto",
    style: "text-align: center",
  });
  noResultMsg.append(getLocalizedString("noResult"));
  return noResultMsg;
}

// アコーディオン
$(".category").on("click", function () {
  $(this).toggleClass("open");
  $(this).next().slideToggle();
});

$(".home_btn").on("click", function () {
  NativeBridgeDelegate.goHome();
});

document.addEventListener("DOMContentLoaded", function () {
  var h = $(window).height(); //画面の高さを取得

  // ローディング表示
  $("footer a").click(function (event) {
    const a = $(this);
    event.preventDefault();
    $("#loader-bg ,#loader").height(h).css("display", "block"); //ローディング画像を表示

    setTimeout(function () {
      window.location.href = a[0].href;
    }, 1000);
  });

  // 共通検索フォーム　キャンセルボタン表示
  $('.search_form input[type="search"]').click(function () {
    $(this).addClass("focus");
    // キャンセルボタン表示
    $(".cancel").removeClass("none");
    $(".search_form form").addClass("d-flex flex-row h-100 align-items-center");
    $(".content").addClass("none");
    $(".craeteRoomButton").addClass("none");
  });

  // 共通検索フォーム　キャンセルボタン押下イベント
  $(".search_form .cancel").click(function () {
    $(this).addClass("none");
    $(".search_form input").removeClass("focus");
    $(".search_form input").val("");
    $(".search_form form").removeClass();
    $(".content").removeClass("none");
    $(".overlay_src_msg").empty();
    $(".craeteRoomButton").removeClass("none");
  });
});

var Common = {};

//loadingIndicatorを表示
Common.showLoadingIndicator = function () {
  const h = $(window).height();
  $("#loader-bg ,#loader").height(h).css("display", "block");
};

//loadingIndicatorを表示しない
Common.dismissLoadingIndicator = function () {
  const h = $(window).height();
  $("#loader-bg ,#loader").height(h).css("display", "none");
};

Common.refreshForOnline = function () {
  serverInfo.isOnline = true;
  $(".footer_item a").removeClass("ui-state-disabled");
  if (typeof ChatList != "undefined") {
    ChatList.refreshForOnline();
  }
  if (typeof ChatRoom != "undefined") {
    ChatRoom.refreshForOnline();
  }
  if (typeof Namecard != "undefined") {
    Namecard.refreshForOnline();
  }
};

Common.refreshForOffline = function () {
  serverInfo.isOnline = false;
  $(".footer_item a").addClass("ui-state-disabled");
  if (typeof ChatList != "undefined") {
    ChatList.refreshForOffline();
  }
  if (typeof ChatRoom != "undefined") {
    ChatRoom.refreshForOffline();
  }
  if (typeof CollaborationUI != "undefined") {
    CollaborationUI.refreshForOffline();
  }
  if (typeof Namecard != "undefined") {
    Namecard.refreshForOffline();
  }
};

// #36170 画像パスが存在しない場合はデフォルトの画像を返す
// 存在する場合はプロフィール画像取得用APIのURLを生成して返す
Common.getProfileImgUrl = function (path) {
  if (path == undefined || path == "") {
    return "./img/noImage.png";
  } else if (path.includes("/mnt")) {
    const userInfo = path.split("/").reverse();
    return (
      serverInfo.cmsURL +
      "/chatapi/user?profileFileName=" +
      userInfo[0] +
      "&profileGetLoginId=" +
      userInfo[1] +
      "&sid=" +
      currentUserInfo.sid +
      "&cmd=12"
    );
  } else {
    return path;
  }
};
