function create_http_request() {
	if (window.ActiveXObject) {
		hr = new ActiveXObject("Microsoft.XMLHTTP");
	} else if (window.XMLHttpRequest) {
		hr = new XMLHttpRequest();
	}
	return hr;
}

function fetch_and_replace(_i,_u) {
	var hr = create_http_request();
	hr.open("GET", _u,true);
	hr.onreadystatechange = function() { replace_with(_i,hr); };
	hr.send(null);
}

function post_and_replace(_i,_u,_c) {
	var hr = create_http_request();
	hr.open("POST",_u,true);
	hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	hr.setRequestHeader("Content-Length",_c.length);
	hr.onreadystatechange = function() { replace_with(_i,hr); };
	hr.send(_c);
}

function login() {
	var lf = document.getElementById('loginform');
	if (lf) {
		// todo: encode values :-)
		var pb = 'username=' + lf.username.value + '&password=' + lf.password.value;
		post_and_replace('login',lf.action,pb);
	} 
}

function replace_with(_i,_r) {
	if (_r.readyState == 4) {
		if (_r.status == 200) {
			var e = document.getElementById(_i);
			var ne = _r.responseText;
			if (ne && e) {
				e.innerHTML = ne;
				var d = document.getElementById('insert');
				if (d) {
					e.setAttribute("id",_i);
				}
			}
		}
	}
}
