PIR code troubles, please help me

i've changed the code to this as it seems to make more sense:

int latchPin = 8;
int clockPin = 12;
int dataPin = 11;
int pirPin = 10;
int pirState = LOW;
int val = 0;

const byte COL_COUNT = 8;

void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(pirPin, INPUT);
}

void loop()
{
val = digitalRead(pirPin);
if (val == HIGH)
{
int col_data = 0;
for (int col = 0; col < COL_COUNT; col++)

bitWrite(col_data, col, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, col_data);
digitalWrite(latchPin, HIGH);
delay(600);
}

delay(2500);

int col_data = 0;
for (int col = 0; col < COL_COUNT; col++)
{
bitWrite(col_data, col, LOW);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, col_data);
digitalWrite(latchPin, HIGH);
delay(600);
}
}
{
if (val == LOW)
{
digitalWrite (latchPin, LOW);
digitalWrite (clockPin, LOW);
digitalWrite (dataPin, LOW);
}
}

however, my last function "if (val == LOW)" doesnt seem to be working