timing within a loop

int ledPin =  13;    // LED connected to digital pin 13
int button = 2;      // button pin

bool DoneInitialization = false;       // Our blink indicator

void setup()   
{                
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT); 
pinMode(button, INPUT);  
}

void loop()                    
{
if (digitalRead(button)== HIGH)  // buttin when high
  {
  delay(10); //debounce
  if (!DoneInitialization) 
    {
    digitalWrite(ledPin, HIGH);   // set the LED on
    delay(1000);                  // wait for a second
    digitalWrite(ledPin, LOW);    // set the LED off
    delay(1000);                  // wait for a second
    DoneInitialization=true;      // Initialization is done, don't run it again until button has been low
    }
  }
else 
  {
  DoneInitialization=false;       // button was low. Permit Initialization (or whatever it is) to run again 
  } 
}