/**
 *  toggle object visibility. toggles from visible to hidden and vice versa
 * 
 *  @param {Object} id
 */
function toggle_id(id) {
	if (document.getElementById(id).style.display!='none') {
		document.getElementById(id).style.visibility = 'hidden'
		document.getElementById(id).style.display='none'
	} else {
		document.getElementById(id).style.visibility = 'visible'
		document.getElementById(id).style.display=''
	}
}

/**
 *  sets object visibility to given state
 * 
 *  @param {Object} id
 *  @param {String} type
 */
function toggle_id_strict(id,type) {
	objElement = document.getElementById(id);
	if(objElement !== null){
		if (type=='none' || objElement.style.visibility == 'visible') {	
			objElement.style.visibility = 'hidden'
			objElement.style.display='none'
		} else {
			objElement.style.visibility = 'visible'
			objElement.style.display=''
		}
	}
}

/**
 * Show element by id
 *
 * @param	string	strElementId
 */
function showElement(strElementId) {
	setElementVisibility(strElementId, true);
}

/**
 * Hide element by id
 *
 * @param	string	strElementId
 */
function hideElement(strElementId) {
	setElementVisibility(strElementId, false);
}

/**
 * Show/hide element
 *
 * @param	string	strElementId
 * @param	bool	blnVisibility
 */
function setElementVisibility(strElementId, blnVisibility) {
	objElement = document.getElementById(strElementId);
	if(blnVisibility && objElement !== null) {
		objElement.style.visibility = 'visible';
		objElement.style.display='';
	} else if (objElement !== null) {
		objElement.style.visibility = 'hidden';
		objElement.style.display='none';
	}
}


function toggleByName(name){
	arrElements = document.getElementsByName(name);
	for(i=0;i<arrElements.length;i++){
		if(arrElements[i].style.visibility == 'hidden'){
			arrElements[i].style.visibility = 'visible';
			arrElements[i].style.display = '';
		}else{
			arrElements[i].style.visibility = 'hidden';
			arrElements[i].style.display = 'none';
		}
	}
}

function toggleTrByPrefix(prefix, action){
	toggleTagByPrefix('tr', prefix, action);
}

function toggleTagByPrefix(tag, prefix, action){
	var allTrElements = document.getElementsByTagName(tag);
	for ( var i=0; i < allTrElements.length; i++ ){
	    var tr = allTrElements[i];
	    if (tr.id.substr(0, prefix.length) == prefix) {
			// show all rows
			if(action == 'show'){
				tr.style.visibility = 'visible';
				tr.style.display = '';
			// hide all rows
			} else if(action == 'hide'){
				tr.style.visibility = 'hidden';
				tr.style.display = 'none';
			// toggle
			} else {
				if(tr.style.visibility == 'visible'){
					tr.style.visibility = 'hidden';
					tr.style.display = 'none';
				}else{
					tr.style.visibility = 'visible';
					tr.style.display = '';
				}
			}			
		}        		
	}

}

function sleep(boxName) {
	setTimeout("toggle_id_strict('"+boxName+"','none')",10000);
}

function toggleInlineBox(strNoticeName, enmAction){
	if(enmAction == 'show'){
		toggle_id_strict('i_' + strNoticeName, 'visible');
		toggle_id_strict('i_link_' + strNoticeName, 'none');
	} else {
		toggle_id_strict('i_' + strNoticeName, 'none');
		toggle_id_strict('i_link_' + strNoticeName, 'visible');
	}
}

/**
 * get object from an array of elements
 * 
 * @param {string} name of array (elements)
 * @param {string} value of field searched
 * @param {integer} offset, pos. of occurence
 */	
function findElement(strElementName, strValue, intOffset){
	arrElements = document.getElementsByName(strElementName);
	intCounter = 0;
	for (i = 0; arrElements[i]; i++){
		if(arrElements[i].value == strValue){
			if(intCounter == intOffset){
				return arrElements[i];
			}
			intCounter++;
		}
	}
	return null;
}

/**
 * set or unset filter box
 */
function setFilterBox(strFilterName) {
	objImage	= document.getElementById(strFilterName);
	objCheckbox	= document.getElementById('cb_' + strFilterName);
	if (objCheckbox) {
		blnChecked = !objCheckbox.checked;

		if (objImage) {
			if (blnChecked) {
				objImage.src = '/gfx/global/checkbox_on.gif';
			} else {
				objImage.src = '/gfx/global/checkbox_off.gif';
			}
			objCheckbox.checked = blnChecked;
		}
	}
}
