var xmlhttp = false;
 
function xmlHttpRequest(conf) {
	
	var method = conf.method ? conf.method : 'POST';
	var url = conf.url ? conf.url : document.location.toString();
	var data = conf.data ? conf.data : null;
	var callback = conf.callback ? conf.callback : function() {};
	var forceXML = conf.forceXML ? conf.forceXML : false;
	var isForm = conf.isForm ? conf.isForm : false;
	
	if (window.XMLHttpRequest) {
	
	    xmlhttp = new XMLHttpRequest();
	
	} else if (window.ActiveXObject) {
	
		try {
 
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 
		} catch (e) {
 
			try {
 
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 
			} catch (e) {}
 
		}
 
	}
	
	xmlhttp.onreadystatechange = function() {
	
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
	 
			callback(data);
	 
		} 	
	 
	}
	
	xmlhttp.open(method, url);
		
	if (conf.headers) {
	
		for (i in conf.headers) {
	
			xmlhttp.setRequestHeader(i, conf.headers[i]);
		
		}
	
	}
	
	if (forceXML && typeof(xmlhttp.overrideMimeType) != 'undefined') { xmlhttp.overrideMimeType('text/xml'); }
	
	if (isForm) {
		
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	}
	
	xmlhttp.send(data);
	
}