  //LinStudio Portable Code
  // Figure out what browser is being used & support Dynamic HTML accordingly
	
	var fromIE,      /* Internet Explorer */
          fromNN,      /* Netscape prior 6.0 */
          fromN6,      /* Netscape 6.0 */
          fromMac,     /* Apple Mac */
          fromOpera,   /* Opera */
          fromOther,   /* none of the above */
          docHandle;   /* handle to the document */
	var lcAgent = navigator.userAgent.toLowerCase();
	var ws, hs;      /* record inner window for netscape */

      fromNN = false;
      fromN6 = false;
      fromIE = document.all? true : false;
      fromMac = false;
      fromOther = false;
	fromOpera = false;

	if (fromIE){
		docHandle = document.all;
	} else if (document.layers){
            fromNN = true;
		docHandle = document.layers;
		document.captureEvents(Event.RESIZE);
	      window.onresize = handleNNResize;
	} else if ((navigator.appName == "Netscape") && (document.getElementById)){
		fromN6 = true;
            docHandle = document.getElementById;
      } else {
            fromOther = true;
      }
	if (lcAgent.lastIndexOf('mac') >= 0) {
		fromMac = true;
	}
	if (lcAgent.lastIndexOf('Opera') >= 0) {
		fromOpera = true;
	}

	// fix netscape resize bug
	if (fromNN){
		ws = window.innerWidth;
		hs = window.innerHeight;
	}
	
	function handleNNResize(){
		if (fromNN){
			if (window.innerWidth != ws || window.innerHeight != hs) {
				window.location.href = window.location.href;
			}
		}
            return true;
	}
	
      // code for Dynamic HTML generation.
	function htmlLayer(n,x,y,w,h,z,vis,cnt,exn,exe) {
		document.write(codeLayer(n,x,y,w,h,z,vis,cnt,exn,exe));
            return true;
	}
	function htmlLayerBeg(n,x,y,w,h,z,vis) {
		document.write(codeLayerBeg(n,x,y,w,h,z,vis));
            return true;
	}
	function htmlLayerEnd(n) {
            if( fromNN ){
		  document.write('</layer>');
            } else {
		  document.write('</div>');
            }
            return true;
	}

	function codeLayer(n,x,y,w,h,z,vis,cnt,exn,exe){
            var str = ' ';
		if (fromNN) {
			vis = vis? 'show' : 'hide';
                  if(x) str = str + ' left=' + x;
                  if(y) str = str + ' top=' + y;
                  if(w) str = str + ' width=' + w;
                  if(h) str = str + ' height=' + h;
                  str = str + ' z-index='+z+ ' visibility="'+vis +'" ';
			return '<layer name="'+n+'"'+ str + exn+'>'+cnt+'</layer>';
		} else {/* fromIE fromN6 fromOther */
			vis = vis? 'visible' : 'hidden';
                  if(x) str = str + 'left:' + x + ';';
                  if(y) str = str + 'top:' + y + ';';
                  if(w) str = str + 'width:' + w + ';';
                  if(h) str = str + 'height:' + h +';';
                  str = str + 'z-index:'+z+ ';visibility:'+vis +';';
			return '<div id="' +n+ '" style="position:absolute;' +str +exe+'" >'+cnt+'</div>';
            }
	}/* codeLayer() */
	function codeLayerBeg(n,x,y,w,h,z,vis){
            var str = ' ';
		if (fromNN) {
			vis = vis? 'show' : 'hide';
                  if(x) str = str + ' left=' + x;
                  if(y) str = str + ' top=' + y;
                  if(w) str = str + ' width=' + w;
                  if(h) str = str + ' height=' + h;
                  str = str + ' z-index='+z+ ' visibility="'+vis +'" ';
			return '<layer name="'+n+'"'+ str +'>';
		} else {/* fromIE fromN6 fromOther */
			vis = vis? 'visible' : 'hidden';
                  if(x) str = str + 'left:' + x + ';';
                  if(y) str = str + 'top:' + y + ';';
                  if(w) str = str + 'width:' + w + ';';
                  if(h) str = str + 'height:' + h +';';
                  str = str + 'z-index:'+z+ ';visibility:'+vis +';';
			return '<div id="' +n+ '" style="position:absolute;' +str+'" >';
            }
	}/* codeLayerBeg() */

	function switchVis(id){
		if (fromIE) {
			if(savedVisId) { docHandle[savedVisId].style.visibility = "hidden"; }               
			docHandle[id].style.visibility = "visible";
		} else if (fromNN) {
			if(savedVisId){ docHandle[savedVisId].visibility = "hide"; }
			docHandle[id].visibility = "show";
            } else if (fromN6){
			if(savedVisId) { document.getElementById(savedVisId).style.visibility = "hidden"; } 
			document.getElementById(id).style.visibility =  "visible";
            }
            savedVisId = id;
            return true;
	}/* switchVis() */

      var savedVisId = false;
	var saveTN = false;
      function initVisId(id, TN)
      {
		if (fromIE) {
			docHandle[id].style.visibility = "visible";
			saveTN = docHandle[TN];
                  saveTN.style.color = "blue";
		} else if (fromNN) {
			docHandle[id].visibility = "show";
			saveTN = docHandle[TN];
                  saveTN.style.color = "blue";
            } else if (fromN6) {
			document.getElementById(id).style.visibility = "visible";
			saveTN = document.getElementById(TN);
                  saveTN.style.color = "blue";			
            }
            savedVisId = id;
            return true;
      }/* initVisId() */

	function lsUpdateInfo(id, TN)
	{
 	  if(saveTN){
		saveTN.style.color = 'black';
  	  }
  	  TN.style.color = 'blue';
	  saveTN = TN;
 	  switchVis(id);
	  return true;
	}/* lsUpdateInfo() */
