Solamente es la funcion newXMLHttpRequest, es la que tienes que aislar para crearla como contenedor y poder instanciarla.
De la forma que lo tienes cada que llames a newXMLHttpRequest te regresa la misma variable xmlreq por lo que es compartida y evita que hagas 2 o n llamadas.
Saludos