
function ObjectAjaxRequest() {

	 this.sendRequest = function(params, serverScript, retFunc, async) {
	 	 
		if (window.XMLHttpRequest) { 
			c_http_request = new XMLHttpRequest();
			if (c_http_request.overrideMimeType) {
				c_http_request.overrideMimeType('text/xml');
			}
		} else if (window.ActiveXObject) { 
			try {
				c_http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					c_http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
					alert("ActiveX problem");
				}
			}
		}
		if (!c_http_request) {
			alert('Impossible to create Instance');
			return null;
		} 
		
		if(async == true) {
			c_http_request.onreadystatechange = new Function("validate("+ retFunc + ")");
			c_http_request.open('POST', serverScript , true);
			c_http_request.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
			c_http_request.setRequestHeader( 'Content-length', params.length );
			c_http_request.send(params);
		} else {
			c_http_request.open('POST', serverScript , false);
			c_http_request.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
			c_http_request.setRequestHeader( 'Content-length', params.length );
			c_http_request.send(params);
			return c_http_request.responseText;
		}
	}
	
	this.validate = function(retFunc) {
		if (c_http_request.readyState == 4) {
			if (c_http_request.status == 200) {
				retFunc(c_http_request.responseText);
			} else {
				retFunc('Page error, Code: ' + c_http_request.status);
			}
		}
	}
	
	this.getResponseHeaderValue = function(key) {
		return c_http_request.getResponseHeader(key);
	}
}

