|  | @@ -13,6 +13,7 @@ $(function() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      function validate_word(word) {
 | 
	
		
			
				|  |  | +        var allowedChars = [" ", "-", "'"]
 | 
	
		
			
				|  |  |          var countmap = {};
 | 
	
		
			
				|  |  |          for (var i = 0; i < char_list.length; i++) {
 | 
	
		
			
				|  |  |              var upper = char_list[i].toUpperCase();
 | 
	
	
		
			
				|  | @@ -26,6 +27,8 @@ $(function() {
 | 
	
		
			
				|  |  |          for (var i = 0; i < uppercase_word.length; i++) {
 | 
	
		
			
				|  |  |              var upper = uppercase_word.charAt(i);
 | 
	
		
			
				|  |  |              var count = countmap[upper];
 | 
	
		
			
				|  |  | +            if (allowedChars.includes(upper))
 | 
	
		
			
				|  |  | +                continue;
 | 
	
		
			
				|  |  |              if (count != null) {
 | 
	
		
			
				|  |  |                  if (count <= 0) {
 | 
	
		
			
				|  |  |                      return false;
 | 
	
	
		
			
				|  | @@ -77,7 +80,8 @@ $(function() {
 | 
	
		
			
				|  |  |          send(msg);
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    $('#submit').click(function() {
 | 
	
		
			
				|  |  | +    $('#createform').submit(function(ev) {
 | 
	
		
			
				|  |  | +        ev.preventDefault();
 | 
	
		
			
				|  |  |          var word = $('#word').val();
 | 
	
		
			
				|  |  |          if (validate_word(word)) {
 | 
	
		
			
				|  |  |              var msg = {
 | 
	
	
		
			
				|  | @@ -92,20 +96,9 @@ $(function() {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    $('#submitGuess').click(function() {
 | 
	
		
			
				|  |  | -        var list = [];
 | 
	
		
			
				|  |  | -        for(var i = 0; i < wordlist.length; i++) {
 | 
	
		
			
				|  |  | -            var field = "#g" + i;
 | 
	
		
			
				|  |  | -            var numTxt = $(field).val();
 | 
	
		
			
				|  |  | -            var number = parseInt(numTxt);
 | 
	
		
			
				|  |  | -            if (number > 0 && number <= questionlist.length) {
 | 
	
		
			
				|  |  | -                list.push([wordlist[i], questionlist[number - 1]]);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            else {
 | 
	
		
			
				|  |  | -                statusMessage("Please enter a valid number");
 | 
	
		
			
				|  |  | -                return;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +    $('#guessingform').submit(function(ev) {
 | 
	
		
			
				|  |  | +        ev.preventDefault();
 | 
	
		
			
				|  |  | +        var list = getDragAnswers();
 | 
	
		
			
				|  |  |          var msg = {
 | 
	
		
			
				|  |  |              submit_guess: {
 | 
	
		
			
				|  |  |                  guesses: list
 | 
	
	
		
			
				|  | @@ -174,6 +167,7 @@ $(function() {
 | 
	
		
			
				|  |  |                  char_list = chars;
 | 
	
		
			
				|  |  |                  $('#question-box').html(creating.question);
 | 
	
		
			
				|  |  |                  $('#letter-box').html(chars.join(" "));
 | 
	
		
			
				|  |  | +                $('#word').val("");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  setView('creating');
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -193,23 +187,10 @@ $(function() {
 | 
	
		
			
				|  |  |      function displayGuessing(guesses) {
 | 
	
		
			
				|  |  |          var sub_words = guesses.submitted_words;
 | 
	
		
			
				|  |  |          var questions = guesses.questions;
 | 
	
		
			
				|  |  | -        var questionsHtml = "";
 | 
	
		
			
				|  |  | -        for (var i = 0; i < questions.length; i++) {
 | 
	
		
			
				|  |  | -            questionsHtml += (i + 1) + ": " + questions[i] + "<br>";
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        $('#guessingDynTable').html(questionsHtml);
 | 
	
		
			
				|  |  | -        $('#guessingDyn').html("");
 | 
	
		
			
				|  |  | -        for (var i = 0; i < sub_words.length; i++) {
 | 
	
		
			
				|  |  | -            var $label = $("<label to='g" + i + "'>" + sub_words[i][0] + "</label>");
 | 
	
		
			
				|  |  | -            var $field = $("<input id='g" + i + "' type='text' /><br>");
 | 
	
		
			
				|  |  | -            $('#guessingDyn').append($label);
 | 
	
		
			
				|  |  | -            $('#guessingDyn').append($field);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          questionlist = questions;
 | 
	
		
			
				|  |  |          wordlist = sub_words.map(pair => pair[0]);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  | +        setupDraggame(questionlist, wordlist);
 | 
	
		
			
				|  |  |          setView('guessing');
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -220,7 +201,7 @@ $(function() {
 | 
	
		
			
				|  |  |              solution_dict[sol[i][0]] = sol[i][1];
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          var $table = $('<table/>');
 | 
	
		
			
				|  |  | -        //$table.addClass('result-table');
 | 
	
		
			
				|  |  | +        $table.addClass('result-table');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          var wordline = "<tr><th></th>";
 | 
	
		
			
				|  |  |          for(var i = 0; i < result.words.length; i++) {
 | 
	
	
		
			
				|  | @@ -252,9 +233,9 @@ $(function() {
 | 
	
		
			
				|  |  |      function updatePlayerList(players) {
 | 
	
		
			
				|  |  |          playerlist = "";
 | 
	
		
			
				|  |  |          for (var i = 0; i < players.length; i++) {
 | 
	
		
			
				|  |  | -            playerlist += players[i].nick + "(" + players[i].points + ")";
 | 
	
		
			
				|  |  | +            playerlist += "<p>" + players[i].nick + " (" + players[i].points + ")";
 | 
	
		
			
				|  |  |              if (i + 1 < players.length)
 | 
	
		
			
				|  |  | -                playerlist += "<br>";
 | 
	
		
			
				|  |  | +                playerlist += "</p>";
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          $('#player-list').html(playerlist);
 | 
	
		
			
				|  |  |          $('#lobby-control').show();
 |