Maybe I'm missing something here.
Chrome and Firefox still support the XMLHttpRequest object don't they?
Why all this talk on ActiveX when there is a clear "else" statement in the code?
Or has the code originally posted been edited/changed? (I can't see any evidence of that)
In general the code looks fine to me.
It looks to have been a little mucked up - with the doSearchMonth() method nested inside the createXmlHttpRequest() but it is a fairly obvious typo.
My main beef with it is that it appears to be using global variables. I don't see a declaration of xmlHttp anywhere.
My suggestions for debugging: Use the F12 debugger!
Put some console.log statements in so you can see where the flow is going.
Set a break point and then step through - see if it is actually creating the xmlHttp object or not.
Switch on the network monitoring so you can see if an HTTP request is being made or not.
At the least
you should be able to see an error message in the console.