//affiche un élément HTML 
function displayAndBlockElement(elementName) {
	if (document.getElementById(elementName) != null) {
		document.getElementById(elementName).style.visibility = "visible";
		document.getElementById(elementName).style.display = "block";
	}
}

// masque un élément HTML
function hideAndUnblockElement(elementName) {
	if (document.getElementById(elementName) != null) {
		document.getElementById(elementName).style.visibility = "hidden";
		document.getElementById(elementName).style.display = "none";
	}
}

// masque un élément HTML s'il est affiché
function hideAndUnblockElementIfNot(elementName) {
	if (document.getElementById(elementName) != null) {
		if (document.getElementById(elementName).style.visibility == "visible"
				&& document.getElementById(elementName).style.display == "block") {
			hideAndUnblockElement(elementName);
		}
	}
}

// affiche un élément HTML s'il n'est pas affiché
function displayAndBlockElementIfNot(elementName) {
	if (document.getElementById(elementName) != null) {
		if (document.getElementById(elementName).style.visibility == "hidden"
				&& document.getElementById(elementName).style.display == "none") {
			displayAndBlockElement(elementName);
		}
	}
}

function hideElement(elementName) {
	element = document.getElementById(elementName);
	if (element != null) {
		element.style.visibility = "hidden";
		element.style.display = "none";
	}
}

function showElement(elementName) {
	element = document.getElementById(elementName);
	if (element != null) {
		element.style.visibility = "visible";
		element.style.display = "block";
	}
}

function showHideElement(elementName) {
	element = document.getElementById(elementName);
	if (element != null) {
		if (element.style.visibility == "visible"
				|| element.style.display == "block") {
			hideElement(elementName);
		} else {
			showElement(elementName);
		}
	}
}

function selectOption(selectInputId, optionValueToSelect) {
	var selectInput = document.getElementById(selectInputId);
	if (selectInput != null) {
		var opts = selectInput.options;
		var optionsCount = opts.length;
		for ( var i = 0; i < optionsCount; i++) {
			var opt = opts[i];
			var optionValue = opt.value;
			if (optionValue == optionValueToSelect) {
				opt.selected = true;
				return;
			}
		}
	}
}

function removeElementFromPage(element) {
	if (element != null) {
		element.parentNode.removeChild(element);
	}
}

function removeElementFromPageById(elementId) {
	var elem = document.getElementById(elementId);
	if (elem != null) {
		removeElementFromPage(elem);
	}
}

function addNewEvent(fObj, fEvent, fn) {
	if(fObj != null) {
		if (window.opera && MQA.BrowserInfo.version < 8) { // opera has bad dynamic
															// event handling
			var r = fObj.attachEvent("on" + fEvent, fn);
			return r;
		} else if (fObj.addEventListener) { // moz, w3c
			((window.opera) && (MQA.BrowserInfo.version >= 8)) ? fObj
					.addEventListener(fEvent, fn, false) : fObj.addEventListener(
					fEvent, fn, true);
			return true;
		} else if (fObj.attachEvent) { // IE
			var r = fObj.attachEvent("on" + fEvent, fn);
			return r;
		} else { // other
			fObj["on" + fEvent] = fn;
		}
	}

}
