var http_request = false;

/**
 * Perform a POST request to the specified url with quesy string.
 */
function doPostRequest(url, query, beforeCallTrigger, afterCallTrigger) {
    http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();

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

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

    // Do something before the AJAX call...
    if (beforeCallTrigger) {
        beforeCallTrigger(http_request);
    }

    http_request.open('POST', url, true);
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", query.length);
    http_request.setRequestHeader("Connection", "close");
    http_request.send(query);

    // Do something after the AJAX call...
    if (afterCallTrigger) {
        afterCallTrigger(http_request);
    }

    return true;
}

/**
 *  Return the value of the radio button that is checked.
 */
function getCheckedRadioValue(radio) {
	if (!radio) {
		return "";
    }

	var len = radio.length;

	if (len == undefined) {
		if (radio.checked) {
			return radio.value;
        } else {
			return "";
        }
    }

	for (var i = 0; i < len; i++) {
		if(radio[i].checked) {
			return radio[i].value;
		}
	}

	return "";
}

/**
 * Reverse display.
 */
function reverseDisplay(elementId) {
    if (elementId.length < 1) {
        return;
    }

    if (document.getElementById(elementId).style.display == "none") {
        document.getElementById(elementId).style.display = "";
    } else {
        document.getElementById(elementId).style.display = "none";
    }
}
