// JavaScript Document
function makeRequest(node,url) {
	var node = node;
	var url = url;
	if (window.XMLHttpRequest) { 
		var http_request = new XMLHttpRequest();
	} else if (window.ActiveXObject) { 
		var http_request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if(makeRequest.arguments.length == 4){
		var evalF = makeRequest.arguments[3];
		http_request.onreadystatechange = function(){ doStuff(http_request,node,evalF) };
	}else{ 
		http_request.onreadystatechange = function(){ doStuff(http_request,node) };}
	if(makeRequest.arguments.length >= 3 && makeRequest.arguments[2] != null){
		http_request.open('POST', url, true);
		http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http_request.setRequestHeader("Content-length", makeRequest.arguments[2].length);
		http_request.setRequestHeader("Connection", "close");
		http_request.send(makeRequest.arguments[2]);
		return true;
	} else {
		http_request.open('GET', url, true);
		http_request.send(null);
		return true;
	}
}

function doStuff(http_request,node) {
	var node = node;
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
				if(node!=null)
					node.innerHTML = http_request.responseText;
				if(doStuff.arguments.length == 3) eval(doStuff.arguments[2]);
		} else {
			if(node!=null)
				node.innerHTML = http_request.status;
		}
	}
} 

function makeReqString(node){
	var tw = node;
	var reqString = '';
	for(var i=0; i<tw.childNodes.length; i++){
		if(tw.childNodes[i].nodeType == 1){
			if(tw.childNodes[i].nodeName == 'INPUT' || tw.childNodes[i].nodeName == 'SELECT' || tw.childNodes[i].nodeName == 'TEXTAREA'){
				if(tw.childNodes[i].type == 'checkbox' || tw.childNodes[i].type == 'radio'){
					reqString += (tw.childNodes[i].checked)?(tw.childNodes[i].name+'='+tw.childNodes[i].value+'&'):'';
				}else{
					reqString += tw.childNodes[i].name+'='+tw.childNodes[i].value+'&';
				}	
			}else{
				reqString += makeReqString(tw.childNodes[i]);
			}
		};
	};
	return reqString;
}
