//
//    Set the selected indicator
//
function setSelect(wName)
  {
   var i;
   var answer = false;
 
   for(i = 0; i < scrCnt; i++)
     {
      var currScr = scrArray[i];
      if(wName == currScr.name)
        break;
     }
 
   if(i < scrCnt)
     answer = true;
 
   return answer;
  }
 
//
//  Set the window status
//
 
function setStatus(smsg)
  {
 
   var tmsg = smsg;
 
   if(smsg == "Help")
     {
      if(actScreen.helpflag)
        tmsg = "Turn screen help off";
      else
        tmsg = "Turn screen help on";
     }
 
   if(smsg == "Parm")
     {
      if(actScreen.parmflag)
        tmsg = "Remove parameter window";
      else
        tmsg = "Display parameter window";
     }
 
   window.status = tmsg;
 
   return true;
  }
 
//
//    Swap the display window
//
function swapDisplay(sDef)
  {
 
   blurPages();
 
   hideActive();
 
   actScreen = sDef;
   var newName = actScreen.name;
 
   if(newName == 'tabs')
      newName = 'SHOWCASE'
 
   var cDiv;
   var cParm;
   var cHelp;
 
   cDiv  = document.getElementById(actScreen.divid);
   cParm = document.getElementById(actScreen.parmid);
   cHelp = document.getElementById(actScreen.helpid);
 
   cDiv.style.visibility = 'visible';
   cDiv.style.display = 'inline';
   cDiv.style.zindex  = 2;
 
   var wHelp = document.images['check'];
   var wParm = document.images['pmark'];
   var wTitle;
 
   if(actScreen.eMessage != "")
     {
      msgDiv.innerHTML = actScreen.eMessage;
      msgDiv.style.display = 'inline';
      msgDiv.style.visibility = 'visible';
      msgDiv.style.zIndex = 5;
     }
   else
     {
      msgDiv.style.display = 'none';
      msgDiv.style.visibility = 'hidden';
      msgDiv.style.zIndex = -1;
     }
 
   if(actScreen.helpflag)
     {
      cHelp.style.visibility = 'visible';
      cHelp.style.display = 'inline';
      cHelp.style.zindex  = 2;
      wtitle = "Turn Off Screen Help";
      wHelp.src = "check.gif"
     }
   else
     {
      wtitle = "Display help for " + actScreen.name;
      wHelp.src = "clear.gif"
     }
 
   document.getElementById('cref').title = wtitle;
 
   if(actScreen.parmflag)
     {
 
      cParm.style.visibility = 'visible';
      cParm.style.display = 'inline';
      cParm.style.zindex  = 2;
      wtitle = "Remove the parameter window";
      wParm.src = "check.gif"
     }
   else
     {
      wtitle = "Open parammeter window for " + actScreen.name;
      wParm.src = "clear.gif"
     }
 
   document.getElementById('pref').title = wtitle;
 
   var secTitle = '';
   if(actScreen.name != 'tabs' || actScreen.loaded)
     {
      if(actScreen.disptype == typeMon)
        {
         secTitle = newName + ' - ' + actScreen.title;
         if(actScreen.paused)
           {
            PauseB.onclick   = resumeUpdates;
            PauseB.innerHTML = "Resume Updates"
           }
         else
           {
            PauseB.onclick   = pauseUpdates;
            PauseB.innerHTML = "Pause Updates"
           }
         PauseB.style.visibility = 'visible';
         PauseB.style.display = 'inline';
        }
      else
        {
         secTitle = actScreen.title;
         PauseB.style.visibility = 'hidden';
         PauseB.style.display = 'none';
         if(actScreen.pagecnt > pageGroup)
           {
            PauseB.onclick = seePages;
            PauseB.innerHTML = "More Pages";
            PauseB.style.visibility = 'visible';
            PauseB.style.display = 'inline';
 
           }
        }
     }
 
   document.getElementById('stext').innerHTML = secTitle;
 
   if(actScreen.name != 'tabs')
      {
       if(actScreen.disptype == typeMon)
         reactDelay();
      }
 
   closeLit();
   document.title = actScreen.title;
 
  }
 
//
//    Add Close Window string
//
 
function closeLit()
  {
   var cWin = '';
   if(actScreen.name != 'tabs')
      cWin = '<a href="javascript:closeWindow()" ' +
        'class="blink" ' +
        'title="Close ' + actScreen.name + ' window">' +
        'Close Window</a>'
   document.getElementById('btext').innerHTML = cWin;
  }
 
//
//    Reactivate the timer for this window
//
 
function reactDelay()
  {
 
   if(actScreen.paused)
     return;
 
   var wDate = new Date();
   var chkDate = wDate.getTime();
 
   if(actScreen.nextref > chkDate)
     {
      chkDate = actScreen.nextref - chkDate;
      setRefresh(actScreen.name, chkDate);
     }
   else
     setRefresh(actScreen.name, 10);
 
  }
 
//
//    Hide the active screen
//
function hideActive()
  {
 
   var cDiv  = document.getElementById(actScreen.divid);
   cDiv.style.visibility = 'hidden';
   cDiv.style.display = 'none';
   cDiv.style.zindex  = -2;
 
   if(actScreen.disptype == typeMon)
     {
      var cParm = document.getElementById(actScreen.parmid);
      var cHelp = document.getElementById(actScreen.helpid);
 
      cHelp.style.visibility = 'hidden';
      cHelp.style.display = 'none';
      cHelp.style.zindex  = -2;
 
      cParm.style.visibility = 'hidden';
      cParm.style.display = 'none';
      cParm.style.zindex  = -2;
     }
  }
 
//
//  Clear the display area
//
 
function clearDiv(divID)
  {
   var cTabs = document.getElementById(divID);
   var cNodes = cTabs.childNodes;
   var nCount = cNodes.length;
 
   for(var i=0;i < nCount; i++)
     {
      cTabs.removeChild(cTabs.lastChild);
     }
  }
 
//
//  SHOWCASE support
//
 
function changeToBadJava()
  {
 
   if(actScreen.name != 'tabs')
     {
      KillTimer();
 
      var sDef = scrArray[0];
 
      sDef.title = 'Graphical Performance Displays'
      sDef.loaded = true;
 
      swapDisplay(sDef);
 
      setDivSize();
 
     }
 
   if(!scActive)
     {
      scActive = true;
 
      var tabs = document.getElementById("tabs");
 
      tabs.innerHTML = "If the applet does not load in a"
       + " few seconds you may not have Java"
       + " or Java may be disabled in your browser."
       + " You may easily download and install"
       + " Java by going to"
       + " <a href=\"http://www.java.com\">java.com</a>."
       + " Please check with your administrator before doing this.";
 
      var javaTestDiv = document.getElementById("javaTestDiv");
 
      javaTestDiv.innerHTML = "<APPLET CODE = " +
        "JavaVers MAYSCRIPT = true>";
     }
 
  }
 
function changeToJava(version)
  {
   var tabs = document.getElementById("tabs");
 
   if(version >= "1.4.2") {
 
      tabs.innerHTML = '<APPLET CODE ='
       + '\"com.velocity.showcase.applet.ShowcaseApplet\" '
       + 'ARCHIVE = \"showcase.jar, jc.jar, jf.jar, '
       + 'rw.jar\" WIDTH = \"100%\" HEIGHT = \"100%\" '
       + 'ALT = \"Showcase Applet\" MAYSCRIPT = true>'
       + '<PARAM name="image" value="small.gif">'
       + '</APPLET>';
   }
   else {
    tabs.innerHTML = "You're running Java version " + version
     + ", however, this applet requires version 1.4.2 or later."
     + " You may easily download and install the latest"
     + " Java version by going to"
     + " <a href=\"http://www.java.com\">java.com</a>."
     + " Please check with your administrator before doing this.";
   }
 
  }
 
//
//  Set the REFRESH timer
//
 
function setRefresh(screenID, refVal)
  {
 
   if(timerID != "")
     clearTimeout(timerID);
 
   if(actScreen.paused)
     return;
 
   if(autoRefresh)
     {
      var wDate = new Date();
      actScreen.nextref = wDate.getTime() + actScreen.refresh;
      timerID = self.setTimeout('RefLine("' + screenID + '")',
         refVal);
     }
  }
 
//
//  Set Refresh control
//
 
function changeEvalue()
  {
   nextRef = false;
  }
 
//
//  Reset the timer
//
 
function KillTimer()
  {
 
   if(timerID != "")
     clearTimeout(timerID)
   timerID = ""
  }
 
//
//  Turn on/off the help window
//
 
function toggleHelp()
  {
 
   if(actScreen.name == "tabs")
     {
      alert("SHOWCASE graphical support has its own help");
      return;
     }
 
   var wimg;
   var wtitle;
   var zidx;
   var wvis;
   var wdsp;
   var dWide;
 
   if(actScreen.helpflag)
     {
      wvis = 'hidden';
      wdsp = 'none';
      zidx = -5;
      actScreen.helpflag = false;
      wimg = "clear.gif";
      wtitle = "Turn On Screen Help";
      dWide = tSize;
     }
   else
     {
      if(actScreen.parmflag)
        toggleParm();
 
      actScreen.helpflag = true;
      wimg = "check.gif"
      wtitle = "Turn Off Screen Help";
      wvis = 'visible';
      wdsp = 'inline';
      zidx = 2;
      dWide = wSize;
     }
 
   var tdiv  = document.getElementById(actScreen.divid);
   tdiv.style.width = dWide + "px";
 
   document.images['check'].src = wimg;
 
   document.getElementById('cref').title = wtitle;
   var wHelp = document.getElementById(actScreen.helpid);
 
   wHelp.style.zIndex = zidx;
   wHelp.style.visibility = wvis;
   wHelp.style.display = wdsp;
 
   if(actScreen.helpflag)
      getHelp(actScreen.name);
 
  }
 
//
//  Turn on/off the parameter window
//
 
function toggleParm()
  {
 
   if(actScreen.name == "tabs")
     {
      alert("SHOWCASE graphical support has its own parm" +
        " support");
      return;
     }
 
   var wimg;
   var wtitle;
   var zidx;
   var wvis;
   var wdsp;
 
   var tdiv  = document.getElementById(actScreen.divid);
   var dWide;
 
   if(actScreen.parmflag)
     {
      wvis = 'hidden';
      wdsp = 'none';
      zidx = -6;
      actScreen.parmflag = false;
      wimg = "clear.gif";
      wtitle = "Display parameter window";
      dWide  = tSize;
     }
   else
     {
      if(actScreen.helpflag)
        toggleHelp();
 
      actScreen.parmflag = true;
      wimg = "check.gif"
      wtitle = "Remove parameter window";
      wvis = 'visible';
      wdsp = 'inline';
      zidx = 2;
      dWide = wSize;
 
     }
 
   tdiv.style.width = dWide + "px";
 
   document.images['pmark'].src = wimg;
   wParm = document.getElementById(actScreen.parmid);
 
   document.getElementById('pref').title = wtitle;
   wParm.style.zIndex = zidx;
   wParm.style.visibility = wvis;
   wParm.style.display    = wdsp;
 
  }
 
//
//  Get Help for current display
//
 
function getHelp(scrName)
  {
 
   bldHelpReq();
 
   var url = "vsihelp.cgi?name=" + scrName;
   HelpReq.open("GET", url, true);
   HelpReq.onreadystatechange = updHelp;
   HelpReq.send(null);
  }
 
//
//  Update the HELP div
//
 
function updHelp()
  {
   if(HelpReq.readyState == 4)
     {
      var newHelp = document.getElementById(actScreen.helpid);
      var aLine = '<a href="javascript:toggleHelp()"' +
        'title="Close Help Window" border="0px">' +
        '<img src="close.gif" border="0px" align="right"></a>'
 
      newHelp.innerHTML = aLine + HelpReq.responseText;
     }
  }
 
//
//  Gen AJAX help request
//
 
function bldHelpReq()
  {
   try
    {
     HelpReq = new XMLHttpRequest();
    }
   catch (trymicrosoft)
    {
     try
      {
       HelpReq = new ActiveXObject("Msxml2.XMLHTTP");
      }
     catch (othermicrosoft)
      {
       try
        {
         HelpReq = new ActiveXObject("Microsoft.XMLHTTP");
        }
       catch (failed)
        {
         HelpReq = null;
        }
      }
    }
 
   if (HelpReq == null)
     alert("Error creating help request object!");
  }
 
    //
    //  Parse out the parameters
    //
 
function loadParms(pList)
  {
 
   clearDiv(actScreen.parmid);
 
   var cParm = document.getElementById(actScreen.parmid);
   var pNodes  = pList.childNodes;
 
   var lCount  = pList.length;
 
   newText = '<a href="javascript:toggleParm()"' +
        'title="Close Parm Window" border="0px">' +
        '<img src="close.gif" border="0px" align="right"></a>'
 
   newText = newText + '<form name="parmform" id="parmform">' +
   '<table width="90%" id="parmtable" name="parmtable">' +
     '<caption><b><font color="green">' +
     actScreen.name + ' Parameters</font></b></caption>';
 
   actScreen.parmlist = new Array();
 
   for(var i = 0; i < lCount; i++)
     {
      var wItem = pList[i];
      var tName = wItem.nodeName;
      tName = tName.toUpperCase();
      if(tName != 'DYNAPARAM')
        continue;
 
      getParmData(wItem);
 
     }
 
   newText = newText + '<tr><td></td><td align="left">' +
    '<input type="button" value="submit" '+
    'onClick="javascript:ProcParms();"></td></tr>'
 
   newText = newText + '</table></form>';
   cParm.innerHTML = newText;
 
  }
 
//
//  Parse out the parameters
//
 
function getParmData(wItem)
  {
 
   var pName;
   var pDisp;
   var pType;
   var pValue;
 
   pName = wItem.childNodes[0].nodeValue;
   pType = wItem.getAttribute("type");
   pDisp = wItem.getAttribute("display");
   pValue = wItem.getAttribute("default");
 
   if(pType == null || pType == '')
      pType = 'string';
 
   if(pValue == null)
      pValue = '';
 
   if(pName != "")
     {
 
      var k = actScreen.parmlist.push(pName);
 
      var adChange = '';
      var wrkName = pName;
      wrkName = wrkName.toUpperCase();
 
      if(wrkName == 'E_DATE' || wrkName == 'E_TIME')
        adChange = 'onChange="changeEvalue()"';
 
      newText = newText + '<tr><th align="right">' +
       pDisp + ':</th><td align="left">' +
       '<input type="text" name="' + pName + '"' +
       'id="' + actScreen.name + '_' + pName + '" ' +
       adChange + ' value="' + pValue + '"></td></tr>'
     }
   else
     alert('Error configuring parameters! Contact ' +
      'technical support. Click OK to continue');
 
  }
 
//
//  Process the SUBMIT from the parm screen
//
 
function ProcParms()
  {
   if(retBusy)
     return;
 
   setBusy();
 
   if(!nextRef)
     autoRefresh = false;
 
   nextRef = true;
 
   newParm = '';
   var tpName;
   var tpValue;
 
   var wList = new Array();
   wList = actScreen.parmlist;
 
   var x = wList.length;
 
   for(var i = 0; i < x; i++)
     {
      tpName = wList[i];
 
      var gName = actScreen.name + '_' + tpName;
 
      tpValue = document.getElementById(gName).value;
 
      newParm = newParm + '&' + tpName + '=' + tpValue
 
     }
 
   actScreen.actparm = newParm;
 
   getData(actScreen.name);
 
   newParm = '';
 
   return false;
  }
 
//
//    Find a screen by divid
//
 
function findById(wDivid)
  {
   var nDef = null;
 
   var loop = scrArray.length;
   for(i = 0; i < loop; i++)
     {
      var rdef = scrArray[i];
      if(rdef.divid == wDivid)
        {
         nDef = rdef;
         break;
        }
     }
 
   return nDef;
  }
 
function setBusy()
  {
 
   KillTimer();
   retBusy = true;
 
   document.getElementById('mbody').style.cursor = "wait";
   bImg.src = 'vsibusy.gif';
 
   if(browser == 'MSIE')
     document.recalc(true);
 
  }
 
function setNotBusy()
  {
 
   retBusy = false;
   document.getElementById('mbody').style.cursor = "default";
 
   bImg.src = 'clear.gif';
 
   if(browser == 'MSIE')
     document.recalc(true);
 
  }
 
//
//    Create an XML request
 
function createRequest()
  {
   request = null;
   try{
     request = new XMLHttpRequest();
      }
   catch(a)
      {
       try{
         request = new ActiveXObject("Msxml2.XMLHTTP");
          }
       catch(b)
          {
           try{
               request = new ActiveXObject("Microsoft.XMLHTTP");
              }
           catch(e){}
          }
      }
 
    if(request == null)
      alert("Unable to create server request");
 
  }
 
//
//   Pause updating
 
function pauseUpdates()
  {
 
   KillTimer();
 
   actScreen.paused = true;
   PauseB.innerHTML = 'Resume Updates'
   PauseB.onclick   = resumeUpdates;
 
  }
 
//
//   Resume updating
 
function resumeUpdates()
  {
 
   if(retBusy)
     return;
 
   actScreen.paused = false;
   PauseB.innerHTML = 'Pause Updates'
   PauseB.onclick   = pauseUpdates;
 
   reactDelay();
 
  }

