Function for multiple blinking led

1- The number of led can be more than 3 and i can deal with this code myself.

2- The blinking is the most important behaviour in the program and this is where i'm looking for help. Some led will lite up for 10 millis and snuff out for 800 millis or lite up for 200 millis and snuff out for 254 millis etc... anytime in the program. Values are between 15 millis and 5000 millis. It is purely for visual purpose monitoring.

3- I thought that a simple function would be enough for that multiple blinking behaviour.

I maybe think you should create a struct like this:

typedef struct {
  byte pin;
  unsigned int onTime;
  unsigned int offTime;
  unsigned long previousOnTime;
} BlinkPin;

BlinkPin led1 = {10,500,1000,0};//pin 10, onTime=500, offTime=1000, previousOnTime=0

Then you can have a function with a body similar to, with led1 being the argument:

if ((millis()-led1.previousOnTime)>led1.onTime){
  digitalWrite(led1.pin,LOW);
}else if ((millis()-led1.previousOnTime)>(led1.onTime+led1.offTime)){
  led1.previousOnTime = millis();
  digitalWrite(led1.pin,HIGH);
}

The code I posted before should blink the leds as the code you posted in your original post indicated. (What an aweful sentance!)