//バージョンチェッカー
function verck(ver, jp) {
	console.log("%c Welcome😊", "color: red;font-size:200%;");
	var date = new Date();
	var show = false;
	if (localStorage.getItem("ver") != ver && localStorage.getItem("winstore")) {
		//ちょっと削除とリンク解析の都合上アレ(s)
		//対象外のアプデ:storageが20の最初まで"Usamin (18.6.5)"
		if (!localStorage.getItem("usamin_18_6_5_flag")) {
			localStorage.setItem("usamin_18_6_5_flag", true);
			var multi = localStorage.getItem("column");
			var obj = JSON.parse(multi);
			for (var i = 0; i < obj.length; i++) {
				localStorage.removeItem("card_" + i);
			}
		}
		//ちょっと削除とリンク解析の都合上アレ(e)
		show = true;
		console.log("%c Thank you for your update🎉", "color: red;font-size:200%;");
		$(document).ready(function() {
			if (localStorage.getItem("winstore")) {
				$("#releasenote").modal("open");
			}
			verp = ver.replace("(", "");
			verp = verp.replace(".", "-");
			verp = verp.replace(".", "-");
			verp = verp.replace("[", "-");
			verp = verp.replace("]", "");
			verp = verp.replace(")", "");
			verp = verp.replace(" ", "_");
			console.log("%c " + verp, "color: red;font-size:200%;");
			if (lang.language == "ja") {
				$("#release-" + verp).show();
			} else {
				$("#release-en").show();
			}
		});
	}
	localStorage.setItem("ver", ver);
	if (!show) {
		console.log(show);
		if (date.getMonth() + 1 >= localStorage.getItem("showSupportMe") || !localStorage.getItem("showSupportMe")) {
			if (date.getMonth() == 11) {
				var nextmonth = 1;
			} else {
				var nextmonth = date.getMonth() + 2;
			}
			if (lang.language != "ja") {
				$("#support-btm-ja").addClass("hide");
				$("#support-btm-en").removeClass("hide");
			}
			localStorage.setItem("showSupportMe", nextmonth);
			$("#support-btm").removeClass("hide");
			$("#support-btm").animate(
				{
					bottom: "0"
				},
				{
					duration: 300
				}
			);
		}
	}
	var platform = localStorage.getItem("platform");
	console.log("Your platform:" + platform);
	if (!localStorage.getItem("winstore")) {
		$("#start").css("display", "flex");
	}
	if (localStorage.getItem("winstore") == "brewcask" || localStorage.getItem("winstore") == "snapcraft" || localStorage.getItem("winstore") == "winstore") {
		var winstore = true;
	} else {
		var winstore = false;
	}
	var l = 5;
	// 生成する文字列に含める文字セット
	var c = "abcdefghijklmnopqrstuvwxyz0123456789";
	var cl = c.length;
	var r = "";
	for (var i = 0; i < l; i++) {
		r += c[Math.floor(Math.random() * cl)];
	}
	var start = "https://thedesk.top/ver.json";
	fetch(start, {
		method: "GET"
	})
		.then(function(response) {
			if (!response.ok) {
				response.text().then(function(text) {
					setLog(response.url, response.status, text);
				});
			}
			return response.json();
		})
		.catch(function(error) {
			todo(error);setLog(start, "JSON", error);
			setLog(start, "JSON", error);
			console.error(error);
		})
		.then(function(mess) {
			console.table(mess);
			if (mess) {
				//askjp_jp_ua: 2019年10月24日、mstdn.jpによるユーザーエージェントアクセス制限
				if (jp && mess.jp_ua && !localStorage.getItem("askjp_jp_ua")) {
					localStorage.setItem("askjp_jp_ua", true);
					$("#askjp_jp_ua").removeClass("hide");
				}
				var platform = localStorage.getItem("platform");
				if (platform == "darwin") {
					var newest = mess.desk_mac;
				} else {
					var newest = mess.desk;
				}
				if (newest == ver) {
					todo(lang.lang_version_usever.replace("{{ver}}", mess.desk));
					//betaかWinstoreならアプデチェックしない
				} else if (ver.indexOf("beta") != -1 || winstore) {
				} else {
					localStorage.removeItem("instance");
					if (localStorage.getItem("new-ver-skip")) {
						if (localStorage.getItem("next-ver") != newest) {
							postMessage(["sendSinmpleIpc", "update"], "*");
						} else {
							console.warn(lang.lang_version_skipver);
							todo(lang.lang_version_skipver);
						}
					} else {
						postMessage(["sendSinmpleIpc", "update"], "*");
					}
				}
			}
		});
	if (!localStorage.getItem("last-notice-id")) {
		localStorage.setItem("last-notice-id", 0);
	}
	var start = "https://thedesk.top/notice?since_id=" + localStorage.getItem("last-notice-id");
	fetch(start, {
		method: "GET"
	})
		.then(function(response) {
			if (!response.ok) {
				response.text().then(function(text) {
					setLog(response.url, response.status, text);
				});
			}
			return response.json();
		})
		.catch(function(error) {
			todo(error);setLog(start, "JSON", error);
			console.error(error);
		})
		.then(function(mess) {
			if (mess.length < 1) {
				return false;
			} else {
				var last = localStorage.getItem("last-notice-id");
				localStorage.setItem("last-notice-id", mess[0].ID);
				for (i = 0; i < mess.length; i++) {
					var obj = mess[i];
					if (obj.ID * 1 <= last) {
						break;
					} else {
						if (obj.type == "textv2") {
							if (~obj.languages.indexOf(lang.language)) {
								var show = true;
								if (obj.toot != "") {
									var toot = '<button class="btn-flat toast-action" onclick="detEx(\'' + obj.toot + "','main')\">Show</button>";
								} else {
									var toot = "";
								}
								if (obj.ver != "") {
									if (obj.ver == ver) {
										show = true;
									} else {
										show = false;
									}
								}
								if (obj.domain != "") {
									var multi = localStorage.getItem("multi");
									if (multi) {
										show = false;
										var accts = JSON.parse(multi);
										Object.keys(accts).forEach(function(key) {
											var acct = accts[key];
											if (acct.domain == obj.domain) {
												show = true;
											}
										});
									}
								}
								if (show) {
									M.toast({ html: escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 });
								}
							}
						}
					}
				}
			}
		});
}
var infostreaming = false;
function infowebsocket() {
	infows = new WebSocket("wss://thedesk.top/ws/");
	infows.onopen = function(mess) {
		console.log([tlid, ":Connect Streaming Info:", mess]);
		infostreaming = true;
	};
	infows.onmessage = function(mess) {
		console.log([tlid, ":Receive Streaming:", JSON.parse(mess.data)]);
		var obj = JSON.parse(mess.data);
		if (obj.type != "counter") {
			if (obj.type == "textv2") {
				if (~obj.languages.indexOf(lang.language)) {
					localStorage.setItem("last-notice-id", obj.id);
					var show = true;
					if (obj.toot != "") {
						var toot = '<button class="btn-flat toast-action" onclick="detEx(\'' + obj.toot + "','main')\">Show</button>";
					} else {
						var toot = "";
					}
					if (obj.ver != "") {
						if (obj.ver == ver) {
							show = true;
						} else {
							show = false;
						}
					}
					if (obj.domain != "") {
						var multi = localStorage.getItem("multi");
						if (multi) {
							show = false;
							var accts = JSON.parse(multi);
							Object.keys(accts).forEach(function(key) {
								var acct = accts[key];
								if (acct.domain == obj.domain) {
									show = true;
								}
							});
						}
					}
					if (show) {
						console.log(obj.text);
						console.log(escapeHTML(obj.text));
						M.toast({ html: escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 });
					}
				}
			}
		} else {
			$("#persons").text(obj.text);
		}
	};
	infows.onerror = function(error) {
		infostreaming = false;
		console.error("Error closing:info");
		console.error(error);
		return false;
	};
	infows.onclose = function() {
		infostreaming = false;
		console.error("Closing:info");
	};
}
setInterval(function() {
	if (!infostreaming) {
		console.log("try to connect to base-streaming");
		infowebsocket();
	}
}, 10000);
function openRN() {
	$("#releasenote").modal("open");
	if (lang.language == "ja") {
		verp = ver.replace("(", "");
		verp = verp.replace(".", "-");
		verp = verp.replace(".", "-");
		verp = verp.replace("[", "-");
		verp = verp.replace("]", "");
		verp = verp.replace(")", "");
		verp = verp.replace(" ", "_");
		$("#release-" + verp).show();
	} else {
		$("#release-en").show();
	}
}
function closeSupport() {
	$("#support-btm").animate(
		{
			bottom: "-300px"
		},
		{
			duration: 300,
			complete: function() {
				$("#support-btm").addClass("hide");
			}
		}
	);
}
function storeDialog(platform, ver) {
	if (platform == "win32") {
		var mes = lang.lang_version_platform;
	} else if (platform == "linux") {
		var mes = lang.lang_version_platform_linux;
	} else if (platform == "darwin") {
		var mes = lang.lang_version_platform_mac;
	}
	Swal.fire({
		title: "Select your platform",
		text: mes,
		type: "info",
		showCancelButton: true,
		confirmButtonColor: "#3085d6",
		cancelButtonColor: "#3085d6",
		confirmButtonText: lang.lang_no,
		cancelButtonText: lang.lang_yesno
	}).then(result => {
		//逆にしてる
		if (!result.value) {
			localStorage.setItem("winstore", "winstore");
		} else {
			localStorage.setItem("winstore", "localinstall");
		}
		localStorage.setItem("ver", ver);
		show = true;
		console.log("%c Thank you for your update🎉", "color: red;font-size:200%;");
		$(document).ready(function() {
			$("#releasenote").modal("open");
			verp = ver.replace("(", "");
			verp = verp.replace(".", "-");
			verp = verp.replace(".", "-");
			verp = verp.replace("[", "-");
			verp = verp.replace("]", "");
			verp = verp.replace(")", "");
			verp = verp.replace(" ", "_");
			console.log("%c " + verp, "color: red;font-size:200%;");
			if (lang.language == "ja") {
				$("#release-" + verp).show();
			} else {
				$("#release-en").show();
			}
		});
	});
}
function closeStart() {
	$("#start").css("display", "none");
	var platform = localStorage.getItem("platform");
	var ver = localStorage.getItem("ver");
	storeDialog(platform, ver);
}