A note about synchronous xmlhttp requests and Firefox ...there is a "bug" in the Firefox implimentation of the xmlHTTPRequest object when using it for synchronous calls (i.e. the rest of the script pauses and waits for the request to complete, unlike typical asynchronous AJAX calls). When using the xmlhttp object in a synchronous fashion, Firefox does not process the onreadystatechange handler. Thus, any libraries that are dependant on this (for running post processing functions for example) will fail to work under these conditions.
Test synchronous onreadystatechange without work around applied: Test (should alert responseText)