	function newHttpRequest() {
		var httpRequest = null;

		if (window.XMLHttpRequest) { /* Mozilla, Safari, ... */
			httpRequest = new XMLHttpRequest();
			if (httpRequest.overrideMimeType) {
				httpRequest.overrideMimeType('text/xml');
			}
		} else if (window.ActiveXObject) { /* IE */
			try {
				httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
		return httpRequest;
	}

	function dancingWithAjax(url, query, excute, docType, debug) {
		var req = newHttpRequest();
		var res = null;

		req.onreadystatechange = function() {
			if(req.readyState == 4) {
				if(req.status != 200) {
					alert('status error:'+req.status);
					if(debug) alert(req.responseText);
					return;
				}
				if(docType=='text') res = req.responseText;
				else res = req.responseXML;

				if(debug) alert(req.responseText);
				else excute(res);
			}
		};
		req.open("POST", url, true);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		req.send(query);
	}

