Multiple button function relay control

Ok. So this ya be an easy fix and a dumb question. But I have this code I have been working on. It is to control a relay based on a certain type of button push. For a single push it turns the relay on and then off again with another push. However, if push and held, the button will activate the relay but with a delay to turn it off automatically.

What I need help with:

I need an led to light up with the single push and turn off when the relay is turned off.

I need an led to flash during the delayed event and stop flashing when the relay turns back off.

Also, I would like to be able to cancel the delay event with another push of the button.

Any help would be greatly appreciated. THANKS!

Here is a look at the code I already have.

Big shout out to Jeff's Arduino blog for helping me get this fsr.

#define buttonPin 3
#define ledPin1 11
#define ledPin2 11
#define ledPin3 10

#define debounce 20
#define holdTime 3000

int buttonVal = 0;
int buttonLast = 0;
long btnDnTime;
long btnUpTime;
boolean ignoreUp = false;

boolean ledVal1 = false;
boolean ledVal2 = false;


void setup()
{
  pinMode(buttonPin, INPUT);
  digitalWrite(buttonPin, HIGH);
  
  pinMode(ledPin3, ledVal1);
  digitalWrite(ledPin3, OUTPUT);
  
  pinMode(ledPin1, OUTPUT);
  digitalWrite(ledPin1, ledVal1);
  pinMode(ledPin2, OUTPUT);
  digitalWrite(ledPin2, ledVal2);
}

void loop()
{
  buttonVal = digitalRead(buttonPin);
  
  if (buttonVal == LOW && buttonLast == HIGH && (millis() - btnUpTime) > long(debounce))
  {
    btnDnTime = millis();
  }
  
  if (buttonVal == HIGH && buttonLast == LOW && (millis() - btnDnTime) > long(debounce))
  {
    if (ignoreUp == false) event1();
    else ignoreUp = false;
    btnUpTime = millis();
  }
  
  if(buttonVal == LOW && (millis() - btnDnTime) > long(holdTime))
  
 {
   event2();
   ignoreUp = true;
   btnDnTime = millis();
 }
 buttonLast = buttonVal;
}

void event1()
{
  ledVal1 = !ledVal1;
  digitalWrite(ledPin1, ledVal1);
  digitalWrite(ledPin3, HIGH);
}

void event2()
{
  ledVal2 = !ledVal2;
  digitalWrite(ledPin2, ledVal2);
  delay(5000);
  digitalWrite(ledPin2, HIGH);
}

Why are you defining the same pin (pin 11) with two different names?

pinMode(ledPin3, ledVal1);
  digitalWrite(ledPin3, OUTPUT);

Try again!
If you want one of your LEDs to always be on when the relay is on and always off when the relay is off, try connecting it to the same pin you use to control your relay, as long as the combined current draw doesn't exceed 40mA.