// Create an array to hold the request objects
var requestArray = new Array(); 

function sendRequest(url) {
  var arrayPos = -1;
  // Step through the array, looking next available slot
  for (var i=0; i<requestArray.length; i++) {
    if (requestArray[i].available == 1) { 
      arrayPos = i; 
      break; 
	}
  }
  // If arrayPos equal -1, request has not been created yet
  if (arrayPos == -1) { 
    // Length of array == next available slot
    arrayPos = requestArray.length; 
    // Create new request by calling newRequest function
    requestArray[arrayPos] = new newRequest(1); 
  }
  // If request exists in array[arrayPos]
  if (requestArray[arrayPos].xmlhttp) {
    requestArray[arrayPos].available = 0;
    // Send Request and wait for change
    requestArray[arrayPos].xmlhttp.open("GET",url,true);
    // Exectue function() when ready state changes
    requestArray[arrayPos].xmlhttp.onreadystatechange = function() {
      if (typeof(requestArray[arrayPos]) != 'undefined' && 
        requestArray[arrayPos].available == 0 && 
        requestArray[arrayPos].xmlhttp.readyState == 4) {
          // Execute when readyState == 4 (request is complete)
          if (requestArray[arrayPos].xmlhttp.status == 200 || 
            requestArray[arrayPos].xmlhttp.status == 304) {
				//OUTPUT
				var tekst = requestArray[arrayPos].xmlhttp.responseText;
          } 
          requestArray[arrayPos].available = 1;
      }
    }
    if (window.XMLHttpRequest) {
      requestArray[arrayPos].xmlhttp.send(null);
    } else if (window.ActiveXObject) {
      requestArray[arrayPos].xmlhttp.send();
    }
  }
}

// Create a new request
function newRequest(available) {
	this.available = available;
	this.xmlhttp = false;
	if (window.XMLHttpRequest) { // For non-IE browsers
		this.xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // For IE
		this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
}
