glEnableVertexAttribArrayARB: global or per program?

Hi all! I’m trying to build a small class to wrap vertex and fragment objects, but I have a question for you: are the following functions:
globally defined or only respect to the currently active program?
That is, if I enable a vertex attrib array and then I bind another shader, is the vertex array still enabled or do I have to enable it again for the new shader?

These functions effect global states and not states of the current bound vertex shader or vertex program.


Thank you!