var lenQuiz = 10;
var storageKeyHistory = "GyakubeniQuiz.histories";
var storageKeyAnswerOrder = "GyakubeniQuiz.answerOrder." + quizID;
var storageKey = "GyakubeniQuiz.answers." + quizID;
if (localStorage.getItem("QuizInvisible.answers") != null) {
localStorage.setItem(storageKey, localStorage.getItem("QuizInvisible.answers"));
localStorage.removeItem("QuizInvisible.answers");
}
var userAnswers, answerOrder;
try {
userAnswers = JSON.parse(localStorage.getItem(storageKey));
} catch {
userAnswers = Array(lenQuiz);
userAnswers.fill("");
}
try {
answerOrder = JSON.parse(localStorage.getItem(storageKeyAnswerOrder));
} catch {
answerOrder = [];
}
var cleared = false;
var allCorrect = false;
var difficulty = 1;
var shuffle = true;
var countable = false;
var requestID = 0;
var tweetTextBase = "";
function encode(str) {
return btoa(encodeURIComponent(str));
}
function updateTweetURL() {
var url = location.href;
if (url.indexOf("chain=") != -1) {
//url = url.replace(/chain=\d+/, "chain="+chain);
url = url.replace(/&chain=\d+/, "");
} else {
//url = url + "&chain="+chain;
}
var tweetText = tweetTextBase;
//if ($("#tweetsOrder").prop("checked")) {
if (answerOrder.length > 0) {
tweetText += "解答順:";
for (var i=0; i"));
}
var $answers = $(".answers");
var ok = true;
for (var i=0; i<$answers.length; i++) {
if (data.isCorrect[i]) {
$answers.eq(i).addClass("isCorrect");
} else {
ok = false;
$answers.eq(i).removeClass("isCorrect");
}
}
if (ok) cleared = true;
allCorrect = ok;
var $hints = $(".hints");
for (var i=0; i<$hints.length; i++) {
if (data.hints == undefined || i >= data.hints.length || data.hints[i] == "") {
$hints.eq(i).hide();
} else {
$hints.eq(i).show();
var hint = data.hints[i];
hint = hint.replace(/(https?:\/\/[\w!\?/\+\-_~=;\.,\*&@#\$%']+)/g, '$1');
hint = hint.replace(/\r?\n/g, "
");
$hints.eq(i).children(".hintContents").eq(0).html(hint);
}
}
$("#invisibleCharacters").html(data.invisibleCharacters);
var regainedCharacters = "";
for (s of data.correctAnswers) {
regainedCharacters += s;
}
tmp = regainedCharacters.split('');
tmp = tmp.filter(function (x, i, self) {
return self.indexOf(x) === i;
});
tmp.sort();
tmp = tmp.join(',');
regainedCharacters = tmp.replace(/,/g, '');
$("#regainedCharacters").text(regainedCharacters);
for (var i=0; i' + tag.name + '');
}
}
$(".tagEditList").html("");
for (var info of data.tagInfo) {
var attr = (data.tagIDs.includes(info.id) ? 'exists="exists"' : "");
$(".tagEditList").append('' + info.name + '');
}
}
function getTags() {
$.ajax({
url: "functions/getTags.php",
type: "GET",
data: {
"quizID": quizID,
},
dataType: 'json',
success: function (data) {
updateTags(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('通信に失敗しました。');
console.log(XMLHttpRequest.responseText);
}
});
}
function monitorTagEditList() {
$(".tagEditList").on("click", ".tagBoxContents", function() {
var $e = $(this);
var tagID = Number($e.attr("tagID"));
var exists = $e.attr("exists") == "exists";
console.log(exists);
$.ajax({
url: "functions/postTag.php",
type: "POST",
data: {
"quizID": quizID,
"tagID": tagID,
"adds": !exists,
},
dataType: 'json',
success: function (data) {
updateTags(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('通信に失敗しました。');
console.log(XMLHttpRequest.responseText);
}
});
});
}
$(function(){
if (userAnswers == undefined) {
userAnswers = Array(lenQuiz);
userAnswers.fill("");
} else if (userAnswers.length != $(".answers").length) {
var n = userAnswers.length - $(".answers").length;
if (n > 0) {
for (var i=0; i