#include "ui/menudef.h"

{

  \\ Server Join \\

#define W           640
#define H           480
#define BORDER      10

#define PREVIEW_W   112
#define PREVIEW_H   84
#define TOP_W       (W-((2*BORDER)+PREVIEW_W))
#define TOP_H       PREVIEW_H
#define TOP_X       BORDER
#define TOP_Y       BORDER
#define TOPBUTT_W   (TOP_W/3)
#define TOPBUTT_H   (TOP_H/2)
#define TOP_TOFF_X  20
#define TOP_TOFF_Y  0

#define BCJ_W       (W-(2*BORDER))
#define BCJ_H       50
#define BCJ_X       BORDER
#define BCJ_Y       (H-(BCJ_H+BORDER))
#define ARROW_W     50
#define ARROW_H     BCJ_H

#define BOT_W       (W-(2*BORDER))
#define BOT_H       45
#define BOT_X       BORDER
#define BOT_Y       (BCJ_Y-BOT_H)
#define BOTBUTT_W   (BOT_W/5)
#define BOTBUTT_H   BOT_H

#define SERVER_C    0.6
#define MAP_C       0.2
#define PLAYERS_C   0.1
#define PING_C      0.1
#define LIST_W      (W-(2*BORDER))
#define LIST_H      (H-((3*BORDER)+TOP_H+BOT_H+BCJ_H))
#define LIST_X      BORDER
#define LIST_Y      ((2*BORDER)+TOP_H)
#define LIST_TOFF   5
#define HEADFOOT_H  25

  menuDef
  {
    name "ingame_sbrowser"
    visible MENU_FALSE
    fullscreen 0
    rect 0 0 1000 1000
    focusColor 1 1 1 1
    outOfBoundsClick
    style WINDOW_STYLE_EMPTY
    aspectBias ASPECT_NONE
    onOpen
    {
      uiScript InitServerList 3;
      hide accept_alt;
      show accept;
      hide back_alt;
      show back;
	  close ingame;
      uiScript UpdateFilter
    }
    onEsc {close ingame_sbrowser}

	
	itemDef
    {
      name "aurora_add"
      style WINDOW_STYLE_SHADER
      rect -180 0 1000 480
      visible 1
	  background "ui/menu_main_aurora_base_stars"
      decoration
    }
	
	itemDef
    {
      name "aurora"
      style WINDOW_STYLE_SHADER
      rect -160 0 1000 480
      visible 1
	  background "ui/menu_main_aurora_base"
      decoration
    }
	
	itemDef
    {
      name "dist"
      style WINDOW_STYLE_SHADER
      rect -250 0 1000 480
      visible 1
	  background "gfx/edge/basi_invisble_overlay"
      decoration
    }

    itemDef
    {
      name refreshSource
      text "Get New List"
      type ITEM_TYPE_BUTTON
      textscale .5
      style WINDOW_STYLE_FILLED
      rect 10 300 100 25
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
      backcolor 0 0 0 .9
      forecolor 0 0.8 1 1
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        uiScript RefreshServers
      }
    }

    itemDef
    {
      name refreshFilter
      text "Refresh List"
      textscale .5
      style WINDOW_STYLE_FILLED
      type ITEM_TYPE_BUTTON
      rect 120 300 100 25
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
      backcolor 0 0 0 .9
      forecolor 0 0.8 1 1
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        uiScript RefreshFilter
      }
    }
	
    itemDef
    {
      name gametypefield
      text "Source:"
      style WINDOW_STYLE_FILLED
      ownerdraw UI_NETSOURCE
      rect 230 300 125 25
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
	  textalignx -30
      textscale .5
      forecolor 0 0.8 1 1
      backcolor 0 0 0 .9
      visible 1
      action
      {
        play "sound/misc/menu1.wav"
      }
    }
	
    itemDef
    {
      name gametypefield
      text "Join Server"
      type ITEM_TYPE_BUTTON
      style WINDOW_STYLE_FILLED
      rect 365 300 80 25
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
      textscale .5
      forecolor 0 0.8 1 1
      backcolor 0 0 0 .9
      visible 1
      action
      {
        play "sound/misc/menu1.wav";
        uiScript JoinServer
      }
    }
	
    itemDef
    {
      name viewEmpty
      style WINDOW_STYLE_EMPTY
      type ITEM_TYPE_YESNO
      text "View Empty:"
      cvar "ui_browserShowEmpty"
      textscale .45
      style WINDOW_STYLE_FILLED
      rect 10 340 110 25
	  textalignx -15
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
      forecolor 0 0.8 1 1
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        uiScript RefreshFilter
      }
    }

    itemDef
    {
      name viewFull
      style WINDOW_STYLE_EMPTY
      type ITEM_TYPE_YESNO
      text "View Full:"
      cvar "ui_browserShowFull"
      textscale .45
      style WINDOW_STYLE_FILLED
      rect 10 370 110 25
	  textalignx -15
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
      forecolor 0 0.8 1 1
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        uiScript RefreshFilter
      }
    }

    itemDef
    {
      name server
      group grpTabs
      text "Server Name"
      type ITEM_TYPE_BUTTON
      textscale .33
      style WINDOW_STYLE_FILLED
      rect LIST_X (LIST_Y-80) (SERVER_C*LIST_W) HEADFOOT_H
      textalign ALIGN_LEFT
      textvalign VALIGN_CENTER
      textalignx LIST_TOFF
      border WINDOW_BORDER_NONE
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        uiScript ServerSort 0;
      }
    }
    itemDef
    {
      name map
      group grpTabs
      type ITEM_TYPE_BUTTON
      text "Map Name"
      textscale .33
      style WINDOW_STYLE_FILLED
      rect (LIST_X+(SERVER_C*LIST_W)) (LIST_Y-80) (MAP_C*LIST_W) HEADFOOT_H
	  textalign ALIGN_LEFT
      textvalign VALIGN_CENTER
      textalignx LIST_TOFF
      border WINDOW_BORDER_NONE
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        uiScript ServerSort 1;
      }
    }
	
    itemDef
    {
      name Ping
      group grpTabs
      text "Ping"
      type ITEM_TYPE_BUTTON
      textscale .33
      style WINDOW_STYLE_FILLED
      rect (LIST_X+((SERVER_C+MAP_C+PLAYERS_C)*LIST_W)) (LIST_Y-80) (PING_C*LIST_W) HEADFOOT_H
	  textalign ALIGN_LEFT
      textvalign VALIGN_CENTER
      textalignx LIST_TOFF
      border WINDOW_BORDER_NONE
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        uiScript ServerSort 3;
      }
    }
	
	    itemDef
    {
      name players
      group grpTabs
      text "Players"
      type ITEM_TYPE_BUTTON
      textscale .33
      style WINDOW_STYLE_FILLED
      rect (LIST_X+((SERVER_C+MAP_C)*LIST_W)) (LIST_Y-80) (PLAYERS_C*LIST_W) HEADFOOT_H
	  textalign ALIGN_LEFT
      textvalign VALIGN_CENTER
      textalignx LIST_TOFF
      border WINDOW_BORDER_NONE
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        uiScript ServerSort 2;
      }
    }


    // SERVER LIST //

    itemDef
    {
      name serverlist
      rect LIST_X ((LIST_Y+HEADFOOT_H-70)) LIST_W (LIST_H-(2*HEADFOOT_H))
      type ITEM_TYPE_LISTBOX
      style WINDOW_STYLE_FILLED
	  outlinecolor  1 1 1 0.1
      elementwidth 120
      elementheight 25
      textscale .4
      elementtype LISTBOX_TEXT
      feeder FEEDER_SERVERS
      border WINDOW_BORDER_NONE
      backcolor 0 0 0 .9
      forecolor 1 1 1 1
      visible MENU_TRUE
      columns 4
        LIST_TOFF                                       ((SERVER_C*LIST_W)-(3*LIST_TOFF))   ALIGN_LEFT
        (LIST_TOFF+((SERVER_C)*LIST_W))                 ((MAP_C*LIST_W)-(3*LIST_TOFF))      ALIGN_LEFT
        (LIST_TOFF+((SERVER_C+MAP_C)*LIST_W))           ((PLAYERS_C*LIST_W)-(3*LIST_TOFF))  ALIGN_LEFT
        (LIST_TOFF+((SERVER_C+MAP_C+PLAYERS_C)*LIST_W)) ((PING_C*LIST_W)-(3*LIST_TOFF))     ALIGN_LEFT
      doubleClick { uiScript JoinServer }
    }


    // BOTTOM BUTTONS //

    itemDef
    {
      name password
      text "Set Password"
      type ITEM_TYPE_BUTTON
      textscale .4
      style WINDOW_STYLE_FILLED
      rect 240 340 100 25
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
      forecolor 0 0.8 1 1
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        open password_popmenu
      }
    }

    itemDef
    {
      name createFavorite
      text "Create Favorite"
      type ITEM_TYPE_BUTTON
      textscale .4
      style WINDOW_STYLE_FILLED
      rect 130 370 100 25
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
      forecolor 0 0.8 1 1
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        open createfavorite_popmenu
      }
    }

    itemDef
    {
      name addFavorite
      text "Add Favorite"
      type ITEM_TYPE_BUTTON
      textscale .4
      ownerdrawFlag UI_SHOW_NOTFAVORITESERVERS
      style WINDOW_STYLE_FILLED
      rect 130 340 100 25
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
      forecolor 0 0.8 1 1
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        uiScript addFavorite
      }
    }

    itemDef
    {
      name delfavorite
      text "Delete Favorite"
      type ITEM_TYPE_BUTTON
      textscale .4
      ownerdrawFlag UI_SHOW_FAVORITESERVERS
      style WINDOW_STYLE_FILLED
      rect 130 340 100 25
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
      forecolor 0 0.8 1 1
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        uiScript DeleteFavorite;
        uiScript UpdateFilter
      }
    }

    itemDef
    {
      name serverinfo
      text "Server Info"
      type ITEM_TYPE_BUTTON
      textscale .4
      style WINDOW_STYLE_FILLED
      rect 350 340 100 25
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
      forecolor 0 0.8 1 1
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        open serverinfo_popmenu
      }
    }

    itemDef
    {
      name findplayer
      text "Find a Friend"
      type ITEM_TYPE_BUTTON
      textscale .4
      style WINDOW_STYLE_FILLED
      rect 460 340 100 25
      textalign ALIGN_CENTER
      textvalign VALIGN_CENTER
      forecolor 0 0.8 1 1
      backcolor 0 0 0 .9
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu1.wav";
        open findplayer_popmenu
      }
    }


    // BACK BAR //

    itemDef
    {
      name back
      style WINDOW_STYLE_SHADER
      background "ui/assets/backarrow.tga"
      rect BCJ_X (BCJ_Y-17) ARROW_H ARROW_W
      aspectBias ALIGN_LEFT
	  forecolor 0 0.8 1 1
      visible MENU_TRUE
      action
      {
        play "sound/misc/menu4.wav";
        close joinserver
      }

      mouseEnter
      {
        hide back;
        show back_alt
      }
    }

    itemDef
    {
      name back_alt
      style WINDOW_STYLE_SHADER
      background "ui/assets/backarrow.tga"
      rect BCJ_X (BCJ_Y-17) ARROW_H ARROW_W
      aspectBias ALIGN_LEFT
      backcolor 0 0 0 0
      forecolor 0 0.8 1 1
      visible MENU_FALSE
      type ITEM_TYPE_BUTTON

      text "Close"
      textalign ALIGN_LEFT
      textvalign VALIGN_CENTER
      textalignx ARROW_W
      textscale .6

      mouseExit
      {
        hide back_alt;
        show back
      }

      action
      {
        play "sound/misc/menu4.wav";
        close ingame_sbrowser
      }
    }




    itemDef
    {
      name accept
      style WINDOW_STYLE_SHADER
      rect (BCJ_X+570) (BCJ_Y-17) ARROW_H ARROW_W
      aspectBias ALIGN_RIGHT
      background "ui/assets/forwardarrow.tga"
      backcolor 0 0 0 0
      forecolor 0 0.8 1 1
      visible MENU_TRUE
      mouseEnter
      {
        hide accept;
        show accept_alt
      }

      action
      {
        play "sound/misc/menu1.wav";
        uiScript JoinServer
      }
    }

    itemDef
    {
      name accept_alt
      style WINDOW_STYLE_SHADER
      rect (BCJ_X+570) (BCJ_Y-17) ARROW_H ARROW_W
      aspectBias ALIGN_RIGHT
      background "ui/assets/forwardarrow.tga"
      backcolor 0 0 0 0
      type ITEM_TYPE_BUTTON
      forecolor 0 0.8 1 1
      visible MENU_FALSE

      text "Connect"
      textalign ALIGN_RIGHT
      textvalign VALIGN_CENTER
      textalignx -ARROW_W
      textscale .6

      mouseExit
      {
        hide accept_alt;
        show accept
      }

      action
      {
        play "sound/misc/menu1.wav";
        uiScript JoinServer
      }
    }
}