/*******************
 * concurrent ajax *
 ******************/
 
function ajaxObject(url) {
   var that=this;
   var updating = false;
   this.callback = function() {}

   this.update = function(passData) {
      if (updating==true) { return false; }
      updating=true;
      var AJAX = null;
      
      if (window.XMLHttpRequest) {
         AJAX=new XMLHttpRequest();
      } else {
         AJAX=new ActiveXObject("Microsoft.XMLHTTP");
      }
      
      if (AJAX==null) {
         return false
      } else {
         AJAX.onreadystatechange = function() {
            if (AJAX.readyState==4 || AJAX.readyState=="complete") {
               delete AJAX;
               updating=false;
               that.callback();
            }
         }
         
         var timestamp = new Date();
         var uri = urlCall+'&timestamp='+(timestamp*1);
         AJAX.open("GET", uri, true);
         AJAX.send(null);
         return true;
      }
   }
      
   // This area set up on constructor calls.
   var urlCall = url;
}

function trackDownload( download_type, filename, IP ) {
	var url = "../iphone_downloads.php" + "?dlt=" + download_type + "&fn=" + filename + "&ip=" + IP;
	var ajax = new ajaxObject(url);
	ajax.update();
}