Detecting continuous motion on PIR sensor.

I am trying to detect when continuous motion has been triggered from my PIR sensor for more than 8 seconds. Here is what I'm working with but would appreciate some help filling in the missing pieces:

unsigned long startMillis;
boolean timingFlag  = false;
const int buttonPin = 2;
int buttonState = 0;

void setup() {
   pinMode(buttonPin, INPUT);
   Serial.begin(19200);
   delay(500);
}

void loop() {
  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH && millis() - startMillis <= 8000UL)
  {
    Serial.println("Motion Detected but less than 8");
    delay(1000);
    //the PIR timed out with in the three seconds so cancel timing
    timingFlag = false;    //disable timing  
  }
  
  if (buttonState == LOW)
  {    
    Serial.println("No Motion...");    
    delay(1000);
    timingFlag = true;     //enable timing       
  }
  //when nine seconds have gone by with consistant detection do something
  if (timingFlag == false && millis() - startMillis >= 9000UL)
  {
    //There has now been nine seconds of constant PIR detection
    Serial.println("Motion Detected and greater than 9 sec");
    delay(1000);
    //Do Something    
  }
}

What PIR sensor are you using? I've only used a couple of breakout modules. Both do their own timing and don't allow me to detect continuous motion.