LED Bar graph and Button

Here is the code...

/*
Press pushButton powerUP whilst in PHASER mode
Press pushButton2 powerDown whilst in PHASER mode
Long Press pushButton Toggle DIAGNOSTIC/PHASER mode
Long Press pushButton2 whilst DIAGNOSTIC switches to OVERLOAD mode
OVERLOAD mode you will see a short stall of the LEDs and it will begin a 10s self destruct sequence.
*/
#define PHASER 0
#define DIAGNOSTIC 1
#define OVERLOAD 2
#define DEAD_STATE 3

const int ledPin[10] = {
  13,11,10,9,8,6,5,4,3,2};
const int scanArray[5] = {
  0b1000000001, 0b0100000010, 0b0010000100, 0b0001001000, 0b0000110000};
const byte pushButton  = 7;
const byte pushButton2 = 12;
int spkr = A0;
byte lastVal;
byte lastVal2;
int index = 0;
byte state = PHASER;// initialises in phaser state
unsigned long timeStamp;
unsigned long timeStamp2;
unsigned long timeStamp3;

void setup()
{
  Serial.begin(115200);
  for (int i = 0; i < 11; i++)
  {
    pinMode(ledPin[i],OUTPUT);
  }
  pinMode(pushButton,INPUT_PULLUP);
  pinMode(pushButton2,INPUT_PULLUP);
}
void loop()
{
  byte val=digitalRead(pushButton);
  byte val2 = digitalRead(pushButton2);
  if (val != lastVal || val2 != lastVal2) delay(50);
  if(val==LOW && lastVal == HIGH && state == PHASER)
  {
    timeStamp = millis();
    index <<= 1;
    index |= 1;
    if (index > 0b1111111111) index = 0b1111111111;
    for (int i = 0; i < 10; i++)
    {
      digitalWrite(ledPin[i], bitRead(index, i));
      tone(spkr, 4000, 50);
    }
  }
  else if (val==HIGH && lastVal == LOW && state == PHASER)
  {
    if (millis() - timeStamp >= 2000UL)
    {
      state = DIAGNOSTIC;
      Serial.println(state);
    }
  }
  else if (val==HIGH && lastVal == LOW && state == DIAGNOSTIC)
  {
    if (millis() - timeStamp >= 2000UL)
    {
      state = PHASER;
      Serial.println(state);
    }
  }
  lastVal = val;
  if (val2 == LOW && lastVal2 == HIGH && state == PHASER)
  {
    timeStamp2 = millis();
    index >>= 1;
    tone(spkr, 4000, 50);//<<<<<<<<<<<<<<<<<<<<<<<<<< TONE ADDED
    Serial.print("index = "); 
    Serial.println(index, BIN);
  }
  else if (val2 == LOW && lastVal2 == HIGH && state == DIAGNOSTIC)
  {
    timeStamp2 = millis();
  }
  else if (val2 == LOW && lastVal2 == LOW && state == DIAGNOSTIC)
  {
    if (millis() - timeStamp2 >= 2000UL)
    {
      delay(250);
      state = OVERLOAD;
      timeStamp3 = millis();
      Serial.println("overload");
    }
  }
  lastVal2 = val2;
  //
  if (state == PHASER)
  {
    for (int i = 0; i < 10; i++)
    {
      digitalWrite(ledPin[i], bitRead(index, i));
    }
  }
  else if (state == DIAGNOSTIC)
  {
    diagnogsticScan(false);
  }
  else if (state == OVERLOAD)
  {
    if (millis() - timeStamp3 > 10000UL)
    {
      diagnogsticScan(true);
    }
    else
    {
      diagnogsticScan(false);
    }
  }
  else if (state == DEAD_STATE)
  {
    // nothing to do here... I'm dead so hit reset to start over
  }
}
//
void diagnogsticScan(boolean faster)
{
  static unsigned long scanInterval = 80UL;
  static unsigned long scanStart;
  static byte scanIndex = 0;
  static byte increment = 1;
  if (millis() - scanStart >= scanInterval)
  {
    scanStart += scanInterval;
    for (int i = 0; i < 10; i++)
    {
      digitalWrite(ledPin[i], bitRead(scanArray[scanIndex], i));
    }
    scanIndex += increment;
    if (scanIndex == 0 || scanIndex == 4)
    {
      increment = -increment;
    }
    if (faster)
    {
      scanInterval--;
      if (scanInterval <= 0)
      {
        scanInterval = 80UL;
        state = DEAD_STATE;
        for (int i = 0; i < 10; i++)
        {
          digitalWrite(ledPin[i], HIGH);
        }
        delay(250);
        for (int i = 0; i < 10; i++)
        {
          digitalWrite(ledPin[i], LOW);
        }
      }
    }
    Serial.println(scanInterval);
  }
}

Thank You
Michael