diff docs/modules/html/code/HTMLUtil.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/modules/html/code/HTMLUtil.html	Wed Jan 20 09:23:18 2016 -0500
@@ -0,0 +1,1069 @@
+<html>
+<head>
+<title>MayaChemTools:Code:HTMLUtil.pm</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>
+<a name="package-HTMLUtil-"></a>   1 <span class="k">package </span><span class="i">HTMLUtil</span><span class="sc">;</span>
+   2 <span class="c">#</span>
+   3 <span class="c"># $RCSfile: HTMLUtil.pm,v $</span>
+   4 <span class="c"># $Date: 2015/02/28 20:47:17 $</span>
+   5 <span class="c"># $Revision: 1.42 $</span>
+   6 <span class="c">#</span>
+   7 <span class="c"># Author: Manish Sud &lt;msud@san.rr.com&gt;</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 &lt;http://www.gnu.org/licenses/&gt; 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">Exporter</span><span class="sc">;</span>
+  31 
+  32 <span class="k">use</span> <span class="w">vars</span> <span class="q">qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS)</span><span class="sc">;</span>
+  33 
+  34 <span class="i">@ISA</span> = <span class="q">qw(Exporter)</span><span class="sc">;</span>
+  35 <span class="i">@EXPORT</span> = <span class="q">qw(InsertHTMLTags SetupHTMLAlignmentBegin SetupHTMLAlignmentEnd SetupHTMLButtonRef SetupHTMLDivBegin SetupHTMLDivEnd SetupHTMLEmptyLines SetupHTMLPageHeader SetupHTMLHRef SetupHTMLPageEnd SetupHTMLPageTitle SetupHTMLStyleSheetTags SetupHTMLTableHeader SetupHTMLTableEnd SetupHTMLTableColumnHeader SetupHTMLTableColumnEnd SetupHTMLTableRowHeader SetupHTMLTableRowEnd SetupHTMLTableRowHeaderValue SetupHTMLTableRowDataValue SetupJavaScriptCmds SetupStrViewerJSInitCmd SetupStrViewerJMEApplet SetupStrViewerJmolApplet SetupStrViewerChimePlugIn SetupStrViewerChem3DActiveX SetupStrViewerChemDrawActiveX SetupStrViewerChemDrawPlugIn SetupStrViewerMarvinViewApplet SetupStrViewerAccelrysActiveX)</span><span class="sc">;</span>
+  36 <span class="i">@EXPORT_OK</span> = <span class="q">qw()</span><span class="sc">;</span>
+  37 
+  38 <span class="i">%EXPORT_TAGS</span> = <span class="s">(</span><span class="w">all</span>  <span class="cm">=&gt;</span> <span class="s">[</span><span class="i">@EXPORT</span><span class="cm">,</span> <span class="i">@EXPORT_OK</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+  39 
+  40 <span class="c"># Default window size for various supported structure viewers...</span>
+  41 <span class="k">my</span><span class="s">(</span><span class="i">$StrViewerWidth</span><span class="cm">,</span> <span class="i">$StrViewerHeight</span><span class="s">)</span> = <span class="s">(</span><span class="n">250</span><span class="cm">,</span> <span class="n">170</span><span class="s">)</span><span class="sc">;</span>
+  42 
+  43 <span class="c"># Insert specfied tags into existing tag string...</span>
+<a name="InsertHTMLTags-"></a>  44 <span class="k">sub </span><span class="m">InsertHTMLTags</span> <span class="s">{</span>
+  45   <span class="k">my</span><span class="s">(</span><span class="i">$Tag</span><span class="cm">,</span> <span class="i">%TagsMap</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+  46   <span class="k">my</span><span class="s">(</span><span class="i">$NewTag</span><span class="cm">,</span> <span class="i">$TagName</span><span class="cm">,</span> <span class="i">$TagValue</span><span class="cm">,</span> <span class="i">$TagPart1</span><span class="cm">,</span> <span class="i">$TagPart2</span><span class="s">)</span><span class="sc">;</span>
+  47 
+  48   <span class="i">$NewTag</span> = <span class="i">$Tag</span><span class="sc">;</span> <span class="i">$TagPart1</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$TagPart2</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+  49   <span class="s">(</span><span class="i">$TagPart1</span><span class="s">)</span> = <span class="i">$Tag</span> =~ <span class="q">/^(.*?)&gt;/</span><span class="sc">;</span>
+  50 
+  51   <span class="k">if</span> <span class="s">(</span><span class="i">$TagPart1</span> &amp;&amp; <span class="k">length</span><span class="s">(</span><span class="i">$TagPart1</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+  52     <span class="i">$TagPart2</span> = <span class="i">$Tag</span><span class="sc">;</span>
+  53     <span class="i">$TagPart2</span> =~ <span class="q">s/^(.*?)&gt;//</span><span class="sc">;</span>
+  54     <span class="k">if</span> <span class="s">(</span><span class="i">$TagPart2</span> &amp;&amp; <span class="k">length</span><span class="s">(</span><span class="i">$TagPart2</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+  55       <span class="k">for</span> <span class="i">$TagName</span> <span class="s">(</span><span class="k">keys</span> <span class="i">%TagsMap</span><span class="s">)</span> <span class="s">{</span>
+  56         <span class="i">$TagValue</span> = <span class="i">$TagsMap</span>{<span class="i">$TagName</span>}<span class="sc">;</span>
+  57         <span class="i">$TagPart1</span> .= <span class="q">qq( $TagName=&quot;$TagValue&quot; )</span><span class="sc">;</span>
+  58       <span class="s">}</span>
+  59       <span class="i">$NewTag</span> = <span class="q">&quot;${TagPart1}&gt;${TagPart2}&quot;</span><span class="sc">;</span>
+  60     <span class="s">}</span>
+  61   <span class="s">}</span>
+  62 
+  63   <span class="k">return</span> <span class="i">$NewTag</span><span class="sc">;</span>
+  64 <span class="s">}</span>
+  65 
+<a name="SetupHTMLAlignmentBegin-"></a>  66 <span class="k">sub </span><span class="m">SetupHTMLAlignmentBegin</span> <span class="s">{</span>
+  67   <span class="k">my</span><span class="s">(</span><span class="i">$AlignmentTag</span><span class="cm">,</span> <span class="i">$Alignment</span><span class="s">)</span><span class="sc">;</span>
+  68 
+  69   <span class="i">$Alignment</span> = <span class="s">(</span><span class="i">@_</span> == <span class="n">1</span><span class="s">)</span> ? <span class="i">$_</span>[<span class="n">0</span>] <span class="co">:</span> <span class="q">&quot;left&quot;</span><span class="sc">;</span>
+  70   <span class="i">$AlignmentTag</span> = <span class="q">qq(&lt;$Alignment&gt;\n)</span><span class="sc">;</span>
+  71 
+  72   <span class="k">return</span> <span class="i">$AlignmentTag</span><span class="sc">;</span>
+  73 <span class="s">}</span>
+  74 
+<a name="SetupHTMLAlignmentEnd-"></a>  75 <span class="k">sub </span><span class="m">SetupHTMLAlignmentEnd</span> <span class="s">{</span>
+  76   <span class="k">my</span><span class="s">(</span><span class="i">$AlignmentTag</span><span class="cm">,</span> <span class="i">$Alignment</span><span class="s">)</span><span class="sc">;</span>
+  77 
+  78   <span class="i">$Alignment</span> = <span class="s">(</span><span class="i">@_</span> == <span class="n">1</span><span class="s">)</span> ? <span class="i">$_</span>[<span class="n">0</span>] <span class="co">:</span> <span class="q">&quot;left&quot;</span><span class="sc">;</span>
+  79   <span class="i">$AlignmentTag</span> = <span class="q">qq(&lt;/$Alignment&gt;\n)</span><span class="sc">;</span>
+  80 
+  81   <span class="k">return</span> <span class="i">$AlignmentTag</span><span class="sc">;</span>
+  82 <span class="s">}</span>
+  83 
+  84 <span class="c"># Setup a button reference...</span>
+<a name="SetupHTMLButtonRef-"></a>  85 <span class="k">sub </span><span class="m">SetupHTMLButtonRef</span> <span class="s">{</span>
+  86   <span class="k">my</span><span class="s">(</span><span class="i">$ButtonLabel</span><span class="cm">,</span> <span class="i">$RefFile</span><span class="cm">,</span> <span class="i">$ButtonTags</span><span class="s">)</span><span class="sc">;</span>
+  87 
+  88   <span class="s">(</span><span class="i">$ButtonLabel</span><span class="cm">,</span> <span class="i">$RefFile</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+  89 
+  90   <span class="i">$ButtonTags</span> = <span class="q">qq(&lt;input type=&quot;button&quot; value=&quot;$ButtonLabel&quot; onClick=&quot;document.location=&#39;$RefFile&#39;&quot;&gt;)</span><span class="sc">;</span>
+  91   <span class="k">return</span> <span class="i">$ButtonTags</span><span class="sc">;</span>
+  92 <span class="s">}</span>
+  93 
+<a name="SetupHTMLDivBegin-"></a>  94 <span class="k">sub </span><span class="m">SetupHTMLDivBegin</span> <span class="s">{</span>
+  95   <span class="k">my</span><span class="s">(</span><span class="i">$Id</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+  96   <span class="k">my</span><span class="s">(</span><span class="i">$DivTag</span><span class="s">)</span><span class="sc">;</span>
+  97 
+  98   <span class="i">$DivTag</span> = <span class="q">qq(&lt;div id=&quot;$Id&quot;&gt;\n)</span><span class="sc">;</span>
+  99 
+ 100   <span class="k">return</span> <span class="i">$DivTag</span><span class="sc">;</span>
+ 101 <span class="s">}</span>
+ 102 
+<a name="SetupHTMLDivEnd-"></a> 103 <span class="k">sub </span><span class="m">SetupHTMLDivEnd</span> <span class="s">{</span>
+ 104   <span class="k">my</span><span class="s">(</span><span class="i">$DivTag</span><span class="s">)</span><span class="sc">;</span>
+ 105 
+ 106   <span class="i">$DivTag</span> = <span class="q">qq(&lt;/div&gt;\n)</span><span class="sc">;</span>
+ 107 
+ 108   <span class="k">return</span> <span class="i">$DivTag</span><span class="sc">;</span>
+ 109 <span class="s">}</span>
+<a name="SetupHTMLEmptyLines-"></a> 110 <span class="k">sub </span><span class="m">SetupHTMLEmptyLines</span> <span class="s">{</span>
+ 111   <span class="k">my</span><span class="s">(</span><span class="i">$LineCount</span><span class="cm">,</span> <span class="i">$Index</span><span class="cm">,</span> <span class="i">$EmptyLineTags</span><span class="s">)</span><span class="sc">;</span>
+ 112 
+ 113   <span class="i">$LineCount</span> = <span class="n">1</span><span class="sc">;</span>
+ 114   <span class="i">$EmptyLineTags</span> = <span class="q">qq(&lt;p&gt;&amp;nbsp&lt;/p&gt;)</span><span class="sc">;</span>
+ 115   <span class="s">(</span><span class="i">$LineCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 116   <span class="k">if</span> <span class="s">(</span><span class="i">$LineCount</span> &gt; <span class="n">1</span><span class="s">)</span> <span class="s">{</span>
+ 117     <span class="k">for</span> <span class="i">$Index</span> <span class="s">(</span><span class="n">2</span> .. <span class="i">$LineCount</span><span class="s">)</span> <span class="s">{</span>
+ 118       <span class="i">$EmptyLineTags</span> .= <span class="q">qq(&lt;p&gt;&amp;nbsp&lt;/p&gt;)</span><span class="sc">;</span>
+ 119     <span class="s">}</span>
+ 120   <span class="s">}</span>
+ 121   <span class="k">return</span> <span class="i">$EmptyLineTags</span><span class="sc">;</span>
+ 122 <span class="s">}</span>
+ 123 
+ 124 <span class="c"># Setup HTML page header...</span>
+<a name="SetupHTMLPageHeader-"></a> 125 <span class="k">sub </span><span class="m">SetupHTMLPageHeader</span> <span class="s">{</span>
+ 126   <span class="k">my</span><span class="s">(</span><span class="i">$HeaderTitle</span><span class="cm">,</span> <span class="i">$Stylesheet</span><span class="cm">,</span> <span class="i">$JavaScript</span><span class="cm">,</span> <span class="i">$PageHeader</span><span class="s">)</span><span class="sc">;</span>
+ 127 
+ 128   <span class="i">$HeaderTitle</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>  <span class="i">$Stylesheet</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$JavaScript</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 129   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">3</span><span class="s">)</span> <span class="s">{</span>
+ 130     <span class="s">(</span><span class="i">$HeaderTitle</span><span class="cm">,</span> <span class="i">$Stylesheet</span><span class="cm">,</span> <span class="i">$JavaScript</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 131   <span class="s">}</span>
+ 132   <span class="k">elsif</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+ 133     <span class="s">(</span><span class="i">$HeaderTitle</span><span class="cm">,</span> <span class="i">$Stylesheet</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 134   <span class="s">}</span>
+ 135   <span class="k">else</span> <span class="s">{</span>
+ 136     <span class="s">(</span><span class="i">$HeaderTitle</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 137   <span class="s">}</span>
+ 138   <span class="i">$PageHeader</span> = <span class="q">qq(&lt;html&gt;\n)</span><span class="sc">;</span>
+ 139   <span class="i">$PageHeader</span> .= <span class="q">qq(&lt;head&gt;\n)</span><span class="sc">;</span>
+ 140   <span class="i">$PageHeader</span> .= <span class="q">qq(&lt;title&gt;$HeaderTitle&lt;/title&gt;\n)</span><span class="sc">;</span>
+ 141   <span class="i">$PageHeader</span> .= <span class="q">qq(&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html;charset=utf-8&quot;&gt;\n)</span><span class="sc">;</span>
+ 142   <span class="k">if</span> <span class="s">(</span><span class="i">$Stylesheet</span><span class="s">)</span> <span class="s">{</span>
+ 143     <span class="i">$PageHeader</span> .= <span class="q">qq(&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;$Stylesheet&quot;&gt;\n)</span><span class="sc">;</span>
+ 144   <span class="s">}</span>
+ 145   <span class="k">if</span> <span class="s">(</span><span class="i">$JavaScript</span><span class="s">)</span> <span class="s">{</span>
+ 146     <span class="i">$PageHeader</span> .= <span class="q">qq(&lt;script src=&quot;$JavaScript&quot;&gt;&lt;/script&gt;\n)</span><span class="sc">;</span>
+ 147   <span class="s">}</span>
+ 148   <span class="i">$PageHeader</span> .= <span class="h">&lt;&lt;ENDPAGEHEADER</span><span class="sc">;</span>
+ 149 <span class="hh">&lt;/head&gt;</span>
+ 150 <span class="hh">&lt;body&gt;</span>
+ 151 <span class="hh">&lt;p&gt;&amp;nbsp&lt;/p&gt;</span>
+ 152 <span class="h">ENDPAGEHEADER</span>
+ 153 
+ 154   <span class="k">return</span> <span class="i">$PageHeader</span><span class="sc">;</span>
+ 155 <span class="s">}</span>
+ 156 
+ 157 <span class="c"># Setup page title...</span>
+<a name="SetupHTMLPageTitle-"></a> 158 <span class="k">sub </span><span class="m">SetupHTMLPageTitle</span> <span class="s">{</span>
+ 159   <span class="k">my</span><span class="s">(</span><span class="i">$Title</span><span class="cm">,</span> <span class="i">$Alignment</span><span class="cm">,</span> <span class="i">$PageTitle</span><span class="s">)</span><span class="sc">;</span>
+ 160 
+ 161   <span class="i">$Alignment</span> = <span class="q">&quot;center&quot;</span><span class="sc">;</span>
+ 162   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+ 163     <span class="s">(</span><span class="i">$Title</span><span class="cm">,</span> <span class="i">$Alignment</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 164   <span class="s">}</span>
+ 165   <span class="k">else</span> <span class="s">{</span>
+ 166     <span class="s">(</span><span class="i">$Title</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 167   <span class="s">}</span>
+ 168 
+ 169   <span class="i">$PageTitle</span>=<span class="h">&lt;&lt;ENDPAGETITLE</span><span class="sc">;</span>
+ 170 <span class="hh">&lt;$Alignment&gt;</span>
+ 171 <span class="hh">&lt;h3&gt;$Title&lt;/h3&gt;</span>
+ 172 <span class="hh">&lt;/$Alignment&gt;</span>
+ 173 <span class="h">ENDPAGETITLE</span>
+ 174 
+ 175   <span class="k">return</span> <span class="i">$PageTitle</span><span class="sc">;</span>
+ 176 <span class="s">}</span>
+ 177 
+ 178 <span class="c"># Setup HTML page end...</span>
+<a name="SetupHTMLPageEnd-"></a> 179 <span class="k">sub </span><span class="m">SetupHTMLPageEnd</span> <span class="s">{</span>
+ 180   <span class="k">my</span><span class="s">(</span><span class="i">$PageEnd</span><span class="cm">,</span> <span class="i">$Footer</span><span class="s">)</span><span class="sc">;</span>
+ 181 
+ 182   <span class="i">$Footer</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 183   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span>
+ 184     <span class="s">(</span><span class="i">$Footer</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 185   <span class="s">}</span>
+ 186   <span class="k">if</span> <span class="s">(</span><span class="i">$Footer</span><span class="s">)</span> <span class="s">{</span>
+ 187     <span class="i">$Footer</span> = <span class="q">qq(&lt;span class=&quot;Footer&quot;&gt;$Footer&lt;/span&gt;)</span><span class="sc">;</span>
+ 188   <span class="s">}</span>
+ 189   <span class="i">$PageEnd</span>=<span class="h">&lt;&lt;ENDPAGE</span><span class="sc">;</span>
+ 190 <span class="hh">&lt;center&gt;</span>
+ 191 <span class="hh">&lt;p&gt;&amp;nbsp&lt;/p&gt;</span>
+ 192 <span class="hh">$Footer</span>
+ 193 <span class="hh">&lt;/center&gt;</span>
+ 194 <span class="hh">&lt;/body&gt;</span>
+ 195 <span class="hh">&lt;/html&gt;</span>
+ 196 <span class="h">ENDPAGE</span>
+ 197 
+ 198   <span class="k">return</span> <span class="i">$PageEnd</span><span class="sc">;</span>
+ 199 <span class="s">}</span>
+ 200 
+ 201 <span class="c"># Setup HTML link tags...</span>
+<a name="SetupHTMLHRef-"></a> 202 <span class="k">sub </span><span class="m">SetupHTMLHRef</span> <span class="s">{</span>
+ 203   <span class="k">my</span><span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="i">$RefFile</span><span class="cm">,</span> <span class="i">$HRef</span><span class="cm">,</span> <span class="i">$Title</span><span class="s">)</span><span class="sc">;</span>
+ 204 
+ 205   <span class="i">$Title</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 206   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">3</span><span class="s">)</span> <span class="s">{</span>
+ 207     <span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="i">$RefFile</span><span class="cm">,</span> <span class="i">$Title</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 208   <span class="s">}</span>
+ 209   <span class="k">else</span> <span class="s">{</span>
+ 210     <span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="i">$RefFile</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 211   <span class="s">}</span>
+ 212 
+ 213   <span class="i">$HRef</span> = <span class="q">qq(&lt;a href=&quot;$RefFile&quot;)</span><span class="sc">;</span>
+ 214   <span class="k">if</span> <span class="s">(</span><span class="i">$Title</span><span class="s">)</span> <span class="s">{</span>
+ 215     <span class="i">$HRef</span> .= <span class="q">qq( title=&quot;$Title&quot;)</span><span class="sc">;</span>
+ 216   <span class="s">}</span>
+ 217   <span class="i">$HRef</span> .= <span class="q">qq(&gt;$Value&lt;/a&gt;)</span><span class="sc">;</span>
+ 218   <span class="k">return</span> <span class="i">$HRef</span><span class="sc">;</span>
+ 219 <span class="s">}</span>
+ 220 
+ 221 <span class="c">#</span>
+<a name="SetupHTMLStyleSheetTags-"></a> 222 <span class="k">sub </span><span class="m">SetupHTMLStyleSheetTags</span> <span class="s">{</span>
+ 223   <span class="k">my</span><span class="s">(</span><span class="i">$StyleSheetTags</span><span class="s">)</span><span class="sc">;</span>
+ 224 
+ 225   <span class="i">$StyleSheetTags</span>=<span class="h">&lt;&lt;ENDSTYLESHEET</span><span class="sc">;</span>
+ 226 <span class="hh">body</span>
+ 227 <span class="hh">{</span>
+ 228 <span class="hh">    background-color: #ffffff;</span>
+ 229 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 230 <span class="hh">    font-size: 11px;</span>
+ 231 <span class="hh">}</span>
+ 232 <span class="hh">p</span>
+ 233 <span class="hh">{</span>
+ 234 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 235 <span class="hh">    font-size: 11px;</span>
+ 236 <span class="hh">}</span>
+ 237 <span class="hh">h1</span>
+ 238 <span class="hh">{</span>
+ 239 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 240 <span class="hh">    font-size: 25px;</span>
+ 241 <span class="hh">    font-weight: bold;</span>
+ 242 <span class="hh">    color: #0054aa;</span>
+ 243 <span class="hh">}</span>
+ 244 <span class="hh">h2</span>
+ 245 <span class="hh">{</span>
+ 246 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 247 <span class="hh">    font-size: 18px;</span>
+ 248 <span class="hh">    font-weight: bold;</span>
+ 249 <span class="hh">    color: #0054aa;</span>
+ 250 <span class="hh">}</span>
+ 251 <span class="hh">h3</span>
+ 252 <span class="hh">{</span>
+ 253 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 254 <span class="hh">    font-size: 14px;</span>
+ 255 <span class="hh">    font-weight: bold;</span>
+ 256 <span class="hh">    color: #0054aa;</span>
+ 257 <span class="hh">}</span>
+ 258 <span class="hh">b</span>
+ 259 <span class="hh">{</span>
+ 260 <span class="hh">    font-weight: bold;</span>
+ 261 <span class="hh">}</span>
+ 262 <span class="hh">td</span>
+ 263 <span class="hh">{</span>
+ 264 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 265 <span class="hh">    font-size: 11px;</span>
+ 266 <span class="hh">}</span>
+ 267 <span class="hh">th</span>
+ 268 <span class="hh">{</span>
+ 269 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 270 <span class="hh">    font-size: 11px;</span>
+ 271 <span class="hh">    color: #0054aa;</span>
+ 272 <span class="hh">    font-weight: bold;</span>
+ 273 <span class="hh">}</span>
+ 274 <span class="hh">.box {</span>
+ 275 <span class="hh">  border-color: #000000;</span>
+ 276 <span class="hh">  border-style: solid;</span>
+ 277 <span class="hh">  border-top-width: 1px;</span>
+ 278 <span class="hh">  border-bottom-width: 1px;</span>
+ 279 <span class="hh">  border-left-width: 1px;</span>
+ 280 <span class="hh">  border-right-width: 1px;</span>
+ 281 <span class="hh">}</span>
+ 282 <span class="hh">a</span>
+ 283 <span class="hh">{</span>
+ 284 <span class="hh">    color: #0000bb;</span>
+ 285 <span class="hh">    text-decoration: none;</span>
+ 286 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 287 <span class="hh">    font-size: 11px;</span>
+ 288 <span class="hh">}</span>
+ 289 <span class="hh">a:hover</span>
+ 290 <span class="hh">{</span>
+ 291 <span class="hh">    color: #ff0000;</span>
+ 292 <span class="hh">}</span>
+ 293 <span class="hh">#tablenav {</span>
+ 294 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 295 <span class="hh">    font-size: 11px;</span>
+ 296 <span class="hh">}</span>
+ 297 <span class="hh">#tablenav td</span>
+ 298 <span class="hh">{</span>
+ 299 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 300 <span class="hh">    font-size: 11px;</span>
+ 301 <span class="hh">}</span>
+ 302 <span class="hh">#tablenav th</span>
+ 303 <span class="hh">{</span>
+ 304 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 305 <span class="hh">    font-size: 11px;</span>
+ 306 <span class="hh">    font-weight: bold;</span>
+ 307 <span class="hh">}</span>
+ 308 <span class="hh">#tablenav a</span>
+ 309 <span class="hh">{</span>
+ 310 <span class="hh">    color: #0000bb;</span>
+ 311 <span class="hh">    text-decoration: none;</span>
+ 312 <span class="hh">    font-family: Verdana, Arial, Helvetica, sans-serif;</span>
+ 313 <span class="hh">    font-size: 11px;</span>
+ 314 <span class="hh">}</span>
+ 315 <span class="hh">#tablenav a:hover</span>
+ 316 <span class="hh">{</span>
+ 317 <span class="hh">    color: #ff0000;</span>
+ 318 <span class="hh">}</span>
+ 319 <span class="hh">.footer</span>
+ 320 <span class="hh">{</span>
+ 321 <span class="hh">    font-family: Arial, Verdana, Helvetica, sans-serif;</span>
+ 322 <span class="hh">    font-size: 9px;</span>
+ 323 <span class="hh">    color: #888888;</span>
+ 324 <span class="hh">}</span>
+ 325 <span class="h">ENDSTYLESHEET</span>
+ 326 
+ 327   <span class="k">return</span> <span class="i">$StyleSheetTags</span><span class="sc">;</span>
+ 328 <span class="s">}</span>
+ 329 
+ 330 <span class="c"># Setup HTML table header...</span>
+<a name="SetupHTMLTableHeader-"></a> 331 <span class="k">sub </span><span class="m">SetupHTMLTableHeader</span> <span class="s">{</span>
+ 332   <span class="k">my</span><span class="s">(</span><span class="i">$TableHeader</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">$Width</span><span class="cm">,</span> <span class="i">$Height</span><span class="s">)</span><span class="sc">;</span>
+ 333 
+ 334   <span class="i">$BorderWidth</span> = <span class="n">1</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">0</span><span class="sc">;</span> <span class="i">$Width</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$Height</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 335   <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>
+ 336     <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="cm">,</span> <span class="i">$Width</span><span class="cm">,</span> <span class="i">$Height</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 337   <span class="s">}</span>
+ 338   <span class="k">elsif</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">4</span><span class="s">)</span> <span class="s">{</span>
+ 339     <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="cm">,</span> <span class="i">$Width</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 340   <span class="s">}</span>
+ 341   <span class="k">elsif</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">3</span><span class="s">)</span> <span class="s">{</span>
+ 342     <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="i">@_</span><span class="sc">;</span>
+ 343   <span class="s">}</span>
+ 344   <span class="k">elsif</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+ 345     <span class="s">(</span><span class="i">$BorderWidth</span><span class="cm">,</span> <span class="i">$CellPadding</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 346   <span class="s">}</span>
+ 347   <span class="k">elsif</span> <span class="s">(</span><span class="i">@_</span> = <span class="n">1</span><span class="s">)</span> <span class="s">{</span>
+ 348     <span class="s">(</span><span class="i">$BorderWidth</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 349   <span class="s">}</span>
+ 350   <span class="i">$TableHeader</span> = <span class="q">qq(&lt;table border=$BorderWidth cellpadding=$CellPadding cellspacing=$CellSpacing)</span><span class="sc">;</span>
+ 351   <span class="k">if</span> <span class="s">(</span><span class="i">$Width</span><span class="s">)</span> <span class="s">{</span>
+ 352     <span class="i">$TableHeader</span> .= <span class="q">qq( width=$Width)</span><span class="sc">;</span>
+ 353   <span class="s">}</span>
+ 354   <span class="k">if</span> <span class="s">(</span><span class="i">$Height</span><span class="s">)</span> <span class="s">{</span>
+ 355     <span class="i">$TableHeader</span> .= <span class="q">qq( height=$Height)</span><span class="sc">;</span>
+ 356   <span class="s">}</span>
+ 357   <span class="i">$TableHeader</span> .= <span class="q">qq(&gt;\n)</span><span class="sc">;</span>
+ 358 
+ 359   <span class="k">return</span> <span class="i">$TableHeader</span><span class="sc">;</span>
+ 360 <span class="s">}</span>
+ 361 
+ 362 <span class="c"># Setup HTML table end...</span>
+<a name="SetupHTMLTableEnd-"></a> 363 <span class="k">sub </span><span class="m">SetupHTMLTableEnd</span> <span class="s">{</span>
+ 364   <span class="k">my</span><span class="s">(</span><span class="i">$TableEnd</span><span class="s">)</span><span class="sc">;</span>
+ 365 
+ 366   <span class="i">$TableEnd</span>=<span class="h">&lt;&lt;ENDTABLE</span><span class="sc">;</span>
+ 367 <span class="hh">&lt;/table&gt;</span>
+ 368 <span class="h">ENDTABLE</span>
+ 369 
+ 370   <span class="k">return</span> <span class="i">$TableEnd</span><span class="sc">;</span>
+ 371 <span class="s">}</span>
+ 372 
+ 373 <span class="c"># Setup HTML table column header...</span>
+<a name="SetupHTMLTableColumnHeader-"></a> 374 <span class="k">sub </span><span class="m">SetupHTMLTableColumnHeader</span> <span class="s">{</span>
+ 375   <span class="k">my</span><span class="s">(</span><span class="i">$BgColor</span><span class="cm">,</span> <span class="i">$Width</span><span class="cm">,</span> <span class="i">$ColumnHeader</span><span class="s">)</span><span class="sc">;</span>
+ 376 
+ 377   <span class="i">$BgColor</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$Width</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 378   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span>
+ 379     <span class="s">(</span><span class="i">$BgColor</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 380   <span class="s">}</span>
+ 381   <span class="k">elsif</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+ 382     <span class="s">(</span><span class="i">$BgColor</span><span class="cm">,</span> <span class="i">$Width</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 383   <span class="s">}</span>
+ 384   <span class="i">$ColumnHeader</span> = <span class="q">qq(&lt;td)</span><span class="sc">;</span>
+ 385   <span class="k">if</span> <span class="s">(</span><span class="i">$BgColor</span><span class="s">)</span> <span class="s">{</span>
+ 386     <span class="i">$ColumnHeader</span> .= <span class="q">qq( bgcolor=&quot;$BgColor&quot;)</span>
+ 387   <span class="s">}</span>
+ 388   <span class="k">if</span> <span class="s">(</span><span class="i">$Width</span><span class="s">)</span> <span class="s">{</span>
+ 389     <span class="i">$ColumnHeader</span> .= <span class="q">qq( width=&quot;$Width&quot;)</span>
+ 390   <span class="s">}</span>
+ 391   <span class="i">$ColumnHeader</span> .= <span class="q">qq(&gt;)</span><span class="sc">;</span>
+ 392   <span class="k">return</span> <span class="i">$ColumnHeader</span><span class="sc">;</span>
+ 393 <span class="s">}</span>
+ 394 
+ 395 <span class="c"># Setup HTML table column end...</span>
+<a name="SetupHTMLTableColumnEnd-"></a> 396 <span class="k">sub </span><span class="m">SetupHTMLTableColumnEnd</span> <span class="s">{</span>
+ 397   <span class="k">my</span><span class="s">(</span><span class="i">$ColumnEnd</span><span class="s">)</span><span class="sc">;</span>
+ 398 
+ 399   <span class="i">$ColumnEnd</span> = <span class="q">qq(&lt;/td&gt;)</span><span class="sc">;</span>
+ 400   <span class="k">return</span> <span class="i">$ColumnEnd</span><span class="sc">;</span>
+ 401 <span class="s">}</span>
+ 402 
+ 403 <span class="c"># Setup HTML table row header...</span>
+<a name="SetupHTMLTableRowHeader-"></a> 404 <span class="k">sub </span><span class="m">SetupHTMLTableRowHeader</span> <span class="s">{</span>
+ 405   <span class="k">my</span><span class="s">(</span><span class="i">$RowHeader</span><span class="cm">,</span> <span class="i">$HAlignment</span><span class="cm">,</span> <span class="i">$BgColor</span><span class="cm">,</span> <span class="i">$VAlignment</span><span class="s">)</span><span class="sc">;</span>
+ 406 
+ 407   <span class="i">$HAlignment</span> = <span class="q">&quot;center&quot;</span><span class="sc">;</span> <span class="i">$BgColor</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$VAlignment</span> = <span class="q">&quot;top&quot;</span><span class="sc">;</span>
+ 408   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">3</span><span class="s">)</span> <span class="s">{</span>
+ 409     <span class="s">(</span><span class="i">$HAlignment</span><span class="cm">,</span> <span class="i">$BgColor</span><span class="cm">,</span> <span class="i">$VAlignment</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 410   <span class="s">}</span>
+ 411   <span class="k">elsif</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+ 412     <span class="s">(</span><span class="i">$HAlignment</span><span class="cm">,</span> <span class="i">$BgColor</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 413   <span class="s">}</span>
+ 414   <span class="k">elsif</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span>
+ 415     <span class="s">(</span><span class="i">$HAlignment</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 416   <span class="s">}</span>
+ 417   <span class="k">if</span> <span class="s">(</span><span class="i">$BgColor</span><span class="s">)</span> <span class="s">{</span>
+ 418     <span class="i">$RowHeader</span> = <span class="q">qq(&lt;tr bgcolor=&quot;$BgColor&quot; align=&quot;$HAlignment&quot; valign=&quot;$VAlignment&quot;&gt;)</span><span class="sc">;</span>
+ 419   <span class="s">}</span>
+ 420   <span class="k">else</span> <span class="s">{</span>
+ 421     <span class="i">$RowHeader</span> = <span class="q">qq(&lt;tr align=&quot;$HAlignment&quot; valign=&quot;$VAlignment&quot;&gt;)</span><span class="sc">;</span>
+ 422   <span class="s">}</span>
+ 423 
+ 424   <span class="k">return</span> <span class="i">$RowHeader</span><span class="sc">;</span>
+ 425 <span class="s">}</span>
+ 426 
+ 427 <span class="c"># Setup HTML table row end...</span>
+<a name="SetupHTMLTableRowEnd-"></a> 428 <span class="k">sub </span><span class="m">SetupHTMLTableRowEnd</span> <span class="s">{</span>
+ 429   <span class="k">my</span><span class="s">(</span><span class="i">$RowEnd</span><span class="s">)</span><span class="sc">;</span>
+ 430 
+ 431   <span class="i">$RowEnd</span> = <span class="q">qq(&lt;/tr&gt;\n)</span><span class="sc">;</span>
+ 432   <span class="k">return</span> <span class="i">$RowEnd</span><span class="sc">;</span>
+ 433 <span class="s">}</span>
+ 434 
+ 435 <span class="c"># Setup HTML table header values...</span>
+<a name="SetupHTMLTableRowHeaderValue-"></a> 436 <span class="k">sub </span><span class="m">SetupHTMLTableRowHeaderValue</span> <span class="s">{</span>
+ 437   <span class="k">my</span><span class="s">(</span><span class="i">$HeaderValue</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span><span class="sc">;</span>
+ 438 
+ 439   <span class="i">$Value</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 440   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> &gt;= <span class="n">1</span><span class="s">)</span> <span class="s">{</span>
+ 441     <span class="s">(</span><span class="i">$Value</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 442   <span class="s">}</span>
+ 443   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$Value</span> &amp;&amp; <span class="k">length</span> <span class="i">$Value</span><span class="s">)</span> <span class="s">{</span>
+ 444     <span class="i">$HeaderValue</span> = <span class="q">qq(&lt;th&gt;$Value&lt;/th&gt;)</span><span class="sc">;</span>
+ 445   <span class="s">}</span>
+ 446   <span class="k">else</span> <span class="s">{</span>
+ 447     <span class="i">$HeaderValue</span> = <span class="q">qq(&lt;th&gt;&amp;nbsp&lt;/th&gt;)</span><span class="sc">;</span>
+ 448   <span class="s">}</span>
+ 449   <span class="k">return</span> <span class="i">$HeaderValue</span><span class="sc">;</span>
+ 450 <span class="s">}</span>
+ 451 
+ 452 <span class="c"># Setup HTML table row data values...</span>
+<a name="SetupHTMLTableRowDataValue-"></a> 453 <span class="k">sub </span><span class="m">SetupHTMLTableRowDataValue</span> <span class="s">{</span>
+ 454   <span class="k">my</span><span class="s">(</span><span class="i">$RowValues</span><span class="cm">,</span> <span class="i">$Value</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">$FontBold</span><span class="cm">,</span> <span class="i">$FontBoldTag1</span><span class="cm">,</span> <span class="i">$FontBoldTag2</span><span class="s">)</span><span class="sc">;</span>
+ 455 
+ 456   <span class="i">$Value</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$BgColor</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$FontColor</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$FontBold</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 457   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span>
+ 458     <span class="s">(</span><span class="i">$Value</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 459   <span class="s">}</span>
+ 460   <span class="k">elsif</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+ 461     <span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="i">$BgColor</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 462   <span class="s">}</span>
+ 463   <span class="k">elsif</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">3</span><span class="s">)</span> <span class="s">{</span>
+ 464     <span class="s">(</span><span class="i">$Value</span><span class="cm">,</span> <span class="i">$BgColor</span><span class="cm">,</span> <span class="i">$FontColor</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 465   <span class="s">}</span>
+ 466   <span class="k">elsif</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">4</span><span class="s">)</span> <span class="s">{</span>
+ 467     <span class="s">(</span><span class="i">$Value</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">$FontBold</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 468   <span class="s">}</span>
+ 469   <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="k">defined</span> <span class="i">$Value</span> &amp;&amp; <span class="k">length</span> <span class="i">$Value</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+ 470     <span class="i">$Value</span> = <span class="q">qq(&amp;nbsp)</span><span class="sc">;</span>
+ 471   <span class="s">}</span>
+ 472   <span class="i">$FontBoldTag1</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$FontBoldTag2</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 473   <span class="k">if</span> <span class="s">(</span><span class="i">$FontBold</span><span class="s">)</span> <span class="s">{</span>
+ 474     <span class="i">$FontBoldTag1</span> = <span class="q">qq(&lt;b&gt;)</span><span class="sc">;</span>
+ 475     <span class="i">$FontBoldTag2</span> = <span class="q">qq(&lt;/b&gt;)</span><span class="sc">;</span>
+ 476   <span class="s">}</span>
+ 477   <span class="k">if</span> <span class="s">(</span><span class="i">$BgColor</span> || <span class="i">$FontColor</span><span class="s">)</span> <span class="s">{</span>
+ 478     <span class="k">my</span> <span class="s">(</span><span class="i">$BgColorTag</span><span class="cm">,</span> <span class="i">$FontTag1</span><span class="cm">,</span> <span class="i">$FontTag2</span><span class="s">)</span><span class="sc">;</span>
+ 479 
+ 480     <span class="i">$BgColorTag</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 481     <span class="k">if</span> <span class="s">(</span><span class="i">$BgColor</span><span class="s">)</span> <span class="s">{</span>
+ 482       <span class="i">$BgColorTag</span> = <span class="q">qq( bgcolor=&quot;$BgColor&quot;)</span><span class="sc">;</span>
+ 483     <span class="s">}</span>
+ 484     <span class="i">$FontTag1</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$FontTag2</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 485     <span class="k">if</span> <span class="s">(</span><span class="i">$FontColor</span><span class="s">)</span> <span class="s">{</span>
+ 486       <span class="i">$FontTag1</span> = <span class="q">qq(&lt;font color=&quot;$FontColor&quot;&gt;)</span><span class="sc">;</span>
+ 487       <span class="i">$FontTag2</span> = <span class="q">qq(&lt;/font&gt;)</span><span class="sc">;</span>
+ 488     <span class="s">}</span>
+ 489     <span class="k">if</span> <span class="s">(</span><span class="i">$FontBold</span><span class="s">)</span> <span class="s">{</span>
+ 490       <span class="i">$RowValues</span> = <span class="q">&quot;&lt;td&quot;</span> . <span class="i">$BgColorTag</span> . <span class="q">&quot;&gt;&quot;</span> . <span class="i">$FontBoldTag1</span> . <span class="i">$FontTag1</span> . <span class="q">&quot;$Value&quot;</span> . <span class="i">$FontTag2</span> . <span class="i">$FontBoldTag2</span> .  <span class="q">&quot;&lt;/td&gt;&quot;</span><span class="sc">;</span>
+ 491     <span class="s">}</span>
+ 492     <span class="k">else</span> <span class="s">{</span>
+ 493       <span class="i">$RowValues</span> = <span class="q">&quot;&lt;td&quot;</span> . <span class="i">$BgColorTag</span> . <span class="q">&quot;&gt;&quot;</span> . <span class="i">$FontTag1</span> . <span class="q">&quot;$Value&quot;</span> . <span class="i">$FontTag2</span> .  <span class="q">&quot;&lt;/td&gt;&quot;</span><span class="sc">;</span>
+ 494     <span class="s">}</span>
+ 495   <span class="s">}</span>
+ 496   <span class="k">elsif</span> <span class="s">(</span><span class="i">$FontBold</span><span class="s">)</span> <span class="s">{</span>
+ 497     <span class="i">$RowValues</span> = <span class="q">&quot;&lt;td&gt;&quot;</span> . <span class="i">$FontBoldTag1</span> . <span class="q">&quot;$Value&quot;</span> . <span class="i">$FontBoldTag2</span> . <span class="q">&quot;&lt;/td&gt;&quot;</span><span class="sc">;</span>
+ 498   <span class="s">}</span>
+ 499   <span class="k">else</span> <span class="s">{</span>
+ 500     <span class="i">$RowValues</span> = <span class="q">qq(&lt;td&gt;$Value&lt;/td&gt;)</span><span class="sc">;</span>
+ 501   <span class="s">}</span>
+ 502   <span class="k">return</span> <span class="i">$RowValues</span><span class="sc">;</span>
+ 503 <span class="s">}</span>
+ 504 
+ 505 <span class="c"># Setup Java scripts command...</span>
+<a name="SetupJavaScriptCmds-"></a> 506 <span class="k">sub </span><span class="m">SetupJavaScriptCmds</span> <span class="s">{</span>
+ 507   <span class="k">my</span><span class="s">(</span><span class="i">@JSCmdList</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 508   <span class="k">my</span><span class="s">(</span><span class="i">$JSTags</span><span class="cm">,</span> <span class="i">$JSCmd</span><span class="s">)</span><span class="sc">;</span>
+ 509 
+ 510   <span class="i">$JSTags</span> = <span class="q">qq(&lt;script&gt;\n)</span><span class="sc">;</span>
+ 511   <span class="k">for</span> <span class="i">$JSCmd</span> <span class="s">(</span><span class="i">@JSCmdList</span><span class="s">)</span> <span class="s">{</span>
+ 512     <span class="i">$JSTags</span> .= <span class="q">qq($JSCmd\n)</span><span class="sc">;</span>
+ 513   <span class="s">}</span>
+ 514   <span class="i">$JSTags</span> .= <span class="q">qq(&lt;/script&gt;\n)</span><span class="sc">;</span>
+ 515 
+ 516   <span class="k">return</span> <span class="i">$JSTags</span><span class="sc">;</span>
+ 517 <span class="s">}</span>
+ 518 
+ 519 <span class="c"># Setup Java script initialize command...</span>
+<a name="SetupStrViewerJSInitCmd-"></a> 520 <span class="k">sub </span><span class="m">SetupStrViewerJSInitCmd</span> <span class="s">{</span>
+ 521   <span class="k">my</span><span class="s">(</span><span class="i">$StrViewerType</span><span class="cm">,</span> <span class="i">$CodeBase</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 522   <span class="k">my</span><span class="s">(</span><span class="i">$JSTag</span><span class="s">)</span><span class="sc">;</span>
+ 523 
+ 524   <span class="i">$JSTag</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 525   <span class="k">if</span> <span class="s">(</span><span class="i">$StrViewerType</span> <span class="k">eq</span> <span class="q">&quot;Jmol&quot;</span><span class="s">)</span> <span class="s">{</span>
+ 526     <span class="i">$JSTag</span> = <span class="q">qq(&lt;script&gt;jmolInitialize(&quot;$CodeBase&quot;, &quot;JmolApplet.jar&quot;);&lt;/script&gt;\n)</span><span class="sc">;</span>
+ 527   <span class="s">}</span>
+ 528   <span class="k">elsif</span> <span class="s">(</span><span class="i">$StrViewerType</span> <span class="k">eq</span> <span class="q">&quot;ChemDrawPlugIn&quot;</span> || <span class="i">$StrViewerType</span> <span class="k">eq</span> <span class="q">&quot;ChemDrawActiveX&quot;</span><span class="s">)</span> <span class="s">{</span>
+ 529     <span class="i">$JSTag</span> = <span class="q">qq(&lt;script&gt;cd_includeWrapperFile(&quot;$CodeBase/&quot;);&lt;/script&gt;\n)</span><span class="sc">;</span>
+ 530   <span class="s">}</span>
+ 531   <span class="k">elsif</span> <span class="s">(</span><span class="i">$StrViewerType</span> <span class="k">eq</span> <span class="q">&quot;Chem3DActiveX&quot;</span><span class="s">)</span> <span class="s">{</span>
+ 532   <span class="s">}</span>
+ 533   <span class="k">return</span> <span class="i">$JSTag</span><span class="sc">;</span>
+ 534 <span class="s">}</span>
+ 535 
+ 536 
+ 537 <span class="c"># Setup Jmol applet...</span>
+<a name="SetupStrViewerJmolApplet-"></a> 538 <span class="k">sub </span><span class="m">SetupStrViewerJmolApplet</span> <span class="s">{</span>
+ 539   <span class="k">my</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CodeBase</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="cm">,</span> <span class="i">%ParamsMap</span><span class="cm">,</span> <span class="i">$AppletTags</span><span class="cm">,</span> <span class="i">$JavaScriptTags</span><span class="cm">,</span> <span class="i">$ReturnTags</span><span class="cm">,</span> <span class="i">$Name</span><span class="cm">,</span> <span class="i">$Code</span><span class="cm">,</span> <span class="i">$Archive</span><span class="cm">,</span> <span class="i">$Width</span><span class="cm">,</span> <span class="i">$Height</span><span class="cm">,</span> <span class="i">$ParamName</span><span class="cm">,</span> <span class="i">$ParamValue</span><span class="cm">,</span> <span class="i">$JSFileName</span><span class="cm">,</span> <span class="i">$UseJavaScript</span><span class="s">)</span><span class="sc">;</span>
+ 540   <span class="k">my</span><span class="s">(</span><span class="i">$ProgressBar</span><span class="cm">,</span> <span class="i">$ProgressColor</span><span class="cm">,</span> <span class="i">$BoxMessage</span><span class="cm">,</span> <span class="i">$BoxFgColor</span><span class="cm">,</span> <span class="i">$BoxBgColor</span><span class="cm">,</span> <span class="i">$BgColor</span><span class="cm">,</span> <span class="i">$JMolScript</span><span class="s">)</span><span class="sc">;</span>
+ 541 
+ 542   <span class="i">$AppletTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>  <span class="i">$JavaScriptTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$ReturnTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 543   <span class="i">$ParamsMapRef</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">%ParamsMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 544   <span class="i">$Name</span> = <span class="q">&quot;Jmol&quot;</span><span class="sc">;</span> <span class="i">$Code</span> = <span class="q">&quot;JmolApplet&quot;</span><span class="sc">;</span> <span class="i">$Archive</span> = <span class="q">&quot;JmolApplet.jar&quot;</span><span class="sc">;</span> <span class="i">$Width</span> = <span class="i">$StrViewerWidth</span><span class="sc">;</span> <span class="i">$Height</span> = <span class="i">$StrViewerHeight</span><span class="sc">;</span>
+ 545   <span class="i">$ProgressBar</span> = <span class="q">&quot;true&quot;</span><span class="sc">;</span> <span class="i">$ProgressColor</span> = <span class="q">&quot;#0000ff&quot;</span><span class="sc">;</span> <span class="i">$BgColor</span> = <span class="q">&quot;#000000&quot;</span><span class="sc">;</span>
+ 546   <span class="i">$BoxMessage</span> = <span class="q">&quot;Setting up JmolApplet...&quot;</span><span class="sc">;</span> <span class="i">$BoxFgColor</span> = <span class="q">&quot;#000000&quot;</span><span class="sc">;</span> <span class="i">$BoxBgColor</span> = <span class="q">&quot;#ffffff&quot;</span><span class="sc">;</span>
+ 547   <span class="i">$UseJavaScript</span> = <span class="n">0</span><span class="sc">;</span> <span class="i">$JSFileName</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 548   <span class="i">$JMolScript</span> = <span class="q">&quot;select *; set frank off; wireframe on; spacefill off&quot;</span><span class="sc">;</span>
+ 549 
+ 550  <span class="j">PARAMS:</span> <span class="s">{</span>
+ 551     <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">3</span><span class="s">)</span> <span class="s">{</span> <span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CodeBase</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> <span class="k">last</span> <span class="j">PARAMS</span><span class="sc">;</span> <span class="s">}</span>
+ 552     <span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CodeBase</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 553   <span class="s">}</span>
+ 554 
+ 555   <span class="k">if</span> <span class="s">(</span><span class="i">$ParamsMapRef</span><span class="s">)</span> <span class="s">{</span>
+ 556     <span class="i">%ParamsMap</span> = <span class="i">%$ParamsMapRef</span><span class="sc">;</span>
+ 557     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$JSFileName</span> = <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>}<span class="sc">;</span> <span class="i">$UseJavaScript</span> = <span class="n">1</span><span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 558     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Name</span> = <span class="i">$ParamsMap</span>{<span class="w">name</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 559     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">code</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Code</span> = <span class="i">$ParamsMap</span>{<span class="w">code</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">code</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 560     <span class="c"># if (exists $ParamsMap{archive} ) { $Archive = $ParamsMap{archive}; $ParamsMap{archive} = &quot;&quot;; }</span>
+ 561     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">archive</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ParamsMap</span>{<span class="w">archive</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 562     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Height</span> = <span class="i">$ParamsMap</span>{<span class="w">height</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 563     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Width</span> = <span class="i">$ParamsMap</span>{<span class="w">width</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 564     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">progressbar</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ProgressBar</span> = <span class="i">$ParamsMap</span>{<span class="w">progressbar</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">progressbar</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 565     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">progresscolor</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ProgressColor</span> = <span class="i">$ParamsMap</span>{<span class="w">progresscolor</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">progresscolor</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 566     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">boxmessage</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$BoxMessage</span> = <span class="i">$ParamsMap</span>{<span class="w">boxmessage</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">boxmessage</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 567     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">script</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$JMolScript</span> = <span class="i">$ParamsMap</span>{<span class="w">script</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">script</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 568     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">bgcolor</span>}<span class="s">)</span> <span class="s">{</span>
+ 569       <span class="i">$BgColor</span> = <span class="i">$ParamsMap</span>{<span class="w">bgcolor</span>}<span class="sc">;</span>
+ 570       <span class="k">if</span> <span class="s">(</span><span class="k">length</span><span class="s">(</span><span class="i">$BgColor</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+ 571         <span class="k">if</span> <span class="s">(</span><span class="i">$BgColor</span> =~ <span class="q">/black/i</span> || <span class="i">$BgColor</span> =~ <span class="q">/#000000/</span> <span class="s">)</span> <span class="s">{</span>
+ 572           <span class="i">$BoxFgColor</span> = <span class="q">&quot;#ffffff&quot;</span><span class="sc">;</span>
+ 573           <span class="i">$BoxBgColor</span> = <span class="q">&quot;#000000&quot;</span><span class="sc">;</span>
+ 574         <span class="s">}</span>
+ 575       <span class="s">}</span>
+ 576     <span class="s">}</span>
+ 577     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">boxbgcolor</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$BoxBgColor</span> = <span class="i">$ParamsMap</span>{<span class="w">boxbgcolor</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">boxbgcolor</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 578     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">boxfgcolor</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$BoxFgColor</span> = <span class="i">$ParamsMap</span>{<span class="w">boxfgcolor</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">boxfgcolor</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 579   <span class="s">}</span>
+ 580 
+ 581   <span class="i">$MolString</span> =~ <span class="q">s/(\r\n)|(\r)|(\n)/|/g</span><span class="sc">;</span>
+ 582   <span class="k">if</span> <span class="s">(</span><span class="i">$UseJavaScript</span><span class="s">)</span> <span class="s">{</span>
+ 583     <span class="i">$JavaScriptTags</span> = <span class="q">qq(\n&lt;script&gt;\n)</span><span class="sc">;</span>
+ 584     <span class="k">my</span><span class="s">(</span><span class="i">$Size</span><span class="s">)</span> = <span class="s">(</span><span class="i">$Width</span> &gt; <span class="i">$Height</span> <span class="s">)</span> ? <span class="i">$Width</span> <span class="co">:</span> <span class="i">$Height</span><span class="sc">;</span>
+ 585     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(var $Name = \n)</span><span class="sc">;</span>
+ 586     <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">/\|/</span><span class="cm">,</span> <span class="i">$MolString</span><span class="sc">;</span>
+ 587     <span class="k">my</span><span class="s">(</span><span class="i">$LineIndex</span><span class="s">)</span><span class="sc">;</span>
+ 588     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(&quot;$MolLines[0]\\n&quot;)</span><span class="sc">;</span>
+ 589     <span class="k">for</span> <span class="i">$LineIndex</span> <span class="s">(</span><span class="n">1</span> .. <span class="i">$#MolLines</span><span class="s">)</span> <span class="s">{</span>
+ 590       <span class="i">$JavaScriptTags</span> .= <span class="q">qq( + \n&quot;$MolLines[$LineIndex]\\n&quot;)</span><span class="sc">;</span>
+ 591     <span class="s">}</span>
+ 592     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(;\n)</span><span class="sc">;</span>
+ 593     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(jmolSetAppletColor(&quot;$BgColor&quot;, &quot;$BoxBgColor&quot;, &quot;$BoxFgColor&quot;, &quot;$ProgressColor&quot;);\n)</span><span class="sc">;</span>
+ 594     <span class="c"># &quot;set frank off turns&quot; off JMol logo. For wireframe display; use wireframe on; spacefill off...</span>
+ 595     <span class="c"># $JavaScriptTags .= qq(jmolAppletInline($Size, $Name);\n);</span>
+ 596     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(jmolAppletInline([$Width,$Height], $Name, \&quot;$JMolScript\&quot;);\n)</span><span class="sc">;</span>
+ 597     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(&lt;/script&gt;\n)</span><span class="sc">;</span>
+ 598     <span class="i">$ReturnTags</span> = <span class="i">$JavaScriptTags</span><span class="sc">;</span>
+ 599   <span class="s">}</span>
+ 600   <span class="k">else</span> <span class="s">{</span>
+ 601     <span class="c"># Setup applet header...</span>
+ 602     <span class="i">$AppletTags</span> = <span class="q">qq(\n&lt;applet name=&quot;$Name&quot; id=&quot;$Name&quot; code=&quot;$Code&quot; archive=&quot;$Archive&quot; codebase=&quot;$CodeBase&quot; width=&quot;$Width&quot; height=&quot;$Height&quot;&gt;\n)</span><span class="sc">;</span>
+ 603 
+ 604     <span class="c"># Setup molecule data...</span>
+ 605     <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;param name=&quot;loadInline&quot; value=&quot;$MolString&quot;&gt;\n)</span><span class="sc">;</span>
+ 606 
+ 607     <span class="c"># Setup prograss bar...</span>
+ 608     <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;param name=&quot;progressbar&quot; value=&quot;$ProgressBar&quot;&gt;\n&lt;param name=&quot;progresscolor&quot; value=&quot;$ProgressColor&quot;&gt;\n&lt;param name=&quot;boxmessage&quot; value=&quot;$BoxMessage&quot;&gt;\n&lt;param name=&quot;boxbgcolor&quot; value=&quot;$BoxBgColor&quot;&gt;\n&lt;param name=&quot;boxfgcolor&quot; value=&quot;$BoxFgColor&quot;&gt;\n)</span><span class="sc">;</span>
+ 609 
+ 610     <span class="c"># &quot;set frank off turns&quot; off JMol logo. For wireframe display; use wireframe on; spacefill off...</span>
+ 611     <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;param name=&quot;script&quot; value=&quot;$JMolScript&quot;&gt;)</span><span class="sc">;</span>
+ 612 
+ 613     <span class="c">#Setup other parameters...</span>
+ 614     <span class="k">for</span> <span class="i">$ParamName</span> <span class="s">(</span><span class="k">sort</span> <span class="k">keys</span> <span class="i">%ParamsMap</span><span class="s">)</span> <span class="s">{</span>
+ 615       <span class="i">$ParamValue</span> = <span class="i">$ParamsMap</span>{<span class="i">$ParamName</span>}<span class="sc">;</span>
+ 616       <span class="k">if</span> <span class="s">(</span><span class="k">length</span> <span class="i">$ParamValue</span><span class="s">)</span> <span class="s">{</span>
+ 617         <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;param name=&quot;$ParamName&quot; value=&quot;$ParamValue&quot;&gt;\n)</span><span class="sc">;</span>
+ 618       <span class="s">}</span>
+ 619     <span class="s">}</span>
+ 620     <span class="c">#Finish it up...</span>
+ 621     <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;/applet&gt;\n)</span><span class="sc">;</span>
+ 622     <span class="i">$ReturnTags</span> = <span class="i">$AppletTags</span><span class="sc">;</span>
+ 623   <span class="s">}</span>
+ 624   <span class="k">return</span> <span class="i">$ReturnTags</span><span class="sc">;</span>
+ 625 <span class="s">}</span>
+ 626 
+ 627 <span class="c"># Setup JME applet...</span>
+<a name="SetupStrViewerJMEApplet-"></a> 628 <span class="k">sub </span><span class="m">SetupStrViewerJMEApplet</span> <span class="s">{</span>
+ 629   <span class="k">my</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CodeBase</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="cm">,</span> <span class="i">%ParamsMap</span><span class="cm">,</span> <span class="i">$AppletTags</span><span class="cm">,</span> <span class="i">$Name</span><span class="cm">,</span> <span class="i">$Code</span><span class="cm">,</span> <span class="i">$Archive</span><span class="cm">,</span> <span class="i">$Width</span><span class="cm">,</span> <span class="i">$Height</span><span class="cm">,</span> <span class="i">$ParamName</span><span class="cm">,</span> <span class="i">$ParamValue</span><span class="s">)</span><span class="sc">;</span>
+ 630   <span class="k">my</span><span class="s">(</span><span class="i">$Options</span><span class="s">)</span><span class="sc">;</span>
+ 631 
+ 632   <span class="i">$AppletTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>  <span class="i">$ParamsMapRef</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">%ParamsMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 633   <span class="i">$Name</span> = <span class="q">&quot;JME&quot;</span><span class="sc">;</span> <span class="i">$Code</span> = <span class="q">&quot;JME&quot;</span><span class="sc">;</span> <span class="i">$Archive</span> = <span class="q">&quot;JME.jar&quot;</span><span class="sc">;</span> <span class="i">$Width</span> = <span class="i">$StrViewerWidth</span><span class="sc">;</span> <span class="i">$Height</span> = <span class="i">$StrViewerHeight</span><span class="sc">;</span>
+ 634   <span class="i">$Options</span> = <span class="q">&quot;depict&quot;</span><span class="sc">;</span>
+ 635 
+ 636   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">3</span><span class="s">)</span> <span class="s">{</span>
+ 637     <span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CodeBase</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 638   <span class="s">}</span>
+ 639   <span class="k">else</span> <span class="s">{</span>
+ 640     <span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CodeBase</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 641   <span class="s">}</span>
+ 642   <span class="i">$MolString</span> =~ <span class="q">s/(\r\n)|(\r)|(\n)/|/g</span><span class="sc">;</span>
+ 643 
+ 644   <span class="k">if</span> <span class="s">(</span><span class="i">$ParamsMapRef</span><span class="s">)</span> <span class="s">{</span>
+ 645     <span class="i">%ParamsMap</span> = <span class="i">%$ParamsMapRef</span><span class="sc">;</span>
+ 646     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Name</span> = <span class="i">$ParamsMap</span>{<span class="w">name</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 647     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">code</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Code</span> = <span class="i">$ParamsMap</span>{<span class="w">code</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">code</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 648     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">archive</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Archive</span> = <span class="i">$ParamsMap</span>{<span class="w">archive</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">archive</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 649     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Height</span> = <span class="i">$ParamsMap</span>{<span class="w">height</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 650     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Width</span> = <span class="i">$ParamsMap</span>{<span class="w">width</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 651     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">options</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Options</span> = <span class="i">$ParamsMap</span>{<span class="w">options</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">options</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 652   <span class="s">}</span>
+ 653 
+ 654   <span class="c"># Setup applet header...</span>
+ 655   <span class="i">$AppletTags</span> = <span class="q">qq(\n&lt;applet name=&quot;$Name&quot; id=&quot;$Name&quot; code=&quot;$Code&quot; archive=&quot;$Archive&quot; codebase=&quot;$CodeBase&quot; width=&quot;$Width&quot; height=&quot;$Height&quot;&gt;\n)</span><span class="sc">;</span>
+ 656 
+ 657   <span class="c"># Setup molecule data...</span>
+ 658   <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;param name=&quot;mol&quot; value=&quot;$MolString&quot;&gt;\n&lt;param name=&quot;options&quot; value=&quot;$Options&quot;&gt;\n)</span><span class="sc">;</span>
+ 659 
+ 660   <span class="c">#Setup other parameters...</span>
+ 661   <span class="k">for</span> <span class="i">$ParamName</span> <span class="s">(</span><span class="k">sort</span> <span class="k">keys</span> <span class="i">%ParamsMap</span><span class="s">)</span> <span class="s">{</span>
+ 662     <span class="i">$ParamValue</span> = <span class="i">$ParamsMap</span>{<span class="i">$ParamName</span>}<span class="sc">;</span>
+ 663     <span class="k">if</span> <span class="s">(</span><span class="k">length</span> <span class="i">$ParamValue</span><span class="s">)</span> <span class="s">{</span>
+ 664       <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;param name=&quot;$ParamName&quot; value=&quot;$ParamValue&quot;&gt;\n)</span><span class="sc">;</span>
+ 665     <span class="s">}</span>
+ 666   <span class="s">}</span>
+ 667 
+ 668   <span class="c">#Finish it up...</span>
+ 669   <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;/applet&gt;\n)</span><span class="sc">;</span>
+ 670 
+ 671   <span class="k">return</span> <span class="i">$AppletTags</span><span class="sc">;</span>
+ 672 <span class="s">}</span>
+ 673 
+ 674 <span class="c"># Setup MarvinView applet...</span>
+<a name="SetupStrViewerMarvinViewApplet-"></a> 675 <span class="k">sub </span><span class="m">SetupStrViewerMarvinViewApplet</span> <span class="s">{</span>
+ 676   <span class="k">my</span><span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CodeBase</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="cm">,</span> <span class="i">%ParamsMap</span><span class="cm">,</span> <span class="i">$AppletTags</span><span class="cm">,</span> <span class="i">$JavaScriptTags</span><span class="cm">,</span> <span class="i">$ReturnTags</span><span class="cm">,</span> <span class="i">$Name</span><span class="cm">,</span> <span class="i">$Code</span><span class="cm">,</span> <span class="i">$Archive</span><span class="cm">,</span> <span class="i">$Width</span><span class="cm">,</span> <span class="i">$Height</span><span class="cm">,</span> <span class="i">$ParamName</span><span class="cm">,</span> <span class="i">$NavMode</span><span class="cm">,</span> <span class="i">$ParamValue</span><span class="cm">,</span> <span class="i">$JSFileName</span><span class="cm">,</span> <span class="i">$UseJavaScript</span><span class="cm">,</span> <span class="i">$MarvinJVM</span><span class="s">)</span><span class="sc">;</span>
+ 677 
+ 678   <span class="i">$AppletTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>  <span class="i">$JavaScriptTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$ReturnTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 679   <span class="i">$ParamsMapRef</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">%ParamsMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 680   <span class="i">$Name</span> = <span class="q">&quot;MView&quot;</span><span class="sc">;</span> <span class="i">$Code</span> = <span class="q">&quot;MView&quot;</span><span class="sc">;</span> <span class="i">$Archive</span> = <span class="q">&quot;marvin.jar&quot;</span><span class="sc">;</span> <span class="i">$Width</span> = <span class="i">$StrViewerWidth</span><span class="sc">;</span> <span class="i">$Height</span> = <span class="i">$StrViewerHeight</span><span class="sc">;</span>
+ 681   <span class="i">$NavMode</span> = <span class="q">&quot;zoom&quot;</span><span class="sc">;</span>
+ 682   <span class="i">$UseJavaScript</span> = <span class="n">0</span><span class="sc">;</span> <span class="i">$JSFileName</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$MarvinJVM</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 683 
+ 684   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">3</span><span class="s">)</span> <span class="s">{</span>
+ 685     <span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CodeBase</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 686   <span class="s">}</span>
+ 687   <span class="k">else</span> <span class="s">{</span>
+ 688     <span class="s">(</span><span class="i">$MolString</span><span class="cm">,</span> <span class="i">$CodeBase</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 689   <span class="s">}</span>
+ 690 
+ 691   <span class="k">if</span> <span class="s">(</span><span class="i">$ParamsMapRef</span><span class="s">)</span> <span class="s">{</span>
+ 692     <span class="i">%ParamsMap</span> = <span class="i">%$ParamsMapRef</span><span class="sc">;</span>
+ 693     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$JSFileName</span> = <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>}<span class="sc">;</span> <span class="i">$UseJavaScript</span> = <span class="n">1</span><span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 694     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">marvin_jvm</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$MarvinJVM</span> = <span class="i">$ParamsMap</span>{<span class="w">marvin_jvm</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">marvin_jvm</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 695     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Name</span> = <span class="i">$ParamsMap</span>{<span class="w">name</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 696     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">code</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Code</span> = <span class="i">$ParamsMap</span>{<span class="w">code</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">code</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 697     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">archive</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Archive</span> = <span class="i">$ParamsMap</span>{<span class="w">archive</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">archive</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 698     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Height</span> = <span class="i">$ParamsMap</span>{<span class="w">height</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 699     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Width</span> = <span class="i">$ParamsMap</span>{<span class="w">width</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 700     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">bgcolor</span>}<span class="s">)</span> <span class="s">{</span>
+ 701       <span class="i">$ParamsMap</span>{<span class="w">background</span>} = <span class="q">&quot;$ParamsMap{bgcolor}&quot;</span><span class="sc">;</span>
+ 702       <span class="i">$ParamsMap</span>{<span class="w">molbg</span>} = <span class="q">&quot;$ParamsMap{bgcolor}&quot;</span><span class="sc">;</span>
+ 703       <span class="i">$ParamsMap</span>{<span class="w">bgcolor</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 704     <span class="s">}</span>
+ 705     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">navmode</span>}<span class="s">)</span> <span class="s">{</span>
+ 706       <span class="i">$NavMode</span> = <span class="i">$ParamsMap</span>{<span class="w">navmode</span>}<span class="sc">;</span>
+ 707       <span class="i">$ParamsMap</span>{<span class="w">navmode</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 708     <span class="s">}</span>
+ 709   <span class="s">}</span>
+ 710   <span class="i">$MolString</span> =~ <span class="q">s/(\r\n)|(\r)|(\n)/\\/g</span><span class="sc">;</span>
+ 711   <span class="k">if</span> <span class="s">(</span><span class="i">$UseJavaScript</span><span class="s">)</span> <span class="s">{</span>
+ 712     <span class="i">$JavaScriptTags</span> = <span class="q">qq(\n&lt;script&gt;\n)</span><span class="sc">;</span>
+ 713     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(var marvin_name = &quot;$Name&quot;;\n)</span><span class="sc">;</span>
+ 714     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(var marvin_jvm = &quot;$MarvinJVM&quot;;\n)</span><span class="sc">;</span>
+ 715 
+ 716     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(mview_begin(&quot;$CodeBase&quot;, $Width, $Height);\n)</span><span class="sc">;</span>
+ 717 
+ 718     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(var $Name = \n)</span><span class="sc">;</span>
+ 719     <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">/\\/</span><span class="cm">,</span> <span class="i">$MolString</span><span class="sc">;</span>
+ 720     <span class="k">my</span><span class="s">(</span><span class="i">$LineIndex</span><span class="s">)</span><span class="sc">;</span>
+ 721     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(&quot;$MolLines[0]\\n&quot;)</span><span class="sc">;</span>
+ 722     <span class="k">for</span> <span class="i">$LineIndex</span> <span class="s">(</span><span class="n">1</span> .. <span class="i">$#MolLines</span><span class="s">)</span> <span class="s">{</span>
+ 723       <span class="i">$JavaScriptTags</span> .= <span class="q">qq( + \n&quot;$MolLines[$LineIndex]\\n&quot;)</span><span class="sc">;</span>
+ 724     <span class="s">}</span>
+ 725     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(;\n)</span><span class="sc">;</span>
+ 726     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(mview_param(&quot;mol&quot;, $Name);\n)</span><span class="sc">;</span>
+ 727 
+ 728     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(mview_param(&quot;navmode&quot;, &quot;$NavMode&quot;);\n)</span><span class="sc">;</span>
+ 729 
+ 730     <span class="k">for</span> <span class="i">$ParamName</span> <span class="s">(</span><span class="k">sort</span> <span class="k">keys</span> <span class="i">%ParamsMap</span><span class="s">)</span> <span class="s">{</span>
+ 731       <span class="i">$ParamValue</span> = <span class="i">$ParamsMap</span>{<span class="i">$ParamName</span>}<span class="sc">;</span>
+ 732       <span class="k">if</span> <span class="s">(</span><span class="k">length</span> <span class="i">$ParamValue</span><span class="s">)</span> <span class="s">{</span>
+ 733         <span class="i">$JavaScriptTags</span> .= <span class="q">qq(mview_param(&quot;$ParamName&quot;, &quot;$ParamValue&quot;);\n)</span><span class="sc">;</span>
+ 734       <span class="s">}</span>
+ 735     <span class="s">}</span>
+ 736     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(mview_end();\n)</span><span class="sc">;</span>
+ 737     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(&lt;/script&gt;\n)</span><span class="sc">;</span>
+ 738     <span class="i">$ReturnTags</span> = <span class="i">$JavaScriptTags</span><span class="sc">;</span>
+ 739   <span class="s">}</span>
+ 740   <span class="k">else</span> <span class="s">{</span>
+ 741     <span class="c"># Setup applet header...</span>
+ 742     <span class="i">$AppletTags</span> = <span class="q">qq(\n&lt;applet name=&quot;$Name&quot; id=&quot;$Name&quot; code=&quot;$Code&quot; archive=&quot;$Archive&quot; codebase=&quot;$CodeBase&quot; width=&quot;$Width&quot; height=&quot;$Height&quot;&gt;\n)</span><span class="sc">;</span>
+ 743 
+ 744     <span class="c"># Setup molecule data...</span>
+ 745     <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;param name=&quot;mol&quot; value=&quot;$MolString&quot;&gt;\n)</span><span class="sc">;</span>
+ 746 
+ 747     <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;param name=&quot;navmode&quot; value=&quot;$NavMode&quot;&gt;\n)</span><span class="sc">;</span>
+ 748 
+ 749     <span class="c">#Setup other parameters...</span>
+ 750     <span class="k">for</span> <span class="i">$ParamName</span> <span class="s">(</span><span class="k">sort</span> <span class="k">keys</span> <span class="i">%ParamsMap</span><span class="s">)</span> <span class="s">{</span>
+ 751       <span class="i">$ParamValue</span> = <span class="i">$ParamsMap</span>{<span class="i">$ParamName</span>}<span class="sc">;</span>
+ 752       <span class="k">if</span> <span class="s">(</span><span class="k">length</span> <span class="i">$ParamValue</span><span class="s">)</span> <span class="s">{</span>
+ 753         <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;param name=&quot;$ParamName&quot; value=&quot;$ParamValue&quot;&gt;\n)</span><span class="sc">;</span>
+ 754       <span class="s">}</span>
+ 755     <span class="s">}</span>
+ 756     <span class="i">$AppletTags</span> .= <span class="q">qq(&lt;/applet&gt;\n)</span><span class="sc">;</span>
+ 757     <span class="i">$ReturnTags</span> = <span class="i">$AppletTags</span><span class="sc">;</span>
+ 758   <span class="s">}</span>
+ 759   <span class="k">return</span> <span class="i">$ReturnTags</span><span class="sc">;</span>
+ 760 <span class="s">}</span>
+ 761 
+ 762 <span class="c"># Setup MDL chime plug-in...</span>
+<a name="SetupStrViewerChimePlugIn-"></a> 763 <span class="k">sub </span><span class="m">SetupStrViewerChimePlugIn</span> <span class="s">{</span>
+ 764   <span class="k">my</span><span class="s">(</span><span class="i">$MolFile</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="cm">,</span> <span class="i">%ParamsMap</span><span class="cm">,</span> <span class="i">$Width</span><span class="cm">,</span> <span class="i">$Height</span><span class="cm">,</span> <span class="i">$ParamName</span><span class="cm">,</span> <span class="i">$ParamValue</span><span class="cm">,</span> <span class="i">$PlugInTags</span><span class="s">)</span><span class="sc">;</span>
+ 765   <span class="k">my</span><span class="s">(</span><span class="i">$Display2D</span><span class="s">)</span><span class="sc">;</span>
+ 766 
+ 767   <span class="i">$PlugInTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$ParamsMapRef</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">%ParamsMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 768   <span class="i">$Width</span> = <span class="i">$StrViewerWidth</span><span class="sc">;</span> <span class="i">$Height</span> = <span class="i">$StrViewerHeight</span><span class="sc">;</span>
+ 769   <span class="i">$Display2D</span> = <span class="q">&quot;true&quot;</span><span class="sc">;</span>
+ 770 
+ 771   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+ 772     <span class="s">(</span><span class="i">$MolFile</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 773   <span class="s">}</span>
+ 774   <span class="k">else</span> <span class="s">{</span>
+ 775     <span class="s">(</span><span class="i">$MolFile</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 776   <span class="s">}</span>
+ 777 
+ 778   <span class="k">if</span> <span class="s">(</span><span class="i">$ParamsMapRef</span><span class="s">)</span> <span class="s">{</span>
+ 779     <span class="i">%ParamsMap</span> = <span class="i">%$ParamsMapRef</span><span class="sc">;</span>
+ 780     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Height</span> = <span class="i">$ParamsMap</span>{<span class="w">height</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 781     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Width</span> = <span class="i">$ParamsMap</span>{<span class="w">width</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 782     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">display2d</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Display2D</span> = <span class="i">$ParamsMap</span>{<span class="w">display2d</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">display2d</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 783   <span class="s">}</span>
+ 784   <span class="c"># Start plug-in tag...</span>
+ 785   <span class="i">$PlugInTags</span> = <span class="q">qq(&lt;embed src=&quot;$MolFile&quot; width=&quot;$Width&quot; height=&quot;$Height&quot; display2d=&quot;$Display2D&quot;)</span><span class="sc">;</span>
+ 786 
+ 787   <span class="c">#Setup other parameters...</span>
+ 788   <span class="k">for</span> <span class="i">$ParamName</span> <span class="s">(</span><span class="k">sort</span> <span class="k">keys</span> <span class="i">%ParamsMap</span><span class="s">)</span> <span class="s">{</span>
+ 789     <span class="i">$ParamValue</span> = <span class="i">$ParamsMap</span>{<span class="i">$ParamName</span>}<span class="sc">;</span>
+ 790     <span class="k">if</span> <span class="s">(</span><span class="k">length</span> <span class="i">$ParamValue</span><span class="s">)</span> <span class="s">{</span>
+ 791       <span class="i">$PlugInTags</span> .= <span class="q">qq( $ParamName=&quot;$ParamValue&quot;)</span><span class="sc">;</span>
+ 792     <span class="s">}</span>
+ 793   <span class="s">}</span>
+ 794 
+ 795   <span class="c"># Finish it off...</span>
+ 796   <span class="i">$PlugInTags</span> .= <span class="q">qq( &gt;)</span><span class="sc">;</span>
+ 797 
+ 798   <span class="k">return</span> <span class="i">$PlugInTags</span><span class="sc">;</span>
+ 799 <span class="s">}</span>
+ 800 
+ 801 <span class="c"># Setup Accelrys ViewerActiveX controls...</span>
+<a name="SetupStrViewerAccelrysActiveX-"></a> 802 <span class="k">sub </span><span class="m">SetupStrViewerAccelrysActiveX</span> <span class="s">{</span>
+ 803   <span class="k">my</span><span class="s">(</span><span class="i">$MolFile</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="cm">,</span> <span class="i">%ParamsMap</span><span class="cm">,</span> <span class="i">$ActiveXTags</span><span class="cm">,</span> <span class="i">$Name</span><span class="cm">,</span> <span class="i">$Width</span><span class="cm">,</span> <span class="i">$Height</span><span class="cm">,</span> <span class="i">$ParamName</span><span class="cm">,</span> <span class="i">$ParamValue</span><span class="s">)</span><span class="sc">;</span>
+ 804   <span class="k">my</span><span class="s">(</span><span class="i">$ClassId</span><span class="cm">,</span> <span class="i">$Convert2DTo3D</span><span class="cm">,</span> <span class="i">$Style</span><span class="cm">,</span> <span class="i">$Mouse</span><span class="s">)</span><span class="sc">;</span>
+ 805 
+ 806   <span class="i">$ActiveXTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>  <span class="i">$ParamsMapRef</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">%ParamsMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 807   <span class="i">$Name</span> = <span class="q">&quot;ViewerActiveX&quot;</span><span class="sc">;</span> <span class="i">$Width</span> = <span class="i">$StrViewerWidth</span><span class="sc">;</span> <span class="i">$Height</span> = <span class="i">$StrViewerHeight</span><span class="sc">;</span>
+ 808   <span class="i">$ClassId</span> = <span class="q">&quot;clsid:90690CB6-BC07-11D4-AEF7-0050DA948176&quot;</span><span class="sc">;</span>
+ 809   <span class="i">$Convert2DTo3D</span> = <span class="q">&quot;0&quot;</span><span class="sc">;</span>
+ 810   <span class="i">$Mouse</span> = <span class="n">4</span><span class="sc">;</span>
+ 811 
+ 812   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+ 813     <span class="s">(</span><span class="i">$MolFile</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 814   <span class="s">}</span>
+ 815   <span class="k">else</span> <span class="s">{</span>
+ 816     <span class="s">(</span><span class="i">$MolFile</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 817   <span class="s">}</span>
+ 818 
+ 819   <span class="k">if</span> <span class="s">(</span><span class="i">$ParamsMapRef</span><span class="s">)</span> <span class="s">{</span>
+ 820     <span class="i">%ParamsMap</span> = <span class="i">%$ParamsMapRef</span><span class="sc">;</span>
+ 821     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">classid</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ClassId</span> = <span class="i">$ParamsMap</span>{<span class="w">classid</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">classid</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 822     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Name</span> = <span class="i">$ParamsMap</span>{<span class="w">name</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 823     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Height</span> = <span class="i">$ParamsMap</span>{<span class="w">height</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 824     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Width</span> = <span class="i">$ParamsMap</span>{<span class="w">width</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 825     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">Convert2Dto3D</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Convert2DTo3D</span> = <span class="i">$ParamsMap</span>{<span class="w">Convert2Dto3D</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">Convert2Dto3D</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 826     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">Mouse</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Mouse</span> = <span class="i">$ParamsMap</span>{<span class="w">Mouse</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">Mouse</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 827     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">bgcolor</span>} <span class="s">)</span> <span class="s">{</span>
+ 828       <span class="k">my</span><span class="s">(</span><span class="i">$BgColor</span><span class="s">)</span> = <span class="i">$ParamsMap</span>{<span class="w">bgcolor</span>}<span class="sc">;</span>
+ 829       <span class="i">$ParamsMap</span>{<span class="w">bgcolor</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 830       <span class="c"># Get OLE color value: &amp;aabbggrr&amp;</span>
+ 831       <span class="c"># Set it to white for now...</span>
+ 832       <span class="i">$BgColor</span> = <span class="q">&quot;16777215&quot;</span><span class="sc">;</span>
+ 833       <span class="i">$ParamsMap</span>{<span class="w">BackColor</span>} = <span class="q">&quot;$BgColor&quot;</span><span class="sc">;</span>
+ 834     <span class="s">}</span>
+ 835   <span class="s">}</span>
+ 836   <span class="i">$Style</span> = <span class="q">qq(style=&quot;height: )</span> . <span class="i">$Height</span> . <span class="q">qq(px; width: )</span> . <span class="i">$Width</span> . <span class="q">qq(px&quot;)</span><span class="sc">;</span>
+ 837 
+ 838   <span class="c"># Setup object header...</span>
+ 839   <span class="i">$ActiveXTags</span> = <span class="q">qq(\n&lt;object id=&quot;$Name&quot; classid=&quot;$ClassId&quot; $Style&gt;\n)</span><span class="sc">;</span>
+ 840 
+ 841   <span class="c"># Setup molecule data...</span>
+ 842   <span class="i">$ActiveXTags</span> .= <span class="q">qq(&lt;param name=&quot;Source&quot; value=&quot;$MolFile&quot;&gt;\n&lt;param name=&quot;Mouse&quot; value=&quot;$Mouse&quot;&gt;\n&lt;param name=&quot;Convert2Dto3D&quot; value=&quot;$Convert2DTo3D&quot;&gt;\n)</span><span class="sc">;</span>
+ 843 
+ 844   <span class="c">#Setup other parameters...</span>
+ 845   <span class="k">for</span> <span class="i">$ParamName</span> <span class="s">(</span><span class="k">sort</span> <span class="k">keys</span> <span class="i">%ParamsMap</span><span class="s">)</span> <span class="s">{</span>
+ 846     <span class="i">$ParamValue</span> = <span class="i">$ParamsMap</span>{<span class="i">$ParamName</span>}<span class="sc">;</span>
+ 847     <span class="k">if</span> <span class="s">(</span><span class="k">length</span> <span class="i">$ParamValue</span><span class="s">)</span> <span class="s">{</span>
+ 848       <span class="i">$ActiveXTags</span> .= <span class="q">qq(&lt;param name=&quot;$ParamName&quot; value=&quot;$ParamValue&quot;&gt;\n)</span><span class="sc">;</span>
+ 849     <span class="s">}</span>
+ 850   <span class="s">}</span>
+ 851 
+ 852   <span class="c"># Finish it off...</span>
+ 853   <span class="i">$ActiveXTags</span> .= <span class="q">qq(&lt;/object&gt;\n)</span><span class="sc">;</span>
+ 854 
+ 855   <span class="k">return</span> <span class="i">$ActiveXTags</span><span class="sc">;</span>
+ 856 <span class="s">}</span>
+ 857 
+ 858 <span class="c"># Setup Chem3D ActiveX 8.0 control...</span>
+<a name="SetupStrViewerChem3DActiveX-"></a> 859 <span class="k">sub </span><span class="m">SetupStrViewerChem3DActiveX</span> <span class="s">{</span>
+ 860   <span class="k">my</span><span class="s">(</span><span class="i">$MolFile</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="cm">,</span> <span class="i">%ParamsMap</span><span class="cm">,</span> <span class="i">$ActiveXTags</span><span class="cm">,</span> <span class="i">$JavaScriptTags</span><span class="cm">,</span> <span class="i">$ReturnTags</span><span class="cm">,</span> <span class="i">$Name</span><span class="cm">,</span> <span class="i">$Width</span><span class="cm">,</span> <span class="i">$Height</span><span class="cm">,</span> <span class="i">$ParamName</span><span class="cm">,</span> <span class="i">$ParamValue</span><span class="s">)</span><span class="sc">;</span>
+ 861   <span class="k">my</span><span class="s">(</span><span class="i">$ClassId</span><span class="cm">,</span> <span class="i">$Style</span><span class="cm">,</span> <span class="i">$DisplayType</span><span class="cm">,</span> <span class="i">$RotationBars</span><span class="cm">,</span> <span class="i">$MovieController</span><span class="cm">,</span> <span class="i">$JSFileName</span><span class="cm">,</span> <span class="i">$UseJavaScript</span><span class="s">)</span><span class="sc">;</span>
+ 862 
+ 863   <span class="i">$ActiveXTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$JavaScriptTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$ReturnTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 864   <span class="i">$ParamsMapRef</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">%ParamsMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 865   <span class="i">$Name</span> = <span class="q">&quot;Chem3D&quot;</span><span class="sc">;</span> <span class="i">$Width</span> = <span class="i">$StrViewerWidth</span><span class="sc">;</span> <span class="i">$Height</span> = <span class="i">$StrViewerHeight</span><span class="sc">;</span>
+ 866   <span class="i">$ClassId</span> = <span class="q">&quot;clsid:B7A6B8E4-3E8B-4D18-8F8F-B4057EFC784B&quot;</span><span class="sc">;</span>
+ 867   <span class="i">$DisplayType</span> = <span class="q">&quot;Ball&amp;Stick&quot;</span><span class="sc">;</span>
+ 868   <span class="i">$RotationBars</span> = <span class="q">&quot;false&quot;</span><span class="sc">;</span>
+ 869   <span class="i">$MovieController</span> = <span class="q">&quot;false&quot;</span><span class="sc">;</span>
+ 870 
+ 871   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+ 872     <span class="s">(</span><span class="i">$MolFile</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 873   <span class="s">}</span>
+ 874   <span class="k">else</span> <span class="s">{</span>
+ 875     <span class="s">(</span><span class="i">$MolFile</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 876   <span class="s">}</span>
+ 877 
+ 878   <span class="k">if</span> <span class="s">(</span><span class="i">$ParamsMapRef</span><span class="s">)</span> <span class="s">{</span>
+ 879     <span class="i">%ParamsMap</span> = <span class="i">%$ParamsMapRef</span><span class="sc">;</span>
+ 880     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$JSFileName</span> = <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>}<span class="sc">;</span> <span class="i">$UseJavaScript</span> = <span class="n">1</span><span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 881     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">classid</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ClassId</span> = <span class="i">$ParamsMap</span>{<span class="w">classid</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">classid</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 882     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Name</span> = <span class="i">$ParamsMap</span>{<span class="w">name</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 883     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Height</span> = <span class="i">$ParamsMap</span>{<span class="w">height</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 884     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Width</span> = <span class="i">$ParamsMap</span>{<span class="w">width</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 885     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">displaytype</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$DisplayType</span> = <span class="i">$ParamsMap</span>{<span class="w">displaytype</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">displaytype</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 886     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">rotationbars</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$RotationBars</span> = <span class="i">$ParamsMap</span>{<span class="w">rotationbars</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">rotationbars</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 887     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">moviecontroller</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$MovieController</span> = <span class="i">$ParamsMap</span>{<span class="w">moviecontroller</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">moviecontroller</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 888   <span class="s">}</span>
+ 889   <span class="i">$Style</span> = <span class="q">qq(style=&quot;height: )</span> . <span class="i">$Height</span> . <span class="q">qq(px; width: )</span> . <span class="i">$Width</span> . <span class="q">qq(px&quot;)</span><span class="sc">;</span>
+ 890 
+ 891   <span class="k">if</span> <span class="s">(</span><span class="i">$UseJavaScript</span><span class="s">)</span> <span class="s">{</span>
+ 892     <span class="c">#Setup parameters...</span>
+ 893     <span class="k">my</span><span class="s">(</span><span class="i">$Params</span><span class="s">)</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 894     <span class="k">for</span> <span class="i">$ParamName</span> <span class="s">(</span><span class="k">sort</span> <span class="k">keys</span> <span class="i">%ParamsMap</span><span class="s">)</span> <span class="s">{</span>
+ 895       <span class="i">$ParamValue</span> = <span class="i">$ParamsMap</span>{<span class="i">$ParamName</span>}<span class="sc">;</span>
+ 896       <span class="k">if</span> <span class="s">(</span><span class="k">length</span> <span class="i">$ParamValue</span><span class="s">)</span> <span class="s">{</span>
+ 897         <span class="i">$Params</span> .= <span class="q">qq( $ParamName=&#39;$ParamValue&#39;)</span><span class="sc">;</span>
+ 898       <span class="s">}</span>
+ 899     <span class="s">}</span>
+ 900     <span class="i">$JavaScriptTags</span> = <span class="q">qq(\n&lt;script&gt;\n)</span><span class="sc">;</span>
+ 901     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(c3d_insert3dStr(&quot;name=&#39;$Name&#39; src=&#39;$MolFile&#39; width=&#39;$Width&#39; height=&#39;$Height&#39; displaytype=&#39;$DisplayType&#39; rotation_bars_visible=&#39;$RotationBars&#39; movie_controller_visible=&#39;$MovieController&#39; $Params&quot;);\n)</span><span class="sc">;</span>
+ 902     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(&lt;/script&gt;\n)</span><span class="sc">;</span>
+ 903     <span class="i">$ReturnTags</span> = <span class="i">$JavaScriptTags</span><span class="sc">;</span>
+ 904   <span class="s">}</span>
+ 905   <span class="k">else</span> <span class="s">{</span>
+ 906     <span class="c"># Setup object header...</span>
+ 907     <span class="i">$ActiveXTags</span> = <span class="q">qq(\n&lt;object id=&quot;$Name&quot; classid=&quot;$ClassId&quot; $Style&gt;\n)</span><span class="sc">;</span>
+ 908 
+ 909     <span class="c"># Setup molecule data...</span>
+ 910     <span class="i">$ActiveXTags</span> .= <span class="q">qq(&lt;param name=&quot;src&quot; value=&quot;$MolFile&quot;&gt;\n&lt;param name=&quot;displaytype&quot; value=&quot;$DisplayType&quot;&gt;\n&lt;param name=&quot;rotationbars&quot; value=&quot;$RotationBars&quot;&gt;\n&lt;param name=&quot;moviecontroller&quot; value=&quot;$MovieController&quot;&gt;\n)</span><span class="sc">;</span>
+ 911 
+ 912     <span class="c">#Setup other parameters...</span>
+ 913     <span class="k">for</span> <span class="i">$ParamName</span> <span class="s">(</span><span class="k">sort</span> <span class="k">keys</span> <span class="i">%ParamsMap</span><span class="s">)</span> <span class="s">{</span>
+ 914       <span class="i">$ParamValue</span> = <span class="i">$ParamsMap</span>{<span class="i">$ParamName</span>}<span class="sc">;</span>
+ 915       <span class="k">if</span> <span class="s">(</span><span class="k">length</span> <span class="i">$ParamValue</span><span class="s">)</span> <span class="s">{</span>
+ 916         <span class="i">$ActiveXTags</span> .= <span class="q">qq(&lt;param name=&quot;$ParamName&quot; value=&quot;$ParamValue&quot;&gt;\n)</span><span class="sc">;</span>
+ 917       <span class="s">}</span>
+ 918     <span class="s">}</span>
+ 919     <span class="i">$ActiveXTags</span> .= <span class="q">qq(&lt;/object&gt;\n)</span><span class="sc">;</span>
+ 920     <span class="i">$ReturnTags</span> = <span class="i">$ActiveXTags</span><span class="sc">;</span>
+ 921   <span class="s">}</span>
+ 922   <span class="k">return</span> <span class="i">$ReturnTags</span><span class="sc">;</span>
+ 923 <span class="s">}</span>
+ 924 
+ 925 <span class="c"># Setup ChemDraw ActiveX 8.0 control...</span>
+ 926 <span class="c"># Problems: &quot;bgcolor&quot; parameter doesn&#39;t work.</span>
+<a name="SetupStrViewerChemDrawActiveX-"></a> 927 <span class="k">sub </span><span class="m">SetupStrViewerChemDrawActiveX</span> <span class="s">{</span>
+ 928   <span class="k">my</span><span class="s">(</span><span class="i">$MolFile</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="cm">,</span> <span class="i">%ParamsMap</span><span class="cm">,</span> <span class="i">$ActiveXTags</span><span class="cm">,</span> <span class="i">$JavaScriptTags</span><span class="cm">,</span> <span class="i">$ReturnTags</span><span class="cm">,</span> <span class="i">$Name</span><span class="cm">,</span> <span class="i">$Width</span><span class="cm">,</span> <span class="i">$Height</span><span class="cm">,</span> <span class="i">$ParamName</span><span class="cm">,</span> <span class="i">$ParamValue</span><span class="s">)</span><span class="sc">;</span>
+ 929   <span class="k">my</span><span class="s">(</span><span class="i">$ClassId</span><span class="cm">,</span> <span class="i">$Style</span><span class="cm">,</span> <span class="i">$ViewOnly</span><span class="cm">,</span> <span class="i">$ShrinkToFit</span><span class="cm">,</span> <span class="i">$ShowToolsWhenVisible</span><span class="cm">,</span> <span class="i">$JSFileName</span><span class="cm">,</span> <span class="i">$UseJavaScript</span><span class="s">)</span><span class="sc">;</span>
+ 930 
+ 931   <span class="i">$ActiveXTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>  <span class="i">$JavaScriptTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$ReturnTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 932   <span class="i">$ParamsMapRef</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">%ParamsMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 933   <span class="i">$Name</span> = <span class="q">&quot;ChemDraw&quot;</span><span class="sc">;</span> <span class="i">$Width</span> = <span class="i">$StrViewerWidth</span><span class="sc">;</span> <span class="i">$Height</span> = <span class="i">$StrViewerHeight</span><span class="sc">;</span>
+ 934   <span class="i">$ClassId</span> = <span class="q">&quot;clsid:51A649C4-3E3D-4557-9BD8-B14C0AD44B0C&quot;</span><span class="sc">;</span>
+ 935   <span class="i">$ViewOnly</span> = <span class="q">&quot;1&quot;</span><span class="sc">;</span> <span class="i">$JavaScriptTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 936   <span class="i">$ShrinkToFit</span> = <span class="q">&quot;1&quot;</span><span class="sc">;</span>
+ 937   <span class="i">$ShowToolsWhenVisible</span> = <span class="q">&quot;1&quot;</span><span class="sc">;</span>
+ 938 
+ 939   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+ 940     <span class="s">(</span><span class="i">$MolFile</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 941   <span class="s">}</span>
+ 942   <span class="k">else</span> <span class="s">{</span>
+ 943     <span class="s">(</span><span class="i">$MolFile</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 944   <span class="s">}</span>
+ 945 
+ 946   <span class="k">if</span> <span class="s">(</span><span class="i">$ParamsMapRef</span><span class="s">)</span> <span class="s">{</span>
+ 947     <span class="i">%ParamsMap</span> = <span class="i">%$ParamsMapRef</span><span class="sc">;</span>
+ 948     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$JSFileName</span> = <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>}<span class="sc">;</span> <span class="i">$UseJavaScript</span> = <span class="n">1</span><span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 949     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">classid</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ClassId</span> = <span class="i">$ParamsMap</span>{<span class="w">classid</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">classid</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 950     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Name</span> = <span class="i">$ParamsMap</span>{<span class="w">name</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">name</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 951     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Height</span> = <span class="i">$ParamsMap</span>{<span class="w">height</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 952     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Width</span> = <span class="i">$ParamsMap</span>{<span class="w">width</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 953     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">ViewOnly</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ViewOnly</span> = <span class="i">$ParamsMap</span>{<span class="w">ViewOnly</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">ViewOnly</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 954     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">ShrinkToFit</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ShrinkToFit</span> = <span class="i">$ParamsMap</span>{<span class="w">ShrinkToFit</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">ShrinkToFit</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 955     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">ShowToolsWhenVisible</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ShowToolsWhenVisible</span> = <span class="i">$ParamsMap</span>{<span class="w">ShowToolsWhenVisible</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">ShowToolsWhenVisible</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+ 956   <span class="s">}</span>
+ 957   <span class="k">if</span> <span class="s">(</span><span class="i">$UseJavaScript</span><span class="s">)</span> <span class="s">{</span>
+ 958     <span class="c">#Setup parameter...</span>
+ 959     <span class="k">my</span><span class="s">(</span><span class="i">$Params</span><span class="s">)</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+ 960     <span class="k">for</span> <span class="i">$ParamName</span> <span class="s">(</span><span class="k">sort</span> <span class="k">keys</span> <span class="i">%ParamsMap</span><span class="s">)</span> <span class="s">{</span>
+ 961       <span class="i">$ParamValue</span> = <span class="i">$ParamsMap</span>{<span class="i">$ParamName</span>}<span class="sc">;</span>
+ 962       <span class="k">if</span> <span class="s">(</span><span class="k">length</span> <span class="i">$ParamValue</span><span class="s">)</span> <span class="s">{</span>
+ 963         <span class="i">$Params</span> .= <span class="q">qq( $ParamName=&#39;$ParamValue&#39;)</span><span class="sc">;</span>
+ 964       <span class="s">}</span>
+ 965     <span class="s">}</span>
+ 966     <span class="i">$JavaScriptTags</span> = <span class="q">qq(\n&lt;script&gt;\n)</span><span class="sc">;</span>
+ 967     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(cd_insertObjectStr(&quot;name=&#39;$Name&#39; src=&#39;$MolFile&#39; width=&#39;$Width&#39; height=&#39;$Height&#39; shrinktofit=&#39;$ShrinkToFit&#39; viewonly=&#39;$ViewOnly&#39; $Params&quot;);\n)</span><span class="sc">;</span>
+ 968     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(&lt;/script&gt;\n)</span><span class="sc">;</span>
+ 969     <span class="i">$ReturnTags</span> = <span class="i">$JavaScriptTags</span><span class="sc">;</span>
+ 970   <span class="s">}</span>
+ 971   <span class="k">else</span> <span class="s">{</span>
+ 972     <span class="i">$Style</span> = <span class="q">qq(style=&quot;height: )</span> . <span class="i">$Height</span> . <span class="q">qq(px; width: )</span> . <span class="i">$Width</span> . <span class="q">qq(px&quot;)</span><span class="sc">;</span>
+ 973 
+ 974     <span class="c"># Setup object header...</span>
+ 975     <span class="i">$ActiveXTags</span> = <span class="q">qq(\n&lt;object id=&quot;$Name&quot; classid=&quot;$ClassId&quot; $Style&gt;\n)</span><span class="sc">;</span>
+ 976 
+ 977     <span class="c"># Setup molecule data...</span>
+ 978     <span class="i">$ActiveXTags</span> .= <span class="q">qq(&lt;param name=&quot;SourceURL&quot; value=&quot;$MolFile&quot;&gt;\n&lt;param name=&quot;ShrinkToFit&quot; value=&quot;$ShrinkToFit&quot;&gt;\n&lt;param name=&quot;ViewOnly&quot; value=&quot;$ViewOnly&quot;&gt;\n&lt;param name=&quot;ShowToolsWhenVisible&quot; value=&quot;$ShowToolsWhenVisible&quot;&gt;\n)</span><span class="sc">;</span>
+ 979 
+ 980     <span class="c">#Setup other parameters...</span>
+ 981     <span class="k">for</span> <span class="i">$ParamName</span> <span class="s">(</span><span class="k">sort</span> <span class="k">keys</span> <span class="i">%ParamsMap</span><span class="s">)</span> <span class="s">{</span>
+ 982       <span class="i">$ParamValue</span> = <span class="i">$ParamsMap</span>{<span class="i">$ParamName</span>}<span class="sc">;</span>
+ 983       <span class="k">if</span> <span class="s">(</span><span class="k">length</span> <span class="i">$ParamValue</span><span class="s">)</span> <span class="s">{</span>
+ 984         <span class="i">$ActiveXTags</span> .= <span class="q">qq(&lt;param name=&quot;$ParamName&quot; value=&quot;$ParamValue&quot;&gt;\n)</span><span class="sc">;</span>
+ 985       <span class="s">}</span>
+ 986     <span class="s">}</span>
+ 987     <span class="i">$ActiveXTags</span> .= <span class="q">qq(&lt;/object&gt;\n)</span><span class="sc">;</span>
+ 988     <span class="i">$ReturnTags</span> = <span class="i">$ActiveXTags</span><span class="sc">;</span>
+ 989   <span class="s">}</span>
+ 990   <span class="k">return</span> <span class="i">$ReturnTags</span><span class="sc">;</span>
+ 991 <span class="s">}</span>
+ 992 
+ 993 <span class="c"># Setup ChemDraw plug-in used for Netscape browsers...</span>
+ 994 <span class="c"># Problems: &quot;bgcolor&quot; parameter doesn&#39;t work.</span>
+<a name="SetupStrViewerChemDrawPlugIn-"></a> 995 <span class="k">sub </span><span class="m">SetupStrViewerChemDrawPlugIn</span> <span class="s">{</span>
+ 996   <span class="k">my</span><span class="s">(</span><span class="i">$MolFile</span><span class="cm">,</span> <span class="i">$Name</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="cm">,</span> <span class="i">%ParamsMap</span><span class="cm">,</span> <span class="i">$Width</span><span class="cm">,</span> <span class="i">$Height</span><span class="cm">,</span> <span class="i">$ParamName</span><span class="cm">,</span> <span class="i">$ParamValue</span><span class="cm">,</span> <span class="i">$PlugInTags</span><span class="cm">,</span> <span class="i">$JavaScriptTags</span><span class="cm">,</span> <span class="i">$ReturnTags</span><span class="cm">,</span><span class="s">)</span><span class="sc">;</span>
+ 997   <span class="k">my</span><span class="s">(</span><span class="i">$MimeType</span><span class="cm">,</span> <span class="i">$ViewOnly</span><span class="cm">,</span> <span class="i">$ShrinkToFit</span><span class="cm">,</span> <span class="i">$ShowToolsWhenVisible</span><span class="cm">,</span> <span class="i">$JSFileName</span><span class="cm">,</span> <span class="i">$UseJavaScript</span><span class="s">)</span><span class="sc">;</span>
+ 998 
+ 999   <span class="i">$Name</span> = <span class="q">&quot;ChemDraw&quot;</span><span class="sc">;</span> <span class="i">$PlugInTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">$ParamsMapRef</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="i">%ParamsMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1000   <span class="i">$Width</span> = <span class="i">$StrViewerWidth</span><span class="sc">;</span> <span class="i">$Height</span> = <span class="i">$StrViewerHeight</span><span class="sc">;</span>
+1001   <span class="i">$MimeType</span> = <span class="q">&quot;chemical/x-mdl-molfile&quot;</span><span class="sc">;</span>
+1002   <span class="i">$ViewOnly</span> = <span class="q">&quot;1&quot;</span><span class="sc">;</span>
+1003   <span class="i">$ShrinkToFit</span> = <span class="q">&quot;1&quot;</span><span class="sc">;</span>
+1004   <span class="i">$ShowToolsWhenVisible</span> = <span class="q">&quot;1&quot;</span><span class="sc">;</span> <span class="i">$JavaScriptTags</span> = <span class="q">&quot;&quot;</span><span class="sc">;</span>
+1005 
+1006   <span class="k">if</span> <span class="s">(</span><span class="i">@_</span> == <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+1007     <span class="s">(</span><span class="i">$MolFile</span><span class="cm">,</span> <span class="i">$ParamsMapRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1008   <span class="s">}</span>
+1009   <span class="k">else</span> <span class="s">{</span>
+1010     <span class="s">(</span><span class="i">$MolFile</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1011   <span class="s">}</span>
+1012 
+1013   <span class="k">if</span> <span class="s">(</span><span class="i">$ParamsMapRef</span><span class="s">)</span> <span class="s">{</span>
+1014     <span class="i">%ParamsMap</span> = <span class="i">%$ParamsMapRef</span><span class="sc">;</span>
+1015     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$JSFileName</span> = <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>}<span class="sc">;</span> <span class="i">$UseJavaScript</span> = <span class="n">1</span><span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">usejavascript</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+1016     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Height</span> = <span class="i">$ParamsMap</span>{<span class="w">height</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">height</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+1017     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$Width</span> = <span class="i">$ParamsMap</span>{<span class="w">width</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">width</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+1018     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">type</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$MimeType</span> = <span class="i">$ParamsMap</span>{<span class="w">type</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">type</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+1019     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">viewonly</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ViewOnly</span> = <span class="i">$ParamsMap</span>{<span class="w">viewonly</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">viewonly</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+1020     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">shrinktofit</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ShrinkToFit</span> = <span class="i">$ParamsMap</span>{<span class="w">shrinktofit</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">shrinktofit</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+1021     <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$ParamsMap</span>{<span class="w">showtoolswhenvisible</span>} <span class="s">)</span> <span class="s">{</span> <span class="i">$ShowToolsWhenVisible</span> = <span class="i">$ParamsMap</span>{<span class="w">showtoolswhenvisible</span>}<span class="sc">;</span> <span class="i">$ParamsMap</span>{<span class="w">showtoolswhenvisible</span>} = <span class="q">&quot;&quot;</span><span class="sc">;</span> <span class="s">}</span>
+1022   <span class="s">}</span>
+1023   <span class="k">if</span> <span class="s">(</span><span class="i">$UseJavaScript</span><span class="s">)</span> <span class="s">{</span>
+1024     <span class="i">$JavaScriptTags</span> = <span class="q">qq(\n&lt;script&gt;\n)</span><span class="sc">;</span>
+1025     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(cd_insertObjectStr(&quot;name=&#39;$Name&#39; src=&#39;$MolFile&#39; type=&#39;$MimeType&#39; width=&#39;$Width&#39; height=&#39;$Height&#39; shrinktofit=&#39;$ShrinkToFit&#39; viewonly=&#39;$ViewOnly&#39;&quot;);\n)</span><span class="sc">;</span>
+1026     <span class="i">$JavaScriptTags</span> .= <span class="q">qq(&lt;/script&gt;\n)</span><span class="sc">;</span>
+1027     <span class="i">$ReturnTags</span> = <span class="i">$JavaScriptTags</span><span class="sc">;</span>
+1028   <span class="s">}</span>
+1029   <span class="k">else</span> <span class="s">{</span>
+1030     <span class="c"># Start plug-in tag...</span>
+1031     <span class="i">$PlugInTags</span> = <span class="q">qq(&lt;embed src=&quot;$MolFile&quot; width=&quot;$Width&quot; height=&quot;$Height&quot; type=&quot;$MimeType&quot; viewonly=&quot;$ViewOnly&quot; shrinktofit=&quot;$ShrinkToFit&quot; showtoolswhenvisible=&#39;&#39;$ShowToolsWhenVisible&quot;)</span><span class="sc">;</span>
+1032 
+1033     <span class="c">#Setup other parameters...</span>
+1034     <span class="k">for</span> <span class="i">$ParamName</span> <span class="s">(</span><span class="k">sort</span> <span class="k">keys</span> <span class="i">%ParamsMap</span><span class="s">)</span> <span class="s">{</span>
+1035       <span class="i">$ParamValue</span> = <span class="i">$ParamsMap</span>{<span class="i">$ParamName</span>}<span class="sc">;</span>
+1036       <span class="k">if</span> <span class="s">(</span><span class="k">length</span> <span class="i">$ParamValue</span><span class="s">)</span> <span class="s">{</span>
+1037         <span class="i">$PlugInTags</span> .= <span class="q">qq(&quot; $ParamName&quot;=&quot;$ParamValue&quot;)</span><span class="sc">;</span>
+1038       <span class="s">}</span>
+1039     <span class="s">}</span>
+1040     <span class="c"># Finish it off...</span>
+1041     <span class="i">$PlugInTags</span> .= <span class="q">qq( &gt;)</span><span class="sc">;</span>
+1042     <span class="i">$ReturnTags</span> = <span class="i">$PlugInTags</span><span class="sc">;</span>
+1043   <span class="s">}</span>
+1044 
+1045   <span class="k">return</span> <span class="i">$ReturnTags</span><span class="sc">;</span>
+1046 <span class="s">}</span>
+1047 
+1048 
+<a name="EOF-"></a></pre>
+<p>&nbsp;</p>
+<br />
+<center>
+<img src="../../../images/h2o2.png">
+</center>
+</body>
+</html>