document.write('<div style="position:absolute;visibility:hidden" id="uiopener0">nix</div>');

function callUI(id, name, resourcetypeid, callingLink) {
  if (!window.uiopenerindex) window.uiopenerindex = 0;
  var url = 'http://' + location.hostname + ':' + (Number(location.port) + 2) + '/desktop/prevcallopen.jsp?';
  url += 'id=' + id;
  url += '&name=' + escape(name);
  url += '&restype=' + resourcetypeid;
  var ref = document.getElementById('uiopener' + window.uiopenerindex);
  window.uiopenerindex += 1;
  ref.innerHTML = '<iframe src="' + url + '"></iframe><div id="uiopener'+window.uiopenerindex+'"></div>';
  var parent = callingLink.parentNode;
  if (parent.nodeName.toLowerCase() == 'h5') {
    parent.style.display='none';
  }
}

function switchResourceopeners(){
  window.resourceopenervisible = !window.resourceopenervisible;
	var list = document.getElementsByTagName('h5');
  for (var i = 0; i < list.length; i++) {
  	var itmI = list[i];
		itmI.style.display = window.resourceopenervisible ? 'block' : 'none';
	}
	if (!window.resourceopenervisible) return;
	// ensure no resource openers on top of each other
	var mapPos = {};
  for (var i = 0; i < list.length; i++) {
  	var itmI = list[i];
		var posI = getAbsolutePos(itmI);
		var left = itmI.offsetLeft;
		var key = null;
		var displace = false;
		while (mapPos[key = posI[0] + '/' + posI[1]]) {
			displace = true;
			posI[0]++;
			left += 20;
		}
		mapPos[key] = true;
		if (displace) {
			itmI.style.left = left + 'px';
		}
	}
}
function getAbsolutePos(el){
//	return 
	var pos = [el.offsetLeft, el.offsetTop];
	while (el = el.offsetParent) {
		pos[0]+=el.offsetLeft;
		pos[1]+=el.offsetTop;
	}
	return [Math.round(pos[0]/20), Math.round(pos[1]/20)];
}
document.onkeydown = function(e) {
	if (!e) e = window.event;
	if (e.ctrlKey && e.shiftKey) {
		switchResourceopeners();
	}
}