//                                                                              
//   Move page ICON                                                             
//                                                                              
                                                                                
function scrollBull()                                                           
  {                                                                             
   var s, l;                                                                    
   var BPid = 'BP_' + actScreen.divid.substring(2);                             
   s = this.scrollTop;                                                          
   l = this.scrollLeft;                                                         
   BPid = document.getElementById(BPid);                                        
   BPid.style.top = s + 'px';                                                   
   BPid.style.left= l + 'px';                                                   
   return false;                                                                
  }                                                                             
                                                                                
//                                                                              
//  Build historical listing calender                                           
//                                                                              
                                                                                
function setCalender()                                                          
  {                                                                             
                                                                                
   if(request.readyState == 4)                                                  
     {                                                                          
                                                                                
      mapDoc = request.responseXML;                                             
                                                                                
      var wtitle  = "List of available historical reports";                     
                                                                                
      CreateDiv('mapCalender', typeMap, wtitle)                                 
                                                                                
      var mapNodes = mapDoc.getElementsByTagName("Flist");                      
      var tNodes  = mapNodes[0].childNodes;                                     
                                                                                
      newText = "<pre>";                                                        
                                                                                
      var lCount = tNodes.length;                                               
      var wDate  = new Date();                                                  
                                                                                
      for(i = 0; i < lCount; i++)                                               
        {                                                                       
         var tList =  tNodes[i];                                                
         var tName =  tList.nodeName;                                           
         tName = tName.toUpperCase();                                           
                                                                                
         if(tName != "ITEM")                                                    
           continue;                                                            
                                                                                
         var wRec = tList.childNodes[0].nodeValue;                              
                                                                                
         var tYear = wRec.substr(0, 4);                                         
         var tMth  = wRec.substr(4, 2);                                         
         var tDay  = wRec.substr(6, 2);                                         
         var tRun  = wRec.substr(9, 2);                                         
                                                                                
         tMth--;                                                                
         wDate.setFullYear(tYear, tMth, tDay);                                  
                                                                                
         var hDate = wDate.toString();                                          
         var dParts = new Array();                                              
                                                                                
         dParts = hDate.split(" ",4);                                           
         var nDate = '';                                                        
                                                                                
         for(var j = 0; j < 4; j++)                                             
           {                                                                    
            nDate = nDate + " " +                                               
              dParts[j];                                                        
           }                                                                    
                                                                                
         newText = newText + '<a href="Javascript:getTOC(' +                    
           "'" + wRec + "'" + ')">' +                                           
           nDate + "</a> - Out "   +                                            
           tRun + "<br>";                                                       
                                                                                
        }                                                                       
                                                                                
      var wDiv = actScreen.divid;                                               
      document.getElementById(wDiv).innerHTML = newText + '</pre>';             
                                                                                
   //                                                                           
   //  the anchor                                                               
                                                                                
      var newDiv = document.createElement('div');                               
      newDiv.setAttribute('id',"menuCal");                                      
      newDiv.setAttribute('name',"menuCal");                                    
                                                                                
      var wDiv = document.getElementById("mapMenu");                            
                                                                                
      newDiv.innerHTML = '<img src="clear.gif" ' +                              
        'width="13px" height="13px" align="left">' +                            
        '<a href="javascript:switchRPT(' + "'" +                                
        actScreen.divid + "'" +                                                 
        ')" class="selmitem">' +                                                
        'REPORTS</a>'                                                           
                                                                                
      var Brother = wDiv.firstChild;                                            
      wDiv.insertBefore(newDiv, Brother);                                       
                                                                                
      calAvail = true;                                                          
                                                                                
      setNotBusy();                                                             
                                                                                
     }                                                                          
                                                                                
  }                                                                             
                                                                                
//                                                                              
//  Swap to a Report screen                                                     
//                                                                              
                                                                                
function switchRPT(sDivid)                                                      
  {                                                                             
                                                                                
   var i;                                                                       
   var chkDef;                                                                  
                                                                                
   for(i = 0; i < scrCnt; i++)                                                  
     {                                                                          
      chkDef = scrArray[i];                                                     
                                                                                
      if(sDivid == chkDef.divid)                                                
        break;                                                                  
     }                                                                          
                                                                                
   swapDisplay(chkDef);                                                         
                                                                                
  }                                                                             
                                                                                
//                                                                              
//  Retrieve available OUTxx files                                              
//                                                                              
                                                                                
function expandMAP()                                                            
  {                                                                             
                                                                                
   if(retBusy)                                                                  
     return                                                                     
                                                                                
   if(calAvail)                                                                 
     return;                                                                    
                                                                                
   setBusy();                                                                   
                                                                                
   var url = "getlist.cgi";                                                     
   request.open("GET", url, true);                                              
   request.onreadystatechange = setCalender;                                    
   request.send(null);                                                          
                                                                                
  }                                                                             
                                                                                
//                                                                              
//  Get Table-of-Content for report                                             
//                                                                              
function getTOC(selName)                                                        
  {                                                                             
                                                                                
   if(retBusy)                                                                  
     return                                                                     
                                                                                
   setBusy(); ;                                                                 
                                                                                
   var tID = 'H_TOC' + selName;                                                 
   tID = findById(tID);                                                         
   if(tID != null)                                                              
     {                                                                          
      swapDisplay(tID);                                                         
      setNotBusy();                                                             
      return;                                                                   
     }                                                                          
                                                                                
   var wDay=new Date();                                                         
   var h=wDay.getHours();                                                       
   var m=wDay.getMinutes();                                                     
   var s=wDay.getSeconds();                                                     
                                                                                
   wDay = h + ':' + m + ':' + s;                                                
                                                                                
   var url = "gettoc.cgi?report=" + selName +                                   
     '&nkey=' + wDay;                                                           
                                                                                
   request.open("GET", url, true);                                              
   request.onreadystatechange = InitTOC;                                        
   request.send(null);                                                          
                                                                                
  }                                                                             
                                                                                
//                                                                              
//  Build the initial menu                                                      
//                                                                              
                                                                                
function InitTOC()                                                              
  {                                                                             
                                                                                
   if(request.readyState == 4)                                                  
     {                                                                          
                                                                                
      xmlData = request.responseXML;                                            
      var selName = "";                                                         
                                                                                
      topData = xmlData.getElementsByTagName("toc");                            
                                                                                
      var tNodes  = topData[0].childNodes;                                      
      eMsg    = "";                                                             
                                                                                
      var nCount = tNodes.length;                                               
      var tTitle = null;                                                        
      var tocData = "<pre>";                                                    
                                                                                
      for(var i = 0; i < nCount; i++)                                           
        {                                                                       
         var tName = tNodes[i].nodeName;                                        
         if(tName == '#text')                                                   
           continue;                                                            
                                                                                
         var wNode = tNodes[i];                                                 
                                                                                
         var kText = tNodes[i].childNodes;                                      
         var tValue = kText[0].nodeValue;                                       
                                                                                
         tName = tName.toUpperCase();                                           
                                                                                
         switch(tName)                                                          
           {                                                                    
            case "REPORT":                                                      
               tTitle = tValue;                                                 
               break;                                                           
                                                                                
            case "ITEM":                                                        
               var bPage = wNode.getAttribute("bPage");                         
               var ePage = wNode.getAttribute("ePage");                         
               var pCount = wNode.getAttribute("pageCnt");                      
                                                                                
               var wLink = tValue.indexOf(" ");                                 
               var wValue = tValue.substring(wLink+1);                          
               wLink = tValue.substr(0,wLink);                                  
                                                                                
               tocData = tocData + '&nbsp;&nbsp;' +                             
                 '<a href="javascript:' +                                       
                 "getRPT('" + tTitle + "', " +                                  
                  bPage + ', ' + ePage + ", 1, '" + wLink +                     
                  "', '" + wValue + "')" + '">' +                               
                  wLink + '</a> -' + wValue + '<br>'                            
                                                                                
               break;                                                           
                                                                                
            case "ALERT":                                                       
               eMsg = tValue;                                                   
               break;                                                           
                                                                                
            case "GROUP":                                                       
               tocData = tocData + '<br><h3>' + tValue + '</h3>'                
               break;                                                           
                                                                                
            default:                                                            
                                                                                
           };                                                                   
        }                                                                       
                                                                                
      if(tocData != '<pre>')                                                    
        {                                                                       
         tocData = tocData + '</pre>'                                           
         var wtitle = 'TOC' + tTitle;                                           
                                                                                
         var tYear = tTitle.substr(0, 4);                                       
         var tMth  = tTitle.substr(4, 2);                                       
         var tDay  = tTitle.substr(6, 2);                                       
         var tRun  = tTitle.substr(9, 2);                                       
                                                                                
         var wYear = tTitle.substr(2, 2);                                       
         var anchor = wYear + ' / ' +                                           
             tMth + ' / ' + tDay + ' #' + tRun;                                 
                                                                                
         tMth--;                                                                
         var wDate  = new Date();                                               
                                                                                
         wDate.setFullYear(tYear, tMth, tDay);                                  
                                                                                
         var hDate = wDate.toString();                                          
         hDate = hDate.substr(0, 15);                                           
         CreateDiv(wtitle,typeMap, 'TOC - ' + hDate +                           
           ' (Out ' + tRun + ')');                                              
                                                                                
         var wDiv = actScreen.divid;                                            
         var sDiv = document.getElementById(wDiv);                              
         sDiv.innerHTML = tocData;                                              
                                                                                
   //                                                                           
   //  the anchor                                                               
                                                                                
         var newDiv = document.createElement('div');                            
         var aName = "M_" + actScreen.divid;                                    
         newDiv.setAttribute('id',aName);                                       
         newDiv.setAttribute('name',aName);                                     
                                                                                
         var wDiv = document.getElementById("mapMenu");                         
                                                                                
         newDiv.innerHTML = '<img src="clear.gif" ' +                           
           'width="13px" height="13px" align="left">' +                         
           '<a href="javascript:switchRPT(' + "'" +                             
           actScreen.divid + "'" +                                              
           ')" class="selmitem">' +                                             
           anchor + '</a>'                                                      
                                                                                
         var Brother = wDiv.lastChild;                                          
         wDiv.insertBefore(newDiv, Brother.nextSibling);                        
        }                                                                       
                                                                                
      setNotBusy();                                                             
                                                                                
     }                                                                          
                                                                                
   }                                                                            
                                                                                
//                                                                              
//  Get a report                                                                
//                                                                              
function getRPT(selName, begpage, endpage, pagegroup,                           
   rName, rTitle)                                                               
  {                                                                             
                                                                                
   if(retBusy)                                                                  
     return                                                                     
                                                                                
   setBusy();                                                                   
                                                                                
   if(rName != '%')                                                             
     {                                                                          
      var tID = 'H_RPT' + selName + '_' + rName;                                
      tID = findById(tID);                                                      
      if(tID != null)                                                           
        {                                                                       
         swapDisplay(tID);                                                      
         setNotBusy();                                                          
         return;                                                                
        }                                                                       
     }                                                                          
                                                                                
   var tGroup = Number(pagegroup);                                              
   var tbPage = Number(begpage);                                                
   var tePage = Number(endpage);                                                
                                                                                
   rptPages = (tePage - tbPage) + 1;                                            
   rptGroup = tGroup;                                                           
   rptBeg   = tbPage;                                                           
   rptEnd   = tePage;                                                           
   rptName  = rName;                                                            
                                                                                
   tGroup = ((tGroup - 1) * 10);                                                
   tbPage = tbPage + tGroup;                                                    
   var cePage = (tbPage + pageGroup) - 1;                                       
   if(cePage < tePage)                                                          
     tePage = cePage                                                            
                                                                                
   tbPage = String(tbPage);                                                     
   tePage = String(tePage);                                                     
                                                                                
   var wParms = rTitle.replace(/ /g,'+');                                       
                                                                                
   var url = "lpsrpts.cgi?report=" + selName +                                  
        '&begpage=' + tbPage + '&endpage=' + tePage +                           
        '&name=' + rName + '&title=' + wParms;                                  
   request.open("GET", url, true);                                              
   request.onreadystatechange = InitRPT;                                        
   request.send(null);                                                          
                                                                                
  }                                                                             
                                                                                
//                                                                              
//  Build the report screen                                                     
//                                                                              
                                                                                
function InitRPT()                                                              
  {                                                                             
   if(request.readyState == 4)                                                  
     {                                                                          
                                                                                
      xmlData = request.responseXML;                                            
                                                                                
      topData = xmlData.getElementsByTagName("report");                         
                                                                                
      var tNodes  = topData[0].childNodes;                                      
      eMsg    = "";                                                             
                                                                                
      var selName = "";                                                         
      var rptID   = "";                                                         
      var nCount  = tNodes.length;                                              
      var tTitle  = "";                                                         
      var rptData = "<pre>";                                                    
                                                                                
      for(var i = 0; i < nCount; i++)                                           
        {                                                                       
         var tName = tNodes[i].nodeName;                                        
         if(tName == '#text')                                                   
           continue;                                                            
                                                                                
         var wNode = tNodes[i];                                                 
                                                                                
         var kText = tNodes[i].childNodes;                                      
         var tValue;                                                            
         try{                                                                   
             tValue = kText[0].nodeValue                                        
            }                                                                   
         catch(e)                                                               
           {tValue = ' '};                                                      
                                                                                
         tName = tName.toUpperCase();                                           
                                                                                
         switch(tName)                                                          
           {                                                                    
            case "NAME":                                                        
               selName = tValue;                                                
               break;                                                           
                                                                                
            case "ID":                                                          
               rptID = tValue;                                                  
               break;                                                           
                                                                                
            case "TITLE":                                                       
               tTitle = tValue;                                                 
               break;                                                           
                                                                                
            case "I":                                                           
               tValue  = tValue.replace(/</g, '&lt;');                          
               rptData = rptData + tValue + '<br>';                             
               break;                                                           
                                                                                
            case "ALERT":                                                       
               eMsg = tValue;                                                   
               break;                                                           
                                                                                
            default:                                                            
                                                                                
           };                                                                   
                                                                                
        }                                                                       
      var wDiv, rptDiv;                                                         
                                                                                
      if(rptData != '<pre>')                                                    
        {                                                                       
                                                                                
         rptData = rptData + "</pre>";                                          
                                                                                
         if(!rptCall)                                                           
           {                                                                    
            wDiv = actScreen.divid;                                             
            BPid = 'BD_' + wDiv.substring(2);                                   
            rptDiv = document.getElementById(BPid);                             
            rptDiv.innerHTML = rptData;                                         
           }                                                                    
         else                                                                   
           {                                                                    
            var wLink = tValue.indexOf(" ");                                    
            var wValue = tValue.substring(wLink+1);                             
            wLink = tValue.substr(0,wLink);                                     
                                                                                
            var wtitle = 'RPT' + rptID + '_' + rptName;                         
            CreateDiv(wtitle, typeMap, tTitle);                                 
            wDiv = actScreen.divid;                                             
            rptDiv = document.getElementById(wDiv);                             
                                                                                
            actScreen.begpage = rptBeg;                                         
            actScreen.endpage = rptEnd;                                         
            actScreen.pagecnt = rptPages;                                       
            actScreen.rptname = rptName;                                        
                                                                                
   //                                                                           
   //  the DATA page                                                            
   //                                                                           
            var BPid = 'BD_' + wDiv.substring(2);                               
            var newDiv = document.createElement('div');                         
            newDiv.className = 'rptdata';                                       
            newDiv.setAttribute('id', BPid);                                    
            newDiv.innerHTML =   rptData;                                       
                                                                                
            var Brother = rptDiv.firstChild;                                    
            rptDiv.insertBefore(newDiv, Brother);                               
                                                                                
   //                                                                           
   //  the anchor                                                               
            var newDiv = document.createElement('div');                         
            var aName = "M_" + actScreen.divid;                                 
            newDiv.setAttribute('id',aName);                                    
            newDiv.setAttribute('name',aName);                                  
                                                                                
            var pName = "M_" + typeMap + "_TOC" + rptID;                        
                                                                                
            wDiv = document.getElementById(pName);                              
            newDiv.innerHTML = '<img src="clear.gif" ' +                        
              'width="26px" height="13px" align="left">' +                      
              '<a href="javascript:switchRPT(' + "'" +                          
              actScreen.divid + "'" +                                           
              ')" class="selmitem">' +                                          
              rptName + '</a>'                                                  
                                                                                
            var Brother = wDiv.lastChild;                                       
            wDiv.insertBefore(newDiv, Brother.nextSibling);                     
   //                                                                           
   //  the PAGE anchor                                                          
   //                                                                           
                                                                                
            if(rptPages > pageGroup)                                            
              {                                                                 
               PauseB.onclick = seePages;                                       
               PauseB.innerHTML = "More Pages";                                 
               PauseB.style.visibility = 'visible';                             
               PauseB.style.display = 'inline';                                 
                                                                                
              }                                                                 
           }                                                                    
                                                                                
         actScreen.currgrp = rptGroup;                                          
                                                                                
                                                                                
        }                                                                       
                                                                                
       rptCall = true;                                                          
                                                                                
       setNotBusy();                                                            
                                                                                
      }                                                                         
                                                                                
   }                                                                            
                                                                                
//                                                                              
// Display available pages for a report                                         
//                                                                              
                                                                                
function seePages()                                                             
  {                                                                             
   var s = document.getElementById('pagelines');                                
   var pdata = '<pre>';                                                         
                                                                                
   var tbPage;                                                                  
   var tePage;                                                                  
   var litPfx;                                                                  
   var litSfx;                                                                  
                                                                                
   var loopCtl = false;                                                         
                                                                                
   for(var i = 1; ; i++)                                                        
     {                                                                          
      tbPage = ((i-1) * pageGroup) + actScreen.begpage;                         
      tePage = (tbPage + pageGroup) - 1;                                        
      if(tePage >= actScreen.endpage)                                           
        {                                                                       
         tePage = actScreen.endpage;                                            
         loopCtl = true;                                                        
        }                                                                       
                                                                                
      tbPage = String(tbPage);                                                  
      tePage = String(tePage);                                                  
                                                                                
      if(actScreen.currgrp == i)                                                
        {                                                                       
         litPfx = '<b>';                                                        
         litSfx = '</b>';                                                       
        }                                                                       
      else                                                                      
        {                                                                       
         litPfx = '<a href="' +                                                 
              "javascript:getPageGroup(" + String(i)  +                         
               ")" + '"><b>';                                                   
         litSfx = '</b></a>';                                                   
        }                                                                       
                                                                                
      var pPage, lPage;                                                         
                                                                                
      var pPlen  = tbPage.length;                                               
      if(pPlen < 4)                                                             
        pPage =  blanks.substr(0, 4-pPlen) + tbPage;                            
      else                                                                      
        pPage = tbPage;                                                         
                                                                                
      pPlen  = tePage.length;                                                   
      if(pPlen < 4)                                                             
        lPage =  blanks.substr(0, 4-pPlen) + tePage;                            
      else                                                                      
        lPage = tePage;                                                         
                                                                                
      pdata = pdata + litPfx + 'Pg ' + pPage + ' - ' +                          
         lPage + litSfx + '<br>';                                               
                                                                                
      if(loopCtl)                                                               
        break;                                                                  
                                                                                
     }                                                                          
                                                                                
   pdata = pdata + '</pre>';                                                    
                                                                                
   s.innerHTML = pdata;                                                         
                                                                                
   s = document.getElementById('pages');                                        
                                                                                
   s.style.visibility = 'visible';                                              
   s.style.display = 'block';                                                   
   s.style.zIndex = 10;                                                         
                                                                                
  }                                                                             
                                                                                
//                                                                              
// Display available pages for a report                                         
//                                                                              
                                                                                
function blurPages()                                                            
  {                                                                             
   var s = document.getElementById('pages');                                    
                                                                                
   s.style.visibility = 'hidden';                                               
   s.style.display = 'none';                                                    
   s.style.zIndex = -1;                                                         
  }                                                                             
                                                                                
//                                                                              
// Get another page group                                                       
//                                                                              
                                                                                
function getPageGroup(gNum)                                                     
  {                                                                             
                                                                                
   blurPages();                                                                 
                                                                                
   var bPage, ePage;                                                            
   pPage = actScreen.begpage;                                                   
   ePage = actScreen.endpage;                                                   
                                                                                
   pPage = String(pPage);                                                       
   ePage = String(ePage);                                                       
                                                                                
   rptGroup = gNum;                                                             
   rptCall = false;                                                             
                                                                                
   var tReport = actScreen.divid.substr(5,11);                                  
                                                                                
   getRPT(tReport, pPage, ePage, gNum, '%', '%');                               
  }                                                                             
                                                                                
//                                                                              
//  Clear the screens associated with a TOC                                     
//                                                                              
                                                                                
function clearTOC()                                                             
  {                                                                             
   var mDivName = 'M_' + actScreen.divid;                                       
   var mDiv     = document.getElementById(mDivName);                            
                                                                                
   var cNodes = mDiv.childNodes;                                                
   var nCount = cNodes.length;                                                  
                                                                                
   for(var i=0;i < nCount; i++)                                                 
     {                                                                          
      var nName = cNodes[i].getAttribute('name');                               
      if(nName == null)                                                         
        continue;                                                               
                                                                                
      nName = nName.substr(2);                                                  
                                                                                
      var wDef = findById(nName);                                               
      if(wDef == null)                                                          
        continue;                                                               
                                                                                
      var testDef = scrArray.pop();                                             
      scrCnt--;                                                                 
                                                                                
      if(wDef.item != testDef.item)                                             
        {                                                                       
         wrkPos = wDef.item;                                                    
         testDef.item = wrkPos;                                                 
         wrkPos = wrkPos - 1;                                                   
         scrArray[wrkPos] = testDef;                                            
        }                                                                       
                                                                                
      var wrkElem = document.getElementById(nName);                             
      wrkElem.parentNode.removeChild(wrkElem);                                  
                                                                                
     }                                                                          
  }                                                                             
                                                                                
//                                                                              

