Crow:
I've scanned through the program line by line several times now, and I can't find any open '(){}'. I'm wondering if it's got something to do with the IDE settings or something, as I don't remember having to declare functions before setup, and in the reference section of this website it's showing functions at the end of the program, after the main loop, which is where I always put them - but if I do it now it compains about them being 'not declared in this scope'.
The arduino preprocessor handles declaring any needed function prototypes for functions you write later in your sketch. The error "not declared in this scope' in the arduino IDE world is most commonly a missing user library file that you are trying to include into your sketch. So that is where I would say to look if you are indeed including anything at the start of your sketch.