/// <summary>
        /// Updates the various controls on the alert dialog for the current GameEvent.
        /// </summary>
        private void UpdateDialog()
        {
            // get the game event to display

            GameEvent gameEvent = this.currentEvents[currentIndex];


            // update title

            lblTimestamp.Text = Misc.Timestamp(gameEvent.EventTime);
            lblTitle.Text     = gameEvent.Title;

            int minsDiff = (int)(gameEvent.EventReceived - gameEvent.EventTime).TotalMinutes;

            if (minsDiff > 5) // received over 5 mins after the event occurred
            {
                lblMinsAgo.Visible = true;
                lblMinsAgo.Text    = "(" + String.Format(Language.Time_MinsAgo, Misc.MinsAgoShort(gameEvent.EventTime)) + ")";
            }
            else
            {
                lblMinsAgo.Visible = false;
            }


            // update icons

            this.iconNormal = (Bitmap)gameEvent.AlertIcon;
            this.iconActive = Misc.AdjustBrightness(iconNormal, 40); // brighter version for mouseover

            picIcon.Image = iconNormal;


            // update description

            lblDescription.Text = gameEvent.Description;


            // if capture event, show flags (move icon up a bit)

            if (gameEvent is ICountryChangeGameEvent)
            {
                picIcon.Location = new Point(picIcon.Location.X, 35);
                picFlags.Image   = GenerateFlagImage((ICountryChangeGameEvent)gameEvent);
                picFlags.Visible = true;
            }
            else
            {
                picIcon.Location = new Point(picIcon.Location.X, 38);
                picFlags.Visible = false;
            }


            // show "show future alerts" checkbox if new under attack event, and filtering by cp

            if (gameEvent is ChokePointUnderAttackGameEvent && ((ChokePointUnderAttackGameEvent)gameEvent).NewAttack &&
                options.Alerts.filterChokePoint)
            {
                lblDescription.Padding = new Padding(0, 0, 0, 18);
                cbShowAlerts.Visible   = true;
                cbShowAlerts.Checked   = options.Alerts.filterChokePointIDLookup.ContainsKey(gameEvent.ChokePoints[0].ID);
            }
            else
            {
                lblDescription.Padding = new Padding(0);
                cbShowAlerts.Visible   = false;
            }


            // update prev/next buttons

            lblCountCurrent.Text = (this.currentIndex + 1).ToString();
            lblCountTotal.Text   = this.currentEvents.Count.ToString();

            picPrev.Image = this.PrevEnabled ? Resources.alertarrow_left_normal : Resources.alertarrow_left_disabled;
            picNext.Image = this.NextEnabled ? Resources.alertarrow_right_normal : Resources.alertarrow_right_disabled;
        }