help

Your "if" statements are not doing what you think they're doing.

It appears that you expect the highlighted statements to be done only if the input is high:

while(endTime>millis()) {
val = digitalRead(inputPin);
if (val == HIGH)

digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, LOW);
}

This is not the case. An IF statement only controls ONE statement, not everything that follows it. This is what is happening.

while(endTime>millis()) {
val = digitalRead(inputPin);
if (val == HIGH)
digitalWrite(ledPin1, LOW);

// the rest of these are being done regardless of the input
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, LOW);
}

If you want to control more statements than just the single statement after the IF condition, you need to use { } curly braces.

while(endTime>millis()) {
val = digitalRead(inputPin);
if (val == HIGH)
{
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, LOW);
}
}