var opn = 0;
var USEOPN = 0; var ISON=false;
function xtogdsply () { // arg list:  oid,togl,mode,style
  var arglst = new Array (arguments.length);

  for ( var w = 0; w< arguments.length ; w++) { arglst[w] = arguments[w]; }
  var mode  = 0; // default mode: 0 (block) or 1 (inline)
  var togl  = 0; // default togl: 0 (flip), 1 (show), -1 (hide)
  var style = 0; // default style: 0 (display) or 1 (visibility)
  var s = new Array(2);
  s[0] = new Array ('block','inline','none','');
  s[1] = new Array ('visible','hidden','hidden');

  if (arglst[0]) { var oid = arglst[0] } else { return };
  if (arglst[3]) { if (arglst[3] == 1) style = 1;      }
  if ((arglst[2]) && (style == 0)) { if (arglst[2] >  0) mode = arglst[2] }
  if (arglst[1]) { if (arglst[1] != 0) togl = arglst[1]  }
  if (arglst[0]) { var oid = arglst[0] } else { return };
  var obj = document.getElementById(oid);
  if (obj) {
  (style) ? objstyle = obj.style.visibility : objstyle = obj.style.display ;
//  showmode = document.getElementById('mode');
//  showmode.innerHTML = 'mode ('+mode+') | style ('+style+')';

  // reuse mode var
  if (togl == 0) {
  	if (!style) {
  	  if ((objstyle == s[style][0]) || (objstyle == s[style][1]))  { mode = s[style][2]; } else { mode = s[style][mode]; }

  	} else {
 		(objstyle == s[style][2]) ? mode = s[style][0] : mode = s[style][2];
 	}
  }
  if (togl  > 0) mode = s[style][0]; // block or visible
  if (togl  < 0) mode = s[style][2];

  if (style) {  obj.style.visibility = mode; } else { obj.style.display = mode; }
  // schematics label only
  if (USEOPN) {
	  var sm = parseInt(oid.replace(/sm/,''),10);
	  obj = document.getElementById('scmlabl'); //obj.style.visibility='hidden'
	  var opened = ((mode == 'visible') || (mode=='inline') || (mode == 'block'));
	  if(obj) { 
		 if (sm>2) {
			 if (opened) { ISON = true; opn = opn+1; } else { (opn>0) ? (opn=opn-1) : opn=0; }
		 } else { ISON = false ; }
		 ISON = ISON && (opn>0);
		 if ( ISON ) {obj.style.visibility='visible' } else {obj.style.visibility='hidden'}
	  }
  }
  }
}
