You could try something like this using millis(). Compiles, not tested
const byte InletSA = 2;
const byte OutletSA = 3;
const byte FlushSA = 4;
const byte DrainSA = 5;
const byte Button = 12;
const byte LED = 11;
int ButtonValue=0;
unsigned long
timeNow,
timeLED;
byte
stateLED;
void setup()
{
pinMode(Button, INPUT);
pinMode(LED, OUTPUT);
pinMode(InletSA, OUTPUT);
pinMode(OutletSA, OUTPUT);
pinMode(FlushSA, OUTPUT);
pinMode(DrainSA, OUTPUT);
//
Serial.begin(9600);
//
digitalWrite(LED, LOW);
digitalWrite(InletSA,LOW);
digitalWrite(OutletSA,LOW);
digitalWrite(FlushSA,LOW);
digitalWrite(DrainSA,LOW);
//
stateLED = 0;
}//setup
void loop( void )
{
digitalWrite(LED, digitalRead( Button ) );
timeNow = millis();
switch( stateLED )
{
case 0:
digitalWrite(InletSA, HIGH);
digitalWrite(OutletSA, HIGH);
digitalWrite(InletSA, LOW);
digitalWrite(OutletSA, LOW);
timeLED = timeNow;
stateLED++;
break;
case 1:
if( timeNow - timeLED >= 5000ul )
{
digitalWrite(InletSA, LOW);
digitalWrite(OutletSA, LOW);
digitalWrite(InletSA, HIGH);
timeLED = timeNow;
stateLED++;
}//if
break;
case 2:
if( timeNow - timeLED >= 8000ul )
{
digitalWrite(OutletSA, HIGH);
timeLED = timeNow;
stateLED++;
}//if
break;
case 3:
if( timeNow - timeLED >= 4000ul )
stateLED = 0;
break;
}//switch
}//loop