function csInc(id, url, async, errhand, callback, callbackdata) {
	var req = false;
	if (window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		} catch (e) {
			req = false;
		}
	} else if (window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				req = false;
			}
		}
	}
	var element = document.getElementById(id);
	if (!element) return 1;
	var errcode = 0;
	if (req) {
		errcode = 1;
		if(!async) {
			req.open('GET', url, false);
			req.send(null);
			if(req.status == 200) {
				element.innerHTML = req.responseText;
				return 0;
			}
		}
		else {
			req.open('GET', url, true);
			req.onreadystatechange = function (aEvt) {
				if (req.readyState == 4) {
					if(req.status == 200)
						element.innerHTML = req.responseText;
					else
						csIncErr(element, errhand, errcode);
					if(callback) callback(req.status, callbackdata);
				}
			};
			req.send(null);
			return 0;
		}
	}
	csIncErr(element, errhand, errcode);
	return 1;
}
function csIncErr(element, errhand, errcode) {
	switch (errhand) {
	case 2: // do nothing
		break;
	case 1: // hide id
		element.style.display = 'none';
		break;
	default: // 0: display message
		if(errcode)
			element.innerHTML = " [Error retrieving content] ";
		else
			element.innerHTML = " [Please upgrade your browser for full content] ";
	}
}
