/***************************************************************************************************
Hides or shows an element on the page, optionally toggles a plus/minus image and optionally
sets a session variable to save the visible/invisible state of the element.

Session variable will be set to "yes" when it is hidden and "no" when it is visible.
****************************************************************************************************/
function hide_show( id, pm_image, s_var ) {
	elem = document.getElementById(id);

	if ( pm_image.length > 0 ) {
		img = document.getElementById(pm_image);
	}

	if ( elem.style.display == "none" ) {
		elem.style.display = "";

		if ( pm_image.length > 0 ) {
			img.src = "/images/icons/minus-sign.gif";
		}

		if ( s_var.length > 0 ) {
			var receiveReq = getXmlHttpRequestObject();
			if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
				receiveReq.open("GET", '/set_session_var.php?var=' + s_var + '&val=no', true);
				receiveReq.send(null);
			}
		}
	} else {
		elem.style.display = "none";

		if ( pm_image.length > 0 ) {
			img.src = "/images/icons/plus-sign.gif";
		}

		if ( s_var.length > 0 ) {
			var receiveReq = getXmlHttpRequestObject();
			if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
				receiveReq.open("GET", '/set_session_var.php?var=' + s_var + '&val=yes', true);
				receiveReq.send(null);
			}
		}
	}
}

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest(); //Not IE
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP"); //IE
	}
}