Mercurial > repos > deepakjadmin > mayatool3_test2
diff docs/scripts/html/code/SDFilesToHTML.html @ 0:4816e4a8ae95 draft default tip
Uploaded
author | deepakjadmin |
---|---|
date | Wed, 20 Jan 2016 09:23:18 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/scripts/html/code/SDFilesToHTML.html Wed Jan 20 09:23:18 2016 -0500 @@ -0,0 +1,1943 @@ +<html> +<head> +<title>MayaChemTools:Code:SDFilesToHTML.pl</title> +<meta http-equiv="content-type" content="text/html;charset=utf-8"> +<link rel="stylesheet" type="text/css" href="../../../css/MayaChemToolsCode.css"> +</head> +<body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10"> +<br/> +<center> +<a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a> +</center> +<br/> +<pre> + 1 #!/usr/bin/perl -w + 2 <span class="c">#</span> + 3 <span class="c"># $RCSfile: SDFilesToHTML.pl,v $</span> + 4 <span class="c"># $Date: 2015/02/28 20:46:20 $</span> + 5 <span class="c"># $Revision: 1.50 $</span> + 6 <span class="c">#</span> + 7 <span class="c"># Author: Manish Sud <msud@san.rr.com></span> + 8 <span class="c">#</span> + 9 <span class="c"># Copyright (C) 2015 Manish Sud. All rights reserved.</span> + 10 <span class="c">#</span> + 11 <span class="c"># This file is part of MayaChemTools.</span> + 12 <span class="c">#</span> + 13 <span class="c"># MayaChemTools is free software; you can redistribute it and/or modify it under</span> + 14 <span class="c"># the terms of the GNU Lesser General Public License as published by the Free</span> + 15 <span class="c"># Software Foundation; either version 3 of the License, or (at your option) any</span> + 16 <span class="c"># later version.</span> + 17 <span class="c">#</span> + 18 <span class="c"># MayaChemTools is distributed in the hope that it will be useful, but without</span> + 19 <span class="c"># any warranty; without even the implied warranty of merchantability of fitness</span> + 20 <span class="c"># for a particular purpose. See the GNU Lesser General Public License for more</span> + 21 <span class="c"># details.</span> + 22 <span class="c">#</span> + 23 <span class="c"># You should have received a copy of the GNU Lesser General Public License</span> + 24 <span class="c"># along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or</span> + 25 <span class="c"># write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,</span> + 26 <span class="c"># Boston, MA, 02111-1307, USA.</span> + 27 <span class="c">#</span> + 28 + 29 <span class="k">use</span> <span class="w">strict</span><span class="sc">;</span> + 30 <span class="k">use</span> <span class="w">FindBin</span><span class="sc">;</span> <span class="k">use</span> <span class="w">lib</span> <span class="q">"$FindBin::Bin/../lib"</span><span class="sc">;</span> + 31 <span class="k">use</span> <span class="w">Getopt::Long</span><span class="sc">;</span> + 32 <span class="k">use</span> <span class="w">File::Basename</span><span class="sc">;</span> + 33 <span class="k">use</span> <span class="w">File::Spec</span><span class="sc">;</span> + 34 <span class="k">use</span> <span class="w">Text::ParseWords</span><span class="sc">;</span> + 35 <span class="k">use</span> <span class="w">Benchmark</span><span class="sc">;</span> + 36 <span class="k">use</span> <span class="w">Cwd</span><span class="sc">;</span> + 37 <span class="k">use</span> <span class="w">FileUtil</span><span class="sc">;</span> + 38 <span class="k">use</span> <span class="w">SDFileUtil</span><span class="sc">;</span> + 39 <span class="k">use</span> <span class="w">TextUtil</span><span class="sc">;</span> + 40 <span class="k">use</span> <span class="w">HTMLUtil</span><span class="sc">;</span> + 41 + 42 <span class="k">my</span><span class="s">(</span><span class="i">$ScriptName</span><span class="cm">,</span> <span class="i">%Options</span><span class="cm">,</span> <span class="i">$StartTime</span><span class="cm">,</span> <span class="i">$EndTime</span><span class="cm">,</span> <span class="i">$TotalTime</span><span class="s">)</span><span class="sc">;</span> + 43 + 44 <span class="c"># Autoflush STDOUT</span> + 45 <span class="i">$|</span> = <span class="n">1</span><span class="sc">;</span> + 46 + 47 <span class="c"># Starting message...</span> + 48 <span class="i">$ScriptName</span> = <span class="i">basename</span><span class="s">(</span><span class="i">$0</span><span class="s">)</span><span class="sc">;</span> + 49 <span class="k">print</span> <span class="q">"\n$ScriptName: Starting...\n\n"</span><span class="sc">;</span> + 50 <span class="i">$StartTime</span> = <span class="w">new</span> <span class="w">Benchmark</span><span class="sc">;</span> + 51 + 52 <span class="c"># Get the options and setup script...</span> + 53 <span class="i">SetupScriptUsage</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 54 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">help</span>} || <span class="i">@ARGV</span> < <span class="n">1</span><span class="s">)</span> <span class="s">{</span> + 55 <span class="k">die</span> <span class="i">GetUsageFromPod</span><span class="s">(</span><span class="q">"$FindBin::Bin/$ScriptName"</span><span class="s">)</span><span class="sc">;</span> + 56 <span class="s">}</span> + 57 + 58 <span class="k">my</span><span class="s">(</span><span class="i">@SDFilesList</span><span class="s">)</span><span class="sc">;</span> + 59 <span class="i">@SDFilesList</span> = <span class="i">ExpandFileNames</span><span class="s">(</span>\<span class="i">@ARGV</span><span class="cm">,</span> <span class="q">"sdf sd"</span><span class="s">)</span><span class="sc">;</span> + 60 + 61 <span class="c">#Make sure appropriate mode specific option values are specified...</span> + 62 <span class="k">print</span> <span class="q">"Processing options...\n"</span><span class="sc">;</span> + 63 <span class="k">my</span><span class="s">(</span><span class="i">%OptionsInfo</span><span class="s">)</span><span class="sc">;</span> + 64 <span class="i">ProcessOptions</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 65 + 66 <span class="c"># Collect information about SD files...</span> + 67 <span class="k">print</span> <span class="q">"Checking input SD file(s)...\n"</span><span class="sc">;</span> + 68 <span class="k">my</span><span class="s">(</span><span class="i">%SDFilesInfo</span><span class="s">)</span><span class="sc">;</span> + 69 <span class="i">RetrieveSDFilesInfo</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 70 <span class="i">SetupMultipleTablesAndMiscInfo</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 71 + 72 <span class="c"># Generate output files...</span> + 73 <span class="k">my</span><span class="s">(</span><span class="i">$FileIndex</span><span class="s">)</span><span class="sc">;</span> + 74 <span class="k">if</span> <span class="s">(</span><span class="i">@SDFilesList</span> > <span class="n">1</span><span class="s">)</span> <span class="s">{</span> + 75 <span class="k">print</span> <span class="q">"\nProcessing SD files...\n"</span><span class="sc">;</span> + 76 <span class="s">}</span> + 77 <span class="k">for</span> <span class="i">$FileIndex</span> <span class="s">(</span><span class="n">0</span> .. <span class="i">$#SDFilesList</span><span class="s">)</span> <span class="s">{</span> + 78 <span class="k">if</span> <span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">FileOkay</span>}[<span class="i">$FileIndex</span>]<span class="s">)</span> <span class="s">{</span> + 79 <span class="k">print</span> <span class="q">"\nProcessing file $SDFilesList[$FileIndex]...\n"</span><span class="sc">;</span> + 80 <span class="i">GenerateHTMLTable</span><span class="s">(</span><span class="i">$FileIndex</span><span class="s">)</span><span class="sc">;</span> + 81 <span class="s">}</span> + 82 <span class="s">}</span> + 83 <span class="k">print</span> <span class="q">"\n$ScriptName:Done...\n\n"</span><span class="sc">;</span> + 84 + 85 <span class="i">$EndTime</span> = <span class="w">new</span> <span class="w">Benchmark</span><span class="sc">;</span> + 86 <span class="i">$TotalTime</span> = <span class="w">timediff</span> <span class="s">(</span><span class="i">$EndTime</span><span class="cm">,</span> <span class="i">$StartTime</span><span class="s">)</span><span class="sc">;</span> + 87 <span class="k">print</span> <span class="q">"Total time: "</span><span class="cm">,</span> <span class="i">timestr</span><span class="s">(</span><span class="i">$TotalTime</span><span class="s">)</span><span class="cm">,</span> <span class="q">"\n"</span><span class="sc">;</span> + 88 + 89 <span class="c">###############################################################################</span> + 90 + 91 <span class="c"># Generate HTML table(s)...</span> +<a name="GenerateHTMLTable-"></a> 92 <span class="k">sub </span><span class="m">GenerateHTMLTable</span> <span class="s">{</span> + 93 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 94 + 95 <span class="k">if</span> <span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">MultipleHTMLTables</span>}[<span class="i">$Index</span>]<span class="s">)</span> <span class="s">{</span> + 96 <span class="i">GenerateMultipleHTMLTables</span><span class="s">(</span><span class="i">$Index</span><span class="s">)</span><span class="sc">;</span> + 97 <span class="s">}</span> + 98 <span class="k">else</span> <span class="s">{</span> + 99 <span class="i">GenerateOneHTMLTable</span><span class="s">(</span><span class="i">$Index</span><span class="s">)</span><span class="sc">;</span> + 100 <span class="s">}</span> + 101 <span class="s">}</span> + 102 + 103 <span class="c"># Generate one HTML table...</span> +<a name="GenerateOneHTMLTable-"></a> 104 <span class="k">sub </span><span class="m">GenerateOneHTMLTable</span> <span class="s">{</span> + 105 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 106 <span class="k">my</span><span class="s">(</span><span class="i">$SDFile</span><span class="cm">,</span> <span class="i">$TopHTMLDir</span><span class="cm">,</span> <span class="i">$HTMLFile</span><span class="cm">,</span> <span class="i">$StartCmpdNum</span><span class="cm">,</span> <span class="i">$EndCmpdNum</span><span class="cm">,</span> <span class="i">$CSSFile</span><span class="cm">,</span> <span class="i">$CSSRef</span><span class="cm">,</span> <span class="i">$CSSFilePath</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="s">)</span><span class="sc">;</span> + 107 + 108 <span class="i">$HTMLFile</span> = <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="q">".html"</span><span class="sc">;</span> + 109 <span class="i">$SDFile</span> = <span class="i">$SDFilesList</span>[<span class="i">$Index</span>]<span class="sc">;</span> + 110 + 111 <span class="c"># Setup data directories...</span> + 112 <span class="s">(</span><span class="i">$TopHTMLDir</span><span class="s">)</span> = <span class="i">SetupDataDirs</span><span class="s">(</span><span class="i">$Index</span><span class="s">)</span><span class="sc">;</span> + 113 + 114 <span class="c"># Setup stylesheet file...</span> + 115 <span class="i">$CSSRef</span> = <span class="q">""</span><span class="sc">;</span> + 116 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">stylesheet</span>} =~ <span class="q">/^new$/i</span><span class="s">)</span> <span class="s">{</span> + 117 <span class="i">$CSSFile</span> = <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="q">".css"</span><span class="sc">;</span> <span class="i">$CSSRef</span> = <span class="q">".\/"</span> . <span class="q">"$CSSFile"</span><span class="sc">;</span> + 118 <span class="i">$CSSFilePath</span> = <span class="q">"$TopHTMLDir"</span> . <span class="q">"\/"</span> . <span class="i">$CSSFile</span><span class="sc">;</span> + 119 <span class="i">GenerateStyleSheetFile</span><span class="s">(</span><span class="i">$CSSFilePath</span><span class="s">)</span><span class="sc">;</span> + 120 <span class="s">}</span> + 121 <span class="k">elsif</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">stylesheet</span>} =~ <span class="q">/^old$/i</span><span class="s">)</span> <span class="s">{</span> + 122 <span class="i">$CSSRef</span> = <span class="i">$Options</span>{<span class="w">stylesheetname</span>}<span class="sc">;</span> + 123 <span class="s">}</span> + 124 + 125 <span class="c"># Set HTML file location...</span> + 126 <span class="i">$HTMLFile</span> = <span class="q">"$TopHTMLDir"</span> . <span class="q">"\/"</span> . <span class="i">$HTMLFile</span><span class="sc">;</span> + 127 + 128 <span class="k">print</span> <span class="q">"Generating HTML file $HTMLFile...\n"</span><span class="sc">;</span> + 129 <span class="k">open</span> <span class="w">HTMLFILE</span><span class="cm">,</span> <span class="q">">$HTMLFile"</span> <span class="k">or</span> <span class="k">die</span> <span class="q">"Error: Can't open $HTMLFile: $! \n"</span><span class="sc">;</span> + 130 <span class="k">open</span> <span class="w">SDFILE</span><span class="cm">,</span> <span class="q">"$SDFile"</span> <span class="k">or</span> <span class="k">die</span> <span class="q">"Error: Can't open $SDFile: $! \n"</span><span class="sc">;</span> + 131 + 132 <span class="c"># Write out HTML page header...</span> + 133 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLPageHeader</span><span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">HTMLTitle</span>}[<span class="i">$Index</span>]<span class="cm">,</span> <span class="i">$CSSRef</span><span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">TopHTMLDirStrViewerJSFileRef</span>}<span class="s">)</span><span class="sc">;</span> + 134 + 135 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerJSFileRef</span>}<span class="s">)</span> <span class="s">{</span> + 136 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupStrViewerJSInitCmd</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">TopHTMLDirStrViewerCodeBase</span>}<span class="s">)</span><span class="sc">;</span> + 137 <span class="s">}</span> + 138 + 139 <span class="c"># Setup page title...</span> + 140 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">TitleDisplay</span>}<span class="s">)</span> <span class="s">{</span> + 141 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLPageTitle</span><span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">HTMLTitle</span>}[<span class="i">$Index</span>]<span class="s">)</span><span class="sc">;</span> + 142 <span class="s">}</span> + 143 <span class="k">else</span> <span class="s">{</span> + 144 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLEmptyLines</span><span class="s">(</span><span class="n">1</span><span class="s">)</span><span class="sc">;</span> + 145 <span class="s">}</span> + 146 + 147 <span class="c"># Start the table...</span> + 148 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLAlignmentBegin</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> + 149 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLTableHeader</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">TableBorder</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">TableCellPadding</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">TableCellSpacing</span>}<span class="s">)</span><span class="sc">;</span> + 150 + 151 <span class="c"># Generate table rows...</span> + 152 <span class="i">$StartCmpdNum</span> = <span class="n">1</span><span class="sc">;</span> + 153 <span class="i">$EndCmpdNum</span> = <span class="i">$SDFilesInfo</span>{<span class="w">CmpdCount</span>}[<span class="i">$Index</span>]<span class="sc">;</span> + 154 <span class="i">$TableNum</span> = <span class="n">1</span><span class="sc">;</span> + 155 <span class="i">GenerateTableRows</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$StartCmpdNum</span><span class="cm">,</span> <span class="i">$EndCmpdNum</span><span class="cm">,</span> \<span class="i">*SDFILE</span><span class="cm">,</span> \<span class="i">*HTMLFILE</span><span class="s">)</span><span class="sc">;</span> + 156 + 157 <span class="c"># Finish up the table...</span> + 158 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLTableEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 159 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLAlignmentEnd</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> + 160 + 161 <span class="c"># Write out HTML page end...</span> + 162 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLPageEnd</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">FooterMsg</span>}<span class="s">)</span><span class="sc">;</span> + 163 + 164 <span class="k">close</span> <span class="w">HTMLFILE</span><span class="sc">;</span> + 165 <span class="k">close</span> <span class="w">SDFILE</span><span class="sc">;</span> + 166 <span class="s">}</span> + 167 + 168 <span class="c"># Generate multiple tables...</span> +<a name="GenerateMultipleHTMLTables-"></a> 169 <span class="k">sub </span><span class="m">GenerateMultipleHTMLTables</span> <span class="s">{</span> + 170 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 171 <span class="k">my</span><span class="s">(</span><span class="i">$TopHTMLDir</span><span class="cm">,</span> <span class="i">$SubHTMLDir</span><span class="cm">,</span> <span class="i">$SDFile</span><span class="cm">,</span> <span class="i">$HTMLFile</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$TableCount</span><span class="cm">,</span> <span class="i">$TableIndex</span><span class="cm">,</span> <span class="i">$TableStartCmpdNum</span><span class="cm">,</span> <span class="i">$TableEndCmpdNum</span><span class="cm">,</span> <span class="i">$PrintMsg</span><span class="cm">,</span> <span class="i">$CSSFile</span><span class="cm">,</span> <span class="i">$CSSRef</span><span class="cm">,</span> <span class="i">$CSSFilePath</span><span class="cm">,</span> <span class="i">$NewStyleSheet</span><span class="cm">,</span> <span class="i">$StrViewerCodeBase</span><span class="cm">,</span> <span class="i">$StrViewerJSFileRef</span><span class="s">)</span><span class="sc">;</span> + 172 + 173 <span class="c"># Open SD file...</span> + 174 <span class="i">$SDFile</span> = <span class="i">$SDFilesList</span>[<span class="i">$Index</span>]<span class="sc">;</span> + 175 <span class="k">open</span> <span class="w">SDFILE</span><span class="cm">,</span> <span class="q">"$SDFile"</span> <span class="k">or</span> <span class="k">die</span> <span class="q">"Error: Can't open $SDFile: $! \n"</span><span class="sc">;</span> + 176 + 177 <span class="c"># Set up data directories to hold various html files...</span> + 178 <span class="s">(</span><span class="i">$TopHTMLDir</span><span class="cm">,</span> <span class="i">$SubHTMLDir</span><span class="s">)</span> = <span class="i">SetupDataDirs</span><span class="s">(</span><span class="i">$Index</span><span class="s">)</span><span class="sc">;</span> + 179 + 180 <span class="c"># Create stylesheet file...</span> + 181 <span class="i">$CSSRef</span> = <span class="q">""</span><span class="sc">;</span> + 182 <span class="i">$NewStyleSheet</span> = <span class="n">0</span><span class="sc">;</span> + 183 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">stylesheet</span>} =~ <span class="q">/^new$/i</span><span class="s">)</span> <span class="s">{</span> + 184 <span class="i">$NewStyleSheet</span> = <span class="n">1</span><span class="sc">;</span> + 185 <span class="i">$CSSFile</span> = <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="q">".css"</span><span class="sc">;</span> + 186 <span class="i">$CSSFilePath</span> = <span class="q">"$TopHTMLDir"</span> . <span class="q">"\/"</span> . <span class="i">$CSSFile</span><span class="sc">;</span> + 187 <span class="i">GenerateStyleSheetFile</span><span class="s">(</span><span class="i">$CSSFilePath</span><span class="s">)</span><span class="sc">;</span> + 188 <span class="s">}</span> + 189 <span class="k">elsif</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">stylesheet</span>} =~ <span class="q">/^old$/i</span><span class="s">)</span> <span class="s">{</span> + 190 <span class="i">$CSSRef</span> = <span class="i">$Options</span>{<span class="w">stylesheetname</span>}<span class="sc">;</span> + 191 <span class="s">}</span> + 192 + 193 <span class="i">$PrintMsg</span> = <span class="n">1</span><span class="sc">;</span> + 194 <span class="c"># Generate HTML files for all the tables...</span> + 195 <span class="i">$TableCount</span> = <span class="i">$SDFilesInfo</span>{<span class="w">TableCount</span>}[<span class="i">$Index</span>]<span class="sc">;</span> + 196 <span class="k">for</span> <span class="i">$TableNum</span> <span class="s">(</span><span class="n">1</span> .. <span class="i">$TableCount</span><span class="s">)</span> <span class="s">{</span> + 197 <span class="i">$TableIndex</span> = <span class="i">$TableNum</span> - <span class="n">1</span><span class="sc">;</span> + 198 <span class="i">$HTMLFile</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableHTMLFiles</span>}[<span class="i">$Index</span>]}[<span class="i">$TableIndex</span>]<span class="sc">;</span> + 199 <span class="i">$TableStartCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableStartCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$TableIndex</span>]<span class="sc">;</span> + 200 <span class="i">$TableEndCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$TableIndex</span>]<span class="sc">;</span> + 201 + 202 <span class="c"># Setup file name...</span> + 203 <span class="k">if</span> <span class="s">(</span><span class="i">$TableNum</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span> + 204 <span class="i">$HTMLFile</span> = <span class="q">"$TopHTMLDir"</span> . <span class="q">"\/"</span> . <span class="i">$HTMLFile</span><span class="sc">;</span> + 205 <span class="k">print</span> <span class="q">"Generating HTML file $HTMLFile...\n"</span><span class="sc">;</span> + 206 <span class="s">}</span> + 207 <span class="k">else</span> <span class="s">{</span> + 208 <span class="i">$HTMLFile</span> = <span class="q">"$SubHTMLDir"</span> . <span class="q">"\/"</span> . <span class="i">$HTMLFile</span><span class="sc">;</span> + 209 <span class="k">if</span> <span class="s">(</span><span class="i">$PrintMsg</span><span class="s">)</span> <span class="s">{</span> + 210 <span class="i">$PrintMsg</span> = <span class="n">0</span><span class="sc">;</span> + 211 <span class="k">if</span> <span class="s">(</span><span class="i">$TableCount</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span> + 212 <span class="k">print</span> <span class="q">"Generating HTML file $HTMLFile...\n"</span><span class="sc">;</span> + 213 <span class="s">}</span> + 214 <span class="k">else</span> <span class="s">{</span> + 215 <span class="k">print</span> <span class="q">"Generating "</span><span class="cm">,</span> <span class="s">(</span><span class="i">$TableCount</span> - <span class="n">1</span><span class="s">)</span><span class="cm">,</span> <span class="q">" other HTML files: $SubHTMLDir\/$SDFilesInfo{HTMLRoot}[$Index]\*.html...\n"</span><span class="sc">;</span> + 216 <span class="s">}</span> + 217 <span class="s">}</span> + 218 <span class="s">}</span> + 219 <span class="c"># Setup stylesheet reference...</span> + 220 <span class="k">if</span> <span class="s">(</span><span class="i">$NewStyleSheet</span><span class="s">)</span> <span class="s">{</span> + 221 <span class="i">$CSSRef</span> = <span class="s">(</span><span class="i">$TableNum</span> == <span class="n">1</span><span class="s">)</span> ? <span class="q">".\/"</span> <span class="co">:</span> <span class="q">"..\/"</span><span class="sc">;</span> + 222 <span class="i">$CSSRef</span> .= <span class="i">$CSSFile</span><span class="sc">;</span> + 223 <span class="s">}</span> + 224 + 225 <span class="k">open</span> <span class="w">HTMLFILE</span><span class="cm">,</span> <span class="q">">$HTMLFile"</span> <span class="k">or</span> <span class="k">die</span> <span class="q">"Error: Can't open $HTMLFile: $! \n"</span><span class="sc">;</span> + 226 <span class="c"># Write out HTML page header...</span> + 227 <span class="i">$StrViewerJSFileRef</span> = <span class="s">(</span><span class="i">$TableNum</span> == <span class="n">1</span><span class="s">)</span> ? <span class="i">$OptionsInfo</span>{<span class="w">TopHTMLDirStrViewerJSFileRef</span>} <span class="co">:</span> <span class="i">$OptionsInfo</span>{<span class="w">SubHTMLDirStrViewerJSFileRef</span>}<span class="sc">;</span> + 228 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLPageHeader</span><span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">HTMLTitle</span>}[<span class="i">$Index</span>]<span class="cm">,</span> <span class="i">$CSSRef</span><span class="cm">,</span> <span class="i">$StrViewerJSFileRef</span><span class="s">)</span><span class="sc">;</span> + 229 + 230 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerJSFileRef</span>}<span class="s">)</span> <span class="s">{</span> + 231 <span class="i">$StrViewerCodeBase</span> = <span class="s">(</span><span class="i">$TableNum</span> == <span class="n">1</span><span class="s">)</span> ? <span class="i">$OptionsInfo</span>{<span class="w">TopHTMLDirStrViewerCodeBase</span>} <span class="co">:</span> <span class="i">$OptionsInfo</span>{<span class="w">SubHTMLDirStrViewerCodeBase</span>}<span class="sc">;</span> + 232 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupStrViewerJSInitCmd</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>}<span class="cm">,</span> <span class="i">$StrViewerCodeBase</span><span class="s">)</span><span class="sc">;</span> + 233 <span class="s">}</span> + 234 + 235 <span class="c"># Set up the navigation links for this table...</span> + 236 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">NavLinksAtTop</span>}<span class="s">)</span> <span class="s">{</span> + 237 <span class="i">WriteNavigationLinks</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> \<span class="i">*HTMLFILE</span><span class="s">)</span><span class="sc">;</span> + 238 <span class="s">}</span> + 239 <span class="c"># Setup page title...</span> + 240 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">TitleDisplay</span>}<span class="s">)</span> <span class="s">{</span> + 241 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLPageTitle</span><span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">HTMLTitle</span>}[<span class="i">$Index</span>]<span class="s">)</span><span class="sc">;</span> + 242 <span class="s">}</span> + 243 <span class="k">else</span> <span class="s">{</span> + 244 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLEmptyLines</span><span class="s">(</span><span class="n">1</span><span class="s">)</span><span class="sc">;</span> + 245 <span class="s">}</span> + 246 + 247 <span class="c"># Start the table...</span> + 248 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLAlignmentBegin</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> + 249 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLTableHeader</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">TableBorder</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">TableCellPadding</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">TableCellSpacing</span>}<span class="s">)</span><span class="sc">;</span> + 250 + 251 <span class="c"># Generate table content...</span> + 252 <span class="i">GenerateTableRows</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$TableStartCmpdNum</span><span class="cm">,</span> <span class="i">$TableEndCmpdNum</span><span class="cm">,</span> \<span class="i">*SDFILE</span><span class="cm">,</span> \<span class="i">*HTMLFILE</span><span class="s">)</span><span class="sc">;</span> + 253 + 254 <span class="c"># Finish up the table...</span> + 255 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLTableEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 256 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLAlignmentEnd</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> + 257 + 258 <span class="c"># Set up the navigation links for this table...</span> + 259 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">NavLinksAtBottom</span>}<span class="s">)</span> <span class="s">{</span> + 260 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLEmptyLines</span><span class="s">(</span><span class="n">1</span><span class="s">)</span><span class="sc">;</span> + 261 <span class="i">WriteNavigationLinks</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> \<span class="i">*HTMLFILE</span><span class="s">)</span><span class="sc">;</span> + 262 <span class="s">}</span> + 263 + 264 <span class="c"># Write out HTML page end...</span> + 265 <span class="k">print</span> <span class="i">HTMLFILE</span> <span class="i">SetupHTMLPageEnd</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">FooterMsg</span>}<span class="s">)</span><span class="sc">;</span> + 266 <span class="k">close</span> <span class="w">HTMLFILE</span><span class="sc">;</span> + 267 <span class="s">}</span> + 268 <span class="k">close</span> <span class="w">SDFILE</span><span class="sc">;</span> + 269 + 270 <span class="s">}</span> + 271 + 272 <span class="c"># Generate table content...</span> +<a name="GenerateTableRows-"></a> 273 <span class="k">sub </span><span class="m">GenerateTableRows</span> <span class="s">{</span> + 274 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$StartCmpdNum</span><span class="cm">,</span> <span class="i">$EndCmpdNum</span><span class="cm">,</span> <span class="i">$SDFileRef</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 275 + 276 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StructuresOnlyMode</span>}<span class="s">)</span> <span class="s">{</span> + 277 <span class="i">WriteRowStructures</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$StartCmpdNum</span><span class="cm">,</span> <span class="i">$EndCmpdNum</span><span class="cm">,</span> <span class="i">$SDFileRef</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> + 278 <span class="s">}</span> + 279 <span class="k">else</span> <span class="s">{</span> + 280 <span class="i">WriteColLabels</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$SDFileRef</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> + 281 <span class="i">WriteRowValues</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$StartCmpdNum</span><span class="cm">,</span> <span class="i">$EndCmpdNum</span><span class="cm">,</span> <span class="i">$SDFileRef</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> + 282 <span class="s">}</span> + 283 <span class="s">}</span> + 284 + 285 <span class="c"># Create stylesheet file...</span> +<a name="GenerateStyleSheetFile-"></a> 286 <span class="k">sub </span><span class="m">GenerateStyleSheetFile</span> <span class="s">{</span> + 287 <span class="k">my</span><span class="s">(</span><span class="i">$CSSFile</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 288 <span class="k">print</span> <span class="q">"Generating stylesheet file $CSSFile...\n"</span><span class="sc">;</span> + 289 <span class="k">open</span> <span class="w">CSSFILE</span><span class="cm">,</span> <span class="q">">$CSSFile"</span> <span class="k">or</span> <span class="k">die</span> <span class="q">"Error: Can't open $CSSFile: $! \n"</span><span class="sc">;</span> + 290 <span class="k">print</span> <span class="i">CSSFILE</span> <span class="i">SetupHTMLStyleSheetTags</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 291 <span class="k">close</span> <span class="w">CSSFILE</span><span class="sc">;</span> + 292 <span class="s">}</span> + 293 + 294 <span class="c"># Write out table header using column labels...</span> +<a name="WriteColLabels-"></a> 295 <span class="k">sub </span><span class="m">WriteColLabels</span> <span class="s">{</span> + 296 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$SDFileRef</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 297 + 298 <span class="k">my</span><span class="s">(</span><span class="i">@ColLabels</span><span class="cm">,</span> <span class="i">$Label</span><span class="s">)</span><span class="sc">;</span> + 299 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">TableRowHeaderTags</span>}<span class="sc">;</span> + 300 + 301 <span class="c"># Write out structure label...</span> + 302 <span class="i">$Label</span> = <span class="q">"Structure"</span><span class="sc">;</span> + 303 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowHeaderValue</span><span class="s">(</span><span class="i">$Label</span><span class="s">)</span><span class="sc">;</span> + 304 + 305 <span class="c"># Write out field values..</span> + 306 <span class="i">@ColLabels</span> = <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">SpecifiedDataFieldLabels</span>}[<span class="i">$Index</span>]}<span class="sc">;</span> + 307 <span class="k">for</span> <span class="i">$Label</span> <span class="s">(</span><span class="i">@ColLabels</span><span class="s">)</span> <span class="s">{</span> + 308 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowHeaderValue</span><span class="s">(</span><span class="i">$Label</span><span class="s">)</span><span class="sc">;</span> + 309 <span class="s">}</span> + 310 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 311 <span class="s">}</span> + 312 + 313 <span class="c"># Write out the rows value...</span> +<a name="WriteRowValues-"></a> 314 <span class="k">sub </span><span class="m">WriteRowValues</span> <span class="s">{</span> + 315 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$StartCmpdNum</span><span class="cm">,</span> <span class="i">$EndCmpdNum</span><span class="cm">,</span> <span class="i">$SDFileRef</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 316 <span class="k">my</span><span class="s">(</span><span class="i">$BackgroundColor</span><span class="cm">,</span> <span class="i">$FontColor</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">@CmpdLines</span><span class="cm">,</span> <span class="i">$Label</span><span class="cm">,</span> <span class="i">%DataFieldValues</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 317 + 318 <span class="i">$RowNum</span> = <span class="n">0</span><span class="sc">;</span> + 319 <span class="k">for</span> <span class="i">$CmpdNum</span> <span class="s">(</span><span class="i">$StartCmpdNum</span> .. <span class="i">$EndCmpdNum</span><span class="s">)</span> <span class="s">{</span> + 320 <span class="i">$RowNum</span>++<span class="sc">;</span> + 321 <span class="i">$CmpdString</span> = <span class="i">ReadCmpdString</span><span class="s">(</span><span class="i">$SDFileRef</span><span class="s">)</span><span class="sc">;</span> + 322 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">ShadeRowsStatus</span>}<span class="s">)</span> <span class="s">{</span> + 323 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="s">(</span><span class="i">$RowNum</span> % <span class="n">2</span><span class="s">)</span> ? <span class="i">$SDFilesInfo</span>{<span class="w">BgFilledOddRowHeaderTags</span>} <span class="co">:</span> <span class="i">$SDFilesInfo</span>{<span class="w">BgFilledEvenRowHeaderTags</span>}<span class="sc">;</span> + 324 <span class="s">}</span> + 325 <span class="k">else</span> <span class="s">{</span> + 326 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowHeaderTags</span>}<span class="sc">;</span> + 327 <span class="s">}</span> + 328 <span class="i">@CmpdLines</span> = <span class="k">split</span> <span class="q">"\n"</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="sc">;</span> + 329 <span class="i">%DataFieldValues</span> = <span class="i">GetCmpdDataHeaderLabelsAndValues</span><span class="s">(</span>\<span class="i">@CmpdLines</span><span class="s">)</span><span class="sc">;</span> + 330 + 331 <span class="c"># Setup structure column...</span> + 332 <span class="i">SetupStructureColumn</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> + 333 <span class="c"># Write out field values..</span> + 334 <span class="k">for</span> <span class="i">$Label</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">SpecifiedDataFieldLabels</span>}[<span class="i">$Index</span>]}<span class="s">)</span> <span class="s">{</span> + 335 <span class="i">$Value</span> = <span class="s">(</span><span class="i">IsNotEmpty</span><span class="s">(</span><span class="i">$DataFieldValues</span>{<span class="i">$Label</span>}<span class="s">)</span><span class="s">)</span> ? <span class="i">$DataFieldValues</span>{<span class="i">$Label</span>} <span class="co">:</span> <span class="q">""</span><span class="sc">;</span> + 336 <span class="i">$BackgroundColor</span> = <span class="q">""</span><span class="sc">;</span> <span class="i">$FontColor</span> = <span class="q">""</span><span class="sc">;</span> + 337 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">HighlightStatus</span>}<span class="s">)</span> <span class="s">{</span> + 338 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldLabelsMap</span>}{<span class="i">$Label</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> + 339 <span class="s">(</span><span class="i">$BackgroundColor</span><span class="cm">,</span> <span class="i">$FontColor</span><span class="s">)</span> = <span class="i">GetValueHighlightColors</span><span class="s">(</span><span class="i">$Label</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 340 <span class="s">}</span> + 341 <span class="s">}</span> + 342 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="i">$BackgroundColor</span><span class="cm">,</span> <span class="i">$FontColor</span><span class="s">)</span><span class="sc">;</span> + 343 <span class="s">}</span> + 344 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 345 <span class="s">}</span> + 346 <span class="s">}</span> + 347 + 348 <span class="c"># Write only structures...</span> +<a name="WriteRowStructures-"></a> 349 <span class="k">sub </span><span class="m">WriteRowStructures</span> <span class="s">{</span> + 350 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$StartCmpdNum</span><span class="cm">,</span> <span class="i">$EndCmpdNum</span><span class="cm">,</span> <span class="i">$SDFileRef</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 351 <span class="k">my</span><span class="s">(</span><span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$StartRowFlag</span><span class="cm">,</span> <span class="i">$ColNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$RowBgColor</span><span class="cm">,</span> <span class="i">$RowStartTags</span><span class="cm">,</span> <span class="i">$ColumnHeaderTags</span><span class="cm">,</span> <span class="i">$ColumnEndTags</span><span class="cm">,</span> <span class="i">$CmpdDataFieldValue</span><span class="cm">,</span> <span class="i">$CmpdHTMLFileRef</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 352 + 353 <span class="i">$StartRowFlag</span> = <span class="n">1</span><span class="sc">;</span> <span class="i">$ColNum</span> = <span class="n">0</span><span class="sc">;</span> <span class="i">$RowNum</span> = <span class="n">0</span><span class="sc">;</span> + 354 <span class="i">$ColumnHeaderTags</span> = <span class="i">SetupHTMLTableColumnHeader</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 355 <span class="i">$ColumnEndTags</span> = <span class="i">SetupHTMLTableColumnEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 356 + 357 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StructuresOnlyMode</span>} && !<span class="i">$OptionsInfo</span>{<span class="w">TableBorder</span>} && <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">OddRowsShadeColor</span>} =~ <span class="q">/^(#ffffff|white)$/i</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> + 358 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowHeader</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">RowHAlignment</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowColor</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">RowVAlignment</span>}<span class="s">)</span><span class="sc">;</span> + 359 <span class="i">$Value</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">""</span><span class="s">)</span><span class="sc">;</span> + 360 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">InsertHTMLTags</span><span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="q">"colspan"</span><span class="cm">,</span> <span class="q">"$OptionsInfo{StrTableCols}"</span><span class="s">)</span><span class="sc">;</span> + 361 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 362 <span class="s">}</span> + 363 + 364 <span class="k">for</span> <span class="i">$CmpdNum</span> <span class="s">(</span><span class="i">$StartCmpdNum</span> .. <span class="i">$EndCmpdNum</span><span class="s">)</span> <span class="s">{</span> + 365 <span class="i">$CmpdString</span> = <span class="i">ReadCmpdString</span><span class="s">(</span><span class="i">$SDFileRef</span><span class="s">)</span><span class="sc">;</span> + 366 <span class="k">if</span> <span class="s">(</span><span class="i">$StartRowFlag</span><span class="s">)</span> <span class="s">{</span> + 367 <span class="i">$StartRowFlag</span> = <span class="n">0</span><span class="sc">;</span> + 368 <span class="i">$RowNum</span>++<span class="sc">;</span> + 369 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">ShadeRowsStatus</span>}<span class="s">)</span> <span class="s">{</span> + 370 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="s">(</span><span class="i">$RowNum</span> % <span class="n">2</span><span class="s">)</span> ? <span class="i">$SDFilesInfo</span>{<span class="w">BgFilledOddRowHeaderTags</span>} <span class="co">:</span> <span class="i">$SDFilesInfo</span>{<span class="w">BgFilledEvenRowHeaderTags</span>}<span class="sc">;</span> + 371 <span class="s">}</span> + 372 <span class="k">else</span> <span class="s">{</span> + 373 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowHeaderTags</span>}<span class="sc">;</span> + 374 <span class="s">}</span> + 375 <span class="s">}</span> + 376 <span class="i">$ColNum</span>++<span class="sc">;</span> + 377 + 378 <span class="i">$CmpdDataFieldValue</span> = <span class="q">""</span><span class="sc">;</span> + 379 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">CmpdDataField</span>}<span class="s">)</span> <span class="s">{</span> + 380 <span class="k">my</span><span class="s">(</span><span class="i">$CmpdDataField</span><span class="cm">,</span> <span class="i">@CmpdLines</span><span class="cm">,</span> <span class="i">%DataFieldValues</span><span class="s">)</span><span class="sc">;</span> + 381 <span class="i">$CmpdDataField</span> = <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataField</span>}<span class="sc">;</span> + 382 <span class="i">@CmpdLines</span> = <span class="k">split</span> <span class="q">"\n"</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="sc">;</span> + 383 <span class="i">%DataFieldValues</span> = <span class="i">GetCmpdDataHeaderLabelsAndValues</span><span class="s">(</span>\<span class="i">@CmpdLines</span><span class="s">)</span><span class="sc">;</span> + 384 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$DataFieldValues</span>{<span class="i">$CmpdDataField</span>}<span class="s">)</span> && <span class="k">length</span><span class="s">(</span><span class="i">$DataFieldValues</span>{<span class="i">$CmpdDataField</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> + 385 <span class="i">$CmpdDataFieldValue</span> = <span class="i">$DataFieldValues</span>{<span class="i">$CmpdDataField</span>}<span class="sc">;</span> + 386 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldLabel</span>} =~ <span class="q">/^yes$/i</span><span class="s">)</span> <span class="s">{</span> + 387 <span class="i">$CmpdDataFieldValue</span> = <span class="q">"${CmpdDataField}: ${CmpdDataFieldValue}"</span><span class="sc">;</span> + 388 <span class="s">}</span> + 389 <span class="c"># Make sure it's not to looong...</span> + 390 <span class="k">if</span> <span class="s">(</span><span class="k">length</span><span class="s">(</span><span class="i">$CmpdDataFieldValue</span><span class="s">)</span> > <span class="n">30</span><span class="s">)</span> <span class="s">{</span> + 391 <span class="i">$CmpdDataFieldValue</span> = <span class="k">substr</span><span class="s">(</span><span class="i">$CmpdDataFieldValue</span><span class="cm">,</span> <span class="n">0</span><span class="cm">,</span> <span class="n">30</span><span class="s">)</span> . <span class="q">"..."</span><span class="sc">;</span> + 392 <span class="s">}</span> + 393 <span class="s">}</span> + 394 <span class="s">}</span> + 395 <span class="k">if</span> <span class="s">(</span><span class="i">$CmpdDataFieldValue</span><span class="s">)</span> <span class="s">{</span> + 396 <span class="i">$RowBgColor</span> = <span class="q">""</span><span class="sc">;</span> + 397 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">ShadeRowsStatus</span>}<span class="s">)</span> <span class="s">{</span> + 398 <span class="i">$RowBgColor</span> = <span class="s">(</span><span class="i">$RowNum</span> % <span class="n">2</span><span class="s">)</span> ? <span class="i">$OptionsInfo</span>{<span class="w">OddRowsShadeColor</span>} <span class="co">:</span> <span class="i">$OptionsInfo</span>{<span class="w">EvenRowsShadeColor</span>}<span class="sc">;</span> + 399 <span class="s">}</span> + 400 <span class="i">$RowStartTags</span> = <span class="i">SetupHTMLTableRowHeader</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldAlignment</span>}<span class="cm">,</span> <span class="i">$RowBgColor</span><span class="cm">,</span> <span class="q">"middle"</span><span class="s">)</span><span class="sc">;</span> + 401 <span class="c"># Start a new table in current column...</span> + 402 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$ColumnHeaderTags</span><span class="sc">;</span> + 403 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLAlignmentBegin</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> + 404 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableHeader</span><span class="s">(</span><span class="n">0</span><span class="cm">,</span> <span class="n">0</span><span class="cm">,</span> <span class="n">0</span><span class="s">)</span><span class="sc">;</span> + 405 + 406 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldPosition</span>} =~ <span class="q">/^top$/i</span> <span class="s">)</span> <span class="s">{</span> + 407 <span class="c"># Add an empty row...</span> + 408 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$RowStartTags</span><span class="sc">;</span> + 409 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">""</span><span class="s">)</span><span class="sc">;</span> + 410 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 411 + 412 <span class="c"># Display the label value...</span> + 413 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$RowStartTags</span><span class="sc">;</span> + 414 <span class="i">$CmpdHTMLFileRef</span> = <span class="i">SetupCompoundSummaryFileAndLink</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="s">)</span><span class="sc">;</span> + 415 <span class="i">$Value</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"$CmpdDataFieldValue"</span><span class="cm">,</span> <span class="i">$CmpdHTMLFileRef</span><span class="cm">,</span> <span class="q">"Compound Summary"</span><span class="s">)</span><span class="sc">;</span> + 416 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 417 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 418 <span class="s">}</span> + 419 <span class="c"># Display the structure...</span> + 420 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowHeader</span><span class="s">(</span><span class="q">"center"</span><span class="cm">,</span> <span class="i">$RowBgColor</span><span class="cm">,</span> <span class="q">"middle"</span><span class="s">)</span><span class="sc">;</span> + 421 <span class="i">SetupStructureDisplay</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> + 422 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 423 + 424 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldPosition</span>} =~ <span class="q">/^bottom$/i</span> <span class="s">)</span> <span class="s">{</span> + 425 <span class="c"># Display the label value...</span> + 426 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$RowStartTags</span><span class="sc">;</span> + 427 <span class="i">$CmpdHTMLFileRef</span> = <span class="i">SetupCompoundSummaryFileAndLink</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="s">)</span><span class="sc">;</span> + 428 <span class="i">$Value</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"$CmpdDataFieldValue"</span><span class="cm">,</span> <span class="i">$CmpdHTMLFileRef</span><span class="cm">,</span> <span class="q">"Compound Summary"</span><span class="s">)</span><span class="sc">;</span> + 429 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 430 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 431 + 432 <span class="c"># Add an empty row...</span> + 433 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$RowStartTags</span><span class="sc">;</span> + 434 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">""</span><span class="s">)</span><span class="sc">;</span> + 435 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 436 <span class="s">}</span> + 437 + 438 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 439 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLAlignmentEnd</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> + 440 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$ColumnEndTags</span><span class="sc">;</span> + 441 <span class="s">}</span> + 442 <span class="k">else</span> <span class="s">{</span> + 443 <span class="i">SetupStructureDisplay</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> + 444 <span class="s">}</span> + 445 + 446 <span class="k">if</span> <span class="s">(</span><span class="i">$ColNum</span> == <span class="i">$OptionsInfo</span>{<span class="w">StrTableCols</span>}<span class="s">)</span> <span class="s">{</span> + 447 <span class="c"># Finish up the current row and get ready for starting a new row...</span> + 448 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 449 <span class="i">$ColNum</span> = <span class="n">0</span><span class="sc">;</span> + 450 <span class="i">$StartRowFlag</span> = <span class="n">1</span><span class="sc">;</span> + 451 <span class="s">}</span> + 452 <span class="s">}</span> + 453 <span class="k">if</span> <span class="s">(</span>!<span class="i">$StartRowFlag</span><span class="s">)</span> <span class="s">{</span> + 454 <span class="c"># Finish up an existing row...</span> + 455 <span class="k">my</span><span class="s">(</span><span class="i">$ColIndex</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 456 <span class="i">$Value</span> = <span class="q">""</span><span class="sc">;</span> + 457 <span class="k">for</span> <span class="i">$ColIndex</span> <span class="s">(</span><span class="i">$ColNum</span> .. <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrTableCols</span>} - <span class="n">1</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span> + 458 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 459 <span class="s">}</span> + 460 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 461 <span class="s">}</span> + 462 <span class="s">}</span> + 463 + 464 <span class="c"># Setup structure column...</span> +<a name="SetupStructureColumn-"></a> 465 <span class="k">sub </span><span class="m">SetupStructureColumn</span> <span class="s">{</span> + 466 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 467 + 468 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">DisplayStructure</span>}<span class="s">)</span> <span class="s">{</span> + 469 <span class="i">SetupStructureDisplay</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> + 470 <span class="s">}</span> + 471 <span class="k">else</span> <span class="s">{</span> + 472 <span class="i">SetupStructureLink</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> + 473 <span class="s">}</span> + 474 <span class="s">}</span> + 475 + 476 <span class="c"># Setup structure display for compound summary page...</span> +<a name="SetupStructureDisplayForCmpdSummaryPage-"></a> 477 <span class="k">sub </span><span class="m">SetupStructureDisplayForCmpdSummaryPage</span> <span class="s">{</span> + 478 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 479 <span class="k">my</span><span class="s">(</span><span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="s">)</span><span class="sc">;</span> + 480 + 481 <span class="c"># Use table num 0 to force usage of "../mol" prefix for all MOL file references. Row num</span> + 482 <span class="c"># doesn't matter...</span> + 483 <span class="i">$TableNum</span> = <span class="n">0</span><span class="sc">;</span> + 484 <span class="i">$RowNum</span> = <span class="n">1</span><span class="sc">;</span> + 485 + 486 <span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>} = <span class="n">1</span><span class="sc">;</span> + 487 + 488 <span class="c"># Setup size and bgcolor parameters for linking structures...</span> + 489 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">width</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrLinkWidth</span>}<span class="sc">;</span> + 490 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">height</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrLinkHeight</span>}<span class="sc">;</span> + 491 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrLinkBgColorSpecified</span>}<span class="sc">;</span> + 492 + 493 <span class="i">SetupStructureDisplay</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> + 494 + 495 <span class="c"># Reset size and bgcolor parameters back to displaying structures in tables...</span> + 496 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">width</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrWidth</span>}<span class="sc">;</span> + 497 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">height</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrHeight</span>}<span class="sc">;</span> + 498 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>} ? <span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>} <span class="co">:</span> <span class="q">""</span><span class="sc">;</span> + 499 + 500 <span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>} = <span class="n">0</span><span class="sc">;</span> + 501 <span class="s">}</span> + 502 + 503 + 504 <span class="c"># Setup structure column display...</span> +<a name="SetupStructureDisplay-"></a> 505 <span class="k">sub </span><span class="m">SetupStructureDisplay</span> <span class="s">{</span> + 506 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 507 <span class="k">my</span><span class="s">(</span><span class="i">$Nothing</span><span class="s">)</span><span class="sc">;</span> + 508 + 509 <span class="j">STRVIEWERTYPE:</span> <span class="s">{</span> + 510 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^JME$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">SetupJMEDisplay</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">STRVIEWERTYPE</span><span class="sc">;</span> <span class="s">}</span> + 511 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^Jmol$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">SetupJmolDisplay</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">STRVIEWERTYPE</span><span class="sc">;</span> <span class="s">}</span> + 512 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^Chime$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">SetupChimeDisplay</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">STRVIEWERTYPE</span><span class="sc">;</span> <span class="s">}</span> + 513 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^(Chem3DActiveX|ChemDrawActiveX|ChemDrawPlugIn)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">SetupCambridgeSoftDisplay</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>}<span class="cm">,</span> <span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">STRVIEWERTYPE</span><span class="sc">;</span> <span class="s">}</span> + 514 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^MarvinView$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">SetupMarvinDisplay</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">STRVIEWERTYPE</span><span class="sc">;</span> <span class="s">}</span> + 515 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^ViewerActiveX$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">SetupViewerAccelrysActiveXDisplay</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">STRVIEWERTYPE</span><span class="sc">;</span> <span class="s">}</span> + 516 <span class="i">$Nothing</span> = <span class="n">1</span><span class="sc">;</span> + 517 <span class="s">}</span> + 518 <span class="s">}</span> + 519 + 520 <span class="c"># Setup JME display...</span> +<a name="SetupJMEDisplay-"></a> 521 <span class="k">sub </span><span class="m">SetupJMEDisplay</span> <span class="s">{</span> + 522 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 523 <span class="k">my</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$AppletBGColor</span><span class="cm">,</span> <span class="i">$Value</span><span class="cm">,</span> <span class="i">$ValueTag</span><span class="cm">,</span> <span class="i">$AppletName</span><span class="cm">,</span> <span class="i">$StrViewerCodeBase</span><span class="s">)</span><span class="sc">;</span> + 524 + 525 <span class="i">$Value</span> = <span class="q">""</span><span class="sc">;</span> + 526 <span class="s">(</span><span class="i">$MolString</span><span class="s">)</span> = <span class="k">split</span> <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="sc">;</span> + 527 <span class="k">if</span> <span class="s">(</span><span class="i">IsNotEmpty</span><span class="s">(</span><span class="i">$MolString</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> + 528 <span class="i">$AppletBGColor</span> = <span class="i">SetupStructureBGColor</span><span class="s">(</span><span class="i">$RowNum</span><span class="s">)</span><span class="sc">;</span> + 529 <span class="i">$MolString</span> .= <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="sc">;</span> + 530 + 531 <span class="c"># JME viewer doesn't appear to support "bgcolor" param. So, always use white background for</span> + 532 <span class="c"># structure cell...</span> + 533 <span class="i">$AppletName</span> = <span class="q">"JME"</span> . <span class="i">$CmpdNum</span><span class="sc">;</span> + 534 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">name</span>} = <span class="i">$AppletName</span><span class="sc">;</span> + 535 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 536 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>}<span class="s">)</span> <span class="s">{</span> + 537 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>} = <span class="i">$AppletBGColor</span><span class="sc">;</span> + 538 <span class="s">}</span> + 539 <span class="s">}</span> + 540 <span class="i">$StrViewerCodeBase</span> = <span class="s">(</span><span class="i">$TableNum</span> == <span class="n">1</span><span class="s">)</span> ? <span class="i">$OptionsInfo</span>{<span class="w">TopHTMLDirStrViewerCodeBase</span>} <span class="co">:</span> <span class="i">$OptionsInfo</span>{<span class="w">SubHTMLDirStrViewerCodeBase</span>}<span class="sc">;</span> + 541 <span class="i">$Value</span> = <span class="i">SetupStrViewerJMEApplet</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$StrViewerCodeBase</span><span class="cm">,</span> \<span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}}<span class="s">)</span><span class="sc">;</span> + 542 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="i">$SDFilesInfo</span>{<span class="w">White</span>}<span class="s">)</span><span class="sc">;</span> + 543 <span class="s">}</span> + 544 <span class="k">else</span> <span class="s">{</span> + 545 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 546 <span class="s">}</span> + 547 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 548 <span class="i">$ValueTag</span> = <span class="i">InsertHTMLTags</span><span class="s">(</span><span class="i">$ValueTag</span><span class="cm">,</span> <span class="s">(</span><span class="q">"class"</span><span class="cm">,</span> <span class="q">"box"</span><span class="s">)</span><span class="s">)</span><span class="sc">;</span> + 549 <span class="s">}</span> + 550 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$ValueTag</span><span class="sc">;</span> + 551 <span class="s">}</span> + 552 + 553 <span class="c"># Setup Marvin display...</span> +<a name="SetupMarvinDisplay-"></a> 554 <span class="k">sub </span><span class="m">SetupMarvinDisplay</span> <span class="s">{</span> + 555 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 556 <span class="k">my</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$AppletBGColor</span><span class="cm">,</span> <span class="i">$Value</span><span class="cm">,</span> <span class="i">$ValueTag</span><span class="cm">,</span> <span class="i">$AppletName</span><span class="cm">,</span> <span class="i">$StrViewerCodeBase</span><span class="s">)</span><span class="sc">;</span> + 557 + 558 <span class="i">$Value</span> = <span class="q">""</span><span class="sc">;</span> + 559 <span class="s">(</span><span class="i">$MolString</span><span class="s">)</span> = <span class="k">split</span> <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="sc">;</span> + 560 <span class="k">if</span> <span class="s">(</span><span class="i">IsNotEmpty</span><span class="s">(</span><span class="i">$MolString</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> + 561 <span class="i">$AppletBGColor</span> = <span class="i">SetupStructureBGColor</span><span class="s">(</span><span class="i">$RowNum</span><span class="s">)</span><span class="sc">;</span> + 562 <span class="i">$MolString</span> .= <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="sc">;</span> + 563 + 564 <span class="i">$AppletName</span> = <span class="q">"MView"</span> . <span class="i">$CmpdNum</span><span class="sc">;</span> + 565 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">name</span>} = <span class="i">$AppletName</span><span class="sc">;</span> + 566 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 567 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>}<span class="s">)</span> <span class="s">{</span> + 568 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>} = <span class="i">$AppletBGColor</span><span class="sc">;</span> + 569 <span class="s">}</span> + 570 <span class="s">}</span> + 571 <span class="i">$StrViewerCodeBase</span> = <span class="s">(</span><span class="i">$TableNum</span> == <span class="n">1</span><span class="s">)</span> ? <span class="i">$OptionsInfo</span>{<span class="w">TopHTMLDirStrViewerCodeBase</span>} <span class="co">:</span> <span class="i">$OptionsInfo</span>{<span class="w">SubHTMLDirStrViewerCodeBase</span>}<span class="sc">;</span> + 572 <span class="i">$Value</span> = <span class="i">SetupStrViewerMarvinViewApplet</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$StrViewerCodeBase</span><span class="cm">,</span> \<span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}}<span class="s">)</span><span class="sc">;</span> + 573 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 574 <span class="s">}</span> + 575 <span class="k">else</span> <span class="s">{</span> + 576 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 577 <span class="s">}</span> + 578 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 579 <span class="i">$ValueTag</span> = <span class="i">InsertHTMLTags</span><span class="s">(</span><span class="i">$ValueTag</span><span class="cm">,</span> <span class="s">(</span><span class="q">"class"</span><span class="cm">,</span> <span class="q">"box"</span><span class="s">)</span><span class="s">)</span><span class="sc">;</span> + 580 <span class="s">}</span> + 581 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$ValueTag</span><span class="sc">;</span> + 582 <span class="s">}</span> + 583 + 584 <span class="c"># Setup Jmol display...</span> +<a name="SetupJmolDisplay-"></a> 585 <span class="k">sub </span><span class="m">SetupJmolDisplay</span> <span class="s">{</span> + 586 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 587 <span class="k">my</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$AppletBGColor</span><span class="cm">,</span> <span class="i">$Value</span><span class="cm">,</span> <span class="i">$ValueTag</span><span class="cm">,</span> <span class="i">$AppletName</span><span class="cm">,</span> <span class="i">$StrViewerCodeBase</span><span class="s">)</span><span class="sc">;</span> + 588 + 589 <span class="i">$Value</span> = <span class="q">""</span><span class="sc">;</span> <span class="i">$ValueTag</span> = <span class="q">""</span><span class="sc">;</span> + 590 <span class="s">(</span><span class="i">$MolString</span><span class="s">)</span> = <span class="k">split</span> <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="sc">;</span> + 591 <span class="k">if</span> <span class="s">(</span><span class="i">IsNotEmpty</span><span class="s">(</span><span class="i">$MolString</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> + 592 <span class="i">$AppletBGColor</span> = <span class="i">SetupStructureBGColor</span><span class="s">(</span><span class="i">$RowNum</span><span class="s">)</span><span class="sc">;</span> + 593 <span class="i">$MolString</span> .= <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="sc">;</span> + 594 + 595 <span class="c"># Make sure MolName line is not empty; otherwise, JMol doesn't display structure...</span> + 596 <span class="k">my</span><span class="s">(</span><span class="i">@MolLines</span><span class="s">)</span> = <span class="k">split</span> <span class="q">"\n"</span><span class="cm">,</span> <span class="i">$MolString</span><span class="sc">;</span> + 597 <span class="k">if</span> <span class="s">(</span><span class="i">IsEmpty</span><span class="s">(</span><span class="i">$MolLines</span>[<span class="n">0</span>]<span class="s">)</span><span class="s">)</span> <span class="s">{</span> + 598 <span class="i">$MolLines</span>[<span class="n">0</span>] = <span class="q">"Cmpd${CmpdNum}"</span><span class="sc">;</span> + 599 <span class="i">$MolString</span> = <span class="k">join</span> <span class="q">"\n"</span><span class="cm">,</span> <span class="i">@MolLines</span><span class="sc">;</span> + 600 <span class="s">}</span> + 601 + 602 <span class="c"># Setup the applet...</span> + 603 <span class="i">$AppletName</span> = <span class="q">"Jmol"</span> . <span class="i">$CmpdNum</span><span class="sc">;</span> + 604 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">name</span>} = <span class="i">$AppletName</span><span class="sc">;</span> + 605 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 606 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>}<span class="s">)</span> <span class="s">{</span> + 607 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>} = <span class="i">$AppletBGColor</span><span class="sc">;</span> + 608 <span class="s">}</span> + 609 <span class="s">}</span> + 610 <span class="i">$StrViewerCodeBase</span> = <span class="s">(</span><span class="i">$TableNum</span> == <span class="n">1</span><span class="s">)</span> ? <span class="i">$OptionsInfo</span>{<span class="w">TopHTMLDirStrViewerCodeBase</span>} <span class="co">:</span> <span class="i">$OptionsInfo</span>{<span class="w">SubHTMLDirStrViewerCodeBase</span>}<span class="sc">;</span> + 611 <span class="i">$Value</span> = <span class="i">SetupStrViewerJmolApplet</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$StrViewerCodeBase</span><span class="cm">,</span> \<span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}}<span class="s">)</span><span class="sc">;</span> + 612 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 613 <span class="s">}</span> + 614 <span class="k">else</span> <span class="s">{</span> + 615 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 616 <span class="s">}</span> + 617 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 618 <span class="i">$ValueTag</span> = <span class="i">InsertHTMLTags</span><span class="s">(</span><span class="i">$ValueTag</span><span class="cm">,</span> <span class="s">(</span><span class="q">"class"</span><span class="cm">,</span> <span class="q">"box"</span><span class="s">)</span><span class="s">)</span><span class="sc">;</span> + 619 <span class="s">}</span> + 620 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$ValueTag</span><span class="sc">;</span> + 621 <span class="s">}</span> + 622 + 623 <span class="c"># Setup Chime display...</span> +<a name="SetupChimeDisplay-"></a> 624 <span class="k">sub </span><span class="m">SetupChimeDisplay</span> <span class="s">{</span> + 625 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 626 <span class="k">my</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$BGColor</span><span class="cm">,</span> <span class="i">$Value</span><span class="cm">,</span> <span class="i">$ValueTag</span><span class="cm">,</span> <span class="i">$MolFileRef</span><span class="s">)</span><span class="sc">;</span> + 627 + 628 <span class="i">$Value</span> = <span class="q">""</span><span class="sc">;</span> + 629 <span class="s">(</span><span class="i">$MolString</span><span class="s">)</span> = <span class="k">split</span> <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="sc">;</span> + 630 <span class="k">if</span> <span class="s">(</span><span class="i">IsNotEmpty</span><span class="s">(</span><span class="i">$MolString</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> + 631 <span class="i">$BGColor</span> = <span class="i">SetupStructureBGColor</span><span class="s">(</span><span class="i">$RowNum</span><span class="s">)</span><span class="sc">;</span> + 632 <span class="i">$MolString</span> .= <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="sc">;</span> + 633 <span class="c"># Write out MOL file...</span> + 634 <span class="i">$MolFileRef</span> = <span class="i">SetupMOLFile</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="s">)</span><span class="sc">;</span> + 635 <span class="c"># Setup the applet...</span> + 636 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 637 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>}<span class="s">)</span> <span class="s">{</span> + 638 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>} = <span class="i">$BGColor</span><span class="sc">;</span> + 639 <span class="s">}</span> + 640 <span class="s">}</span> + 641 <span class="i">$Value</span> = <span class="i">SetupStrViewerChimePlugIn</span><span class="s">(</span><span class="i">$MolFileRef</span><span class="cm">,</span> \<span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}}<span class="s">)</span><span class="sc">;</span> + 642 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 643 <span class="s">}</span> + 644 <span class="k">else</span> <span class="s">{</span> + 645 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 646 <span class="s">}</span> + 647 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 648 <span class="i">$ValueTag</span> = <span class="i">InsertHTMLTags</span><span class="s">(</span><span class="i">$ValueTag</span><span class="cm">,</span> <span class="s">(</span><span class="q">"class"</span><span class="cm">,</span> <span class="q">"box"</span><span class="s">)</span><span class="s">)</span><span class="sc">;</span> + 649 <span class="s">}</span> + 650 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$ValueTag</span><span class="sc">;</span> + 651 <span class="s">}</span> + 652 + 653 <span class="c"># Setup displays for various viewers available from CambridgeSoft...</span> +<a name="SetupCambridgeSoftDisplay-"></a> 654 <span class="k">sub </span><span class="m">SetupCambridgeSoftDisplay</span> <span class="s">{</span> + 655 <span class="k">my</span><span class="s">(</span><span class="i">$ViewerType</span><span class="cm">,</span> <span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 656 <span class="k">my</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$BGColor</span><span class="cm">,</span> <span class="i">$Value</span><span class="cm">,</span> <span class="i">$ValueTag</span><span class="cm">,</span> <span class="i">$MolFileRef</span><span class="cm">,</span> <span class="i">$Name</span><span class="s">)</span><span class="sc">;</span> + 657 + 658 <span class="i">$Value</span> = <span class="q">""</span><span class="sc">;</span> + 659 <span class="s">(</span><span class="i">$MolString</span><span class="s">)</span> = <span class="k">split</span> <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="sc">;</span> + 660 <span class="k">if</span> <span class="s">(</span><span class="i">IsNotEmpty</span><span class="s">(</span><span class="i">$MolString</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> + 661 <span class="i">$BGColor</span> = <span class="i">SetupStructureBGColor</span><span class="s">(</span><span class="i">$RowNum</span><span class="s">)</span><span class="sc">;</span> + 662 <span class="i">$MolString</span> .= <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="sc">;</span> + 663 <span class="c"># Write out MOL file...</span> + 664 <span class="i">$MolFileRef</span> = <span class="i">SetupMOLFile</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="s">)</span><span class="sc">;</span> + 665 <span class="c"># Setup the viewer...</span> + 666 <span class="i">$Name</span> = <span class="q">"CS"</span> . <span class="i">$CmpdNum</span><span class="sc">;</span> + 667 <span class="k">if</span> <span class="s">(</span><span class="i">$ViewerType</span> =~ <span class="q">/^Chem3DActiveX$/</span><span class="s">)</span> <span class="s">{</span> + 668 <span class="c"># Use white background for Chem3D and cell; otherwise, it doesn't look good:</span> + 669 <span class="c"># cell size is larger than Chem3D window size and different colors don't work</span> + 670 <span class="i">$BGColor</span> = <span class="i">$SDFilesInfo</span>{<span class="w">White</span>}<span class="sc">;</span> + 671 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">name</span>} = <span class="i">$Name</span><span class="sc">;</span> + 672 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 673 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>}<span class="s">)</span> <span class="s">{</span> + 674 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>} = <span class="i">$BGColor</span><span class="sc">;</span> + 675 <span class="s">}</span> + 676 <span class="s">}</span> + 677 <span class="i">$Value</span> = <span class="i">SetupStrViewerChem3DActiveX</span><span class="s">(</span><span class="i">$MolFileRef</span><span class="cm">,</span> \<span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}}<span class="s">)</span><span class="sc">;</span> + 678 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="i">$BGColor</span><span class="s">)</span><span class="sc">;</span> + 679 <span class="s">}</span> + 680 <span class="k">elsif</span> <span class="s">(</span><span class="i">$ViewerType</span> =~ <span class="q">/^ChemDrawActiveX$/i</span><span class="s">)</span> <span class="s">{</span> + 681 <span class="c"># BGColor is not supported. So, make it all white...</span> + 682 <span class="i">$BGColor</span> = <span class="i">$SDFilesInfo</span>{<span class="w">White</span>}<span class="sc">;</span> + 683 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">name</span>} = <span class="i">$Name</span><span class="sc">;</span> + 684 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 685 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>}<span class="s">)</span> <span class="s">{</span> + 686 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>} = <span class="i">$BGColor</span><span class="sc">;</span> + 687 <span class="s">}</span> + 688 <span class="s">}</span> + 689 <span class="i">$Value</span> = <span class="i">SetupStrViewerChemDrawActiveX</span><span class="s">(</span><span class="i">$MolFileRef</span><span class="cm">,</span> \<span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}}<span class="s">)</span><span class="sc">;</span> + 690 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="i">$BGColor</span><span class="s">)</span><span class="sc">;</span> + 691 <span class="s">}</span> + 692 <span class="k">elsif</span> <span class="s">(</span><span class="i">$ViewerType</span> =~ <span class="q">/^ChemDrawPlugIn$/i</span><span class="s">)</span> <span class="s">{</span> + 693 <span class="c"># BGColor is not supported. So, make it all white...</span> + 694 <span class="i">$BGColor</span> = <span class="i">$SDFilesInfo</span>{<span class="w">White</span>}<span class="sc">;</span> + 695 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 696 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>}<span class="s">)</span> <span class="s">{</span> + 697 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>} = <span class="i">$BGColor</span><span class="sc">;</span> + 698 <span class="s">}</span> + 699 <span class="s">}</span> + 700 <span class="i">$Value</span> = <span class="i">SetupStrViewerChemDrawPlugIn</span><span class="s">(</span><span class="i">$MolFileRef</span><span class="cm">,</span> \<span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}}<span class="s">)</span><span class="sc">;</span> + 701 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="i">$BGColor</span><span class="s">)</span><span class="sc">;</span> + 702 <span class="s">}</span> + 703 <span class="s">}</span> + 704 <span class="k">else</span> <span class="s">{</span> + 705 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 706 <span class="s">}</span> + 707 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 708 <span class="i">$ValueTag</span> = <span class="i">InsertHTMLTags</span><span class="s">(</span><span class="i">$ValueTag</span><span class="cm">,</span> <span class="s">(</span><span class="q">"class"</span><span class="cm">,</span> <span class="q">"box"</span><span class="s">)</span><span class="s">)</span><span class="sc">;</span> + 709 <span class="s">}</span> + 710 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$ValueTag</span><span class="sc">;</span> + 711 <span class="s">}</span> + 712 + 713 <span class="c"># Setup Accelrys Viewer ActiveX display...</span> +<a name="SetupViewerAccelrysActiveXDisplay-"></a> 714 <span class="k">sub </span><span class="m">SetupViewerAccelrysActiveXDisplay</span> <span class="s">{</span> + 715 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 716 <span class="k">my</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$BGColor</span><span class="cm">,</span> <span class="i">$Value</span><span class="cm">,</span> <span class="i">$ValueTag</span><span class="cm">,</span> <span class="i">$Name</span><span class="cm">,</span> <span class="i">$MolFileRef</span><span class="s">)</span><span class="sc">;</span> + 717 + 718 <span class="i">$Value</span> = <span class="q">""</span><span class="sc">;</span> + 719 <span class="s">(</span><span class="i">$MolString</span><span class="s">)</span> = <span class="k">split</span> <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="sc">;</span> + 720 <span class="k">if</span> <span class="s">(</span><span class="i">IsNotEmpty</span><span class="s">(</span><span class="i">$MolString</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> + 721 <span class="i">$BGColor</span> = <span class="i">SetupStructureBGColor</span><span class="s">(</span><span class="i">$RowNum</span><span class="s">)</span><span class="sc">;</span> + 722 <span class="i">$MolString</span> .= <span class="q">"$SDFilesInfo{MolEndTag}"</span><span class="sc">;</span> + 723 <span class="c"># Write out MOL file. Accelrys ActiveX viewer doesn't load mol files with relative path names.</span> + 724 <span class="c"># So, set up a complete path name for now; however, it may lead to issues during web</span> + 725 <span class="c"># deployment.</span> + 726 <span class="k">my</span><span class="s">(</span><span class="i">$CompletePath</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span> + 727 <span class="i">$MolFileRef</span> = <span class="i">SetupMOLFile</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$CompletePath</span><span class="s">)</span><span class="sc">;</span> + 728 <span class="c"># Setup the viewer...</span> + 729 <span class="i">$Name</span> = <span class="q">"ViewerActiveX"</span> . <span class="i">$CmpdNum</span><span class="sc">;</span> + 730 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 731 <span class="k">if</span> <span class="s">(</span>!<span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>}<span class="s">)</span> <span class="s">{</span> + 732 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>} = <span class="i">$BGColor</span><span class="sc">;</span> + 733 <span class="s">}</span> + 734 <span class="s">}</span> + 735 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">name</span>} = <span class="i">$Name</span><span class="sc">;</span> + 736 <span class="i">$Value</span> = <span class="i">SetupStrViewerAccelrysActiveX</span><span class="s">(</span><span class="i">$MolFileRef</span><span class="cm">,</span> \<span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}}<span class="s">)</span><span class="sc">;</span> + 737 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 738 <span class="s">}</span> + 739 <span class="k">else</span> <span class="s">{</span> + 740 <span class="i">$ValueTag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 741 <span class="s">}</span> + 742 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>}<span class="s">)</span> <span class="s">{</span> + 743 <span class="i">$ValueTag</span> = <span class="i">InsertHTMLTags</span><span class="s">(</span><span class="i">$ValueTag</span><span class="cm">,</span> <span class="s">(</span><span class="q">"class"</span><span class="cm">,</span> <span class="q">"box"</span><span class="s">)</span><span class="s">)</span><span class="sc">;</span> + 744 <span class="s">}</span> + 745 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$ValueTag</span><span class="sc">;</span> + 746 <span class="s">}</span> + 747 + 748 + 749 <span class="c"># Setup structure background color...</span> +<a name="SetupStructureBGColor-"></a> 750 <span class="k">sub </span><span class="m">SetupStructureBGColor</span> <span class="s">{</span> + 751 <span class="k">my</span><span class="s">(</span><span class="i">$RowNum</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 752 <span class="k">my</span><span class="s">(</span><span class="i">$BGColor</span><span class="s">)</span><span class="sc">;</span> + 753 + 754 <span class="i">$BGColor</span> = <span class="q">""</span><span class="sc">;</span> + 755 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">ShadeRowsStatus</span>}<span class="s">)</span> <span class="s">{</span> + 756 <span class="i">$BGColor</span> = <span class="s">(</span><span class="i">$RowNum</span> % <span class="n">2</span><span class="s">)</span> ? <span class="i">$OptionsInfo</span>{<span class="w">OddRowsShadeColor</span>} <span class="co">:</span> <span class="i">$OptionsInfo</span>{<span class="w">EvenRowsShadeColor</span>}<span class="sc">;</span> + 757 <span class="s">}</span> + 758 <span class="k">else</span> <span class="s">{</span> + 759 <span class="i">$BGColor</span> = <span class="i">$SDFilesInfo</span>{<span class="w">White</span>}<span class="sc">;</span> + 760 <span class="s">}</span> + 761 <span class="k">return</span> <span class="i">$BGColor</span><span class="sc">;</span> + 762 <span class="s">}</span> + 763 + 764 <span class="c"># Setup MDL MOL file...</span> +<a name="SetupMOLFile-"></a> 765 <span class="k">sub </span><span class="m">SetupMOLFile</span> <span class="s">{</span> + 766 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$CompletePath</span><span class="s">)</span><span class="sc">;</span> + 767 <span class="k">my</span><span class="s">(</span><span class="i">$SubMolDir</span><span class="cm">,</span> <span class="i">$MolFileName</span><span class="cm">,</span> <span class="i">$MolFile</span><span class="cm">,</span> <span class="i">$MolFileRef</span><span class="s">)</span><span class="sc">;</span> + 768 + 769 <span class="i">$CompletePath</span> = <span class="q">""</span><span class="sc">;</span> + 770 <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">5</span><span class="s">)</span> <span class="s">{</span> + 771 <span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$CompletePath</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 772 <span class="s">}</span> + 773 <span class="k">else</span> <span class="s">{</span> + 774 <span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 775 <span class="s">}</span> + 776 + 777 <span class="i">$SubMolDir</span> = <span class="i">$SDFilesInfo</span>{<span class="w">SubMolDir</span>}[<span class="i">$Index</span>]<span class="sc">;</span> + 778 <span class="i">$MolFileName</span> = <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="q">"Cmpd"</span> . <span class="i">$CmpdNum</span> . <span class="q">".mol"</span><span class="sc">;</span> + 779 <span class="i">$MolFile</span> = <span class="i">$SubMolDir</span> . <span class="q">"\/"</span> . <span class="i">$MolFileName</span><span class="sc">;</span> + 780 + 781 <span class="k">open</span> <span class="w">MOLFILE</span><span class="cm">,</span> <span class="q">">$MolFile"</span> <span class="k">or</span> <span class="k">die</span> <span class="q">"Error: Can't open $MolFile: $! \n"</span><span class="sc">;</span> + 782 <span class="k">print</span> <span class="i">MOLFILE</span> <span class="q">"$MolString\n"</span><span class="sc">;</span> + 783 <span class="k">close</span> <span class="w">MOLFILE</span><span class="sc">;</span> + 784 + 785 <span class="k">if</span> <span class="s">(</span><span class="i">$CompletePath</span><span class="s">)</span> <span class="s">{</span> + 786 <span class="k">my</span><span class="s">(</span><span class="i">$CWD</span><span class="cm">,</span> <span class="i">$NewCWD</span><span class="s">)</span><span class="sc">;</span> + 787 <span class="i">$CWD</span> = <span class="i">cwd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 788 <span class="i">$NewCWD</span> = <span class="i">ConvertCygwinPath</span><span class="s">(</span><span class="i">$CWD</span><span class="s">)</span><span class="sc">;</span> + 789 <span class="i">$MolFileRef</span> = <span class="i">$NewCWD</span> . <span class="q">"\/"</span> . <span class="i">$SDFilesInfo</span>{<span class="w">TopHTMLDir</span>}[<span class="i">$Index</span>] . <span class="q">"\/mol\/$MolFileName"</span> <span class="sc">;</span> + 790 <span class="s">}</span> + 791 <span class="k">else</span> <span class="s">{</span> + 792 <span class="i">$MolFileRef</span> = <span class="s">(</span><span class="i">$TableNum</span> == <span class="n">1</span><span class="s">)</span> ? <span class="q">".\/mol\/$MolFileName"</span> <span class="co">:</span> <span class="q">"..\/mol\/$MolFileName"</span><span class="sc">;</span> + 793 <span class="s">}</span> + 794 + 795 <span class="k">return</span> <span class="i">$MolFileRef</span><span class="sc">;</span> + 796 <span class="s">}</span> + 797 + 798 <span class="c"># Setup a link to structure and other available information...</span> +<a name="SetupStructureLink-"></a> 799 <span class="k">sub </span><span class="m">SetupStructureLink</span> <span class="s">{</span> + 800 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$RowNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 801 <span class="k">my</span><span class="s">(</span><span class="i">$CmpdHTMLFileRef</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 802 + 803 <span class="i">$CmpdHTMLFileRef</span> = <span class="i">SetupCompoundSummaryFileAndLink</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="s">)</span><span class="sc">;</span> + 804 + 805 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strlinktype</span>} =~ <span class="q">/^button$/i</span><span class="s">)</span> <span class="s">{</span> + 806 <span class="i">$Value</span> = <span class="i">SetupHTMLButtonRef</span><span class="s">(</span><span class="q">"View"</span><span class="cm">,</span> <span class="i">$CmpdHTMLFileRef</span><span class="s">)</span><span class="sc">;</span> + 807 <span class="s">}</span> + 808 <span class="k">else</span> <span class="s">{</span> + 809 <span class="i">$Value</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"View"</span><span class="cm">,</span> <span class="i">$CmpdHTMLFileRef</span><span class="s">)</span><span class="sc">;</span> + 810 <span class="s">}</span> + 811 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 812 <span class="s">}</span> + 813 + 814 <span class="c"># Setup HTML compound summary file and link...</span> +<a name="SetupCompoundSummaryFileAndLink-"></a> 815 <span class="k">sub </span><span class="m">SetupCompoundSummaryFileAndLink</span> <span class="s">{</span> + 816 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 817 <span class="k">my</span><span class="s">(</span><span class="i">$CmpdHTMLFile</span><span class="cm">,</span> <span class="i">$CmpdHTMLFileName</span><span class="cm">,</span> <span class="i">$CmpdHTMLFileRef</span><span class="cm">,</span> <span class="i">$CSSRef</span><span class="cm">,</span> <span class="i">@CmpdLines</span><span class="cm">,</span> <span class="i">$Label</span><span class="cm">,</span> <span class="i">@DataFieldLabels</span><span class="cm">,</span> <span class="i">%DataFieldValues</span><span class="cm">,</span> <span class="i">$Value</span><span class="cm">,</span> <span class="i">$Tag</span><span class="s">)</span><span class="sc">;</span> + 818 + 819 <span class="c"># Setup compound file names...</span> + 820 <span class="i">$CmpdHTMLFileName</span> = <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="q">"Cmpd"</span> . <span class="i">$CmpdNum</span> . <span class="q">".html"</span><span class="sc">;</span> + 821 <span class="i">$CmpdHTMLFile</span> = <span class="i">$SDFilesInfo</span>{<span class="w">SubHTMLDir</span>}[<span class="i">$Index</span>] . <span class="q">"\/"</span> . <span class="i">$CmpdHTMLFileName</span><span class="sc">;</span> + 822 + 823 <span class="c"># Setup stylesheet reference....</span> + 824 <span class="i">$CSSRef</span> = <span class="q">""</span><span class="sc">;</span> + 825 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">stylesheet</span>} =~ <span class="q">/^old$/i</span><span class="s">)</span> <span class="s">{</span> + 826 <span class="i">$CSSRef</span> = <span class="i">$Options</span>{<span class="w">stylesheetname</span>}<span class="sc">;</span> + 827 <span class="s">}</span> + 828 <span class="k">else</span> <span class="s">{</span> + 829 <span class="i">$CSSRef</span> = <span class="q">"..\/"</span> . <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="q">".css"</span><span class="sc">;</span> + 830 <span class="s">}</span> + 831 + 832 <span class="c"># Write out compound data in a new HTML file. For summary page, usage of even and odd row shade color</span> + 833 <span class="c"># is reversed: it causes structure background to be white by default...</span> + 834 <span class="k">open</span> <span class="w">CMPDHTMLFILE</span><span class="cm">,</span> <span class="q">">$CmpdHTMLFile"</span> <span class="k">or</span> <span class="k">die</span> <span class="q">"Error: Can't open $CmpdHTMLFile: $! \n"</span><span class="sc">;</span> + 835 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLPageHeader</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrLinkTitle</span>}<span class="cm">,</span> <span class="i">$CSSRef</span><span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">SubHTMLDirStrViewerJSFileRef</span>}<span class="s">)</span><span class="sc">;</span> + 836 + 837 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerJSFileRef</span>}<span class="s">)</span> <span class="s">{</span> + 838 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupStrViewerJSInitCmd</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">SubHTMLDirStrViewerCodeBase</span>}<span class="s">)</span><span class="sc">;</span> + 839 <span class="s">}</span> + 840 + 841 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrLinkTitleDisplay</span>}<span class="s">)</span> <span class="s">{</span> + 842 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLPageTitle</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrLinkTitle</span>}<span class="cm">,</span> <span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> + 843 <span class="s">}</span> + 844 <span class="k">else</span> <span class="s">{</span> + 845 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLEmptyLines</span><span class="s">(</span><span class="n">1</span><span class="s">)</span><span class="sc">;</span> + 846 <span class="s">}</span> + 847 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLAlignmentBegin</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> + 848 + 849 <span class="c"># Setup structure display ...</span> + 850 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLTableHeader</span><span class="s">(</span><span class="n">0</span><span class="cm">,</span> <span class="n">5</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span> + 851 + 852 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLTableRowHeader</span><span class="s">(</span><span class="q">"center"</span><span class="cm">,</span> <span class="q">"#ffffff"</span><span class="cm">,</span> <span class="q">"middle"</span><span class="s">)</span><span class="sc">;</span> + 853 + 854 <span class="i">SetupStructureDisplayForCmpdSummaryPage</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> \<span class="i">*CMPDHTMLFILE</span><span class="s">)</span><span class="sc">;</span> + 855 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 856 + 857 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strlinkmode</span>} =~ <span class="q">/^plain$/i</span><span class="s">)</span> <span class="s">{</span> + 858 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLTableRowHeader</span><span class="s">(</span><span class="q">"center"</span><span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">StrLinkShadeColor</span>}<span class="s">)</span><span class="sc">;</span> + 859 <span class="i">$Tag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">""</span><span class="s">)</span><span class="sc">;</span> + 860 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">$Tag</span><span class="sc">;</span> + 861 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 862 <span class="s">}</span> + 863 + 864 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLTableRowHeader</span><span class="s">(</span><span class="q">"left"</span><span class="cm">,</span> <span class="q">""</span><span class="cm">,</span> <span class="q">"middle"</span><span class="s">)</span><span class="sc">;</span> + 865 <span class="c"># Start a new table with two columns, one each for data field labels and values, in</span> + 866 <span class="c"># current column...</span> + 867 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLTableColumnHeader</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 868 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLAlignmentBegin</span><span class="s">(</span><span class="q">"left"</span><span class="s">)</span><span class="sc">;</span> + 869 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLTableHeader</span><span class="s">(</span><span class="n">0</span><span class="cm">,</span> <span class="n">5</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span> + 870 + 871 <span class="c"># Setup table for other available data...</span> + 872 <span class="k">my</span><span class="s">(</span><span class="i">$CmpdRowHeaderTags</span><span class="s">)</span><span class="sc">;</span> + 873 <span class="i">$CmpdRowHeaderTags</span> = <span class="i">SetupHTMLTableRowHeader</span><span class="s">(</span><span class="q">"left"</span><span class="cm">,</span> <span class="q">""</span><span class="cm">,</span> <span class="q">"middle"</span><span class="s">)</span><span class="sc">;</span> + 874 + 875 <span class="i">@CmpdLines</span> = <span class="k">split</span> <span class="q">"\n"</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="sc">;</span> + 876 + 877 <span class="i">@DataFieldLabels</span> = <span class="i">GetCmpdDataHeaderLabels</span><span class="s">(</span>\<span class="i">@CmpdLines</span><span class="s">)</span><span class="sc">;</span> + 878 <span class="i">%DataFieldValues</span> = <span class="i">GetCmpdDataHeaderLabelsAndValues</span><span class="s">(</span>\<span class="i">@CmpdLines</span><span class="s">)</span><span class="sc">;</span> + 879 + 880 <span class="k">my</span><span class="s">(</span><span class="i">$LabelWrapLength</span><span class="cm">,</span> <span class="i">$ValueWrapLength</span><span class="cm">,</span> <span class="i">$LabelColWidth</span><span class="s">)</span><span class="sc">;</span> + 881 <span class="i">$LabelWrapLength</span> = <span class="n">30</span><span class="sc">;</span> <span class="i">$ValueWrapLength</span> = <span class="n">60</span><span class="sc">;</span> <span class="i">$LabelColWidth</span> = <span class="n">40</span><span class="sc">;</span> + 882 + 883 <span class="k">for</span> <span class="i">$Label</span> <span class="s">(</span><span class="i">@DataFieldLabels</span><span class="s">)</span> <span class="s">{</span> + 884 <span class="i">$Value</span> = <span class="i">$DataFieldValues</span>{<span class="i">$Label</span>}<span class="sc">;</span> + 885 <span class="i">$Label</span> .= <span class="q">":"</span><span class="sc">;</span> + 886 <span class="k">if</span> <span class="s">(</span><span class="i">$Label</span> && <span class="s">(</span><span class="k">length</span><span class="s">(</span><span class="i">$Label</span><span class="s">)</span> > <span class="i">$LabelWrapLength</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> + 887 <span class="i">$Label</span> = <span class="i">WrapText</span><span class="s">(</span><span class="i">$Label</span><span class="cm">,</span> <span class="i">$LabelWrapLength</span><span class="cm">,</span> <span class="q">"<br>"</span><span class="s">)</span><span class="sc">;</span> + 888 <span class="s">}</span> + 889 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">$CmpdRowHeaderTags</span><span class="sc">;</span> + 890 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strlinkmode</span>} =~ <span class="q">/^plain$/i</span><span class="s">)</span> <span class="s">{</span> + 891 <span class="i">$Tag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Label</span><span class="cm">,</span> <span class="q">""</span><span class="cm">,</span> <span class="q">""</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> + 892 <span class="s">}</span> + 893 <span class="k">else</span> <span class="s">{</span> + 894 <span class="i">$Tag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Label</span><span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">StrLinkShadeColor</span>}<span class="s">)</span><span class="sc">;</span> + 895 <span class="s">}</span> + 896 <span class="i">$Tag</span> = <span class="i">InsertHTMLTags</span><span class="s">(</span><span class="i">$Tag</span><span class="cm">,</span> <span class="q">"width"</span><span class="cm">,</span> <span class="q">"$LabelColWidth"</span><span class="s">)</span><span class="sc">;</span> + 897 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">$Tag</span><span class="sc">;</span> + 898 + 899 <span class="k">if</span> <span class="s">(</span><span class="i">$Value</span> && <span class="s">(</span><span class="k">length</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span> >=<span class="i">$ValueWrapLength</span><span class="s">)</span> && <span class="i">$Value</span> !~ <span class="q">/a href/i</span><span class="s">)</span> <span class="s">{</span> + 900 <span class="i">$Value</span> =~ <span class="q">s/(\r\n)|(\r)|\n//g</span><span class="sc">;</span> + 901 <span class="i">$Value</span> = <span class="i">WrapText</span><span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="i">$ValueWrapLength</span><span class="cm">,</span> <span class="q">"<br>"</span><span class="s">)</span><span class="sc">;</span> + 902 <span class="s">}</span> + 903 <span class="i">$Tag</span> = <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> + 904 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">$Tag</span><span class="sc">;</span> + 905 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 906 <span class="s">}</span> + 907 + 908 <span class="c"># Finish up table holding numerical data...</span> + 909 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLTableEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 910 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLAlignmentEnd</span><span class="s">(</span><span class="q">"left"</span><span class="s">)</span><span class="sc">;</span> + 911 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLTableColumnEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 912 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> + 913 + 914 <span class="c"># Finish up main table...</span> + 915 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLTableEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> + 916 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLAlignmentEnd</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> + 917 + 918 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrLinkNavigation</span>} && <span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">CmpdCount</span>}[<span class="i">$Index</span>] > <span class="n">1</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span> + 919 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLEmptyLines</span><span class="s">(</span><span class="n">1</span><span class="s">)</span><span class="sc">;</span> + 920 <span class="i">WriteCompoundSummaryNavigationLinks</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$CmpdNum</span><span class="cm">,</span> \<span class="i">*CMPDHTMLFILE</span><span class="s">)</span><span class="sc">;</span> + 921 <span class="s">}</span> + 922 + 923 <span class="k">print</span> <span class="i">CMPDHTMLFILE</span> <span class="i">SetupHTMLPageEnd</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">FooterMsg</span>}<span class="s">)</span><span class="sc">;</span> + 924 <span class="k">close</span> <span class="w">CMPDHTMLFILE</span><span class="sc">;</span> + 925 + 926 <span class="c"># Add a link to compound's HTML file in table cell...</span> + 927 <span class="i">$CmpdHTMLFileRef</span> = <span class="s">(</span><span class="i">$TableNum</span> == <span class="n">1</span><span class="s">)</span> ? <span class="q">".\/html\/"</span> <span class="co">:</span> <span class="q">".\/"</span><span class="sc">;</span> + 928 <span class="i">$CmpdHTMLFileRef</span> .= <span class="i">$CmpdHTMLFileName</span><span class="sc">;</span> + 929 + 930 <span class="k">return</span> <span class="i">$CmpdHTMLFileRef</span><span class="sc">;</span> + 931 <span class="s">}</span> + 932 + 933 <span class="c"># Write navigation link information for compound summary page...</span> +<a name="WriteCompoundSummaryNavigationLinks-"></a> 934 <span class="k">sub </span><span class="m">WriteCompoundSummaryNavigationLinks</span> <span class="s">{</span> + 935 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$CurTableNum</span><span class="cm">,</span> <span class="i">$CurCmpdNum</span><span class="cm">,</span> <span class="i">$CmpdHTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> + 936 <span class="k">my</span><span class="s">(</span><span class="i">$FirstTableNum</span><span class="cm">,</span> <span class="i">$CurTableIndex</span><span class="cm">,</span> <span class="i">$FirstCmpdNum</span><span class="cm">,</span> <span class="i">$LastCmpdNum</span><span class="cm">,</span> <span class="i">$PreviousCmpdNum</span><span class="cm">,</span> <span class="i">$NextCmpdNum</span><span class="cm">,</span> <span class="i">$HTMLFile</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="i">$HTMLRefValue</span><span class="s">)</span><span class="sc">;</span> + 937 + 938 <span class="i">$FirstTableNum</span> = <span class="n">1</span><span class="sc">;</span> + 939 <span class="i">$FirstCmpdNum</span> = <span class="n">1</span><span class="sc">;</span> + 940 + 941 <span class="i">$CurTableIndex</span> = <span class="i">$CurTableNum</span> - <span class="n">1</span><span class="sc">;</span> + 942 + 943 <span class="k">if</span> <span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">MultipleHTMLTables</span>}[<span class="i">$Index</span>]<span class="s">)</span> <span class="s">{</span> + 944 <span class="k">my</span><span class="s">(</span><span class="i">$FirstTableIndex</span><span class="cm">,</span> <span class="i">$LastTableNum</span><span class="cm">,</span> <span class="i">$LastTableIndex</span><span class="s">)</span><span class="sc">;</span> + 945 <span class="i">$FirstTableIndex</span> = <span class="i">$FirstTableNum</span> - <span class="n">1</span><span class="sc">;</span> + 946 <span class="i">$LastTableNum</span> = <span class="i">$SDFilesInfo</span>{<span class="w">TableCount</span>}[<span class="i">$Index</span>]<span class="sc">;</span> <span class="i">$LastTableIndex</span> = <span class="i">$LastTableNum</span> - <span class="n">1</span><span class="sc">;</span> + 947 <span class="i">$LastCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$LastTableIndex</span>]<span class="sc">;</span> + 948 <span class="s">}</span> + 949 <span class="k">else</span> <span class="s">{</span> + 950 <span class="i">$LastCmpdNum</span> = <span class="i">$SDFilesInfo</span>{<span class="w">CmpdCount</span>}[<span class="i">$Index</span>]<span class="sc">;</span> + 951 <span class="s">}</span> + 952 + 953 <span class="i">$PreviousCmpdNum</span> = <span class="s">(</span><span class="i">$CurCmpdNum</span> == <span class="i">$FirstCmpdNum</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="s">(</span><span class="i">$CurCmpdNum</span> - <span class="n">1</span><span class="s">)</span><span class="sc">;</span> + 954 <span class="i">$NextCmpdNum</span> = <span class="s">(</span><span class="i">$CurCmpdNum</span> == <span class="i">$LastCmpdNum</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="s">(</span><span class="i">$CurCmpdNum</span> + <span class="n">1</span><span class="s">)</span><span class="sc">;</span> + 955 + 956 <span class="k">my</span><span class="s">(</span><span class="i">$InactiveLinkNumColor</span><span class="cm">,</span> <span class="i">$InactiveLinkFontBold</span><span class="s">)</span> = <span class="s">(</span><span class="q">"#8e2323"</span><span class="cm">,</span> <span class="q">"1"</span><span class="s">)</span><span class="sc">;</span> + 957 <span class="k">my</span><span class="s">(</span><span class="i">$LinkTextColor</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$LinkFontBold</span><span class="s">)</span> = <span class="s">(</span><span class="q">""</span><span class="cm">,</span> <span class="q">""</span><span class="cm">,</span> <span class="q">"0"</span><span class="s">)</span><span class="sc">;</span> + 958 <span class="k">my</span><span class="s">(</span><span class="i">$BorderWidth</span><span class="cm">,</span> <span class="i">$CellPadding</span><span class="cm">,</span> <span class="i">$CellSpacing</span><span class="s">)</span> = <span class="s">(</span><span class="n">0</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span> + 959 + 960 <span class="c"># Start link table...</span> + 961 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLAlignmentBegin</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> + 962 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLDivBegin</span><span class="s">(</span><span class="q">"tablenav"</span><span class="s">)</span><span class="sc">;</span> + 963 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLTableHeader</span><span class="s">(</span><span class="i">$BorderWidth</span><span class="cm">,</span> <span class="i">$CellPadding</span><span class="cm">,</span> <span class="i">$CellSpacing</span><span class="s">)</span><span class="sc">;</span> + 964 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowHeaderTags</span>}<span class="sc">;</span> + 965 + 966 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"Compounds: "</span><span class="s">)</span><span class="sc">;</span> + 967 + 968 <span class="c"># Setup a link to first compound...</span> + 969 <span class="k">if</span> <span class="s">(</span><span class="i">$CurCmpdNum</span> != <span class="i">$FirstCmpdNum</span><span class="s">)</span> <span class="s">{</span> + 970 <span class="i">$HTMLFile</span> = <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="q">"Cmpd"</span> . <span class="i">$FirstCmpdNum</span> . <span class="q">".html"</span><span class="sc">;</span> + 971 <span class="i">$HTMLRefFile</span> = <span class="q">"./${HTMLFile}"</span><span class="sc">;</span> + 972 <span class="i">$HTMLRefValue</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"First"</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="q">"First Compound"</span><span class="s">)</span><span class="sc">;</span> + 973 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$HTMLRefValue</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$LinkTextColor</span><span class="cm">,</span> <span class="i">$LinkFontBold</span><span class="s">)</span><span class="sc">;</span> + 974 <span class="s">}</span> + 975 + 976 <span class="c"># Setup a link to previous compund</span> + 977 <span class="k">if</span> <span class="s">(</span><span class="i">$PreviousCmpdNum</span><span class="s">)</span> <span class="s">{</span> + 978 <span class="i">$HTMLFile</span> = <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="q">"Cmpd"</span> . <span class="i">$PreviousCmpdNum</span> . <span class="q">".html"</span><span class="sc">;</span> + 979 <span class="i">$HTMLRefFile</span> = <span class="q">"./${HTMLFile}"</span><span class="sc">;</span> + 980 <span class="i">$HTMLRefValue</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"Previous"</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="q">"Previous Compound"</span><span class="s">)</span><span class="sc">;</span> + 981 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$HTMLRefValue</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$LinkTextColor</span><span class="cm">,</span> <span class="i">$LinkFontBold</span><span class="s">)</span><span class="sc">;</span> + 982 <span class="s">}</span> + 983 + 984 <span class="c"># Setup a link to compound table...</span> + 985 <span class="k">if</span> <span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">MultipleHTMLTables</span>}[<span class="i">$Index</span>]<span class="s">)</span> <span class="s">{</span> + 986 <span class="i">$HTMLFile</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableHTMLFiles</span>}[<span class="i">$Index</span>]}[<span class="i">$CurTableIndex</span>]<span class="sc">;</span> + 987 <span class="s">}</span> + 988 <span class="k">else</span> <span class="s">{</span> + 989 <span class="i">$HTMLFile</span> = <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="q">".html"</span><span class="sc">;</span> + 990 <span class="s">}</span> + 991 <span class="i">$HTMLRefFile</span> = <span class="s">(</span><span class="s">(</span><span class="i">$CurTableNum</span> == <span class="i">$FirstTableNum</span><span class="s">)</span> ? <span class="q">"../"</span> <span class="co">:</span> <span class="q">"./"</span><span class="s">)</span> . <span class="i">$HTMLFile</span><span class="sc">;</span> + 992 <span class="i">$HTMLRefValue</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"Table"</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="q">"Table With This Compound"</span><span class="s">)</span><span class="sc">;</span> + 993 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$HTMLRefValue</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$LinkTextColor</span><span class="cm">,</span> <span class="i">$LinkFontBold</span><span class="s">)</span><span class="sc">;</span> + 994 + 995 <span class="c"># Setup a link to next compound...</span> + 996 <span class="k">if</span> <span class="s">(</span><span class="i">$NextCmpdNum</span><span class="s">)</span> <span class="s">{</span> + 997 <span class="i">$HTMLFile</span> = <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="q">"Cmpd"</span> . <span class="i">$NextCmpdNum</span> . <span class="q">".html"</span><span class="sc">;</span> + 998 <span class="i">$HTMLRefFile</span> = <span class="q">"./${HTMLFile}"</span><span class="sc">;</span> + 999 <span class="i">$HTMLRefValue</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"Next"</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="q">"Next Compound"</span><span class="s">)</span><span class="sc">;</span> +1000 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$HTMLRefValue</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$LinkTextColor</span><span class="cm">,</span> <span class="i">$LinkFontBold</span><span class="s">)</span><span class="sc">;</span> +1001 <span class="s">}</span> +1002 +1003 <span class="c"># Setup a link to last compund</span> +1004 <span class="k">if</span> <span class="s">(</span><span class="i">$CurCmpdNum</span> != <span class="i">$LastCmpdNum</span><span class="s">)</span> <span class="s">{</span> +1005 <span class="i">$HTMLFile</span> = <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="q">"Cmpd"</span> . <span class="i">$LastCmpdNum</span> . <span class="q">".html"</span><span class="sc">;</span> +1006 <span class="i">$HTMLRefFile</span> = <span class="q">"./${HTMLFile}"</span><span class="sc">;</span> +1007 <span class="i">$HTMLRefValue</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"Last"</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="q">"Last Compound"</span><span class="s">)</span><span class="sc">;</span> +1008 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$HTMLRefValue</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$LinkTextColor</span><span class="cm">,</span> <span class="i">$LinkFontBold</span><span class="s">)</span><span class="sc">;</span> +1009 <span class="s">}</span> +1010 +1011 <span class="c"># Setup current table info text....</span> +1012 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"&nbsp"</span><span class="s">)</span><span class="sc">;</span> +1013 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"&nbsp"</span><span class="s">)</span><span class="sc">;</span> +1014 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"Showing $CurCmpdNum of $LastCmpdNum"</span><span class="s">)</span><span class="sc">;</span> +1015 +1016 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> +1017 +1018 <span class="c"># End link table...</span> +1019 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLTableEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1020 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLDivEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1021 <span class="k">print</span> <span class="i">$CmpdHTMLFileRef</span> <span class="i">SetupHTMLAlignmentEnd</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> +1022 <span class="s">}</span> +1023 +1024 <span class="c"># Setup navigation link information for each table.</span> +1025 <span class="c">#</span> +1026 <span class="c"># All table sets besides first and last have these links: FirstTable, Previous, Current-1,Current,Current+1, Next, and LastTable</span> +1027 <span class="c"># First set: Current, Next, and LastTable</span> +1028 <span class="c"># Last set: FirstTable, Previous and Current.</span> +1029 <span class="c">#</span> +<a name="WriteNavigationLinks-"></a>1030 <span class="k">sub </span><span class="m">WriteNavigationLinks</span> <span class="s">{</span> +1031 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$CurTableNum</span><span class="cm">,</span> <span class="i">$HTMLFileRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> +1032 <span class="k">my</span><span class="s">(</span><span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$StartTableNum</span><span class="cm">,</span> <span class="i">$EndTableNum</span><span class="cm">,</span> <span class="i">$TableIndex</span><span class="cm">,</span> <span class="i">$BorderWidth</span><span class="cm">,</span> <span class="i">$CellPadding</span><span class="cm">,</span> <span class="i">$CellSpacing</span><span class="cm">,</span><span class="i">$HTMLFile</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="i">$RelativeFileDir</span><span class="cm">,</span> <span class="i">$HTMLRefValue</span><span class="cm">,</span> <span class="i">$FirstTableNum</span><span class="cm">,</span> <span class="i">$FirstTableIndex</span><span class="cm">,</span> <span class="i">$LastTableNum</span><span class="cm">,</span> <span class="i">$LastTableIndex</span><span class="cm">,</span> <span class="i">$TableStartCmpdNum</span><span class="cm">,</span> <span class="i">$TableEndCmpdNum</span><span class="cm">,</span> <span class="i">$LastCmpdNum</span><span class="cm">,</span> <span class="i">$BGColor</span><span class="cm">,</span> <span class="i">$LinksOffSet</span><span class="s">)</span><span class="sc">;</span> +1033 +1034 <span class="i">$LinksOffSet</span> = <span class="n">10</span><span class="sc">;</span> +1035 +1036 <span class="i">$FirstTableNum</span> = <span class="n">1</span><span class="sc">;</span> <span class="i">$FirstTableIndex</span> = <span class="i">$FirstTableNum</span> - <span class="n">1</span><span class="sc">;</span> +1037 <span class="i">$LastTableNum</span> = <span class="i">$SDFilesInfo</span>{<span class="w">TableCount</span>}[<span class="i">$Index</span>]<span class="sc">;</span> <span class="i">$LastTableIndex</span> = <span class="i">$LastTableNum</span> - <span class="n">1</span><span class="sc">;</span> +1038 <span class="i">$LastCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$LastTableIndex</span>]<span class="sc">;</span> +1039 +1040 <span class="c"># Figure out which links to display for a particular table...</span> +1041 <span class="i">$StartTableNum</span> = <span class="i">$CurTableNum</span> - <span class="i">$LinksOffSet</span> + <span class="n">1</span><span class="sc">;</span> +1042 <span class="i">$StartTableNum</span> = <span class="s">(</span><span class="i">$StartTableNum</span> < <span class="i">$FirstTableNum</span><span class="s">)</span> ? <span class="i">$FirstTableNum</span> <span class="co">:</span> <span class="i">$StartTableNum</span><span class="sc">;</span> +1043 <span class="k">if</span> <span class="s">(</span><span class="i">$CurTableNum</span> < <span class="i">$LinksOffSet</span><span class="s">)</span> <span class="s">{</span> +1044 <span class="i">$EndTableNum</span> = <span class="i">$LinksOffSet</span><span class="sc">;</span> +1045 <span class="s">}</span> +1046 <span class="k">else</span> <span class="s">{</span> +1047 <span class="i">$EndTableNum</span> = <span class="i">$CurTableNum</span> + <span class="i">$LinksOffSet</span> - <span class="n">1</span><span class="sc">;</span> +1048 <span class="s">}</span> +1049 <span class="i">$EndTableNum</span> = <span class="s">(</span><span class="i">$EndTableNum</span> > <span class="i">$LastTableNum</span><span class="s">)</span> ? <span class="i">$LastTableNum</span> <span class="co">:</span> <span class="i">$EndTableNum</span><span class="sc">;</span> +1050 +1051 <span class="k">my</span><span class="s">(</span><span class="i">$InactiveLinkNumColor</span><span class="cm">,</span> <span class="i">$InactiveLinkFontBold</span><span class="s">)</span> = <span class="s">(</span><span class="q">"#8e2323"</span><span class="cm">,</span> <span class="q">"1"</span><span class="s">)</span><span class="sc">;</span> +1052 <span class="k">my</span><span class="s">(</span><span class="i">$LinkTextColor</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$LinkFontBold</span><span class="s">)</span> = <span class="s">(</span><span class="q">""</span><span class="cm">,</span> <span class="q">""</span><span class="cm">,</span> <span class="q">"1"</span><span class="s">)</span><span class="sc">;</span> +1053 +1054 <span class="c"># Start link table...</span> +1055 <span class="i">$BorderWidth</span> = <span class="n">0</span><span class="sc">;</span> <span class="i">$CellPadding</span> = <span class="n">2</span><span class="sc">;</span> <span class="i">$CellSpacing</span> = <span class="n">2</span><span class="sc">;</span> +1056 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLAlignmentBegin</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> +1057 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLDivBegin</span><span class="s">(</span><span class="q">"tablenav"</span><span class="s">)</span><span class="sc">;</span> +1058 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableHeader</span><span class="s">(</span><span class="i">$BorderWidth</span><span class="cm">,</span> <span class="i">$CellPadding</span><span class="cm">,</span> <span class="i">$CellSpacing</span><span class="s">)</span><span class="sc">;</span> +1059 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowHeaderTags</span>}<span class="sc">;</span> +1060 +1061 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">NavLinksTableInfo</span>} && <span class="i">$OptionsInfo</span>{<span class="w">NavLinksCmpdInfo</span>}<span class="s">)</span> <span class="s">{</span> +1062 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"Showing table $CurTableNum of $LastTableNum"</span><span class="s">)</span><span class="sc">;</span> +1063 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"&nbsp"</span><span class="s">)</span><span class="sc">;</span> +1064 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"&nbsp"</span><span class="s">)</span><span class="sc">;</span> +1065 <span class="s">}</span> +1066 +1067 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"Tables: "</span><span class="s">)</span><span class="sc">;</span> +1068 <span class="c"># Setup a link to first table...</span> +1069 <span class="k">if</span> <span class="s">(</span><span class="i">$StartTableNum</span> != <span class="i">$FirstTableNum</span><span class="s">)</span> <span class="s">{</span> +1070 <span class="i">$HTMLFile</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableHTMLFiles</span>}[<span class="i">$Index</span>]}[<span class="i">$FirstTableIndex</span>]<span class="sc">;</span> +1071 <span class="i">$HTMLRefFile</span> = <span class="i">GetRelativeFileDir</span><span class="s">(</span><span class="i">$CurTableNum</span><span class="cm">,</span> <span class="i">$FirstTableNum</span><span class="cm">,</span> <span class="i">$FirstTableNum</span><span class="s">)</span> . <span class="i">$HTMLFile</span><span class="sc">;</span> +1072 <span class="i">$TableStartCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableStartCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$FirstTableIndex</span>]<span class="sc">;</span> +1073 <span class="i">$TableEndCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$FirstTableIndex</span>]<span class="sc">;</span> +1074 <span class="i">$HTMLRefValue</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"First"</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="q">"First Table Containing Compounds $TableStartCmpdNum To $TableEndCmpdNum"</span><span class="s">)</span><span class="sc">;</span> +1075 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$HTMLRefValue</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$LinkTextColor</span><span class="cm">,</span> <span class="i">$LinkFontBold</span><span class="s">)</span><span class="sc">;</span> +1076 <span class="s">}</span> +1077 +1078 <span class="c"># Setup link to previous table...</span> +1079 <span class="k">if</span> <span class="s">(</span><span class="i">$CurTableNum</span> != <span class="i">$FirstTableNum</span><span class="s">)</span> <span class="s">{</span> +1080 <span class="k">my</span><span class="s">(</span><span class="i">$PreviousTableNum</span><span class="cm">,</span> <span class="i">$PreviousTableIndex</span><span class="s">)</span><span class="sc">;</span> +1081 <span class="i">$PreviousTableNum</span> = <span class="i">$CurTableNum</span> - <span class="n">1</span><span class="sc">;</span> <span class="i">$PreviousTableIndex</span> = <span class="i">$PreviousTableNum</span> - <span class="n">1</span><span class="sc">;</span> +1082 <span class="i">$HTMLFile</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableHTMLFiles</span>}[<span class="i">$Index</span>]}[<span class="i">$PreviousTableIndex</span>]<span class="sc">;</span> +1083 <span class="i">$HTMLRefFile</span> = <span class="i">GetRelativeFileDir</span><span class="s">(</span><span class="i">$CurTableNum</span><span class="cm">,</span> <span class="i">$PreviousTableNum</span><span class="cm">,</span> <span class="i">$FirstTableNum</span><span class="s">)</span> . <span class="i">$HTMLFile</span><span class="sc">;</span> +1084 <span class="i">$TableStartCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableStartCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$PreviousTableIndex</span>]<span class="sc">;</span> +1085 <span class="i">$TableEndCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$PreviousTableIndex</span>]<span class="sc">;</span> +1086 <span class="i">$HTMLRefValue</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"Previous"</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="q">"Previous Table Containing Compounds $TableStartCmpdNum To $TableEndCmpdNum"</span><span class="s">)</span><span class="sc">;</span> +1087 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$HTMLRefValue</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$LinkTextColor</span><span class="cm">,</span> <span class="i">$LinkFontBold</span><span class="s">)</span><span class="sc">;</span> +1088 <span class="s">}</span> +1089 +1090 <span class="k">for</span> <span class="i">$TableNum</span> <span class="s">(</span><span class="i">$StartTableNum</span> .. <span class="i">$EndTableNum</span><span class="s">)</span> <span class="s">{</span> +1091 <span class="i">$TableIndex</span> = <span class="i">$TableNum</span> - <span class="n">1</span><span class="sc">;</span> +1092 <span class="i">$HTMLFile</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableHTMLFiles</span>}[<span class="i">$Index</span>]}[<span class="i">$TableIndex</span>]<span class="sc">;</span> +1093 <span class="k">if</span> <span class="s">(</span><span class="i">$TableNum</span> == <span class="i">$CurTableNum</span><span class="s">)</span> <span class="s">{</span> +1094 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$InactiveLinkNumColor</span><span class="cm">,</span> <span class="i">$InactiveLinkFontBold</span><span class="s">)</span><span class="sc">;</span> +1095 <span class="s">}</span> +1096 <span class="k">else</span> <span class="s">{</span> +1097 <span class="c"># Setup the link...</span> +1098 <span class="k">my</span><span class="s">(</span><span class="i">$RefTitle</span><span class="s">)</span><span class="sc">;</span> +1099 <span class="i">$TableStartCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableStartCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$TableIndex</span>]<span class="sc">;</span> +1100 <span class="i">$TableEndCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$TableIndex</span>]<span class="sc">;</span> +1101 <span class="i">$RefTitle</span> = <span class="i">AddNumberSuffix</span><span class="s">(</span><span class="i">$TableNum</span><span class="s">)</span> . <span class="q">" Table Containing Compounds $TableStartCmpdNum To $TableEndCmpdNum"</span><span class="sc">;</span> +1102 <span class="i">$HTMLRefFile</span> = <span class="i">GetRelativeFileDir</span><span class="s">(</span><span class="i">$CurTableNum</span><span class="cm">,</span> <span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$FirstTableNum</span><span class="s">)</span> . <span class="i">$HTMLFile</span><span class="sc">;</span> +1103 <span class="i">$HTMLRefValue</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="i">$TableNum</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="i">$RefTitle</span><span class="s">)</span><span class="sc">;</span> +1104 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$HTMLRefValue</span><span class="s">)</span><span class="sc">;</span> +1105 <span class="s">}</span> +1106 <span class="s">}</span> +1107 +1108 <span class="c"># Setup link to next table...</span> +1109 <span class="k">if</span> <span class="s">(</span><span class="i">$CurTableNum</span> != <span class="i">$LastTableNum</span><span class="s">)</span> <span class="s">{</span> +1110 <span class="k">my</span><span class="s">(</span><span class="i">$NextTableNum</span><span class="cm">,</span> <span class="i">$NextTableIndex</span><span class="s">)</span><span class="sc">;</span> +1111 <span class="i">$NextTableNum</span> = <span class="i">$CurTableNum</span> + <span class="n">1</span><span class="sc">;</span> <span class="i">$NextTableIndex</span> = <span class="i">$NextTableNum</span> - <span class="n">1</span><span class="sc">;</span> +1112 <span class="i">$HTMLFile</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableHTMLFiles</span>}[<span class="i">$Index</span>]}[<span class="i">$NextTableIndex</span>]<span class="sc">;</span> +1113 <span class="i">$HTMLRefFile</span> = <span class="i">GetRelativeFileDir</span><span class="s">(</span><span class="i">$CurTableNum</span><span class="cm">,</span> <span class="i">$NextTableNum</span><span class="cm">,</span> <span class="i">$FirstTableNum</span><span class="s">)</span> . <span class="i">$HTMLFile</span><span class="sc">;</span> +1114 <span class="i">$TableStartCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableStartCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$NextTableIndex</span>]<span class="sc">;</span> +1115 <span class="i">$TableEndCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$NextTableIndex</span>]<span class="sc">;</span> +1116 <span class="i">$HTMLRefValue</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"Next"</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="q">"Next Table Containing Compounds $TableStartCmpdNum To $TableEndCmpdNum"</span><span class="s">)</span><span class="sc">;</span> +1117 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$HTMLRefValue</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$LinkTextColor</span><span class="cm">,</span> <span class="i">$LinkFontBold</span><span class="s">)</span><span class="sc">;</span> +1118 <span class="s">}</span> +1119 +1120 <span class="c"># Setup link to last table...</span> +1121 <span class="k">if</span> <span class="s">(</span><span class="i">$EndTableNum</span> != <span class="i">$LastTableNum</span><span class="s">)</span> <span class="s">{</span> +1122 <span class="i">$HTMLFile</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableHTMLFiles</span>}[<span class="i">$Index</span>]}[<span class="i">$LastTableIndex</span>]<span class="sc">;</span> +1123 <span class="i">$HTMLRefFile</span> = <span class="i">GetRelativeFileDir</span><span class="s">(</span><span class="i">$CurTableNum</span><span class="cm">,</span> <span class="i">$LastTableNum</span><span class="cm">,</span> <span class="i">$FirstTableNum</span><span class="s">)</span> . <span class="i">$HTMLFile</span><span class="sc">;</span> +1124 <span class="i">$TableStartCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableStartCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$LastTableIndex</span>]<span class="sc">;</span> +1125 <span class="i">$TableEndCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$LastTableIndex</span>]<span class="sc">;</span> +1126 <span class="i">$HTMLRefValue</span> = <span class="i">SetupHTMLHRef</span><span class="s">(</span><span class="q">"Last"</span><span class="cm">,</span> <span class="i">$HTMLRefFile</span><span class="cm">,</span> <span class="q">"Last Table Containing Compounds $TableStartCmpdNum To $TableEndCmpdNum"</span><span class="s">)</span><span class="sc">;</span> +1127 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="i">$HTMLRefValue</span><span class="cm">,</span> <span class="i">$LinkBGColor</span><span class="cm">,</span> <span class="i">$LinkTextColor</span><span class="cm">,</span> <span class="i">$LinkFontBold</span><span class="s">)</span><span class="sc">;</span> +1128 <span class="s">}</span> +1129 <span class="c"># Setup current table info text....</span> +1130 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"&nbsp"</span><span class="s">)</span><span class="sc">;</span> +1131 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"&nbsp"</span><span class="s">)</span><span class="sc">;</span> +1132 <span class="i">$TableStartCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableStartCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$CurTableNum</span> - <span class="n">1</span>]<span class="sc">;</span> +1133 <span class="i">$TableEndCmpdNum</span> = <span class="i">$</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}[<span class="i">$Index</span>]}[<span class="i">$CurTableNum</span> - <span class="n">1</span>]<span class="sc">;</span> +1134 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">NavLinksCmpdInfo</span>}<span class="s">)</span> <span class="s">{</span> +1135 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"Showing compounds $TableStartCmpdNum to $TableEndCmpdNum of $LastCmpdNum"</span><span class="s">)</span><span class="sc">;</span> +1136 <span class="s">}</span> +1137 <span class="k">else</span> <span class="s">{</span> +1138 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableRowDataValue</span><span class="s">(</span><span class="q">"Showing table $CurTableNum of $LastTableNum"</span><span class="s">)</span><span class="sc">;</span> +1139 <span class="s">}</span> +1140 +1141 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>}<span class="sc">;</span> +1142 <span class="c"># End link table...</span> +1143 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLTableEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1144 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLDivEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1145 <span class="k">print</span> <span class="i">$HTMLFileRef</span> <span class="i">SetupHTMLAlignmentEnd</span><span class="s">(</span><span class="q">"center"</span><span class="s">)</span><span class="sc">;</span> +1146 <span class="s">}</span> +1147 +1148 <span class="c"># Generate relative directory path...</span> +<a name="GetRelativeFileDir-"></a>1149 <span class="k">sub </span><span class="m">GetRelativeFileDir</span> <span class="s">{</span> +1150 <span class="k">my</span><span class="s">(</span><span class="i">$FromTableNum</span><span class="cm">,</span> <span class="i">$ToTableNum</span><span class="cm">,</span> <span class="i">$FirstTableNum</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> +1151 <span class="k">my</span><span class="s">(</span><span class="i">$RelativeFileDir</span><span class="s">)</span> = <span class="q">""</span><span class="sc">;</span> +1152 +1153 <span class="k">if</span> <span class="s">(</span><span class="i">$FromTableNum</span> == <span class="i">$FirstTableNum</span><span class="s">)</span> <span class="s">{</span> +1154 <span class="i">$RelativeFileDir</span> = <span class="s">(</span><span class="i">$ToTableNum</span> == <span class="i">$FirstTableNum</span><span class="s">)</span> ? <span class="q">".\/"</span> <span class="co">:</span> <span class="q">".\/html\/"</span><span class="sc">;</span> +1155 <span class="s">}</span> +1156 <span class="k">else</span> <span class="s">{</span> +1157 <span class="i">$RelativeFileDir</span> = <span class="s">(</span><span class="i">$ToTableNum</span> == <span class="i">$FirstTableNum</span><span class="s">)</span> ? <span class="q">"..\/"</span> <span class="co">:</span> <span class="q">".\/"</span><span class="sc">;</span> +1158 <span class="s">}</span> +1159 <span class="k">return</span> <span class="i">$RelativeFileDir</span><span class="sc">;</span> +1160 <span class="s">}</span> +1161 +1162 <span class="c"># Based on hightlight stype, return appropriate colors for background or text...</span> +<a name="GetValueHighlightColors-"></a>1163 <span class="k">sub </span><span class="m">GetValueHighlightColors</span> <span class="s">{</span> +1164 <span class="k">my</span><span class="s">(</span><span class="i">$Label</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> +1165 <span class="k">my</span><span class="s">(</span><span class="i">$DataType</span><span class="cm">,</span> <span class="i">$Criterion</span><span class="cm">,</span> <span class="i">$CriterionValue</span><span class="cm">,</span> <span class="i">$BgColor</span><span class="cm">,</span> <span class="i">$FontColor</span><span class="cm">,</span> <span class="i">$ValueOk</span><span class="cm">,</span> <span class="i">$Nothing</span><span class="s">)</span><span class="sc">;</span> +1166 +1167 <span class="i">$BgColor</span> = <span class="q">""</span><span class="sc">;</span> <span class="i">$FontColor</span> = <span class="q">""</span><span class="sc">;</span> +1168 <span class="i">$DataType</span> = <span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldTypesMap</span>}{<span class="i">$Label</span>}<span class="sc">;</span> +1169 <span class="i">$Criterion</span> = <span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldCriteriaMap</span>}{<span class="i">$Label</span>}<span class="sc">;</span> +1170 <span class="i">$CriterionValue</span> = <span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldValueMap</span>}{<span class="i">$Label</span>}<span class="sc">;</span> +1171 +1172 <span class="i">$ValueOk</span> = <span class="n">0</span><span class="sc">;</span> +1173 <span class="k">if</span> <span class="s">(</span><span class="i">$DataType</span> =~ <span class="q">/^numeric$/i</span><span class="s">)</span> <span class="s">{</span> +1174 <span class="j">NUMSWITCH:</span> <span class="s">{</span> +1175 <span class="k">if</span> <span class="s">(</span><span class="i">$Criterion</span> =~ <span class="q">/^ge$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$ValueOk</span> = <span class="s">(</span><span class="i">$Value</span> >= <span class="i">$CriterionValue</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">NUMSWITCH</span><span class="sc">;</span> <span class="s">}</span> +1176 <span class="k">if</span> <span class="s">(</span><span class="i">$Criterion</span> =~ <span class="q">/^le$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$ValueOk</span> = <span class="s">(</span><span class="i">$Value</span> <= <span class="i">$CriterionValue</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">NUMSWITCH</span><span class="sc">;</span> <span class="s">}</span> +1177 <span class="k">if</span> <span class="s">(</span><span class="i">$Criterion</span> =~ <span class="q">/^eq$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$ValueOk</span> = <span class="s">(</span><span class="i">$Value</span> == <span class="i">$CriterionValue</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">NUMSWITCH</span><span class="sc">;</span> <span class="s">}</span> +1178 <span class="i">$Nothing</span> = <span class="n">1</span><span class="sc">;</span> +1179 <span class="s">}</span> +1180 <span class="s">}</span> +1181 <span class="k">else</span> <span class="s">{</span> +1182 <span class="j">TEXTSWITCH:</span> <span class="s">{</span> +1183 <span class="k">if</span> <span class="s">(</span><span class="i">$Criterion</span> =~ <span class="q">/^ge$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$ValueOk</span> = <span class="s">(</span><span class="i">$Value</span> <span class="k">ge</span> <span class="i">$CriterionValue</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">TEXTSWITCH</span><span class="sc">;</span> <span class="s">}</span> +1184 <span class="k">if</span> <span class="s">(</span><span class="i">$Criterion</span> =~ <span class="q">/^le$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$ValueOk</span> = <span class="s">(</span><span class="i">$Value</span> <span class="k">le</span> <span class="i">$CriterionValue</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">TEXTSWITCH</span><span class="sc">;</span> <span class="s">}</span> +1185 <span class="k">if</span> <span class="s">(</span><span class="i">$Criterion</span> =~ <span class="q">/^eq$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$ValueOk</span> = <span class="s">(</span><span class="i">$Value</span> <span class="k">eq</span> <span class="i">$CriterionValue</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">TEXTSWITCH</span><span class="sc">;</span> <span class="s">}</span> +1186 <span class="i">$Nothing</span> = <span class="n">1</span><span class="sc">;</span> +1187 <span class="s">}</span> +1188 <span class="s">}</span> +1189 <span class="i">$BgColor</span> = <span class="i">$ValueOk</span> ? <span class="i">$OptionsInfo</span>{<span class="w">ValueOkColor</span>} <span class="co">:</span> <span class="i">$OptionsInfo</span>{<span class="w">ValueNotOkColor</span>}<span class="sc">;</span> +1190 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">highlightstyle</span>} =~ <span class="q">/^text$/i</span><span class="s">)</span> <span class="s">{</span> +1191 <span class="i">$BgColor</span> = <span class="q">""</span><span class="sc">;</span> +1192 <span class="i">$FontColor</span> = <span class="i">$ValueOk</span> ? <span class="i">$OptionsInfo</span>{<span class="w">ValueOkColor</span>} <span class="co">:</span> <span class="i">$OptionsInfo</span>{<span class="w">ValueNotOkColor</span>}<span class="sc">;</span> +1193 <span class="s">}</span> +1194 <span class="k">return</span> <span class="s">(</span><span class="i">$BgColor</span><span class="cm">,</span> <span class="i">$FontColor</span><span class="s">)</span><span class="sc">;</span> +1195 <span class="s">}</span> +1196 +1197 <span class="c">#Make sure appropriate mode specific option values are specified...</span> +<a name="ProcessOptions-"></a>1198 <span class="k">sub </span><span class="m">ProcessOptions</span> <span class="s">{</span> +1199 +1200 <span class="i">%OptionsInfo</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1201 +1202 <span class="i">$OptionsInfo</span>{<span class="w">TitleDisplay</span>} = <span class="s">(</span><span class="i">$Options</span>{<span class="w">titledisplay</span>} =~ <span class="q">/^yes$/i</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> +1203 +1204 <span class="i">$OptionsInfo</span>{<span class="w">RowHAlignment</span>} = <span class="q">"left"</span><span class="sc">;</span> <span class="i">$OptionsInfo</span>{<span class="w">RowVAlignment</span>} = <span class="q">"middle"</span><span class="sc">;</span> +1205 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$Options</span>{<span class="w">align</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1206 <span class="k">my</span> <span class="s">(</span><span class="i">@AlignValues</span><span class="s">)</span> = <span class="k">split</span> <span class="q">","</span><span class="cm">,</span> <span class="i">$Options</span>{<span class="w">align</span>}<span class="sc">;</span> +1207 <span class="k">if</span> <span class="s">(</span><span class="i">@AlignValues</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span> +1208 <span class="i">$OptionsInfo</span>{<span class="w">RowHAlignment</span>} = <span class="i">$AlignValues</span>[<span class="n">0</span>]<span class="sc">;</span> +1209 <span class="i">$OptionsInfo</span>{<span class="w">RowVAlignment</span>} = <span class="i">$AlignValues</span>[<span class="n">1</span>]<span class="sc">;</span> +1210 <span class="s">}</span> +1211 <span class="k">elsif</span> <span class="s">(</span><span class="i">@AlignValues</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span> +1212 <span class="i">$OptionsInfo</span>{<span class="w">RowHAlignment</span>} = <span class="i">$AlignValues</span>[<span class="n">0</span>]<span class="sc">;</span> +1213 <span class="s">}</span> +1214 <span class="k">else</span> <span class="s">{</span> +1215 <span class="k">die</span> <span class="q">"Error: Invalid number of values, "</span><span class="cm">,</span> <span class="k">scalar</span><span class="s">(</span><span class="i">@AlignValues</span><span class="s">)</span> <span class="cm">,</span> <span class="q">", specified by \"-a --align\" option.\nIt must contain only one or two values.\n"</span><span class="sc">;</span> +1216 <span class="s">}</span> +1217 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">RowHAlignment</span>} !~ <span class="q">/^(left|center|right)$/i</span><span class="s">)</span> <span class="s">{</span> +1218 <span class="k">die</span> <span class="q">"Error: The horizontal alignment value specified, $Options{align}, for option \"-a --align\" is not valid. Allowed values: left, center, or right\n"</span><span class="sc">;</span> +1219 <span class="s">}</span> +1220 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">RowVAlignment</span>} !~ <span class="q">/^(top|middle|bottom)$/i</span><span class="s">)</span> <span class="s">{</span> +1221 <span class="k">die</span> <span class="q">"Error: The horizontal alignment value specified, $Options{align}, for option \"-a --align\" is not valid. Allowed values: top, middle, or bottom\n"</span><span class="sc">;</span> +1222 <span class="s">}</span> +1223 <span class="s">}</span> +1224 +1225 <span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowHAlignment</span>} = <span class="q">"center"</span><span class="sc">;</span> <span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowVAlignment</span>} = <span class="q">"middle"</span><span class="sc">;</span> +1226 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$Options</span>{<span class="w">headeralign</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1227 <span class="k">my</span> <span class="s">(</span><span class="i">@AlignValues</span><span class="s">)</span> = <span class="k">split</span> <span class="q">","</span><span class="cm">,</span> <span class="i">$Options</span>{<span class="w">headeralign</span>}<span class="sc">;</span> +1228 <span class="k">if</span> <span class="s">(</span><span class="i">@AlignValues</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span> +1229 <span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowHAlignment</span>} = <span class="i">$AlignValues</span>[<span class="n">0</span>]<span class="sc">;</span> +1230 <span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowVAlignment</span>} = <span class="i">$AlignValues</span>[<span class="n">1</span>]<span class="sc">;</span> +1231 <span class="s">}</span> +1232 <span class="k">elsif</span> <span class="s">(</span><span class="i">@AlignValues</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span> +1233 <span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowHAlignment</span>} = <span class="i">$AlignValues</span>[<span class="n">0</span>]<span class="sc">;</span> +1234 <span class="s">}</span> +1235 <span class="k">else</span> <span class="s">{</span> +1236 <span class="k">die</span> <span class="q">"Error: Invalid number of values, "</span><span class="cm">,</span> <span class="k">scalar</span><span class="s">(</span><span class="i">@AlignValues</span><span class="s">)</span> <span class="cm">,</span> <span class="q">", specified by \"--headeralign\" option.\nIt must contain only one or two value.\n"</span><span class="sc">;</span> +1237 <span class="s">}</span> +1238 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowHAlignment</span>} !~ <span class="q">/^(left|center|right)$/i</span><span class="s">)</span> <span class="s">{</span> +1239 <span class="k">die</span> <span class="q">"Error: The horizontal alignment value specified, $Options{headeralign}, for option \"--headeralign\" is not valid. Allowed values: left, center, or right\n"</span><span class="sc">;</span> +1240 <span class="s">}</span> +1241 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowVAlignment</span>} !~ <span class="q">/^(top|middle|bottom)$/i</span><span class="s">)</span> <span class="s">{</span> +1242 <span class="k">die</span> <span class="q">"Error: The horizontal alignment value specified, $Options{headeralign}, for option \"-a --headeralign\" is not valid. Allowed values: top, middle, or bottom\n"</span><span class="sc">;</span> +1243 <span class="s">}</span> +1244 <span class="s">}</span> +1245 +1246 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$Options</span>{<span class="w">border</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1247 <span class="i">$OptionsInfo</span>{<span class="w">TableBorder</span>} = <span class="i">$Options</span>{<span class="w">border</span>}<span class="sc">;</span> +1248 <span class="s">}</span> +1249 <span class="k">else</span> <span class="s">{</span> +1250 <span class="i">$OptionsInfo</span>{<span class="w">TableBorder</span>} = <span class="s">(</span><span class="i">$Options</span>{<span class="w">mode</span>} =~ <span class="q">/^(plain|highlight)$/i</span><span class="s">)</span> || <span class="i">$Options</span>{<span class="w">mode</span>} =~ <span class="q">/^structuresonly$/i</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> +1251 <span class="s">}</span> +1252 <span class="i">$OptionsInfo</span>{<span class="w">TableCellPadding</span>} = <span class="i">$Options</span>{<span class="w">cellpadding</span>}<span class="sc">;</span> +1253 <span class="i">$OptionsInfo</span>{<span class="w">TableCellSpacing</span>} = <span class="i">$Options</span>{<span class="w">cellspacing</span>}<span class="sc">;</span> +1254 <span class="i">$OptionsInfo</span>{<span class="w">FooterMsg</span>} = <span class="i">$Options</span>{<span class="w">footer</span>} ? <span class="i">$Options</span>{<span class="w">footer</span>} <span class="co">:</span> <span class="q">""</span><span class="sc">;</span> +1255 +1256 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">headercolor</span>}<span class="s">)</span> <span class="s">{</span> +1257 <span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowColor</span>} = <span class="i">$Options</span>{<span class="w">headercolor</span>}<span class="sc">;</span> +1258 <span class="s">}</span> +1259 <span class="k">else</span> <span class="s">{</span> +1260 <span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowColor</span>} = <span class="s">(</span><span class="i">$Options</span>{<span class="w">mode</span>} =~ <span class="q">/^plain$/i</span><span class="s">)</span> ? <span class="q">""</span> <span class="co">:</span> <span class="q">"#e0e9eb"</span><span class="sc">;</span> +1261 <span class="s">}</span> +1262 +1263 <span class="i">$OptionsInfo</span>{<span class="w">NavLinksAtBottom</span>} = <span class="n">1</span><span class="sc">;</span> <span class="i">$OptionsInfo</span>{<span class="w">NavLinksAtTop</span>} = <span class="n">0</span><span class="sc">;</span> +1264 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">displaylinks</span>} =~ <span class="q">/^(both|top)$/i</span><span class="s">)</span> <span class="s">{</span> +1265 <span class="i">$OptionsInfo</span>{<span class="w">NavLinksAtTop</span>} = <span class="n">1</span><span class="sc">;</span> +1266 <span class="s">}</span> +1267 <span class="i">$OptionsInfo</span>{<span class="w">NavLinksTableInfo</span>} = <span class="n">1</span><span class="sc">;</span> <span class="i">$OptionsInfo</span>{<span class="w">NavLinksCmpdInfo</span>} = <span class="n">0</span><span class="sc">;</span> +1268 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">displaylinksinfo</span>} =~ <span class="q">/^both$/i</span><span class="s">)</span> <span class="s">{</span> +1269 <span class="i">$OptionsInfo</span>{<span class="w">NavLinksCmpdInfo</span>} = <span class="n">1</span><span class="sc">;</span> +1270 <span class="i">$OptionsInfo</span>{<span class="w">NavLinksTableInfo</span>} = <span class="n">1</span><span class="sc">;</span> +1271 <span class="s">}</span> +1272 <span class="k">elsif</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">displaylinksinfo</span>} =~ <span class="q">/^compound$/i</span><span class="s">)</span> <span class="s">{</span> +1273 <span class="i">$OptionsInfo</span>{<span class="w">NavLinksCmpdInfo</span>} = <span class="n">1</span><span class="sc">;</span> +1274 <span class="i">$OptionsInfo</span>{<span class="w">NavLinksTableInfo</span>} = <span class="n">0</span><span class="sc">;</span> +1275 <span class="s">}</span> +1276 +1277 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">stylesheet</span>} =~ <span class="q">/^old$/i</span> <span class="s">)</span> <span class="s">{</span> +1278 <span class="k">if</span> <span class="s">(</span>!<span class="i">$Options</span>{<span class="w">stylesheetname</span>}<span class="s">)</span> <span class="s">{</span> +1279 <span class="k">die</span> <span class="q">"Error: No stylesheet name specified using \"--stylesheetname\" option: It is required for \"old\" value of \"-s --stylesheet\" option. \n"</span><span class="sc">;</span> +1280 <span class="s">}</span> +1281 <span class="s">}</span> +1282 +1283 <span class="k">my</span><span class="s">(</span><span class="i">@ColorValues</span><span class="s">)</span><span class="sc">;</span> +1284 <span class="i">$OptionsInfo</span>{<span class="w">ShadeRowsStatus</span>} = <span class="n">0</span><span class="sc">;</span> +1285 <span class="i">$OptionsInfo</span>{<span class="w">OddRowsShadeColor</span>} = <span class="q">"#ffffff"</span><span class="sc">;</span> +1286 <span class="i">$OptionsInfo</span>{<span class="w">EvenRowsShadeColor</span>} = <span class="q">"#e0e9eb"</span><span class="sc">;</span> +1287 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">shadecolor</span>}<span class="s">)</span> <span class="s">{</span> +1288 <span class="c"># Make sure only one value is specified...</span> +1289 <span class="i">@ColorValues</span> = <span class="k">split</span> <span class="q">","</span><span class="cm">,</span> <span class="i">$Options</span>{<span class="w">shadecolor</span>}<span class="sc">;</span> +1290 <span class="k">if</span> <span class="s">(</span><span class="i">@ColorValues</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span> +1291 <span class="i">$OptionsInfo</span>{<span class="w">OddRowsShadeColor</span>} = <span class="i">$ColorValues</span>[<span class="n">0</span>]<span class="sc">;</span> +1292 <span class="i">$OptionsInfo</span>{<span class="w">EvenRowsShadeColor</span>} = <span class="i">$ColorValues</span>[<span class="n">1</span>]<span class="sc">;</span> +1293 <span class="s">}</span> +1294 <span class="k">else</span> <span class="s">{</span> +1295 <span class="k">die</span> <span class="q">"Error: Invalid number of values, "</span><span class="cm">,</span> <span class="k">scalar</span><span class="s">(</span><span class="i">@ColorValues</span><span class="s">)</span> <span class="cm">,</span> <span class="q">", specified by \"--shadecolor\" option.\nIt must contain only two value.\n"</span><span class="sc">;</span> +1296 <span class="s">}</span> +1297 <span class="s">}</span> +1298 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">mode</span>} =~ <span class="q">/^(shade|shadedhighlight|shadedstructuresonly)$/i</span><span class="s">)</span> <span class="s">{</span> +1299 <span class="i">$OptionsInfo</span>{<span class="w">ShadeRowsStatus</span>} = <span class="n">1</span><span class="sc">;</span> +1300 <span class="s">}</span> +1301 +1302 <span class="i">$OptionsInfo</span>{<span class="w">SettingUpCmpdSummaryPage</span>} = <span class="n">0</span><span class="sc">;</span> +1303 <span class="i">$OptionsInfo</span>{<span class="w">StrLinkShadeColor</span>} = <span class="s">(</span><span class="k">exists</span> <span class="i">$Options</span>{<span class="w">strlinkshadecolor</span>}<span class="s">)</span> ? <span class="i">$Options</span>{<span class="w">strlinkshadecolor</span>} <span class="co">:</span> <span class="q">"#e0e9eb"</span><span class="sc">;</span> +1304 <span class="i">$OptionsInfo</span>{<span class="w">DisplayStructure</span>} = <span class="s">(</span><span class="i">$Options</span>{<span class="w">structure</span>} =~ <span class="q">/^display$/i</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> +1305 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} = <span class="i">$Options</span>{<span class="w">strviewertype</span>}<span class="sc">;</span> +1306 <span class="i">$OptionsInfo</span>{<span class="w">StrLinkNavigation</span>} = <span class="s">(</span><span class="i">$Options</span>{<span class="w">strlinknavigation</span>} =~ <span class="q">/^yes$/i</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> +1307 <span class="i">$OptionsInfo</span>{<span class="w">StrLinkTitleDisplay</span>} = <span class="s">(</span><span class="i">$Options</span>{<span class="w">strlinktitledisplay</span>} =~ <span class="q">/^yes$/i</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> +1308 <span class="i">$OptionsInfo</span>{<span class="w">StrLinkTitle</span>} = <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$Options</span>{<span class="w">strlinktitle</span>}<span class="s">)</span> && <span class="k">length</span><span class="s">(</span><span class="i">$Options</span>{<span class="w">strlinktitle</span>}<span class="s">)</span><span class="s">)</span> ? <span class="q">"$Options{strlinktitle}"</span> <span class="co">:</span> <span class="q">"Compound Summary"</span><span class="sc">;</span> +1309 +1310 <span class="k">my</span><span class="s">(</span><span class="i">$StrViewerEmbedUsingJS</span><span class="s">)</span> = <span class="s">(</span><span class="s">(</span><span class="i">$Options</span>{<span class="w">strviewerembed</span>} =~ <span class="q">/^javascript$/i</span><span class="s">)</span> && <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^(Jmol|MarvinView|ChemDrawPlugIn|ChemDrawActiveX|Chem3DActiveX)$/i</span> <span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> +1311 +1312 <span class="i">$OptionsInfo</span>{<span class="w">StrTableRows</span>} = <span class="n">6</span><span class="sc">;</span> <span class="i">$OptionsInfo</span>{<span class="w">StrTableCols</span>} = <span class="n">4</span><span class="sc">;</span> +1313 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strtablesize</span>}<span class="s">)</span> <span class="s">{</span> +1314 <span class="k">my</span><span class="s">(</span><span class="i">@StrTableSizeValues</span><span class="s">)</span> = <span class="k">split</span> <span class="q">","</span><span class="cm">,</span> <span class="i">$Options</span>{<span class="w">strtablesize</span>}<span class="sc">;</span> +1315 <span class="k">if</span> <span class="s">(</span><span class="i">@StrTableSizeValues</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span> +1316 <span class="i">$OptionsInfo</span>{<span class="w">StrTableRows</span>} = <span class="i">$StrTableSizeValues</span>[<span class="n">0</span>]<span class="sc">;</span> +1317 <span class="i">$OptionsInfo</span>{<span class="w">StrTableCols</span>} = <span class="i">$StrTableSizeValues</span>[<span class="n">1</span>]<span class="sc">;</span> +1318 <span class="k">if</span> <span class="s">(</span>!<span class="i">IsPositiveInteger</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrTableRows</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1319 <span class="k">die</span> <span class="q">"Error: The first value specified, $OptionsInfo{StrTableRows}, for option \"--strtablesize\" is not valid: Allowed integer values: > 0.\n"</span><span class="sc">;</span> +1320 <span class="s">}</span> +1321 <span class="k">if</span> <span class="s">(</span>!<span class="i">IsPositiveInteger</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrTableCols</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1322 <span class="k">die</span> <span class="q">"Error: The first value specified, $OptionsInfo{StrTableCols}, for option \"--strtablesize\" is not valid: Allowed integer values: > 0.\n"</span><span class="sc">;</span> +1323 <span class="s">}</span> +1324 <span class="s">}</span> +1325 <span class="k">else</span> <span class="s">{</span> +1326 <span class="k">die</span> <span class="q">"Error: Invalid number of values, "</span><span class="cm">,</span> <span class="k">scalar</span><span class="s">(</span><span class="i">@StrTableSizeValues</span><span class="s">)</span><span class="cm">,</span> <span class="q">", specified by \"--strtablesize\" option.\nIt must contain only two value for structuresonly \"-m --mode\" option.\n"</span><span class="sc">;</span> +1327 <span class="s">}</span> +1328 <span class="s">}</span> +1329 +1330 <span class="c"># Setup applet information...</span> +1331 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerCodeBase</span>} = <span class="i">GetMayaChemToolsLibDirName</span><span class="s">(</span><span class="s">)</span> . <span class="q">"/Jmol"</span><span class="sc">;</span> +1332 <span class="i">$OptionsInfo</span>{<span class="w">TopHTMLDirStrViewerCodeBase</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrViewerCodeBase</span>}<span class="sc">;</span> +1333 <span class="i">$OptionsInfo</span>{<span class="w">SubHTMLDirStrViewerCodeBase</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrViewerCodeBase</span>}<span class="sc">;</span> +1334 +1335 <span class="k">my</span><span class="s">(</span><span class="i">$StrViewerAppletArchive</span><span class="cm">,</span> <span class="i">$StrViewerAppletCode</span><span class="s">)</span> = <span class="i">SetupDefaultAppletArchiveAndCode</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>}<span class="s">)</span><span class="sc">;</span> +1336 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strviewerconfig</span>}<span class="s">)</span> <span class="s">{</span> +1337 <span class="k">my</span><span class="s">(</span><span class="i">@StrViewerConfigParts</span><span class="s">)</span> = <span class="k">split</span> <span class="q">","</span><span class="cm">,</span> <span class="i">$Options</span>{<span class="w">strviewerconfig</span>}<span class="sc">;</span> +1338 <span class="k">if</span> <span class="s">(</span><span class="i">@StrViewerConfigParts</span> >=<span class="n">1</span> && <span class="i">@StrViewerConfigParts</span> <= <span class="n">3</span><span class="s">)</span> <span class="s">{</span> +1339 <span class="k">if</span> <span class="s">(</span><span class="i">@StrViewerConfigParts</span> == <span class="n">3</span><span class="s">)</span> <span class="s">{</span> +1340 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerCodeBase</span>} = <span class="i">$StrViewerConfigParts</span>[<span class="n">0</span>]<span class="sc">;</span> +1341 <span class="i">$StrViewerAppletArchive</span> = <span class="i">$StrViewerConfigParts</span>[<span class="n">1</span>]<span class="sc">;</span> +1342 <span class="i">$StrViewerAppletCode</span> = <span class="i">$StrViewerConfigParts</span>[<span class="n">2</span>]<span class="sc">;</span> +1343 <span class="s">}</span> +1344 <span class="k">elsif</span> <span class="s">(</span><span class="i">@StrViewerConfigParts</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span> +1345 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerCodeBase</span>} = <span class="i">$StrViewerConfigParts</span>[<span class="n">0</span>]<span class="sc">;</span> +1346 <span class="i">$StrViewerAppletArchive</span> = <span class="i">$StrViewerConfigParts</span>[<span class="n">1</span>]<span class="sc">;</span> +1347 <span class="k">my</span><span class="s">(</span><span class="i">$AppletArchive</span><span class="cm">,</span> <span class="i">$AppletCode</span><span class="s">)</span> = <span class="i">SetupDefaultAppletArchiveAndCode</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>}<span class="s">)</span><span class="sc">;</span> +1348 <span class="i">$StrViewerAppletCode</span> = <span class="i">$AppletCode</span><span class="sc">;</span> +1349 <span class="s">}</span> +1350 <span class="k">else</span> <span class="s">{</span> +1351 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerCodeBase</span>} = <span class="i">$StrViewerConfigParts</span>[<span class="n">0</span>]<span class="sc">;</span> +1352 <span class="s">(</span><span class="i">$StrViewerAppletArchive</span><span class="cm">,</span> <span class="i">$StrViewerAppletCode</span><span class="s">)</span> = <span class="i">SetupDefaultAppletArchiveAndCode</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>}<span class="s">)</span><span class="sc">;</span> +1353 <span class="s">}</span> +1354 <span class="s">}</span> +1355 <span class="k">else</span> <span class="s">{</span> +1356 <span class="k">die</span> <span class="q">"Error: Invalid number of values, "</span><span class="cm">,</span> <span class="k">scalar</span><span class="s">(</span><span class="i">@StrViewerConfigParts</span><span class="s">)</span><span class="cm">,</span> <span class="q">", specified by \"--strviewerconfig\" option.\nNumver of allowed values:1 to 3 \n"</span><span class="sc">;</span> +1357 <span class="s">}</span> +1358 <span class="s">}</span> +1359 <span class="k">else</span> <span class="s">{</span> +1360 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^(JME|MarvinView)$/i</span> <span class="s">)</span> <span class="s">{</span> +1361 <span class="k">die</span> <span class="q">"Error: No codebase specified using \"--strviewerconfig\" option for $OptionsInfo{StrViewerType} structure viewer\n"</span><span class="sc">;</span> +1362 <span class="s">}</span> +1363 <span class="k">if</span> <span class="s">(</span><span class="i">$StrViewerEmbedUsingJS</span> && <span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} !~ <span class="q">/^Jmol$/i</span><span class="s">)</span> <span class="s">{</span> +1364 <span class="k">die</span> <span class="q">"Error: No codebase specified using \"--strviewerconfig\" option for javascript value of \"--strviewerembed\" option for $OptionsInfo{StrViewerType} structure viewer \n"</span><span class="sc">;</span> +1365 <span class="s">}</span> +1366 <span class="s">}</span> +1367 +1368 <span class="k">if</span> <span class="s">(</span><span class="k">-d</span> <span class="i">$OptionsInfo</span>{<span class="w">StrViewerCodeBase</span>}<span class="s">)</span> <span class="s">{</span> +1369 <span class="c"># Change local code base direcrory name to a relative directory name based on the</span> +1370 <span class="c"># current directory containing SD file; otherwise, Java applets and JavaScripts don't</span> +1371 <span class="c"># get loaded into Firefox and Chrome browsers.</span> +1372 <span class="c">#</span> +1373 <span class="c"># For top and sub HTML directories, add prefix "../" and "../../" to relative path...</span> +1374 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerCodeBase</span>} = <span class="w">File::Spec</span><span class="w">->abs2rel</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerCodeBase</span>}<span class="cm">,</span> <span class="i">Cwd::cwd</span><span class="s">(</span><span class="s">)</span><span class="s">)</span><span class="sc">;</span> +1375 +1376 <span class="i">$OptionsInfo</span>{<span class="w">TopHTMLDirStrViewerCodeBase</span>} = <span class="q">"../"</span> . <span class="i">$OptionsInfo</span>{<span class="w">StrViewerCodeBase</span>}<span class="sc">;</span> +1377 <span class="i">$OptionsInfo</span>{<span class="w">SubHTMLDirStrViewerCodeBase</span>} = <span class="q">"../../"</span> . <span class="i">$OptionsInfo</span>{<span class="w">StrViewerCodeBase</span>}<span class="sc">;</span> +1378 <span class="s">}</span> +1379 +1380 <span class="c"># Setup structure viewer parameter information...</span> +1381 <span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1382 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strviewerparams</span>}<span class="s">)</span> <span class="s">{</span> +1383 <span class="k">my</span><span class="s">(</span><span class="i">@ParamsSplit</span><span class="cm">,</span> <span class="i">@ParamPairSplit</span><span class="cm">,</span> <span class="i">$ParamPair</span><span class="s">)</span><span class="sc">;</span> +1384 <span class="c">#@ParamsSplit = split " ", $Options{strviewerparams};</span> +1385 <span class="i">@ParamsSplit</span> = <span class="i">quotewords</span><span class="s">(</span><span class="q">" "</span><span class="cm">,</span> <span class="n">0</span><span class="cm">,</span> <span class="i">$Options</span>{<span class="w">strviewerparams</span>}<span class="s">)</span><span class="sc">;</span> +1386 <span class="k">for</span> <span class="i">$ParamPair</span> <span class="s">(</span><span class="i">@ParamsSplit</span><span class="s">)</span> <span class="s">{</span> +1387 <span class="i">@ParamPairSplit</span> = <span class="k">split</span> <span class="q">"="</span><span class="cm">,</span> <span class="i">$ParamPair</span><span class="sc">;</span> +1388 <span class="k">if</span> <span class="s">(</span><span class="i">@ParamPairSplit</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span> +1389 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="i">$ParamPairSplit</span>[<span class="n">0</span>]} = <span class="i">$ParamPairSplit</span>[<span class="n">1</span>]<span class="sc">;</span> +1390 <span class="s">}</span> +1391 <span class="k">else</span> <span class="s">{</span> +1392 <span class="k">die</span> <span class="q">"Error: Invalid value, $ParamPair, specified by \"--strviewerparams\" option.\nValid values: name=value\n"</span><span class="sc">;</span> +1393 <span class="s">}</span> +1394 <span class="s">}</span> +1395 <span class="s">}</span> +1396 +1397 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^(JME|Jmol|MarvinView)$/i</span> <span class="s">)</span> <span class="s">{</span> +1398 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">name</span>} = <span class="i">$StrViewerAppletCode</span><span class="sc">;</span> +1399 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">archive</span>} = <span class="i">$StrViewerAppletArchive</span><span class="sc">;</span> +1400 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">code</span>} = <span class="i">$StrViewerAppletCode</span><span class="sc">;</span> +1401 <span class="s">}</span> +1402 <span class="i">$OptionsInfo</span>{<span class="w">StrWidth</span>} = <span class="k">exists</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">width</span>}<span class="s">)</span> ? <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">width</span>} <span class="co">:</span> <span class="n">250</span><span class="sc">;</span> +1403 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">width</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrWidth</span>}<span class="sc">;</span> +1404 <span class="i">$OptionsInfo</span>{<span class="w">StrHeight</span>} = <span class="k">exists</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">height</span>}<span class="s">)</span> ? <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">height</span>} <span class="co">:</span> <span class="n">170</span><span class="sc">;</span> +1405 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">height</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrHeight</span>}<span class="sc">;</span> +1406 +1407 <span class="i">$OptionsInfo</span>{<span class="w">StrLinkWidth</span>} = <span class="n">500</span><span class="sc">;</span> +1408 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">strlinkwidth</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1409 <span class="i">$OptionsInfo</span>{<span class="w">StrLinkWidth</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">strlinkwidth</span>}<span class="sc">;</span> +1410 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">strlinkwidth</span>} = <span class="q">""</span><span class="sc">;</span> +1411 <span class="s">}</span> +1412 <span class="i">$OptionsInfo</span>{<span class="w">StrLinkHeight</span>} = <span class="n">295</span><span class="sc">;</span> +1413 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">strlinkheight</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1414 <span class="i">$OptionsInfo</span>{<span class="w">StrLinkHeight</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">strlinkheight</span>}<span class="sc">;</span> +1415 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">strlinkheight</span>} = <span class="q">""</span><span class="sc">;</span> +1416 <span class="s">}</span> +1417 +1418 <span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>} = <span class="q">""</span><span class="sc">;</span> +1419 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1420 <span class="i">$OptionsInfo</span>{<span class="w">StrBgColorSpecified</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">bgcolor</span>}<span class="sc">;</span> +1421 <span class="s">}</span> +1422 +1423 <span class="i">$OptionsInfo</span>{<span class="w">StrLinkBgColorSpecified</span>} = <span class="q">"#ffffff"</span><span class="sc">;</span> +1424 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">strlinkbgcolor</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1425 <span class="i">$OptionsInfo</span>{<span class="w">StrLinkBgColorSpecified</span>} = <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">strlinkbgcolor</span>}<span class="sc">;</span> +1426 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">strlinkbgcolor</span>} = <span class="q">""</span><span class="sc">;</span> +1427 <span class="s">}</span> +1428 +1429 <span class="c"># Setup Java Script usage...</span> +1430 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerJSFileRef</span>} = <span class="q">""</span><span class="sc">;</span> +1431 <span class="i">$OptionsInfo</span>{<span class="w">TopHTMLDirStrViewerJSFileRef</span>} = <span class="q">""</span><span class="sc">;</span> +1432 <span class="i">$OptionsInfo</span>{<span class="w">SubHTMLDirStrViewerJSFileRef</span>} = <span class="q">""</span><span class="sc">;</span> +1433 +1434 <span class="k">if</span> <span class="s">(</span><span class="i">$StrViewerEmbedUsingJS</span><span class="s">)</span> <span class="s">{</span> +1435 <span class="k">my</span> <span class="s">(</span><span class="i">$StrViewerJSFileName</span><span class="s">)</span> = <span class="q">""</span><span class="sc">;</span> +1436 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strviewerjsfile</span>}<span class="s">)</span> <span class="s">{</span> +1437 <span class="i">$StrViewerJSFileName</span> = <span class="i">$Options</span>{<span class="w">strviewerjsfile</span>}<span class="sc">;</span> +1438 <span class="s">}</span> +1439 <span class="k">else</span> <span class="s">{</span> +1440 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^Jmol$/i</span><span class="s">)</span> <span class="s">{</span> +1441 <span class="i">$StrViewerJSFileName</span> = <span class="q">"Jmol.js"</span><span class="sc">;</span> +1442 <span class="s">}</span> +1443 <span class="k">elsif</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^MarvinView$/i</span><span class="s">)</span> <span class="s">{</span> +1444 <span class="i">$StrViewerJSFileName</span> = <span class="q">"marvin.js"</span><span class="sc">;</span> +1445 <span class="s">}</span> +1446 <span class="k">elsif</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^(ChemDrawPlugIn|ChemDrawActiveX)$/i</span><span class="s">)</span> <span class="s">{</span> +1447 <span class="i">$StrViewerJSFileName</span> = <span class="q">"chemdraw.js"</span><span class="sc">;</span> +1448 <span class="s">}</span> +1449 <span class="k">elsif</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^Chem3DActiveX$/i</span><span class="s">)</span> <span class="s">{</span> +1450 <span class="i">$StrViewerJSFileName</span> = <span class="q">"chem3d.js"</span><span class="sc">;</span> +1451 <span class="s">}</span> +1452 <span class="s">}</span> +1453 <span class="k">if</span> <span class="s">(</span><span class="i">$StrViewerJSFileName</span><span class="s">)</span> <span class="s">{</span> +1454 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerParams</span>}{<span class="w">usejavascript</span>} = <span class="i">$StrViewerJSFileName</span><span class="sc">;</span> +1455 <span class="i">$OptionsInfo</span>{<span class="w">StrViewerJSFileRef</span>} = <span class="q">"$OptionsInfo{StrViewerCodeBase}"</span> . <span class="q">"\/"</span> . <span class="q">"$StrViewerJSFileName"</span><span class="sc">;</span> +1456 <span class="i">$OptionsInfo</span>{<span class="w">TopHTMLDirStrViewerJSFileRef</span>} = <span class="q">"$OptionsInfo{TopHTMLDirStrViewerCodeBase}"</span> . <span class="q">"\/"</span> . <span class="q">"$StrViewerJSFileName"</span><span class="sc">;</span> +1457 <span class="i">$OptionsInfo</span>{<span class="w">SubHTMLDirStrViewerJSFileRef</span>} = <span class="q">"$OptionsInfo{SubHTMLDirStrViewerCodeBase}"</span> . <span class="q">"\/"</span> . <span class="q">"$StrViewerJSFileName"</span><span class="sc">;</span> +1458 <span class="s">}</span> +1459 <span class="s">}</span> +1460 +1461 <span class="c"># Check any other user specified parametrs applicable to all structure viewers...</span> +1462 +1463 <span class="i">$OptionsInfo</span>{<span class="w">StructuresOnlyMode</span>} = <span class="n">0</span><span class="sc">;</span> +1464 <span class="i">$OptionsInfo</span>{<span class="w">MaxCmpdsPerTable</span>} = <span class="s">(</span><span class="i">$Options</span>{<span class="w">structure</span>} =~ <span class="q">/^display$/i</span><span class="s">)</span> ? <span class="n">15</span> <span class="co">:</span> <span class="n">50</span><span class="sc">;</span> +1465 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$Options</span>{<span class="w">numcmpds</span>}<span class="s">)</span> <span class="s">{</span> +1466 <span class="i">$OptionsInfo</span>{<span class="w">MaxCmpdsPerTable</span>} = <span class="i">$Options</span>{<span class="w">numcmpds</span>}<span class="sc">;</span> +1467 <span class="s">}</span> +1468 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">mode</span>} =~ <span class="q">/^(structuresonly|shadedstructuresonly)$/i</span><span class="s">)</span> <span class="s">{</span> +1469 <span class="i">$OptionsInfo</span>{<span class="w">MaxCmpdsPerTable</span>} = <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">MaxCmpdsPerTable</span>} > <span class="n">0</span><span class="s">)</span> ? <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrTableRows</span>} * <span class="i">$OptionsInfo</span>{<span class="w">StrTableCols</span>}<span class="s">)</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> +1470 <span class="i">$OptionsInfo</span>{<span class="w">StructuresOnlyMode</span>} = <span class="n">1</span><span class="sc">;</span> +1471 <span class="s">}</span> +1472 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataField</span>} = <span class="q">""</span><span class="sc">;</span> +1473 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldLabel</span>} = <span class="q">"no"</span><span class="sc">;</span> +1474 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldPosition</span>} = <span class="q">"bottom"</span><span class="sc">;</span> +1475 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldAlignment</span>} = <span class="q">"center"</span><span class="sc">;</span> +1476 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$Options</span>{<span class="w">cmpddatafield</span>}<span class="s">)</span> && <span class="k">length</span><span class="s">(</span><span class="i">$Options</span>{<span class="w">cmpddatafield</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1477 <span class="k">my</span> <span class="s">(</span><span class="i">@CmpdDataFieldValues</span><span class="s">)</span> = <span class="k">split</span> <span class="q">","</span><span class="cm">,</span> <span class="i">$Options</span>{<span class="w">cmpddatafield</span>}<span class="sc">;</span> +1478 <span class="k">if</span> <span class="s">(</span><span class="i">@CmpdDataFieldValues</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span> +1479 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataField</span>} = <span class="i">$CmpdDataFieldValues</span>[<span class="n">0</span>]<span class="sc">;</span> +1480 <span class="s">}</span> +1481 <span class="k">elsif</span> <span class="s">(</span><span class="i">@CmpdDataFieldValues</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span> +1482 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataField</span>} = <span class="i">$CmpdDataFieldValues</span>[<span class="n">0</span>]<span class="sc">;</span> +1483 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldLabel</span>} = <span class="i">$CmpdDataFieldValues</span>[<span class="n">1</span>]<span class="sc">;</span> +1484 <span class="s">}</span> +1485 <span class="k">elsif</span> <span class="s">(</span><span class="i">@CmpdDataFieldValues</span> == <span class="n">3</span><span class="s">)</span> <span class="s">{</span> +1486 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataField</span>} = <span class="i">$CmpdDataFieldValues</span>[<span class="n">0</span>]<span class="sc">;</span> +1487 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldLabel</span>} = <span class="i">$CmpdDataFieldValues</span>[<span class="n">1</span>]<span class="sc">;</span> +1488 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldPosition</span>} = <span class="i">$CmpdDataFieldValues</span>[<span class="n">2</span>]<span class="sc">;</span> +1489 <span class="s">}</span> +1490 <span class="k">elsif</span> <span class="s">(</span><span class="i">@CmpdDataFieldValues</span> == <span class="n">4</span><span class="s">)</span> <span class="s">{</span> +1491 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataField</span>} = <span class="i">$CmpdDataFieldValues</span>[<span class="n">0</span>]<span class="sc">;</span> +1492 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldLabel</span>} = <span class="i">$CmpdDataFieldValues</span>[<span class="n">1</span>]<span class="sc">;</span> +1493 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldPosition</span>} = <span class="i">$CmpdDataFieldValues</span>[<span class="n">2</span>]<span class="sc">;</span> +1494 <span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldAlignment</span>} = <span class="i">$CmpdDataFieldValues</span>[<span class="n">3</span>]<span class="sc">;</span> +1495 <span class="s">}</span> +1496 <span class="k">else</span> <span class="s">{</span> +1497 <span class="k">die</span> <span class="q">"Error: Invalid number of values, "</span><span class="cm">,</span> <span class="k">scalar</span><span class="s">(</span><span class="i">@CmpdDataFieldValues</span><span class="s">)</span> <span class="cm">,</span> <span class="q">", specified by \"--cmpddatafield\" option.\nIt must contain only one, two, three, or four values.\n"</span><span class="sc">;</span> +1498 <span class="s">}</span> +1499 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldLabel</span>} !~ <span class="q">/^(yes|no)$/</span> <span class="s">)</span> <span class="s">{</span> +1500 <span class="k">die</span> <span class="q">"Error: The label value specified, $Options{cmpddatafield}, for option \"--cmpddatafield\" is not valid. Allowed values: yes or no\n"</span><span class="sc">;</span> +1501 <span class="s">}</span> +1502 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldPosition</span>} !~ <span class="q">/^(top|bottom)$/</span> <span class="s">)</span> <span class="s">{</span> +1503 <span class="k">die</span> <span class="q">"Error: The position value specified, $Options{cmpddatafield}, for option \"--cmpddatafield\" is not valid. Allowed values: top or bottom\n"</span><span class="sc">;</span> +1504 <span class="s">}</span> +1505 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">CmpdDataFieldAlignment</span>} !~ <span class="q">/^(left|center|right)$/</span> <span class="s">)</span> <span class="s">{</span> +1506 <span class="k">die</span> <span class="q">"Error: The alignment value specified, $Options{cmpddatafield}, for option \"--cmpddatafield\" is not valid. Allowed values: left, center, or right\n"</span><span class="sc">;</span> +1507 <span class="s">}</span> +1508 <span class="s">}</span> +1509 +1510 <span class="c"># Process data fields to be displayed in tables...</span> +1511 <span class="i">$OptionsInfo</span>{<span class="w">SpecifiedDataFields</span>} = <span class="k">exists</span><span class="s">(</span><span class="i">$Options</span>{<span class="w">datafields</span>}<span class="s">)</span> ? <span class="i">$Options</span>{<span class="w">datafields</span>} <span class="co">:</span> <span class="q">"All"</span><span class="sc">;</span> +1512 +1513 <span class="i">$OptionsInfo</span>{<span class="w">ValueOkColor</span>} = <span class="q">""</span><span class="sc">;</span> <span class="i">$OptionsInfo</span>{<span class="w">ValueNotOkColor</span>} = <span class="q">""</span><span class="sc">;</span> <span class="i">$OptionsInfo</span>{<span class="w">HighlightStatus</span>} = <span class="n">0</span><span class="sc">;</span> +1514 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">mode</span>} =~ <span class="q">/^(highlight|shadedhighlight)$/i</span><span class="s">)</span> <span class="s">{</span> +1515 <span class="k">my</span><span class="s">(</span><span class="i">$HighlightMode</span><span class="cm">,</span> <span class="i">$HighlightBy</span><span class="s">)</span><span class="sc">;</span> +1516 <span class="i">$HighlightMode</span> = <span class="i">$Options</span>{<span class="w">mode</span>}<span class="sc">;</span> <span class="i">$HighlightBy</span> = <span class="i">$Options</span>{<span class="w">highlightby</span>}<span class="sc">;</span> +1517 +1518 <span class="i">$OptionsInfo</span>{<span class="w">HighlightStatus</span>} = <span class="n">1</span><span class="sc">;</span> +1519 <span class="i">$OptionsInfo</span>{<span class="w">ValueOkColor</span>} = <span class="q">"#0fff0f"</span><span class="sc">;</span> +1520 <span class="i">$OptionsInfo</span>{<span class="w">ValueNotOkColor</span>} = <span class="q">"#ff0f0f"</span><span class="sc">;</span> +1521 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">highlightstyle</span>} =~ <span class="q">/^text$/i</span><span class="s">)</span> <span class="s">{</span> +1522 <span class="i">$OptionsInfo</span>{<span class="w">ValueOkColor</span>} = <span class="q">"#0fbb0f"</span><span class="sc">;</span> +1523 <span class="i">$OptionsInfo</span>{<span class="w">ValueNotOkColor</span>} = <span class="q">"#ff0f0f"</span><span class="sc">;</span> +1524 <span class="s">}</span> +1525 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">highlightcolor</span>}<span class="s">)</span> <span class="s">{</span> +1526 <span class="c"># Make sure two values are specified...</span> +1527 <span class="i">@ColorValues</span> = <span class="k">split</span> <span class="q">","</span><span class="cm">,</span> <span class="i">$Options</span>{<span class="w">highlightcolor</span>}<span class="sc">;</span> +1528 <span class="k">if</span> <span class="s">(</span><span class="i">@ColorValues</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span> +1529 <span class="i">$OptionsInfo</span>{<span class="w">ValueOkColor</span>} = <span class="i">$ColorValues</span>[<span class="n">0</span>]<span class="sc">;</span> +1530 <span class="i">$OptionsInfo</span>{<span class="w">ValueNotOkColor</span>} = <span class="i">$ColorValues</span>[<span class="n">1</span>]<span class="sc">;</span> +1531 <span class="s">}</span> +1532 <span class="k">else</span> <span class="s">{</span> +1533 <span class="k">die</span> <span class="q">"Error: Invalid number of values, "</span><span class="cm">,</span> <span class="k">scalar</span><span class="s">(</span><span class="i">@ColorValues</span><span class="s">)</span><span class="cm">,</span> <span class="q">", specified by \"--highlightcolor\" option.\nIt must contain only two value for $HighlightMode value specified using \"-m --mode\" option.\n"</span><span class="sc">;</span> +1534 <span class="s">}</span> +1535 <span class="s">}</span> +1536 <span class="k">if</span> <span class="s">(</span>!<span class="i">$Options</span>{<span class="w">highlight</span>}<span class="s">)</span> <span class="s">{</span> +1537 <span class="k">die</span> <span class="q">"Error: Specify columns to be highlighted using \"--hightlight\" option\n"</span><span class="sc">;</span> +1538 <span class="s">}</span> +1539 <span class="c"># Retrieve quartet values from "hightlight" option...</span> +1540 <span class="k">my</span><span class="s">(</span><span class="i">@HighlightValueQuartets</span><span class="s">)</span><span class="sc">;</span> +1541 +1542 <span class="i">@HighlightValueQuartets</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1543 <span class="i">@HighlightValueQuartets</span> = <span class="k">split</span> <span class="q">","</span><span class="cm">,</span> <span class="i">$Options</span>{<span class="w">highlight</span>}<span class="sc">;</span> +1544 <span class="k">if</span> <span class="s">(</span><span class="s">(</span><span class="i">@HighlightValueQuartets</span> % <span class="n">4</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1545 <span class="k">die</span> <span class="q">"Error: Quartets not found in values specified using \"--highlight\" option for $HighlightMode \"-m --mode\"\n"</span><span class="sc">;</span> +1546 <span class="s">}</span> +1547 <span class="c"># Process quartets...</span> +1548 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$Label</span><span class="cm">,</span> <span class="i">$DataType</span><span class="cm">,</span> <span class="i">$Criterion</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span><span class="sc">;</span> +1549 +1550 <span class="i">@</span>{<span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldLabels</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1551 <span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldLabelsMap</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1552 <span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldTypesMap</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1553 <span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldCriteriaMap</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1554 <span class="i">%</span>{<span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldValueMap</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1555 +1556 <span class="k">for</span> <span class="s">(</span><span class="i">$Index</span> = <span class="n">0</span><span class="sc">;</span> <span class="i">$Index</span> < <span class="i">@HighlightValueQuartets</span><span class="sc">;</span> <span class="i">$Index</span> = <span class="i">$Index</span> + <span class="n">4</span><span class="s">)</span> <span class="s">{</span> +1557 <span class="i">$Label</span> = <span class="i">$HighlightValueQuartets</span>[<span class="i">$Index</span>]<span class="sc">;</span> +1558 <span class="i">$DataType</span> = <span class="i">$HighlightValueQuartets</span>[<span class="i">$Index</span> + <span class="n">1</span>]<span class="sc">;</span> +1559 <span class="i">$Criterion</span> = <span class="i">$HighlightValueQuartets</span>[<span class="i">$Index</span> + <span class="n">2</span>]<span class="sc">;</span> +1560 <span class="i">$Value</span> = <span class="i">$HighlightValueQuartets</span>[<span class="i">$Index</span> + <span class="n">3</span>]<span class="sc">;</span> +1561 <span class="k">if</span> <span class="s">(</span><span class="i">$DataType</span> !~ <span class="q">/^(numeric|text)$/i</span><span class="s">)</span> <span class="s">{</span> +1562 <span class="k">die</span> <span class="q">"Error: Invalid column data type, $DataType, specified in quartet, \"$Label,$DataType,$Criterion,$Value\", using \"--hightlight\" option: Valid values: numeric or text\n"</span><span class="sc">;</span> +1563 <span class="s">}</span> +1564 <span class="k">if</span> <span class="s">(</span><span class="i">$Criterion</span> !~ <span class="q">/^(eq|le|ge)$/i</span><span class="s">)</span> <span class="s">{</span> +1565 <span class="k">die</span> <span class="q">"Error: Invalid criterion value, $Criterion, specified in quartet, \"$Label,$DataType,$Criterion,$Value\", using \"--hightlight\" option: Valid values: le, ge, or eq\n"</span><span class="sc">;</span> +1566 <span class="s">}</span> +1567 <span class="k">if</span> <span class="s">(</span><span class="i">$DataType</span> =~ <span class="q">/^numeric$/i</span><span class="s">)</span> <span class="s">{</span> +1568 <span class="k">if</span> <span class="s">(</span>!<span class="i">IsFloat</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1569 <span class="k">die</span> <span class="q">"Error: Invalid criterion value, $Value, specified in quartet, \"$Label,$DataType,$Criterion,$Value\", using \"--hightlight\" option: Numeric value required for numeric data type\n"</span><span class="sc">;</span> +1570 <span class="s">}</span> +1571 <span class="s">}</span> +1572 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldLabelsMap</span>}{<span class="i">$Label</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1573 <span class="k">die</span> <span class="q">"Error: Invalid field label value, $Label, in quartet, \"$Label,$DataType,$Criterion,$Value\", using \"--hightlight\" option: Multiple occurences of label. \n"</span><span class="sc">;</span> +1574 <span class="s">}</span> +1575 <span class="k">push</span> <span class="i">@</span>{<span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldLabels</span>}}<span class="cm">,</span> <span class="i">$Label</span><span class="sc">;</span> +1576 <span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldLabelsMap</span>}{<span class="i">$Label</span>} = <span class="i">$Label</span><span class="sc">;</span> +1577 <span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldTypesMap</span>}{<span class="i">$Label</span>} = <span class="i">$DataType</span><span class="sc">;</span> +1578 <span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldCriteriaMap</span>}{<span class="i">$Label</span>} = <span class="i">$Criterion</span><span class="sc">;</span> +1579 <span class="i">$OptionsInfo</span>{<span class="w">SpecifiedHighlightDataFieldValueMap</span>}{<span class="i">$Label</span>} = <span class="i">$Value</span><span class="sc">;</span> +1580 <span class="s">}</span> +1581 <span class="s">}</span> +1582 <span class="s">}</span> +1583 +1584 <span class="c"># Set up default archive and code values for a specific applet...</span> +<a name="SetupDefaultAppletArchiveAndCode-"></a>1585 <span class="k">sub </span><span class="m">SetupDefaultAppletArchiveAndCode</span> <span class="s">{</span> +1586 <span class="k">my</span><span class="s">(</span><span class="i">$ViewerType</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> +1587 <span class="k">my</span><span class="s">(</span><span class="i">$Archive</span><span class="cm">,</span> <span class="i">$Code</span><span class="cm">,</span> <span class="i">$Nothing</span><span class="s">)</span><span class="sc">;</span> +1588 +1589 <span class="j">STRVIEWERTYPE:</span> <span class="s">{</span> +1590 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^JME$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Archive</span> = <span class="q">"JME.jar"</span><span class="sc">;</span> <span class="i">$Code</span> = <span class="q">"JME"</span><span class="sc">;</span> <span class="k">last</span> <span class="j">STRVIEWERTYPE</span><span class="sc">;</span> <span class="s">}</span> +1591 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^Jmol$/i</span><span class="s">)</span> <span class="s">{</span><span class="i">$Archive</span> = <span class="q">"JmolApplet.jar"</span><span class="sc">;</span> <span class="i">$Code</span> = <span class="q">"JmolApplet"</span><span class="sc">;</span> <span class="k">last</span> <span class="j">STRVIEWERTYPE</span><span class="sc">;</span> <span class="s">}</span> +1592 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^MarvinView$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Archive</span> = <span class="q">"marvin.jar"</span><span class="sc">;</span> <span class="i">$Code</span> = <span class="q">"MView"</span><span class="sc">;</span> <span class="k">last</span> <span class="j">STRVIEWERTYPE</span><span class="sc">;</span> <span class="s">}</span> +1593 <span class="i">$Nothing</span> = <span class="n">1</span><span class="sc">;</span> +1594 <span class="s">}</span> +1595 <span class="k">return</span> <span class="s">(</span><span class="i">$Archive</span><span class="cm">,</span> <span class="i">$Code</span><span class="s">)</span><span class="sc">;</span> +1596 <span class="s">}</span> +1597 +1598 <span class="c"># Retrieve information about input SD files...</span> +<a name="RetrieveSDFilesInfo-"></a>1599 <span class="k">sub </span><span class="m">RetrieveSDFilesInfo</span> <span class="s">{</span> +1600 <span class="k">my</span><span class="s">(</span><span class="i">$SDFile</span><span class="cm">,</span> <span class="i">$FileDir</span><span class="cm">,</span> <span class="i">$FileName</span><span class="cm">,</span> <span class="i">$HTMLFile</span><span class="cm">,</span> <span class="i">$CSSFile</span><span class="cm">,</span> <span class="i">$HTMLRoot</span><span class="cm">,</span> <span class="i">$HTMLTitle</span><span class="cm">,</span> <span class="i">$FileExt</span><span class="cm">,</span> <span class="i">$Index</span><span class="cm">,</span> <span class="i">$TopHTMLDir</span><span class="s">)</span><span class="sc">;</span> +1601 +1602 <span class="i">%SDFilesInfo</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1603 +1604 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">FileOkay</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1605 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">CmpdCount</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1606 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">SpecifiedDataFieldLabels</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1607 +1608 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1609 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">HTMLTitle</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1610 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">MultipleHTMLTables</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1611 +1612 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TopHTMLDir</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1613 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">SubHTMLDir</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1614 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">SubMolDir</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1615 +1616 +1617 <span class="j">FILELIST:</span> <span class="k">for</span> <span class="i">$Index</span> <span class="s">(</span><span class="n">0</span> .. <span class="i">$#SDFilesList</span><span class="s">)</span> <span class="s">{</span> +1618 <span class="i">$SDFile</span> = <span class="i">$SDFilesList</span>[<span class="i">$Index</span>]<span class="sc">;</span> +1619 +1620 <span class="i">$SDFilesInfo</span>{<span class="w">FileOkay</span>}[<span class="i">$Index</span>] = <span class="n">0</span><span class="sc">;</span> +1621 <span class="i">$SDFilesInfo</span>{<span class="w">CmpdCount</span>}[<span class="i">$Index</span>] = <span class="n">0</span><span class="sc">;</span> +1622 <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] = <span class="q">""</span><span class="sc">;</span> +1623 <span class="i">$SDFilesInfo</span>{<span class="w">HTMLTitle</span>}[<span class="i">$Index</span>] = <span class="q">""</span><span class="sc">;</span> +1624 <span class="i">$SDFilesInfo</span>{<span class="w">MultipleHTMLTables</span>}[<span class="i">$Index</span>] = <span class="n">0</span><span class="sc">;</span> +1625 <span class="i">$SDFilesInfo</span>{<span class="w">TopHTMLDir</span>}[<span class="i">$Index</span>] = <span class="q">""</span><span class="sc">;</span> +1626 <span class="i">$SDFilesInfo</span>{<span class="w">SubHTMLDir</span>}[<span class="i">$Index</span>] = <span class="q">""</span><span class="sc">;</span> +1627 <span class="i">$SDFilesInfo</span>{<span class="w">SubMolDir</span>}[<span class="i">$Index</span>] = <span class="q">""</span><span class="sc">;</span> +1628 +1629 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">SpecifiedDataFieldLabels</span>}[<span class="i">$Index</span>]} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1630 +1631 <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="k">-e</span> <span class="i">$SDFile</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1632 <span class="k">warn</span> <span class="q">"Warning: Ignoring file $SDFile: It doesn't exist\n"</span><span class="sc">;</span> +1633 <span class="k">next</span> <span class="j">FILELIST</span><span class="sc">;</span> +1634 <span class="s">}</span> +1635 <span class="k">if</span> <span class="s">(</span>!<span class="i">CheckFileType</span><span class="s">(</span><span class="i">$SDFile</span><span class="cm">,</span> <span class="q">"sd sdf"</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1636 <span class="k">warn</span> <span class="q">"Warning: Ignoring file $SDFile: It's not a SD file\n"</span><span class="sc">;</span> +1637 <span class="k">next</span> <span class="j">FILELIST</span><span class="sc">;</span> +1638 <span class="s">}</span> +1639 <span class="s">(</span><span class="i">$FileDir</span><span class="cm">,</span> <span class="i">$FileName</span><span class="cm">,</span> <span class="i">$FileExt</span><span class="s">)</span> = <span class="i">ParseFileName</span><span class="s">(</span><span class="i">$SDFile</span><span class="s">)</span><span class="sc">;</span> +1640 +1641 <span class="k">if</span> <span class="s">(</span>!<span class="k">open</span> <span class="w">SDFILE</span><span class="cm">,</span> <span class="q">"$SDFile"</span><span class="s">)</span> <span class="s">{</span> +1642 <span class="k">warn</span> <span class="q">"Warning: Ignoring file $SDFile: Couldn't open it: $! \n"</span><span class="sc">;</span> +1643 <span class="k">next</span> <span class="j">FILELIST</span><span class="sc">;</span> +1644 <span class="s">}</span> +1645 <span class="c"># Count number of compounds and collect all possible data field labels...</span> +1646 <span class="k">my</span><span class="s">(</span><span class="i">$CmpdCount</span><span class="cm">,</span> <span class="i">$CmpdString</span><span class="cm">,</span> <span class="i">@DataFieldLabels</span><span class="cm">,</span> <span class="i">@CommonDataFieldLabels</span><span class="s">)</span><span class="sc">;</span> +1647 <span class="i">$CmpdCount</span> = <span class="n">0</span><span class="sc">;</span> +1648 <span class="i">@DataFieldLabels</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1649 <span class="i">@CommonDataFieldLabels</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1650 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">SpecifiedDataFields</span>} =~ <span class="q">/^(All|Common)$/i</span> <span class="s">)</span> <span class="s">{</span> +1651 <span class="k">my</span><span class="s">(</span><span class="i">$DataFieldLabelsRef</span><span class="cm">,</span> <span class="i">$CommonDataFieldLabelsRef</span><span class="s">)</span><span class="sc">;</span> +1652 <span class="s">(</span><span class="i">$CmpdCount</span><span class="cm">,</span> <span class="i">$DataFieldLabelsRef</span><span class="cm">,</span> <span class="i">$CommonDataFieldLabelsRef</span><span class="s">)</span> = <span class="i">GetAllAndCommonCmpdDataHeaderLabels</span><span class="s">(</span>\<span class="i">*SDFILE</span><span class="s">)</span><span class="sc">;</span> +1653 <span class="k">push</span> <span class="i">@DataFieldLabels</span><span class="cm">,</span> <span class="i">@</span>{<span class="i">$DataFieldLabelsRef</span>}<span class="sc">;</span> +1654 <span class="k">push</span> <span class="i">@CommonDataFieldLabels</span><span class="cm">,</span> <span class="i">@</span>{<span class="i">$CommonDataFieldLabelsRef</span>}<span class="sc">;</span> +1655 <span class="s">}</span> +1656 <span class="k">else</span> <span class="s">{</span> +1657 <span class="k">while</span> <span class="s">(</span><span class="i">$CmpdString</span> = <span class="i">ReadCmpdString</span><span class="s">(</span>\<span class="i">*SDFILE</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1658 <span class="i">$CmpdCount</span>++<span class="sc">;</span> +1659 <span class="s">}</span> +1660 <span class="s">}</span> +1661 <span class="k">close</span> <span class="w">SDFILE</span><span class="sc">;</span> +1662 +1663 <span class="i">$FileDir</span> = <span class="q">""</span><span class="sc">;</span> <span class="i">$FileName</span> = <span class="q">""</span><span class="sc">;</span> <span class="i">$FileExt</span> = <span class="q">""</span><span class="sc">;</span> +1664 <span class="s">(</span><span class="i">$FileDir</span><span class="cm">,</span> <span class="i">$FileName</span><span class="cm">,</span> <span class="i">$FileExt</span><span class="s">)</span> = <span class="i">ParseFileName</span><span class="s">(</span><span class="i">$SDFile</span><span class="s">)</span><span class="sc">;</span> +1665 <span class="i">$HTMLRoot</span> = <span class="i">$FileName</span><span class="sc">;</span> +1666 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">root</span>} && <span class="s">(</span><span class="i">@SDFilesList</span> == <span class="n">1</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1667 <span class="k">my</span> <span class="s">(</span><span class="i">$RootFileDir</span><span class="cm">,</span> <span class="i">$RootFileName</span><span class="cm">,</span> <span class="i">$RootFileExt</span><span class="s">)</span> = <span class="i">ParseFileName</span><span class="s">(</span><span class="i">$Options</span>{<span class="w">root</span>}<span class="s">)</span><span class="sc">;</span> +1668 <span class="k">if</span> <span class="s">(</span><span class="i">$RootFileName</span> && <span class="i">$RootFileExt</span><span class="s">)</span> <span class="s">{</span> +1669 <span class="i">$HTMLRoot</span> = <span class="i">$RootFileName</span><span class="sc">;</span> +1670 <span class="s">}</span> +1671 <span class="k">else</span> <span class="s">{</span> +1672 <span class="i">$HTMLRoot</span> = <span class="i">$Options</span>{<span class="w">root</span>}<span class="sc">;</span> +1673 <span class="s">}</span> +1674 <span class="s">}</span> +1675 <span class="i">$HTMLTitle</span> = <span class="i">$HTMLRoot</span><span class="sc">;</span> +1676 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">title</span>} && <span class="s">(</span><span class="i">@SDFilesList</span> == <span class="n">1</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1677 <span class="i">$HTMLTitle</span> = <span class="i">$Options</span>{<span class="w">title</span>}<span class="sc">;</span> +1678 <span class="s">}</span> +1679 <span class="i">$HTMLFile</span> = <span class="k">lc</span><span class="s">(</span><span class="i">$HTMLRoot</span><span class="s">)</span> . <span class="q">"-html"</span><span class="sc">;</span> +1680 <span class="k">if</span> <span class="s">(</span>!<span class="i">$Options</span>{<span class="w">overwrite</span>}<span class="s">)</span> <span class="s">{</span> +1681 <span class="k">if</span> <span class="s">(</span><span class="k">-d</span> <span class="i">$HTMLFile</span><span class="s">)</span> <span class="s">{</span> +1682 <span class="k">warn</span> <span class="q">"Warning: Ignoring file $SDFile: The directory $HTMLFile already exists\n"</span><span class="sc">;</span> +1683 <span class="k">next</span> <span class="j">FILELIST</span><span class="sc">;</span> +1684 <span class="s">}</span> +1685 <span class="s">}</span> +1686 <span class="i">$SDFilesInfo</span>{<span class="w">FileOkay</span>}[<span class="i">$Index</span>] = <span class="n">1</span><span class="sc">;</span> +1687 <span class="i">$SDFilesInfo</span>{<span class="w">CmpdCount</span>}[<span class="i">$Index</span>] = <span class="i">$CmpdCount</span><span class="sc">;</span> +1688 <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] = <span class="q">"$HTMLRoot"</span><span class="sc">;</span> +1689 <span class="i">$SDFilesInfo</span>{<span class="w">HTMLTitle</span>}[<span class="i">$Index</span>] = <span class="q">"$HTMLTitle"</span><span class="sc">;</span> +1690 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">MaxCmpdsPerTable</span>} == <span class="n">0</span> || <span class="i">$CmpdCount</span> <= <span class="i">$OptionsInfo</span>{<span class="w">MaxCmpdsPerTable</span>}<span class="s">)</span> <span class="s">{</span> +1691 <span class="i">$SDFilesInfo</span>{<span class="w">MultipleHTMLTables</span>}[<span class="i">$Index</span>] = <span class="n">0</span><span class="sc">;</span> +1692 <span class="s">}</span> +1693 <span class="k">else</span> <span class="s">{</span> +1694 <span class="i">$SDFilesInfo</span>{<span class="w">MultipleHTMLTables</span>}[<span class="i">$Index</span>] = <span class="n">1</span><span class="sc">;</span> +1695 <span class="s">}</span> +1696 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">SpecifiedDataFields</span>} =~ <span class="q">/^All$/i</span> <span class="s">)</span> <span class="s">{</span> +1697 <span class="k">push</span> <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">SpecifiedDataFieldLabels</span>}[<span class="i">$Index</span>]}<span class="cm">,</span> <span class="i">@DataFieldLabels</span><span class="sc">;</span> +1698 <span class="s">}</span> +1699 <span class="k">elsif</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">SpecifiedDataFields</span>} =~ <span class="q">/^Common$/i</span><span class="s">)</span> <span class="s">{</span> +1700 <span class="k">push</span> <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">SpecifiedDataFieldLabels</span>}[<span class="i">$Index</span>]}<span class="cm">,</span> <span class="i">@CommonDataFieldLabels</span><span class="sc">;</span> +1701 <span class="s">}</span> +1702 <span class="k">else</span> <span class="s">{</span> +1703 <span class="k">push</span> <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">SpecifiedDataFieldLabels</span>}[<span class="i">$Index</span>]}<span class="cm">,</span> <span class="k">split</span><span class="s">(</span><span class="q">","</span><span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">SpecifiedDataFields</span>}<span class="s">)</span><span class="sc">;</span> +1704 <span class="s">}</span> +1705 +1706 <span class="c"># Setup HTML data directories paths...</span> +1707 <span class="i">$TopHTMLDir</span> = <span class="k">lc</span><span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>]<span class="s">)</span> . <span class="q">"-html"</span><span class="sc">;</span> +1708 <span class="i">$SDFilesInfo</span>{<span class="w">TopHTMLDir</span>}[<span class="i">$Index</span>] = <span class="q">"$TopHTMLDir"</span><span class="sc">;</span> +1709 <span class="i">$SDFilesInfo</span>{<span class="w">SubHTMLDir</span>}[<span class="i">$Index</span>] = <span class="q">"$TopHTMLDir\/html"</span><span class="sc">;</span> +1710 <span class="i">$SDFilesInfo</span>{<span class="w">SubMolDir</span>}[<span class="i">$Index</span>] = <span class="q">"$TopHTMLDir\/mol"</span><span class="sc">;</span> +1711 <span class="s">}</span> +1712 <span class="s">}</span> +1713 +1714 <span class="c"># Setup information...</span> +<a name="SetupMultipleTablesAndMiscInfo-"></a>1715 <span class="k">sub </span><span class="m">SetupMultipleTablesAndMiscInfo</span> <span class="s">{</span> +1716 <span class="i">SetupMultipleTablesInfo</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1717 <span class="i">SetupMiscInfo</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1718 <span class="s">}</span> +1719 +1720 <span class="c"># Setup navigation link information for multiple tables...</span> +<a name="SetupMultipleTablesInfo-"></a>1721 <span class="k">sub </span><span class="m">SetupMultipleTablesInfo</span> <span class="s">{</span> +1722 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="cm">,</span> <span class="i">$LinesPerTable</span><span class="s">)</span><span class="sc">;</span> +1723 +1724 <span class="i">$LinesPerTable</span> = <span class="i">$OptionsInfo</span>{<span class="w">MaxCmpdsPerTable</span>}<span class="sc">;</span> +1725 +1726 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableCount</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1727 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableHTMLFiles</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1728 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableStartCmpdNum</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1729 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1730 +1731 <span class="k">for</span> <span class="i">$Index</span> <span class="s">(</span><span class="n">0</span> .. <span class="i">$#SDFilesList</span><span class="s">)</span> <span class="s">{</span> +1732 <span class="i">$SDFilesInfo</span>{<span class="w">TableCount</span>}[<span class="i">$Index</span>] = <span class="n">1</span><span class="sc">;</span> +1733 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableHTMLFiles</span>}[<span class="i">$Index</span>]} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1734 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableStartCmpdNum</span>}[<span class="i">$Index</span>]} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1735 <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}[<span class="i">$Index</span>]} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1736 +1737 <span class="k">if</span> <span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">FileOkay</span>}[<span class="i">$Index</span>]<span class="s">)</span> <span class="s">{</span> +1738 <span class="k">if</span> <span class="s">(</span><span class="i">$SDFilesInfo</span>{<span class="w">MultipleHTMLTables</span>}[<span class="i">$Index</span>]<span class="s">)</span> <span class="s">{</span> +1739 <span class="k">my</span><span class="s">(</span><span class="i">$TableIndex</span><span class="cm">,</span> <span class="i">$TotalLines</span><span class="cm">,</span> <span class="i">$TableCount</span><span class="cm">,</span> <span class="i">$TableStartLineNum</span><span class="cm">,</span> <span class="i">$TableEndLineNum</span><span class="cm">,</span> <span class="i">$Name</span><span class="s">)</span><span class="sc">;</span> +1740 +1741 <span class="i">$TotalLines</span> = <span class="i">$SDFilesInfo</span>{<span class="w">CmpdCount</span>}[<span class="i">$Index</span>]<span class="sc">;</span> +1742 <span class="i">$TableCount</span> = <span class="s">(</span><span class="i">$TotalLines</span> % <span class="i">$LinesPerTable</span><span class="s">)</span> ? <span class="s">(</span><span class="k">int</span><span class="s">(</span><span class="i">$TotalLines</span>/<span class="i">$LinesPerTable</span><span class="s">)</span> + <span class="n">1</span><span class="s">)</span> <span class="co">:</span> <span class="s">(</span><span class="i">$TotalLines</span>/<span class="i">$LinesPerTable</span><span class="s">)</span><span class="sc">;</span> +1743 <span class="i">$SDFilesInfo</span>{<span class="w">TableCount</span>}[<span class="i">$Index</span>] = <span class="i">$TableCount</span><span class="sc">;</span> +1744 <span class="k">for</span> <span class="i">$TableIndex</span> <span class="s">(</span><span class="n">1</span> .. <span class="i">$TableCount</span><span class="s">)</span> <span class="s">{</span> +1745 <span class="i">$TableStartLineNum</span> = <span class="s">(</span><span class="i">$TableIndex</span> - <span class="n">1</span><span class="s">)</span> * <span class="i">$LinesPerTable</span> + <span class="n">1</span><span class="sc">;</span> +1746 <span class="i">$TableEndLineNum</span> = <span class="s">(</span><span class="i">$TableIndex</span> == <span class="i">$TableCount</span><span class="s">)</span> ? <span class="i">$TotalLines</span> <span class="co">:</span> <span class="s">(</span><span class="i">$TableIndex</span> * <span class="i">$LinesPerTable</span><span class="s">)</span><span class="sc">;</span> +1747 <span class="k">push</span> <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableStartCmpdNum</span>}[<span class="i">$Index</span>]}<span class="cm">,</span> <span class="i">$TableStartLineNum</span><span class="sc">;</span> +1748 <span class="k">push</span> <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableEndCmpdNum</span>}[<span class="i">$Index</span>]}<span class="cm">,</span> <span class="i">$TableEndLineNum</span><span class="sc">;</span> +1749 +1750 <span class="c"># Setup HTML file names for all the tables...</span> +1751 <span class="i">$Name</span> = <span class="q">"Cmpd"</span> . <span class="q">"$TableStartLineNum"</span> . <span class="q">"To"</span> . <span class="q">"$TableEndLineNum"</span><span class="sc">;</span> +1752 <span class="k">if</span> <span class="s">(</span><span class="i">$TableIndex</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span> +1753 <span class="i">$Name</span> = <span class="q">""</span><span class="sc">;</span> +1754 <span class="s">}</span> +1755 <span class="i">$Name</span> = <span class="i">$SDFilesInfo</span>{<span class="w">HTMLRoot</span>}[<span class="i">$Index</span>] . <span class="i">$Name</span> . <span class="q">".html"</span><span class="sc">;</span> +1756 <span class="k">push</span> <span class="i">@</span>{<span class="i">$SDFilesInfo</span>{<span class="w">TableHTMLFiles</span>}[<span class="i">$Index</span>]}<span class="cm">,</span> <span class="i">$Name</span><span class="sc">;</span> +1757 <span class="s">}</span> +1758 <span class="c">#print "$SDFilesList[$Index]: $TableCount - @{$SDFilesInfo{TableStartCmpdNum}[$Index]} - @{$SDFilesInfo{TableEndCmpdNum}[$Index]} - @{$SDFilesInfo{TableHTMLFiles}[$Index]}\n";</span> +1759 <span class="s">}</span> +1760 <span class="s">}</span> +1761 <span class="s">}</span> +1762 <span class="s">}</span> +1763 +1764 <span class="c"># Setup HTML tags and other information...</span> +<a name="SetupMiscInfo-"></a>1765 <span class="k">sub </span><span class="m">SetupMiscInfo</span> <span class="s">{</span> +1766 <span class="i">$SDFilesInfo</span>{<span class="w">RowHeaderTags</span>} = <span class="q">""</span><span class="sc">;</span> +1767 <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>} = <span class="q">""</span><span class="sc">;</span> +1768 <span class="i">$SDFilesInfo</span>{<span class="w">BgFilledOddRowHeaderTags</span>} = <span class="q">""</span><span class="sc">;</span> +1769 <span class="i">$SDFilesInfo</span>{<span class="w">BgFilledEvenRowHeaderTags</span>} = <span class="q">""</span><span class="sc">;</span> +1770 <span class="i">$SDFilesInfo</span>{<span class="w">TableRowHeaderTags</span>} = <span class="q">""</span><span class="sc">;</span> +1771 +1772 <span class="i">$SDFilesInfo</span>{<span class="w">RowHeaderTags</span>} = <span class="i">SetupHTMLTableRowHeader</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">RowHAlignment</span>}<span class="cm">,</span> <span class="q">""</span><span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">RowVAlignment</span>}<span class="s">)</span><span class="sc">;</span> +1773 <span class="i">$SDFilesInfo</span>{<span class="w">RowEndTags</span>} = <span class="i">SetupHTMLTableRowEnd</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1774 +1775 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">ShadeRowsStatus</span>}<span class="s">)</span> <span class="s">{</span> +1776 <span class="i">$SDFilesInfo</span>{<span class="w">BgFilledOddRowHeaderTags</span>} = <span class="i">SetupHTMLTableRowHeader</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">RowHAlignment</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">OddRowsShadeColor</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">RowVAlignment</span>}<span class="s">)</span><span class="sc">;</span> +1777 <span class="i">$SDFilesInfo</span>{<span class="w">BgFilledEvenRowHeaderTags</span>} = <span class="i">SetupHTMLTableRowHeader</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">RowHAlignment</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">EvenRowsShadeColor</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">RowVAlignment</span>}<span class="s">)</span><span class="sc">;</span> +1778 <span class="s">}</span> +1779 +1780 <span class="i">$SDFilesInfo</span>{<span class="w">TableRowHeaderTags</span>} = <span class="i">SetupHTMLTableRowHeader</span><span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowHAlignment</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowColor</span>}<span class="cm">,</span> <span class="i">$OptionsInfo</span>{<span class="w">TableHeaderRowVAlignment</span>}<span class="s">)</span><span class="sc">;</span> +1781 +1782 <span class="i">$SDFilesInfo</span>{<span class="w">MolEndTag</span>} = <span class="q">"M END"</span><span class="sc">;</span> +1783 <span class="i">$SDFilesInfo</span>{<span class="w">White</span>} = <span class="q">qq(#ffffff)</span><span class="sc">;</span> +1784 <span class="s">}</span> +1785 +1786 <span class="c"># Setup various data directories to hold HTML and other related files...</span> +<a name="SetupDataDirs-"></a>1787 <span class="k">sub </span><span class="m">SetupDataDirs</span> <span class="s">{</span> +1788 <span class="k">my</span><span class="s">(</span><span class="i">$Index</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> +1789 <span class="k">my</span><span class="s">(</span><span class="i">$TopHTMLDir</span><span class="cm">,</span> <span class="i">$SubHTMLDir</span><span class="cm">,</span> <span class="i">$SubMolDir</span><span class="cm">,</span> <span class="i">$CreateTopHTMLDir</span><span class="cm">,</span> <span class="i">$CreateSubHTMLDir</span><span class="cm">,</span> <span class="i">$CreateSubMolDir</span><span class="s">)</span><span class="sc">;</span> +1790 +1791 <span class="i">$TopHTMLDir</span> = <span class="i">$SDFilesInfo</span>{<span class="w">TopHTMLDir</span>}[<span class="i">$Index</span>]<span class="sc">;</span> +1792 <span class="i">$SubHTMLDir</span> = <span class="i">$SDFilesInfo</span>{<span class="w">SubHTMLDir</span>}[<span class="i">$Index</span>]<span class="sc">;</span> +1793 <span class="i">$SubMolDir</span> = <span class="i">$SDFilesInfo</span>{<span class="w">SubMolDir</span>}[<span class="i">$Index</span>]<span class="sc">;</span> +1794 +1795 <span class="c"># Clean up existing directories...</span> +1796 <span class="k">if</span> <span class="s">(</span><span class="k">-d</span> <span class="i">$TopHTMLDir</span><span class="s">)</span> <span class="s">{</span> +1797 <span class="k">unlink</span> <span class="q">"<$TopHTMLDir/*.html>"</span><span class="sc">;</span> +1798 <span class="k">unlink</span> <span class="q">"<$TopHTMLDir/*.css>"</span><span class="sc">;</span> +1799 <span class="s">}</span> +1800 <span class="k">if</span> <span class="s">(</span><span class="k">-d</span> <span class="i">$SubHTMLDir</span><span class="s">)</span> <span class="s">{</span> +1801 <span class="k">unlink</span> <span class="q">"<$SubHTMLDir/*.html>"</span><span class="sc">;</span> +1802 <span class="s">}</span> +1803 <span class="k">if</span> <span class="s">(</span><span class="k">-d</span> <span class="i">$SubMolDir</span><span class="s">)</span> <span class="s">{</span> +1804 <span class="k">unlink</span> <span class="q">"<$SubMolDir/*.mol>"</span><span class="sc">;</span> +1805 <span class="s">}</span> +1806 +1807 <span class="c"># What directories need to be created...</span> +1808 <span class="i">$CreateTopHTMLDir</span> = <span class="s">(</span><span class="k">-d</span> <span class="i">$TopHTMLDir</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> +1809 <span class="i">$CreateSubHTMLDir</span> = <span class="s">(</span><span class="k">-d</span> <span class="i">$SubHTMLDir</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> +1810 <span class="i">$CreateSubMolDir</span> = <span class="n">0</span><span class="sc">;</span> +1811 <span class="k">if</span> <span class="s">(</span><span class="i">$OptionsInfo</span>{<span class="w">StrViewerType</span>} =~ <span class="q">/^(Jmol|Chime|Chem3DActiveX|ChemDrawActiveX|ChemDrawPlugIn|ViewerActiveX)$/i</span><span class="s">)</span> <span class="s">{</span> +1812 <span class="i">$CreateSubMolDir</span> = <span class="s">(</span><span class="k">-d</span> <span class="i">$SubMolDir</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> +1813 <span class="s">}</span> +1814 +1815 <span class="c"># Create appropriate directories...</span> +1816 <span class="k">if</span> <span class="s">(</span><span class="i">$CreateTopHTMLDir</span><span class="s">)</span> <span class="s">{</span> +1817 <span class="k">mkdir</span> <span class="i">$TopHTMLDir</span> <span class="k">or</span> <span class="k">die</span> <span class="q">"Couldn't mkdir $TopHTMLDir: $! \n"</span><span class="sc">;</span> +1818 <span class="s">}</span> +1819 <span class="k">if</span> <span class="s">(</span><span class="i">$CreateSubHTMLDir</span><span class="s">)</span> <span class="s">{</span> +1820 <span class="k">mkdir</span> <span class="i">$SubHTMLDir</span> <span class="k">or</span> <span class="k">die</span> <span class="q">"Error: Couldn't mkdir $SubHTMLDir: $! \n"</span><span class="sc">;</span> +1821 <span class="s">}</span> +1822 <span class="k">else</span> <span class="s">{</span> +1823 <span class="k">unlink</span> <span class="q"><$SubHTMLDir/*.html></span><span class="sc">;</span> +1824 <span class="s">}</span> +1825 <span class="k">if</span> <span class="s">(</span><span class="i">$CreateSubMolDir</span><span class="s">)</span> <span class="s">{</span> +1826 <span class="k">mkdir</span> <span class="i">$SubMolDir</span> <span class="k">or</span> <span class="k">die</span> <span class="q">"Error: Couldn't mkdir $SubMolDir: $! \n"</span><span class="sc">;</span> +1827 <span class="s">}</span> +1828 <span class="k">return</span> <span class="s">(</span><span class="i">$TopHTMLDir</span><span class="cm">,</span> <span class="i">$SubHTMLDir</span><span class="cm">,</span> <span class="i">$SubMolDir</span><span class="s">)</span><span class="sc">;</span> +1829 <span class="s">}</span> +1830 +1831 <span class="c"># Setup script usage and retrieve command line arguments specified using various options...</span> +<a name="SetupScriptUsage-"></a>1832 <span class="k">sub </span><span class="m">SetupScriptUsage</span> <span class="s">{</span> +1833 +1834 <span class="c"># Retrieve all the options...</span> +1835 <span class="i">%Options</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> +1836 +1837 <span class="i">$Options</span>{<span class="w">mode</span>} = <span class="q">"shade"</span><span class="sc">;</span> +1838 <span class="i">$Options</span>{<span class="w">highlightstyle</span>} = <span class="q">"background"</span><span class="sc">;</span> +1839 +1840 <span class="i">$Options</span>{<span class="w">cellpadding</span>} = <span class="n">2</span><span class="sc">;</span> +1841 <span class="i">$Options</span>{<span class="w">cellspacing</span>} = <span class="n">1</span><span class="sc">;</span> +1842 +1843 <span class="i">$Options</span>{<span class="w">displaylinks</span>} = <span class="q">"both"</span><span class="sc">;</span> +1844 <span class="i">$Options</span>{<span class="w">displaylinksinfo</span>} = <span class="q">"both"</span><span class="sc">;</span> +1845 <span class="i">$Options</span>{<span class="w">stylesheet</span>} = <span class="q">"new"</span><span class="sc">;</span> +1846 +1847 <span class="i">$Options</span>{<span class="w">structure</span>} = <span class="q">"display"</span><span class="sc">;</span> +1848 <span class="i">$Options</span>{<span class="w">strlinktype</span>} = <span class="q">"href"</span><span class="sc">;</span> +1849 <span class="i">$Options</span>{<span class="w">strlinkmode</span>} = <span class="q">"plain"</span><span class="sc">;</span> +1850 <span class="i">$Options</span>{<span class="w">strlinknavigation</span>} = <span class="q">"yes"</span><span class="sc">;</span> +1851 <span class="i">$Options</span>{<span class="w">strlinktitledisplay</span>} = <span class="q">"no"</span><span class="sc">;</span> +1852 +1853 <span class="i">$Options</span>{<span class="w">strviewertype</span>} = <span class="q">"Jmol"</span><span class="sc">;</span> +1854 <span class="i">$Options</span>{<span class="w">strviewerembed</span>} = <span class="q">"direct"</span><span class="sc">;</span> +1855 +1856 <span class="i">$Options</span>{<span class="w">titledisplay</span>} = <span class="q">"yes"</span><span class="sc">;</span> +1857 +1858 <span class="k">if</span> <span class="s">(</span>!<span class="i">GetOptions</span><span class="s">(</span>\<span class="i">%Options</span><span class="cm">,</span> <span class="q">"align|a=s"</span><span class="cm">,</span> <span class="q">"border|b=i"</span><span class="cm">,</span> <span class="q">"cellpadding=i"</span><span class="cm">,</span> <span class="q">"cellspacing=i"</span><span class="cm">,</span> <span class="q">"cmpddatafield|c=s"</span><span class="cm">,</span> <span class="q">"datafields=s"</span><span class="cm">,</span> <span class="q">"footer=s"</span><span class="cm">,</span> <span class="q">"displaylinks|d=s"</span><span class="cm">,</span> <span class="q">"displaylinksinfo=s"</span><span class="cm">,</span> <span class="q">"help|h"</span><span class="cm">,</span> <span class="q">"headeralign=s"</span><span class="cm">,</span> <span class="q">"headercolor=s"</span><span class="cm">,</span> <span class="q">"highlight=s"</span><span class="cm">,</span> <span class="q">"highlightcolor=s"</span><span class="cm">,</span> <span class="q">"highlightstyle=s"</span><span class="cm">,</span> <span class="q">"mode|m=s"</span><span class="cm">,</span> <span class="q">"numcmpds|n=i"</span><span class="cm">,</span> <span class="q">"overwrite|o"</span><span class="cm">,</span> <span class="q">"root|r=s"</span><span class="cm">,</span> <span class="q">"shadecolor=s"</span><span class="cm">,</span> <span class="q">"stylesheet=s"</span><span class="cm">,</span> <span class="q">"stylesheetname=s"</span><span class="cm">,</span> <span class="q">"structure|s=s"</span><span class="cm">,</span> <span class="q">"strlinkmode=s"</span><span class="cm">,</span> <span class="q">"strlinknavigation=s"</span><span class="cm">,</span> <span class="q">"strlinkshadecolor=s"</span><span class="cm">,</span> <span class="q">"strlinktitle=s"</span><span class="cm">,</span> <span class="q">"strlinktitledisplay=s"</span><span class="cm">,</span> <span class="q">"strlinktype=s"</span><span class="cm">,</span> <span class="q">"strviewertype=s"</span><span class="cm">,</span> <span class="q">"strviewerconfig=s"</span><span class="cm">,</span> <span class="q">"strviewerparams=s"</span><span class="cm">,</span> <span class="q">"strviewerembed=s"</span><span class="cm">,</span> <span class="q">"strviewerjsfile=s"</span><span class="cm">,</span> <span class="q">"strtablesize=s"</span><span class="cm">,</span> <span class="q">"title|t=s"</span><span class="cm">,</span> <span class="q">"titledisplay=s"</span><span class="cm">,</span> <span class="q">"workingdir|w=s"</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1859 <span class="k">die</span> <span class="q">"\nTo get a list of valid options and their values, use \"$ScriptName -h\" or\n\"perl -S $ScriptName -h\" command and try again...\n"</span><span class="sc">;</span> +1860 <span class="s">}</span> +1861 +1862 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">workingdir</span>}<span class="s">)</span> <span class="s">{</span> +1863 <span class="k">if</span> <span class="s">(</span>! <span class="k">-d</span> <span class="i">$Options</span>{<span class="w">workingdir</span>}<span class="s">)</span> <span class="s">{</span> +1864 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{workingdir}, for option \"-w --workingdir\" is not a directory name.\n"</span><span class="sc">;</span> +1865 <span class="s">}</span> +1866 <span class="k">chdir</span> <span class="i">$Options</span>{<span class="w">workingdir</span>} <span class="k">or</span> <span class="k">die</span> <span class="q">"Error: Couldn't chdir $Options{workingdir}: $! \n"</span><span class="sc">;</span> +1867 <span class="s">}</span> +1868 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">displaylinks</span>} !~ <span class="q">/^(top|bottom|both)$/i</span><span class="s">)</span> <span class="s">{</span> +1869 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{displaylinks}, for option \"-d --displaylinks\" is not valid. Allowed values: top, bottom, or both\n"</span><span class="sc">;</span> +1870 <span class="s">}</span> +1871 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">displaylinksinfo</span>} !~ <span class="q">/^(compound|table|both)$/i</span><span class="s">)</span> <span class="s">{</span> +1872 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{displaylinksinfo}, for option \"--displaylinksinfo\" is not valid. Allowed values: compound, table, or both\n"</span><span class="sc">;</span> +1873 <span class="s">}</span> +1874 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">highlightstyle</span>} !~ <span class="q">/^(background|text)$/i</span><span class="s">)</span> <span class="s">{</span> +1875 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{highlightstyle}, for option \"--highlightstyle\" is not valid. Allowed values: background or text\n"</span><span class="sc">;</span> +1876 <span class="s">}</span> +1877 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">mode</span>} !~ <span class="q">/^(plain|shade|highlight|shadedhighlight|structuresonly|shadedstructuresonly)$/i</span><span class="s">)</span> <span class="s">{</span> +1878 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{mode}, for option \"-m --mode\" is not valid. Allowed values: plain, shade, hightlight, shadedhighlight, structuresonly, or shadedstructuresonly\n"</span><span class="sc">;</span> +1879 <span class="s">}</span> +1880 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">stylesheet</span>} !~ <span class="q">/^(old|new|none)$/i</span><span class="s">)</span> <span class="s">{</span> +1881 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{stylesheet}, for option \"-s --stylesheet\" is not valid. Allowed values: old, new, or none\n"</span><span class="sc">;</span> +1882 <span class="s">}</span> +1883 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">structure</span>} !~ <span class="q">/^(display|link)$/i</span><span class="s">)</span> <span class="s">{</span> +1884 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{structure}, for option \"-s --structure\" is not valid. Allowed values: display or link\n"</span><span class="sc">;</span> +1885 <span class="s">}</span> +1886 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strlinkmode</span>} !~ <span class="q">/^(plain|shade)$/i</span><span class="s">)</span> <span class="s">{</span> +1887 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{strlinkmode}, for option \"--strlinkmode\" is not valid. Allowed values: plain or shade\n"</span><span class="sc">;</span> +1888 <span class="s">}</span> +1889 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strlinktype</span>} !~ <span class="q">/^(href|button)$/i</span><span class="s">)</span> <span class="s">{</span> +1890 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{strlinktype}, for option \"--strlinktype\" is not valid. Allowed values: href or button\n"</span><span class="sc">;</span> +1891 <span class="s">}</span> +1892 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strlinknavigation</span>} !~ <span class="q">/^(yes|no)$/i</span><span class="s">)</span> <span class="s">{</span> +1893 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{strlinknavigation}, for option \"--strlinknavigation\" is not valid. Allowed values: yes or no\n"</span><span class="sc">;</span> +1894 <span class="s">}</span> +1895 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strlinktitledisplay</span>} !~ <span class="q">/^(yes|no)$/i</span><span class="s">)</span> <span class="s">{</span> +1896 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{strlinktitledisplay}, for option \"--strlinktitledisplay\" is not valid. Allowed values: yes or no\n"</span><span class="sc">;</span> +1897 <span class="s">}</span> +1898 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strviewertype</span>} !~ <span class="q">/^(JME|Jmol|Chime|MarvinView|ChemDrawPlugIn|Chem3DActiveX|ChemDrawActiveX|ViewerActiveX)$/i</span><span class="s">)</span> <span class="s">{</span> +1899 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{strviewertype}, for option \"--strviewertype\" is not valid. Allowed values: Chem3DActiveX, ChemDrawActiveX, ChemDrawPlugIn, Chime, JME, Jmol, MarvinView, or ViewerActiveX.\n"</span><span class="sc">;</span> +1900 <span class="s">}</span> +1901 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">strviewerembed</span>} !~ <span class="q">/^(direct|javascript)$/i</span><span class="s">)</span> <span class="s">{</span> +1902 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{strviewerembed}, for option \"--strviewerembed\" is not valid. Allowed values: direct or javascript \n"</span><span class="sc">;</span> +1903 <span class="s">}</span> +1904 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$Options</span>{<span class="w">numcmpds</span>} && <span class="i">$Options</span>{<span class="w">numcmpds</span>} < <span class="n">0</span><span class="s">)</span> <span class="s">{</span> +1905 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{numcmpds}, for option \"-n --numcmpds\" is not valid. Allowed values: >= 0 \n"</span><span class="sc">;</span> +1906 <span class="s">}</span> +1907 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">titledisplay</span>} !~ <span class="q">/^(yes|no)$/i</span><span class="s">)</span> <span class="s">{</span> +1908 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{titledisplay}, for option \"--titledisplay\" is not valid. Allowed values: yes or no\n"</span><span class="sc">;</span> +1909 <span class="s">}</span> +1910 <span class="k">if</span> <span class="s">(</span><span class="k">exists</span><span class="s">(</span><span class="i">$Options</span>{<span class="w">border</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span> +1911 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">border</span>} < <span class="n">0</span><span class="s">)</span> <span class="s">{</span> +1912 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{border}, for option \"--border\" is not valid. Allowed values: >= 0 \n"</span><span class="sc">;</span> +1913 <span class="s">}</span> +1914 <span class="s">}</span> +1915 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">cellpadding</span>} < <span class="n">0</span><span class="s">)</span> <span class="s">{</span> +1916 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{cellpadding}, for option \"--cellpadding\" is not valid. Allowed values: >= 0 \n"</span><span class="sc">;</span> +1917 <span class="s">}</span> +1918 <span class="k">if</span> <span class="s">(</span><span class="i">$Options</span>{<span class="w">cellspacing</span>} < <span class="n">0</span><span class="s">)</span> <span class="s">{</span> +1919 <span class="k">die</span> <span class="q">"Error: The value specified, $Options{cellspacing}, for option \"--cellspacing\" is not valid. Allowed values: >= 0 \n"</span><span class="sc">;</span> +1920 <span class="s">}</span> +1921 <span class="s">}</span> +1922 +<a name="EOF-"></a></pre> +<p> </p> +<br /> +<center> +<img src="../../../images/h2o2.png"> +</center> +</body> +</html>