Ok, just by glancing at it, you have GL_TEXTURE_2D enabled.
Call glDisable(GL_TEXTURE_2D) before you draw non-textured polygons.
I could be wrong, but usually the vertex attributes are set after starting a drawing command
You can put glColor*() calls both outside or inside glBegin() glEnd() calls.
I usually put it outside if using a single color for the whole polygon, and inside if using per vertex color (when I use old fixed function OpenGL anyway).