full-featured JavaScript solitaire