function ahahold(url, target, delay, divwaiting) {
  document.getElementById(target).innerHTML = divwaiting;
if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (req != undefined) {
    req.onreadystatechange = function() {ahahDone(url, target, delay);};
    req.open("GET", url, true);
    req.send("");
  }
}  

function ahah(url, target, delay, divwaiting) {
	req = false;
  document.getElementById(target).innerHTML = divwaiting;
if (window.XMLHttpRequest) {
    try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }

  } else if (window.ActiveXObject) {
    try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
  }

  if (req) {
    req.onreadystatechange = function() {ahahDone(url, target, delay);};
    req.open("GET", url, true);
	//req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
	//req.setRequestHeader('If-Modified-Since','Wed, 15 Nov 1995 00:00:00 GMT');
    req.send('');
  }
  

  
}  

function ahahDone_test(url, target, delay) {
  if (req.readyState == 4) { // only if req is "loaded"
    if (req.status == 200 || req.status == 304 ) { // only if "OK"
      document.getElementById(target).innerHTML = req.responseText;
    } else {
      document.getElementById(target).innerHTML="<div id=\"artist_holder\"><div id=\"artist_profile\">"+req.responseText+"Fetching artist information...</div></div>')";
    }
    if (delay != undefined) {
       //setTimeout("ahah(url,target,delay)", delay); // resubmit after delay
	   //setTimeout("alert(target+delay)", delay); // resubmit after delay
	    //server should ALSO delay before responding
    }
  }
}

function ahahDone(url, target, delay) {
  	 
  if (req.readyState == 4) { // only if req is "loaded"
  if (req.status == 200 || req.status == 304 ) { // only if "OK"
      document.getElementById(target).innerHTML = req.responseText;
    } else {
          document.getElementById(target).innerHTML =req.responseText;
    }
    if (delay != undefined) {
       //setTimeout("ahah(url,target,delay)", delay); // resubmit after delay
	   //setTimeout("alert(target+delay)", delay); // resubmit after delay
	    //server should ALSO delay before responding
    }
  }
}
