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:
glEnableVertexAttribArrayARB
glDisableVertexAttribArrayARB
glVertexAttribPointerARB
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.

Globally.
http://developer.3dlabs.com/documents/GLmanpages/glEnableVertexAttribArray.htm

Thank you!