


function ahah(url, target, delay) {
  document.getElementById(target).innerHTML = '<div class="loading">checking...</div>';
  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 ahahDone(url, target, delay) {
  if (req.readyState == 4) { // only if req is "loaded"
    if (req.status == 200) { // only if "OK"
      document.getElementById(target).innerHTML = req.responseText;
	  if ((target=="emailValid") || (target=="membernameValid")) {
		execJS(document.getElementById(target));
	 } 
    } else {
      document.getElementById(target).innerHTML="ahah error:\n"+req.statusText;
    }
    if (delay != undefined) {
       setTimeout("ahah(url,target,delay)", delay); // resubmit after delay
	    //server should ALSO delay before responding
    }
  }
}

	var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
	var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
	var bMoz = (navigator.appName == 'Netscape');
	function execJS(node) {
	  var st = node.getElementsByTagName('SCRIPT');	 
	  var strExec;
	  for(var i=0;i<st.length; i++) {     
	    if (bSaf) {
	      strExec = st[i].innerHTML;
	    }
	    else if (bOpera) {
	      strExec = st[i].text;
	    }
	    else if (bMoz) {
	      strExec = st[i].textContent;
	    }
	    else {
	      strExec = st[i].text;
	    }
	    try {
	      eval(strExec);
	    } catch(e) {
	      alert(e);
	    }
	  }
	}
	
	