var TITEMS = [ 
 ["Loftware Support and Services", null, "1",
  ["About Loftware", "source/aboutloftware.htm", "11"],
  ["User Manuals", "source/usermanuals.htm", "11"],
  ["Contacting Loftware", "source/contactingloftware.htm", "11"],
  ["Technical Support", "source/technicalsupport.htm", "11"],
  ["Professional Services", "source/professionalservices.htm", "11"]
 ],
 ["Chapter 1  The Loftware Print Server", null, "1",
  ["Understanding the LPS Architecture", "source/understandingthelpsarchitecture.htm", "11"],
  ["Performance Considerations", "source/performanceconsiderations.htm", "11"],
  ["Installing the LPS", "source/installingthelps.htm", "1",
   ["System Requirements for the LPS", "source/systemrequirementsforthelps.htm", "11"],
   ["System Analyst Questions", "source/systemanalystquestions.htm", "11"],
   ["Pre-Install System Checks", "source/preinstallsystemchecks.htm", "11"],
   ["Installing and Verifying", "source/installingandverifying.htm", "11"]
  ],
  ["Configuration of the LPS", "source/configurationofthelps.htm", "1",
   ["General Tab", "source/generaltab.htm", "11"],
   ["Logging Tab", "source/loggingtab.htm", "11"],
   ["Notification and Status Reporting Tabs", "source/notificationandstatusreportingtabs.htm", "11"],
   ["Housekeeping Tab", "source/housekeepingtab.htm", "11"]
  ],
  ["LPS Modes", "source/lpsmodes.htm", "1",
   ["Service Mode", "source/servicemode.htm", "11"],
   ["Interactive Mode", "source/interactivemode.htm", "11"]
  ],
  ["Print Request Data Structures", "source/printrequestdatastructures.htm", "11"],
  ["Providing Data for the General Case", "source/providingdataforthegeneralcase.htm", "11"],
  ["LPS Interfaces", "source/lpsinterfaces.htm", "1",
   ["The File Interface", "source/thefileinterface.htm", "11"],
   ["ActiveX / .NET Interface", "source/activexnetinterface.htm", "11"],
   ["Connector Interface", "source/connectorinterface.htm", "11"],
   ["Direct Socket Interface", "source/directsocketinterface.htm", "11"],
   ["TCP/IP Socket Interface", "source/tcpipsocketinterface.htm", "11"]
  ],
  ["Hints and Troubleshooting", "source/hintsandtroubleshooting.htm", "1",
   ["WDPING and WDLOG Diagnostic Utilities", "source/wdpingandwdlogdiagnosticutilities.htm", "11"],
   ["Reading the Application Event Log", "source/readingtheapplicationeventlog.htm", "11"],
   ["Backup and Restore Utility", "source/backupandrestoreutility.htm", "1",
    ["Using Backup", "source/usingbackup.htm", "11"],
    ["Using Restore", "source/usingrestore.htm", "11"],
    ["Running Backup / Restore on a Schedule", "source/runningbackuprestoreonaschedule.htm", "11"]
   ]
  ]
 ],
 ["Chapter 2  Thin Client Modules", null, "1",
  ["Thin Client Overview", "source/thinclientoverview.htm", "11"],
  ["Installing and Starting Client Applications", "source/installingandstartingclientapplications.htm", "11"],
  ["Notification Agent", "source/notificationagent.htm", "1",
   ["Configuring the Notification Agent", "source/configuringthenotificationagent.htm", "11"],
   ["Starting the Agent", "source/startingtheagent.htm", "11"],
   ["Testing and Troubleshooting the Notification Agent", "source/testingandtroubleshootingthenotificationagent.htm", "11"]
  ],
  ["On-Demand Print Client", "source/ondemandprintclient.htm", "1",
   ["Preparing to Use the On-Demand Print Client", "source/preparingtousetheondemandprintclient.htm", "11"],
   ["The llmwclnt.ini File", "source/thellmwclntinifile.htm", "11"],
   ["Operation of the On-Demand Client", "source/operationoftheondemandclient.htm", "11"],
   ["Creating an Icon to Run the Thin On-Demand Print Client", "source/creatinganicontorunthethinondemandprintclient.htm", "11"],
   ["Troubleshooting the Thin On-Demand Print Client", "source/troubleshootingthethinondemandprintclient.htm", "11"]
  ],
  ["Status Client Application", "source/statusclientapplication.htm", "1",
   ["Understanding the Screen Layout", "source/understandingthescreenlayout.htm", "11"],
   ["Status Client Examples", "source/statusclientexamples.htm", "11"],
   ["Status Menu Choices", "source/statusmenuchoices.htm", "11"],
   ["Using the `Launch Browser' Feature", "source/usingthelaunchbrowserfeature.htm", "11"]
  ],
  ["LPSSend Client", "source/lpssendclient.htm", "11"],
  ["Palm OS SDK", "source/palmossdk.htm", "11"],
  ["Running the Sample Program", "source/runningthesampleprogram.htm", "11"]
 ],
 ["Chapter 3  Internet Printing", null, "1",
  ["Internet Printing Overview", "source/internetprintingoverview2.htm", "11"],
  ["Internet Printing Considerations", "source/internetprintingconsiderations2.htm", "11"],
  ["The WebClient", "source/thewebclient2.htm", "1",
   ["Choosing the WebClient or On-Demand Print Client", "source/choosingthewebclientorondemandprintclient2.htm", "11"],
   ["Components of the WebClient", "source/componentsofthewebclient2.htm", "11"],
   ["Installing the WebClient Components", "source/installingthewebclientcomponents2.htm", "11"],
   ["Using the WebClient", "source/usingthewebclient2.htm", "11"],
   ["Additional WebClient Information", "source/additionalwebclientinformation2.htm", "11"]
  ],
  ["Internet Data Push and the Web Listener", "source/internetdatapushandtheweblistener2.htm", "1",
   ["Installing the Web Push Components", "source/installingthewebpushcomponents2.htm", "11"],
   ["Configuring the Web Push Components", "source/configuringthewebpushcomponents2.htm", "11"],
   ["Client-side Connections", "source/clientsideconnections2.htm", "11"],
   ["Client-side Printer Configurations", "source/clientsideprinterconfigurations2.htm", "11"],
   ["Using Web Listener as a Service", "source/usingweblistenerasaservice1.htm", "11"]
  ]
 ],
 ["Chapter 4  LPS Clustering", null, "1",
  ["What is Clustering?", "source/whatisclustering.htm", "1",
   ["Definition of Terms", "source/definitionofterms.htm", "11"]
  ],
  ["Loftware Print Server (LPS) Failover Support", "source/loftwareprintserverlpsfailoversupport.htm", "1",
   ["Shared Files and Central Storage", "source/sharedfilesandcentralstorage.htm", "11"],
   ["The Mirrored Registry", "source/themirroredregistry.htm", "11"]
  ],
  ["Installing the Loftware Print Server on a Cluster", "source/installingtheloftwareprintserveronacluster.htm", "1",
   ["Pre-installation", "source/preinstallation.htm", "11"],
   ["Installation", "source/installation.htm", "11"],
   ["Post Installation Check List", "source/postinstallationchecklist.htm", "11"],
   ["Upgrading, Repairing, and Uninstalling", "source/upgradingrepairinganduninstalling.htm", "11"],
   ["Remote Administration of a Windows 2000/2003 Cluster Server", "source/remoteadministrationofawindows20002003clusterserver.htm", "11"],
   ["Client Connections to the LPS Virtual Server", "source/clientconnectionstothelpsvirtualserver.htm", "11"],
   ["Troubleshooting Loftware Print Server Clustering", "source/troubleshootingloftwareprintserverclustering.htm", "11"]
  ]
 ],
 ["Chapter 5  ActiveX Client Control", null, "1",
  ["ActiveX Client Control Overview", "source/activexclientcontroloverview.htm", "11"],
  ["Installation and Use of ActiveX Client Control", "source/installationanduseofactivexclientcontrol.htm", "11"],
  ["Design Scenario and Distribution", "source/designscenarioanddistribution.htm", "11"],
  ["ActiveX Client Control Properties", "source/activexclientcontrolproperties.htm", "1",
   ["ClientIniPath Property", "source/clientinipathproperty.htm", "11"],
   ["DropDirectory Property", "source/dropdirectoryproperty.htm", "11"],
   ["Duplicates Property", "source/duplicatesproperty.htm", "11"],
   ["FieldCount Property", "source/fieldcountproperty.htm", "11"],
   ["FieldLength Property", "source/fieldlengthproperty.htm", "11"],
   ["FieldName Property", "source/fieldnameproperty.htm", "11"],
   ["isRunning Property", "source/isrunningproperty.htm", "11"],
   ["JobName Property", "source/jobnameproperty.htm", "11"],
   ["LabelsPath Property", "source/labelspathproperty.htm", "11"],
   ["LayoutPath Property", "source/layoutpathproperty.htm", "11"],
   ["Pages Property", "source/pagesproperty.htm", "11"],
   ["PrinterAlias Property", "source/printeraliasproperty.htm", "11"],
   ["PrinterCount Property", "source/printercountproperty.htm", "11"],
   ["PrinterName Property", "source/printernameproperty.htm", "11"],
   ["PrinterPort Property", "source/printerportproperty.htm", "11"],
   ["PrinterNumber Property", "source/printernumberproperty.htm", "11"],
   ["PrinterPath Property", "source/printerpathproperty.htm", "11"],
   ["PasExt Property", "source/pasextproperty.htm", "11"],
   ["Quantity Property", "source/quantityproperty.htm", "11"],
   ["ServerCount Property", "source/servercountproperty.htm", "11"],
   ["ServerNumber Property", "source/servernumberproperty.htm", "11"],
   ["ServerName Property", "source/servernameproperty.htm", "11"],
   ["ServerAlias Property", "source/serveraliasproperty.htm", "11"],
   ["TrimLeadingSpaces Property", "source/trimleadingspacesproperty.htm", "11"]
  ],
  ["ActiveX Methods", "source/activexmethods.htm", "1",
   ["AppendJob Method", "source/appendjobmethod.htm", "11"],
   ["ClearData Method", "source/cleardatamethod.htm", "11"],
   ["Login Method", "source/loginmethod.htm", "11"],
   ["PrintJob Method", "source/printjobmethod.htm", "11"],
   ["ResetJob Method", "source/resetjobmethod.htm", "11"],
   ["SetData Method", "source/setdatamethod.htm", "11"],
   ["SetLabelName Method", "source/setlabelnamemethod.htm", "11"],
   ["SetServer Method", "source/setservermethod.htm", "11"]
  ],
  ["ActiveX Events", "source/activexevents.htm", "1",
   ["ErrorEvent Event", "source/erroreventevent.htm", "11"],
   ["InfoEvent Event", "source/infoeventevent.htm", "11"],
   ["WarningEvent Event", "source/warningeventevent.htm", "11"],
   ["OtherEvent Event", "source/othereventevent.htm", "11"]
  ],
  ["ActiveX Client Control Reference Table", "source/activexclientcontrolreferencetable.htm", "11"]
 ],
 ["Chapter 6  Internet ActiveX Control", null, "1",
  ["Internet ActiveX Overview", "source/internetactivexoverview.htm", "11"],
  ["Installation/Use of the Internet ActiveX Control", "source/installationuseoftheinternetactivexcontrol.htm", "11"],
  ["Design Scenario and Distribution", "source/designscenarioanddistribution1.htm", "11"],
  ["Internet ActiveX Properties", "source/internetactivexproperties.htm", "1",
   ["Duplicates Property", "source/duplicatesproperty1.htm", "11"],
   ["FieldCount Property", "source/fieldcountproperty1.htm", "11"],
   ["FieldLength Property", "source/fieldlengthproperty1.htm", "11"],
   ["FieldName Property", "source/fieldnameproperty1.htm", "11"],
   ["isConnected Property", "source/isconnectedproperty.htm", "11"],
   ["JobName Property", "source/jobnameproperty1.htm", "11"],
   ["Pages Property", "source/pagesproperty1.htm", "11"],
   ["PrinterAlias Property", "source/printeraliasproperty1.htm", "11"],
   ["PrinterCount Property", "source/printercountproperty1.htm", "11"],
   ["PrinterName Property", "source/printernameproperty1.htm", "11"],
   ["PrinterNumber Property", "source/printernumberproperty1.htm", "11"],
   ["PrinterPort Property", "source/printerportproperty1.htm", "11"],
   ["PrinterTimeout Property", "source/printertimeoutproperty.htm", "11"],
   ["Quantity Property", "source/quantityproperty1.htm", "11"],
   ["TrimLeadingSpaces Property", "source/trimleadingspacesproperty1.htm", "11"],
   ["WebAddress Property", "source/webaddressproperty.htm", "11"],
   ["WebPort Property", "source/webportproperty.htm", "11"],
   ["WebUserName Property", "source/webusernameproperty.htm", "11"]
  ],
  ["Internet ActiveX Methods", "source/internetactivexmethods.htm", "1",
   ["AppendJob Method", "source/appendjobmethod1.htm", "11"],
   ["ClearAllData Method", "source/clearalldatamethod.htm", "11"],
   ["Connect Method", "source/connectmethod.htm", "11"],
   ["Disconnect Method", "source/disconnectmethod.htm", "11"],
   ["PrintJob Method", "source/printjobmethod1.htm", "11"],
   ["ResetJob Method", "source/resetjobmethod1.htm", "11"],
   ["SetData Method", "source/setdatamethod1.htm", "11"],
   ["SetLabelName Method", "source/setlabelnamemethod1.htm", "11"],
   ["SetPrinter Method", "source/setprintermethod.htm", "11"],
   ["Test Connection Method", "source/testconnectionmethod.htm", "11"],
   ["TestPrinter Method", "source/testprintermethod.htm", "11"]
  ],
  ["Internet ActiveX Events", "source/internetactivexevents.htm", "1",
   ["AfterPrint Event", "source/afterprintevent1.htm", "11"],
   ["BeforePrint Event", "source/beforeprintevent1.htm", "11"],
   ["ErrorEvent Event", "source/erroreventevent2.htm", "11"],
   ["InfoEvent Event", "source/infoeventevent2.htm", "11"],
   ["OtherEvent Event", "source/othereventevent2.htm", "11"],
   ["WarningEvent Event", "source/warningeventevent2.htm", "11"]
  ],
  ["Internet ActiveX Reference Table", "source/internetactivexreferencetable1.htm", "11"]
 ],
 ["Chapter 7  Loftware .NET Control", null, "1",
  ["Overview of Loftware .NET Control", "source/overviewofloftwarenetcontrol.htm", "11"],
  ["Installation and Use of the Loftware .NET Control", "source/installationanduseoftheloftwarenetcontrol.htm", "1",
   ["Installing the Loftware .Net Control", "source/installingtheloftwarenetcontrol.htm", "11"],
   ["Using the Loftware .NET Control", "source/usingtheloftwarenetcontrol.htm", "11"]
  ],
  ["Distributing the Loftware .NET Control", "source/distributingtheloftwarenetcontrol.htm", "1",
   ["Using the .NET Control in a Web Application", "source/usingthenetcontrolinawebapplication.htm", "11"]
  ],
  ["Loftware .NET Control Methods", "source/loftwarenetcontrolmethods.htm", "1",
   ["AppendJob", "source/appendjob.htm", "11"],
   ["ClearData", "source/cleardata.htm", "11"],
   ["GetFieldIndex", "source/getfieldindex.htm", "11"],
   ["GetFieldMaxLength", "source/getfieldmaxlength.htm", "11"],
   ["GetFieldName", "source/getfieldname.htm", "11"],
   ["GetLabel", "source/getlabel.htm", "11"],
   ["GetLabelList", "source/getlabellist.htm", "11"],
   ["GetLabelListExt", "source/getlabellistext.htm", "11"],
   ["GetLabelsPrinterID", "source/getlabelsprinterid.htm", "11"],
   ["GetPrinterByNumber", "source/getprinterbynumber.htm", "11"],
   ["GetPrinters", "source/getprinters.htm", "11"],
   ["KillJobs", "source/killjobs.htm", "11"],
   ["Login", "source/login.htm", "11"],
   ["Logout", "source/logout.htm", "11"],
   ["PrintJob", "source/printjob.htm", "1",
    ["Class PrintJobResponse", "source/classprintjobresponse1.htm", "11"]
   ],
   ["SetData", "source/setdata.htm", "11"]
  ],
  ["Loftware .NET Control Properties", "source/loftwarenetcontrolproperties.htm", "1",
   ["CurrentLabel", "source/currentlabel.htm", "11"],
   ["CurrentServer", "source/currentserver.htm", "11"],
   ["Duplicates", "source/duplicates.htm", "11"],
   ["FieldCount", "source/fieldcount.htm", "11"],
   ["JobName", "source/jobname.htm", "11"],
   ["LabelDtd", "source/labeldtd.htm", "11"],
   ["LastErrorMessage", "source/lasterrormessage.htm", "11"],
   ["LoggedIn", "source/loggedin.htm", "11"],
   ["Pages", "source/pages.htm", "11"],
   ["PrinterName", "source/printername.htm", "11"],
   ["PrinterNumber", "source/printernumber.htm", "11"],
   ["Quantity", "source/quantity.htm", "11"],
   ["Tray", "source/tray.htm", "11"]
  ],
  ["Loftware .NET Control Events", "source/loftwarenetcontrolevents.htm", "1",
   ["ErrorMessage Event", "source/errormessageevent.htm", "11"],
   ["WarningMessage Event", "source/warningmessageevent.htm", "11"],
   ["InfoMessage Event", "source/infomessageevent.htm", "11"],
   ["More Error Information and Return Codes", "source/moreerrorinformationandreturncodes.htm", "11"]
  ],
  ["Reference Table for the Loftware .NET Control", "source/referencetablefortheloftwarenetcontrol.htm", "11"]
 ]
];


function arr_flatten (x) {
   var y = []; if (x == null) return y;
   for (var i=0; i<x.length; i++) {
      if (typeof(x[i]) == "object") {
         var flat = arr_flatten(x[i]);
         for (var j=0; j<flat.length; j++)
             y[y.length]=flat[j];
      } else {
         if ((i%3==0) && (x[i+1] != null))
          y[y.length]=x[i+1];
      }
   }
   return y;
}

function arr_findNext (url, cnt)
{
   var y = arr_flatten(TITEMS);
   for (var i = 0; i<y.length; i++) {
     if (y[i] == url) {
       ni = i + cnt;
       if (ni < 0) ni = 0;
       if (ni > y.length-1) ni = y.length-1;

       return y[ni];
     }
   }
   return "";
}
