/***********************************************************
AHAH - Asychronous HTML and HTTP
***********************************************************/
function SendAHAH(url,target) {
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = function() {
			ReceiveAHAH(target);
		};
		req.open("GET", url, true);
		req.send(null);

	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
		req.onreadystatechange = function() {
			ReceiveAHAH(target);
		};
		req.open("GET", url, true);
		req.send();
		}
	}
}

function ReceiveAHAH(target) {
	if (req.readyState == 4) {
		if (req.status == 200 || req.status == 304) {
			result = req.responseText;
			document.getElementById(target).innerHTML = result;

			var j = document.createElement ("div");
			j.innerHTML = "_" + result + "_";
			execJS(j);
		} else {
			document.getElementById(target).innerHTML="AHAH error:\n" +
			req.statusText;
		}
	}
}

function execJS(node) {
	var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
	var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
	var bMoz = (navigator.appName == 'Netscape');

	if (!node) return;

	/* IE wants it uppercase */
	if (bSaf == false && bOpera == false && bMoz == false) {
		var st = node.getElementsByTagName ("SCRIPT");
	} else {
		var st = node.getElementsByTagName ("script");
	}

	var strExec;

	for(var i=0; i<st.length; i++)   {
		if (bSaf) {
			strExec = st[i].innerHTML;
			st[i].innerHTML = "";

		} else if (bOpera) {
			strExec = st[i].text;
			st[i].text = "";

		} else if (bMoz) {
			strExec = st[i].textContent;
			st[i].textContent = "";

		} else {
			strExec = st[i].text;
			st[i].text = "";
		}

		try {
			var x = document.createElement("script");
			x.type = "text/javascript";

			/* In IE we must use .text! */
			if ((bSaf) || (bOpera) || (bMoz)) x.innerHTML = strExec;
			else x.text = strExec;
			document.getElementsByTagName("head")[0].appendChild(x);
		} catch(e) {
			alert(e);
		}
	}
}

