var keyInput = false; var resetID = null; var pendingPostID = null; var timeoutLength = 60000; var currentRequest = null; doSubmit = function() { $("#wordForm").submit(); } $(document).ready(function() { console.log("Ready"); // Focus on letter input. $("input[name=letters]").focus(); // If space is pressed in letters, jump to regex. $("input[name=letters]").keydown(function(event) { if (event.which == 32) { cancelReset(); $("input[name=regex]").focus(); event.preventDefault(); return; } }); // If space is pressed in regex, jump to extra. $("input[name=regex]").keydown(function(event) { if (event.which == 32) { cancelReset(); $("input[name=extra]").focus(); event.preventDefault(); return; } }); // If space is pressed in extra, jump to letters. $("input[name=extra]").keydown(function(event) { if (event.which == 32) { cancelReset(); $("input[name=letters]").focus(); event.preventDefault(); return; } }); // Auto submit when letters gets input. $("input[name=letters]").keyup(function(event) { keyInput = true; if (event.which == 32) { return; } cancelReset(); pendingPostID = setTimeout(doSubmit, 500); }); // Auto submit on regex when there is enough input. $("input[name=regex]").keyup(function(event) { if (event.which == 32) { return; } cancelReset(); if ($("input[name=letters]").val().length > 0 ||$("input[name=regex]").val().length > 2) { keyInput = true; pendingPostID = setTimeout(doSubmit, 500); } }); // Auto submit when extra gets input and letters has something. $("input[name=extra]").keyup(function(event) { keyInput = true; if (event.which == 32) { return; } cancelReset(); if ($("input[name=letters]").val().length > 0) { keyInput = true; pendingPostID = setTimeout(doSubmit, 500); } }); // Auto submit when exclude gets input and letters has something. $("input[name=exclude]").keyup(function(event) { keyInput = true; if (event.which == 32) { return; } cancelReset(); if ($("input[name=letters]").val().length > 0 || $("input[name=regex]").val().length > 0) { keyInput = true; pendingPostID = setTimeout(doSubmit, 500); } }); // Auto submit when xpos gets selected and extra/letters has something. $("input[name=xpos]").change(function(event) { cancelReset(); if ($("input[name=letters]").val().length > 0 && $("input[name=extra]").val().length > 0) { keyInput = true; pendingPostID = setTimeout(doSubmit, 500); } }); $("#wordForm").submit(function(e) { var form = $(this); var url = form.attr('action'); cancelReset(); currentRequest = $.ajax({ type: "POST", url: url + "js", data: form.serialize(), dataType: 'json', success: function(data) { showTable(data); resetID = setTimeout(resetWords, timeoutLength); currentRequest = null; } }); e.preventDefault(); }); $("#wordleForm").submit(function(e) { var form = $(this); var url = form.attr('action'); cancelReset(); $("#wdl-words").html(""); currentRequest = $.ajax({ type: "POST", url: url + "js", data: form.serialize(), // dataType: 'json', success: function(data) { $("#wdl-words").html(data); } }); e.preventDefault(); }); $("input[name=clear]").click(function(e) { $("#wordList").html(''); resetWords(); $("input[name=letters]").focus(); }); $("input[name=extend]").click(function(e) { timeoutLength = 600000; $("input[name=extend]").hide(); cancelReset(); }); }); renderWord = function(word) { var html = ""; for (var i=0; i < word.Word.length; i++) { var isBlank = false; for (var j=0; j < word.Blanks.length; j++) { if (word.Word[i] == word.Blanks[j]) { isBlank = true; } } if (isBlank) { html += '' + word.Word[i] + ''; } else { html += word.Word[i]; } } return html } cancelReset = function() { if (currentRequest != null) { console.log("abrt.."); currentRequest.abort(); } if (resetID != null) { clearTimeout(resetID); resetID = null; } if (pendingPostID != null) { clearTimeout(pendingPostID); pendingPostID = null; } } resetWords = function() { $("#wordList").html(""); $("input[name=letters]").val(""); $("input[name=regex]").val(""); $("input[name=extra]").val(""); $("input[name=exclude]").val(""); $("input[name=letters]").focus(); $("input[name=xpos]").filter("[value='m']").prop("checked", true); } showTable = function(data) { var content = "
| ';
$.each(element, function(i, e) {
content += renderWord(e) + ' [' + e.Points + '] '; }); content += ' | ';
});
content += '