I'm sorry but the emergency is for you, not for us. We do our best, I come here on my spare time.
You shouldn't have to bind your VAO twice, glFlush isn't necessary too. I don't see glBindAttribLocation or GlUniform*, I don't see how you pass "vPosition" to your vertex shader.
You describe probably the most common problem with OpenGL programming, on any platform -- you write a bunch of code that looks right to you, but the output is black :) My advice to you would be to start from a "known good" working program and gradually modify it, rather than trying to write the code from scratch, at least until you are confident in how to use OpenGL. There are just too many things that could be wrong with your code, and it's very hard to debug just by looking at it.