So I have a problem that I can't seem to fix, no matter what I do.
The code below SHOULD create a 'slideObj' object and then use it to get some information from a php file called queryslides.php.

However, the code seems to only get to sending the request; it never RECIEVES any data back.
The function outlined in "this.request.onreadystatechange = this.infoReturn;" --which is infoReturn()-- gets called up. Everything before it works great, but it stops after the readyState if-statement part. (See Below) I also have the SAME code, in non-object form, and it works great. Something about the fact that it's in an object screws it up.

I have my code below, with comments inserted for ease of reading.
Code:
function slideObj() {
this.request = null;         //get a request object
   try {
     this.request = new XMLHttpRequest();
   } catch (trymicrosoft) {
     try {
       this.request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (othermicrosoft) {
       try {
         this.request = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (failed) {
         this.request = null;
       }
     }
   }
   
    if (this.request === null) {
     alert("Error creating request object!");  
}



   function sendGetServer() {
       this.request.open("GET", "queryslides.php", true); 
 
//queryslides.php is a php file with only one active line
//<?php
//echo "1|r|d~3|s|f";
//?>

     this.request.onreadystatechange = this.infoReturn;
     this.request.send(null);
     alert('Message Requested');  
    }


//HERE IS THE PROBLEM *****
//Every 'alert' is activated, except for those in the two functions below 

   function infoReturn() {
     if (this.request.readyState == 4) {
       /* Get the response from the server */
       var info = this.request.responseText;
	alert('Info recieved');
       /* Format Data */
       this.goOn(info);
      }

   }


//The next function works by itself, so this isn't really a problem
//
// Except for the alert line, you can just pretend the goOn() doesn't do anything.

		function goOn(inf) {
			
			alert('working?');
			
		}
	
this.goOn = goOn;
this.infoReturn = infoReturn;
this.sendGetServer = sendGetServer;
}

var hey = new slideObj();
hey.sendGetServer();
alert('end');
What can I do?
I have a link to the page here: Proving Grounds

I've figured out one more thing:
infoReturn() IS being activated, however, I have isolated the if-statement as the problem.
Code:
function infoReturn() {
alert('This alert is being read, 4 times. 1 for every readyState change, I presume');
     if (this.request.readyState == 4){
//HERE is where it won't work
}
I've set the if statement to (this.request.readyState == 4), (this.request.readyState), and (this.request.readyState != 4). NONE of these seem to work.
Please, WHY doesn't this if-statement WORK??!