"Setup void{" Running twice??? Help!

Indeed, how do you know?

I would suggest that you add a Serial.begin() in the beginning of setup() and a Serial.println("Setup finished") at the end of setup and observe the behaviour in serial monitor.
I would also suggest that you use Serial.println in the cases to follow the what is happening.

What can be happening is that your code runs setup and next runs the default case (state is initialised with 0) so it looks like the code is running twice.

Further I suggest that you're consistent in the use of true/false, 1/0, HIGH/LOW for buttonPoll.

Are you using a pullup or pulldown resistor for the button?

Lastly, write a function to control the 'eye'. It looks like all those analogwrites and delays in setup are exactly the same. The first step would be to move the part that is common in setup and in loop into a function and call that function. The next step would be to write a second function that can take the brightness and the delay as arguments. And the final step would be to use an array of structs (or two arrays) that you can loop through.

If your code really does run setup twice, your board did a reset; see AWOL's advise. What is 'eye'? A led? If so, does it have a resistor to limit the current?