/*投稿系*/
//投稿
function sec() {
	var mode = localStorage.getItem("sec");
	var acct_id = $("#post-acct-sel").val();
	var domain = localStorage.getItem("domain_" + acct_id);
	if (~domain.indexOf("kirishima.cloud") >= 0 && mode == "local") {
		mode = "unlisted";
	}
	post(null, mode);
}
function post(mode, postvis) {
	if ($("#toot-post-btn").prop("disabled")) {
		return false;
	}
	var str = $("#textarea").val();
	var acct_id = $("#post-acct-sel").val();
	localStorage.setItem("last-use", acct_id);
	var domain = localStorage.getItem("domain_" + acct_id);
	if (!localStorage.getItem("cw_sentence")) {
		var cw_sent = 500;
	} else {
		var cw_sent = localStorage.getItem("cw_sentence");
	}
	if (!localStorage.getItem("cw_letters")) {
		var cw_ltres = 7000;
	} else {
		var cw_ltres = localStorage.getItem("cw_letters");
	}
	if (domain != "kirishima.cloud") {
		if (mode != "pass" && !$("#cw").hasClass("cw-avail") && (str.length > cw_sent || (str.split("\n").length - 1) > cw_ltres)) {
			var plus = str.replace(/\n/g, "").slice(0, 10) + "...";
			Swal.fire({
				title: lang.lang_post_cwtitle,
				text: lang.lang_post_cwtxt + plus,
				type: 'info',
				showCancelButton: true,
				confirmButtonColor: '#3085d6',
				cancelButtonColor: '#3085d6',
				confirmButtonText: lang.lang_post_btn2,
				cancelButtonText: lang.lang_post_btn3,
				showCloseButton: true,
				focusConfirm: false,
			}).then((result) => {
				if (result.dismiss == "cancel") {
					//btn3:sonomama
					post("pass")
				} else if (result.value) {
					//btn2:auto-CW
					$("#cw-text").show();
					$("#cw").addClass("yellow-text");
					$("#cw").addClass("cw-avail");
					$("#cw-text").val(plus);
					post("pass")
				}
			})
			return false;
		}
	}
	if (localStorage.getItem("mode_" + domain) == "misskey") {
		misskeyPost();
		return;
	}
	$(".toot-btn-group").prop("disabled", true);
	todo("Posting");
	var at = localStorage.getItem("acct_" + acct_id + "_at");
	var start = "https://" + domain + "/api/v1/statuses";
	var reply = $("#reply").val();
	if (str.indexOf(localStorage.getItem("stable")) == -1) {
		str + " #" + localStorage.getItem("stable");
	}
	var toot = {
		status: str
	}
	if (reply) {
		toot.in_reply_to_id = reply
	}
	var media = $("#media").val();
	if (media) {
		toot.media_ids = media.split(",");
	}
	if ($("#nsfw").hasClass("nsfw-avail")) {
		var nsfw = "true";
		toot.sensitive = nsfw;
	} else {
		var nsfw = "false";
	}
	if (postvis) {
		var vis = postvis;
	} else {
		var vis = $("#vis").text();
	}
	if (vis != "inherit" && vis != "local") {
		toot.visibility = vis;
	} else if (vis == "local") {
		toot.status = str + "👁️";
	}
	if ($("#cw").hasClass("cw-avail")) {
		var spo = $("#cw-text").val();
		cw();
		toot.spoiler_text = spo;
	} else {
		var spo = "";
	}
	if ($("#sch-box").hasClass("sch-avail")) {
		var scheduled = formattimeutc(new Date(Date.parse($("#sch-date").val())))
		console.log("This toot will be posted at:" + scheduled)
		schedule();
		toot.scheduled_at = scheduled;
	} else {
		var scheduled = "";
	}
	if ($("#poll-sel").val() == "mastodon-poll") {
		var options = [];
		$(".mastodon-choice").map(function () {
			var choice = $(this).val();
			if (choice != "") {
				options.push(choice);
			}
		});
		if ($("#poll-multiple:checked").val() == "1") {
			var mul = true;
		} else {
			var mul = false;
		}
		if ($("#poll-until:checked").val() == "1") {
			var htt = true;
		} else {
			var htt = false;
		}
		var exin = pollCalc();
		if (!exin) {
			todc("Error: Poll expires_in param")
		}
		toot.poll = {
			options: options,
			expires_in: exin,
			multiple: mul,
			hide_totals: htt
		}
	}
	console.table(toot);
	var httpreq = new XMLHttpRequest();
	httpreq.open('POST', start, true);
	httpreq.setRequestHeader('Content-Type', 'application/json');
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
	httpreq.responseType = "json";
	httpreq.send(JSON.stringify(toot));
	httpreq.onreadystatechange = function () {
		if (httpreq.readyState === 4) {
			var json = httpreq.response;
			var box = localStorage.getItem("box");
			if (box == "yes" || !box) {
				$("#textarea").blur();
				hide();
			}
			$(".toot-btn-group").prop("disabled", false);
			todc();
			clear();
		}
	}
}
function misskeyPost() {
	var str = $("#textarea").val();
	var acct_id = $("#post-acct-sel").val();
	localStorage.setItem("last-use", acct_id);
	var domain = localStorage.getItem("domain_" + acct_id);
	$(".toot-btn-group").prop("disabled", true);
	todo("Posting");
	var at = localStorage.getItem("acct_" + acct_id + "_at");
	var start = "https://" + domain + "/api/notes/create";
	var reply = $("#reply").val();
	var toot = {
		text: str
	}
	if (reply) {
		if (reply.indexOf("renote") !== -1) {
			toot.renoteId = reply.replace("renote_", "")
		} else {
			toot.replyId = reply
		}
	}

	var media = $("#media").val();
	if (media) {
		toot.mediaIds = media.split(",");
	}
	if ($("#nsfw").hasClass("nsfw-avail")) {
		var nsfw = "true";
		toot.sensitive = nsfw;
	} else {
		var nsfw = "false";
	}
	var vis = $("#vis").text();
	if (vis == "unlisted") {
		vis = "home"
	} else if (vis == "direct") {
		vis = "specified";
		toot.visibleUserIds = str.match(/@([a-zA-Z0-9_@.-]+)(\s|$)/g).join('').split("@");
	}
	if (vis != "inherit") {
		toot.visibility = vis;
	}
	if ($("#cw").hasClass("cw-avail")) {
		var spo = $("#cw-text").val();
		cw();
		toot.cw = spo;
	} else {
		var spo = "";
	}
	toot.i = at;
	var httpreq = new XMLHttpRequest();
	httpreq.open('POST', start, true);
	httpreq.setRequestHeader('Content-Type', 'application/json');
	httpreq.responseType = "json";
	httpreq.send(JSON.stringify(toot));
	httpreq.onreadystatechange = function () {
		if (httpreq.readyState === 4) {
			if (str.indexOf(localStorage.getItem("stable")) == -1) {
				localStorage.removeItem("stable")
			}
			var json = httpreq.response;
			console.log(["Success: toot", json]);
			var box = localStorage.getItem("box");
			if (box == "yes") {
				hide();
			} else if (box == "hide") {
				$("body").addClass("mini-post");
				$(".mini-btn").text("expand_less");
			}
			$(".toot-btn-group").prop("disabled", false);
			todc();
			clear();
		}
	}
}

//クリア(Shift+C)
function clear() {
	$("#textarea").val("");
	if (localStorage.getItem("stable")) {
		$("#textarea").val("#" + localStorage.getItem("stable") + " ")
	}
	$("#textarea").attr("placeholder", lang.lang_toot);
	$("#reply").val("");
	$("#media").val("");
	var cwt = localStorage.getItem("cw-text");
	if (cwt) {
		$("#cw-text").val(cwt);
	} else {
		$("#cw-text").val("");
	}
	var acw = localStorage.getItem("always-cw");
	if (acw != "yes") {
		$("#cw").removeClass("yellow-text");
		$("#cw").removeClass("cw-avail");
		$("#cw-text").hide();
	} else {
		$("#cw").addClass("yellow-text");
		$("#cw").addClass("cw-avail");
		$("#cw-text").show();
	}
	$("#rec").text(lang.lang_no);
	$("#mec").text(lang.lang_nothing);
	loadVis();
	$("#nsfw").removeClass("yellow-text");
	$("#nsfw").html("visibility_off");
	$("#nsfw").removeClass("nsfw-avail");
	$("#nsc").text(lang.lang_nothing);
	$("#drag").css("background-color", "#e0e0e0");
	$("#preview").html("");
	$(".toot-btn-group").prop("disabled", false);
	$("#post-acct-sel").prop("disabled", false);
	$("#days_poll").val(0);
	$("#hours_poll").val(0);
	$("#mins_poll").val(6);
	$(".mastodon-choice").map(function () {
		$(this).val("");
	});
	localStorage.removeItem("image");
	if (localStorage.getItem("mainuse") == "main") {
		$("#post-acct-sel").val(localStorage.getItem("main"));
	}
	$('select').formSelect();
	$("#left-side").show();
	$("#default-emoji").show();
	$("#unreact").show();
	$("#addreact").addClass("hide");
}