LED Sign blinking, chaseing, BEETLEJUICE

   delay(timer);

Don't do that! You've locked up your code for a long period doing just one thing.

Think about states. What state am I in now? How long have I been in that state? Is it time to change to another state?

You can have multiple state machines happening independently. This millisecond it's time to change the outer LED's. At some other millisecond the inner LEDs will change. Maybe they both change in the same millisecond but the humans watching won't be able to tell that the second one was 0.001 seconds late to occur.