Debounce Problem, please help

All the time that you are diddling around fading LEDs has taken care of any bouncing of the switch, unless you have the worlds crappiest switch.

You don't need that convoluted debounce function.

You should have some Serial.print() statements to see what is going on. And, of course, a Serial.begin() statement to set up serial communications.