/* Check if the current item was answered incorrectly */ var elmnts = document.getElementsByClassName("incorrect"); if(elmnts[0] === undefined) { alert("Wanikani Override error: Current item wasn't answered incorrectly!"); return false; } /* Grab information about current question */ var curItem = $.jStorage.get("currentItem"); var questionType = $.jStorage.get("questionType"); /* Build item name */ var itemName; if(curItem.rad) { itemName = "r"; } else if(curItem.kan) { itemName = "k"; } else { itemName = "v"; } itemName += curItem.id; /* Grab item from jStorage. * * item.rc and item.mc => Reading/Meaning Completed (if answered the item correctly) * item.ri and item.mi => Reading/Meaning Invalid (number of mistakes before answering correctly) */ var item = $.jStorage.get(itemName) || {}; /* Update the item data to ignore the fact we got it wrong this time */ if(questionType === "meaning") { if(typeof item.mi == "undefined") { alert("Wanikani Override error: i.mi undefined."); return false; } else if(item.mi <= 0) { alert("Wanikani Override error: i.mi <= 0"); return false; } item.mi -= 1; delete item.mc; } else { if(typeof item.ri == "undefined") { alert("Wanikani Override error: i.ri undefined."); return false; } else if(item.ri <= 0) { alert("Wanikani Override error: i.ri <= 0"); return false; } item.ri -= 1; delete item.rc; } /* Save the new state back into jStorage */ $.jStorage.set(itemName, item); /* Decrement the questions counter and wrong counter */ var wrongCount = $.jStorage.get("wrongCount"); var questionCount = $.jStorage.get("questionCount"); $.jStorage.set("wrongCount", wrongCount-1); $.jStorage.set("questionCount", questionCount-1); /* Make the answer field yellow instead of red */ $("#answer-form fieldset").removeClass("incorrect"); $("#answer-form fieldset").addClass("WKO_ignored"); return true;