function ajax_request(site_url,callback) {
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('You are probably using the last version of Internet Explorer for the Mac which has been discontinued.');
		return false;
	}
	http_request.onreadystatechange = function() { ajax_process_response(http_request, site_url, callback); };
	http_request.open('GET', site_url, true);
	http_request.send(null);
}

function ajax_process_response(http_request, site_url, callback) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			if(http_request.responseText == 'done'){
				 window.location.href = unescape(window.location.pathname);
			} else {
				eval(callback);
			}
		} else {
			alert('There is a problem ('+http_request.status+')');
			return false;
		}
	}
}

function ajax_fill_data(fill_id,returned){
	document.getElementById(fill_id).innerHTML = returned;
}

function ajax_fill_data_with_callback(fill_id,returned,callback){
	document.getElementById(fill_id).innerHTML = returned;
	eval(callback);
}


// ----------------------------------------- make a URL param string from a list of values passed as a JSON object -------------------------------
// BC 2008:
//  call like this:
//    s = make_url_params({ac:'show_house',id:23,title:'The pretty house'},1);
//  returns
//      ?ac=show_house&id=23&title=The%20pretty%20house

function make_url_params(params_obj,first){
	var s='';
	for (p in params_obj){
		var sep = (first || first == null)?'?':'&';
		first=0;
		s += sep + p+ '=' + escape(params_obj[p]);
	};
	return s;
}
