Photo resistor

}
if (((lightLevel > 127.5) || (lightLevel < 191.25)))
{
  for(index = 0; index <= 0; index++)
  analogWrite(ledPins[index], HIGH);
}
if (((lightLevel > 191.25) || (lightLevel < 255)))
{
  for(index = 0; index <= 3; index++)
  analogWrite(ledPins[index], LOW);
}}
void off()
{
  (ledPins[index], LOW);  
}

That function doesn't actually do anything. From context I think you intended to write:

void off()
{
  for (int index=0; index < 3; index++)
    digitalWrite(ledPins[index], LOW);  
}

Other parts of the code may be wrong in similar ways.

I changed the off function like this:

void off()
{
 int index;
  
  for (int index = 0; index < 4; index ++)
  digitalWrite(ledPins[index], HIGH); 
}

I tried turning the pins LOW, but they remained on. I then tested them on HIGH to see what would happen and they blink on and then remain off. Any idea why this happens? Could my wiring on the board be wrong?

I got the dim function to work by doing this:

void dim()
{
   lightLevel=analogRead(sensorPin);
//manualTune();
autoTune();
 for (int index = 0; index < 4; index ++)
analogWrite(ledPins[index], lightLevel);
}

Still can't get the gauge function to work though...

you don't need the int index;
Because you already declare the variable in
for (int index = 0; index < 4; index ++)

I tried turning the pins LOW, but they remained on.

No. If that is what you see something is putting them high again.

This sort of test is wrong:-

if (((lightLevel > 191.25) || (lightLevel < 255)))

You are using the || which is the logical OR, so if the light level is less than 255 then it is true irrespective of the first part. I think you mean && the and operator here.