<!DOCTYPE html>
<meta charset="utf-8" />
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script language="javascript" type="text/javascript">
        $(function() {
            var connection = null;

            $('#join').click(function() {
                var game_id = $('#gameId').val();
                var nick = $('#nick').val();
                var msg = {
                    join: {
                        game_id: game_id,
                        nick: nick,
                    }
                };
                connect(msg);
            });

            $('#create').click(function() {
                var game_id = $('#gameId').val();
                var nick = $('#nick').val();
                var msg = {
                    create_game: {
                        game_id: game_id,
                        nick: nick,
                    }
                };
                connect(msg);
            });

            function connect(initial_message) {
                if (connection != null) {
                    disconnect();
                }
                var uri = 'ws://' + window.location.host + '/ws/';
                connection = new WebSocket(uri);

                connection.onopen = function() {
                    connection.send(JSON.stringify(initial_message));
                };
                connection.onmessage = function(e) {
                    onReceive(e);
                };
                connection.onclose = function() {
                    connection = null;
                };
            }
            
            function disconnect() {
                connection.close();
                connection = null;
            }

            function onReceive(msg) {
                var obj = jQuery.parseJSON(msg.data);
                if (obj.game_not_found != null) {
                    $('#status').html("Game \"" + obj.game_not_found.game_id + "\" not found");
                }
                else if (obj.game_already_exists != null) {
                    $('#status').html("Game \"" + obj.game_already_exists.game_id + "\" already exists");
                }
                else if (obj.game_state != null) {
                    playerlist = "";
                    for (var i = 0; i < obj.game_state.players.length; i++) {
                        playerlist = playerlist + ", " + obj.game_state.players[i];
                    }
                    $('#status').html("Players: " + playerlist);
                }
                else {
                    $('#status').html("Unknown Message recieved");
                }
            }
        });
    </script>
</head>
<body>
<form id="loginform">
  <label for="gameId">Game ID:</label>
  <input id="gameId" type="text"  /><br>
  <label for="nick">Nickname:</label>
  <input id="nick" type="text" /><br>
  <input id="join" type="button" value="Join" />
  <input id="create" type="button" value="Create Game" />
</form>
<div id="status">
</div>
</body>
</html>