// nthist_ajax.js
// nice wrapper for ajax queries

// example: new nthist_ajax( { url:your.cgi, callback: function_expecting_string_as_arg, params: [ [ p1, v1 ], [ p2, v2 ], [ p3, v3 ] ] } ); 

function nthist_ajax( request ) {

	// check request object provided, MUST have url 
	if( ! request || ! request.hasOwnProperty( 'url' )) { return; }

	var req;
	try {
		req = new XMLHttpRequest();
	} catch (e1) {
		try {
			req = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e2) {
			try {
				req = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e3) {  
				return;
			}
		}
	}

	var params = "";
	if( request.hasOwnProperty( 'params' )) {
		for( var k = 0; k < request.params.length; k++ ) {
			params += "&" + request.params[k][0] + "=" + encodeURIComponent( request.params[k][1] ) ;
		}
		params = params.substring(1);
	}
	
	var callback = request.callback;
	if( request.hasOwnProperty( 'callback' ) && callback && typeof callback === 'function' ) {
		req.onreadystatechange = function() { if( req.readyState != 4 || req.status != 200 ) { return; } callback( req.responseText ); };
	}

	req.open("POST", request.url );
	req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	req.send( params );
}