         [:div.form-group
          [:button.btn.btn-default (cond-> {:type "button" :on-click #(user-login app-state)} (blank? (:username @app-state)) (assoc :disabled "disabled")) "Login"]]
         [:div.form-group
-         [:div.alert.alert-danger {:class alert-hidden}
-          [:strong "Error "] alert]]]]]]))
+         [:div.alert.alert-danger {:class alert-hidden} alert]]]]]]))
 
 (defn about-page [_]
   [:div.container

  (reset! state {})
  (session/put! :current-page :home-page))

(defn handle-message [state msg]
  (println "message" msg)
  (cond
    (= msg ["ok" "login"]) (logged-in state)
    (= msg ["ok" "logout"]) (logged-out state)
    (= msg ["ok" "join"]) (table-joined state)
    (= msg ["ok" "leave"]) (table-left state)
    (= msg ["ok" "last_game"]) (swap! state assoc-in [:play-page :last-game] true)
    (or (= msg ["ok" "lielais"])
        (= msg ["ok" "zole"])
        (= msg ["ok" "pass"])) (swap! state assoc-in [:play-page :prompt] nil)
    (= msg ["ok" "tables"]) (session/put! :current-page :tables-page)
    (= msg ["ok" "save"]) (do (swap! state assoc-in [:play-page :saved] nil)
                              (swap! state assoc-in [:play-page :prompt] nil))
    (= msg ["error" "already_registered" "login"]) (error-alert state (gstring/format "Username '%s' is already taken." (:username @state)))
    (= (first msg) "tables") (swap! state assoc-in [:tables-page :tables] (sort-by :name (map (fn [[table players]] {:name table :players (apply str (interpose \, players))}) (second msg))))
    (= (first msg) "open_tables") (swap! state assoc-in [:tables-page :tables] (sort-by :name (map (fn [[table players]] {:name table :players (apply str (interpose \, players))}) (second msg))))
    (= (first msg) "cards") (swap! state assoc-in [:play-page :cards] (second msg))
    (= (first msg) "players") (start-game state (second msg))
    (= (first msg) "prompt") (swap! state assoc-in [:play-page :prompt] (second msg))
    (= (first msg) "plays") (plays state msg)
    (= (first msg) "wins") (swap! state assoc-in [:play-page :plays] {})
    (= (first msg) "game_type") (swap! state assoc-in [:play-page :game-type] (rest msg))
    (= (first msg) "table_closed") (swap! state assoc-in [:play-page :prompt] :table-closed)
    (= (first msg) "end_of_game") (end-of-game state msg)
    :else (println "unknown message" msg)))

(defn handle-error [state err]

        [:li (when (#{:home-page :tables-page :play-page} current-page) {:class "active"})
         [:a {:href "/play"} "Play"]]
        [:li (when (= current-page :about-page) {:class "active"})
         [:a {:href "/about"} "About"]]]
       (when (:loggedin @state)
         [:p.navbar-text.navbar-right (str "Signed in as " (:username @state))])]]]))

(declare connect!)

