$(document).ready(function() { var $home = $("#home"); var $game = $("#game"); var $become_judge = $('[data-state="become-judge"]'); var $judge_collect = $('[data-state="judge-collect"]'); var $judge_choose = $('[data-state="judge-choose"]'); var $player_choose = $('[data-state="player-choose"]'); var $player_wait = $('[data-state="player-wait"]'); var $leave_room = $('#leave-room'); var $all = $("[data-state]"); var $join_btn = $("#join-btn"); var $become_judge_btn = $("#become-judge-btn"); var $judge_collect_btn = $("#judge-collect-btn"); var $black_card = $("#black-card"); var $played_card_number = $("#played-card-number"); var $header = $("header"); var $white_cards = $('#white-cards'); var $played_cards = $('#played-cards'); var $score_value = $('#score-value'); $leave_room.click(function () { window.location.reload(); }); $become_judge_btn.click(function() { cao.pick_black_card(); }); $join_btn.click(function () { cao.join_game(prompt('Name of the game')); }); $judge_collect_btn.click(function() { cao.collect_cards(); }); cao.on_socket_open = function() { $join_btn.show(); }; cao.on_join_game_ok = function() { $header.show(); $home.removeClass("current"); $game.addClass("current"); $all.hide(); }; cao.on_change_state = function(state) { $all.hide(); switch (state) { case 'waiting_judge': $become_judge.show(); break; case 'waiting_designation': if (cao.is_judge()) { $judge_choose.show(); $played_cards.removeAttr('disabled'); $played_cards.removeClass('read-only'); } else { $player_wait.show(); $white_cards.attr('disabled', true); $white_cards.addClass('read-only'); } break; case 'waiting_collection': if (cao.is_judge()) { $judge_collect.show(); $white_cards.attr('disabled', true); $white_cards.addClass('read-only'); } else { $player_choose.show(); $white_cards.removeAttr('disabled'); $white_cards.removeClass('read-only'); } break; default: console.log('unhandled state'); break; } }; cao.on_show_white_card = function(idx, desc) { var identifier = 'white-card-' + idx; var content = ''; $white_cards.append(content); var self = this; $('#' + identifier).click(function () { var $this = $(this); if (!$white_cards.attr('disabled')) { if ($this.hasClass("active")) { cao.get_white_card_event($this.prop('name'))(); } else { $white_cards.find("> .card").removeClass("active"); $this.addClass("active"); } } }); }; cao.on_show_played_card = function(idx, desc) { var identifier = 'played-card-' + idx; var content = ''; $played_cards.append(content); var self = this; $('#' + identifier).click(function () { var $this = $(this); if (!$played_cards.attr('disabled')) { if ($this.hasClass("active")) { cao.get_played_card_event($this.prop('name'))(); } else { $played_cards.find("> .card").removeClass("active"); $this.addClass("active"); } } }); }; cao.on_show_black_card = function(desc) { $('#black-card').html(desc); }; cao.on_play_white_card_ok = function(idx) { $white_cards.attr('disabled', true); $white_cards.addClass('read-only'); $player_wait.show(); $('#white-card-' + idx).remove(); }; cao.on_updated_score = function(score) { $score_value.text(score); }; cao.on_change_nbr_played_cards = function(nbr) { $played_card_number.text(nbr); }; cao.on_collect_cards_ok = function() { $white_cards.hide(); $played_cards.show(); }; cao.on_designate_card_ok = function(idx) { $played_cards.empty(); $played_cards.hide(); $white_cards.show(); }; cao.run(); });