// AJAX basic functionality

var dosig_request = false;
var http_request = [];
var htreq_funcs = [];

function dosigRequest(reqType,url_val, parameters, return_function, return_type, container_id, content_type){
	dosigProcRequest(reqType, url_val, parameters, return_function, return_type, container_id, content_type)
}

function dosigProcRequest(reqType, url, parameters, return_function, return_type, container_id, content_type){

	dosig_request = '';
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		 dosig_request = new XMLHttpRequest();
		 if (dosig_request.overrideMimeType) {
			// set type accordingly to anticipated content type
				//http_request.overrideMimeType('text/xml');
				dosig_request.overrideMimeType(return_type);
		 }
	} else if (window.ActiveXObject) { // IE
		 try {
				dosig_request = new ActiveXObject("Msxml2.XMLHTTP");
		 } catch (e) {
				try {
					 dosig_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
		 }
	}

	if (!dosig_request) {
		 alert('Cannot create XMLHTTP instance');
		 return false;
	}

	eval('dosig_request.onreadystatechange = function() { ' + return_function + '(http_request,container_id); }');
	dosig_request.open(reqType, url, true);

	if(reqType == 'POST'){
		content_type = (content_type) ? content_type : 'application/x-www-form-urlencoded';
		dosig_request.setRequestHeader("Content-type", content_type);
		dosig_request.setRequestHeader("Content-length", parameters.length);
		dosig_request.setRequestHeader("Connection", "close");
	}

	dosig_request.send(parameters);
	return true;
}


function makePOSTRequest(url, parameters, return_function, return_type, content_type) {
	return makeRequest('POST', url, parameters, return_function, return_type);
}

function makeGETRequest(url, return_function) {
	return makeRequest('GET', url, null, return_function, return_type);
}

function makeRequest(reqType, url, parameters, return_function, return_type, content_type){
	var htcount = http_request.length;
	http_request[htcount] = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		 http_request[htcount] = new XMLHttpRequest();
		 if (http_request[htcount].overrideMimeType) {
				http_request[htcount].overrideMimeType(return_type);
		 }
	} else if (window.ActiveXObject) { // IE
		 try {
				http_request[htcount] = new ActiveXObject("Msxml2.XMLHTTP");
		 } catch (e) {
				try {
					 http_request[htcount] = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
		 }
	}

	if (!http_request[htcount]) {
		 alert('Cannot create XMLHTTP instance');
		 return false;
	}

	http_request[htcount].onreadystatechange = function() { ajax_response(htcount); }
	htreq_funcs[htcount] = return_function;
	http_request[htcount].open(reqType, url, true);

	if(reqType == 'POST'){
		content_type = (content_type) ? content_type : 'application/x-www-form-urlencoded';
		http_request[htcount].setRequestHeader("Content-type", content_type);
		http_request[htcount].setRequestHeader("Content-length", parameters.length);
		http_request[htcount].setRequestHeader("Connection", "close");
	}

	http_request[htcount].send(parameters);
	return true;
}

function ajax_response_null(htreq){
	try{
		if(htreq.readyState == 4) {
			if(htreq.status == 200) {
			}
		}
	}
	catch(e){
	}
}

function ajax_response(Id){
	var htreq = http_request[Id];

	try{
		if(htreq.readyState == 4) {
			if(htreq.status == 200) {
				eval(htreq_funcs[Id] + '(htreq);');
			}
		}
	}
	catch(e){
	}
}
