extensions/net.sf.basedb.reggie/trunk/resources/libprep/create_manual_pool.jsp

Code
Comments
Other
Rev Date Author Line
2137 13 Nov 13 nicklas 1 <%@ page
2137 13 Nov 13 nicklas 2   pageEncoding="UTF-8"
2137 13 Nov 13 nicklas 3   session="false"
2137 13 Nov 13 nicklas 4   import="net.sf.basedb.core.User"
2137 13 Nov 13 nicklas 5   import="net.sf.basedb.core.DbControl"
2137 13 Nov 13 nicklas 6   import="net.sf.basedb.core.SessionControl"
2137 13 Nov 13 nicklas 7   import="net.sf.basedb.core.Application"
2137 13 Nov 13 nicklas 8   import="net.sf.basedb.util.formatter.WellCoordinateFormatter"
2137 13 Nov 13 nicklas 9   import="net.sf.basedb.clients.web.Base"  
2137 13 Nov 13 nicklas 10   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
2137 13 Nov 13 nicklas 11 %>
2137 13 Nov 13 nicklas 12 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
2137 13 Nov 13 nicklas 13 <%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
2137 13 Nov 13 nicklas 14 <%@ taglib prefix="tbl" uri="/WEB-INF/table.tld" %>
2137 13 Nov 13 nicklas 15 <%
3976 26 May 16 nicklas 16 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
2137 13 Nov 13 nicklas 17 final String ID = sc.getId();
2137 13 Nov 13 nicklas 18 final float scale = Base.getScale(sc);
2137 13 Nov 13 nicklas 19 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
2137 13 Nov 13 nicklas 20 DbControl dc = null;
2137 13 Nov 13 nicklas 21 try
2137 13 Nov 13 nicklas 22 {
2137 13 Nov 13 nicklas 23   dc = sc.newDbControl();
2137 13 Nov 13 nicklas 24   final User user = User.getById(dc, sc.getLoggedInUserId());
2137 13 Nov 13 nicklas 25 %>
2137 13 Nov 13 nicklas 26 <base:page type="default" >
2805 15 Oct 14 nicklas 27 <base:head 
2805 15 Oct 14 nicklas 28   scripts="~../reggie-2.js,~create_manual_pool.js,~pools.js" 
2805 15 Oct 14 nicklas 29   styles="path.css,toolbar.css,~../css/reggie-2.css"
2805 15 Oct 14 nicklas 30   >
2137 13 Nov 13 nicklas 31 <style>
2137 13 Nov 13 nicklas 32
2137 13 Nov 13 nicklas 33 #pool-table
2137 13 Nov 13 nicklas 34 {
2137 13 Nov 13 nicklas 35   width: 100%;
2137 13 Nov 13 nicklas 36 }
2137 13 Nov 13 nicklas 37
2137 13 Nov 13 nicklas 38 #pool-name
2137 13 Nov 13 nicklas 39 {
2137 13 Nov 13 nicklas 40   font-size: 125%;
2137 13 Nov 13 nicklas 41 }
2137 13 Nov 13 nicklas 42
2137 13 Nov 13 nicklas 43 #pool-table th, #pool-table td
2137 13 Nov 13 nicklas 44 {
2137 13 Nov 13 nicklas 45   text-align: left;
2137 13 Nov 13 nicklas 46   padding: 2px 0.5em 2px 0.5em;
2137 13 Nov 13 nicklas 47 }
2137 13 Nov 13 nicklas 48
2137 13 Nov 13 nicklas 49 #lib-table table
2137 13 Nov 13 nicklas 50 {
2137 13 Nov 13 nicklas 51   width: 100%;
2137 13 Nov 13 nicklas 52   border-collapse: collapse;
2137 13 Nov 13 nicklas 53 }
2137 13 Nov 13 nicklas 54
2137 13 Nov 13 nicklas 55 #lib-table thead, #lib-table tbody
2137 13 Nov 13 nicklas 56 {
3026 11 Dec 14 nicklas 57   border-bottom-width: 1px;
2137 13 Nov 13 nicklas 58 }
2137 13 Nov 13 nicklas 59
2137 13 Nov 13 nicklas 60 #lib-table th, #lib-table td
2137 13 Nov 13 nicklas 61 {
2137 13 Nov 13 nicklas 62   text-align: left;
2137 13 Nov 13 nicklas 63   padding: 2px 0.5em 2px 0.5em;
3026 11 Dec 14 nicklas 64   border-right-width: 1px;
2137 13 Nov 13 nicklas 65 }
2137 13 Nov 13 nicklas 66
2137 13 Nov 13 nicklas 67 #lib-table tbody#lib-table-rows tr
2137 13 Nov 13 nicklas 68 {
3026 11 Dec 14 nicklas 69   border-bottom-width: 1px;
3026 11 Dec 14 nicklas 70   border-bottom-style: dotted;
2137 13 Nov 13 nicklas 71 }
2137 13 Nov 13 nicklas 72
2137 13 Nov 13 nicklas 73 #lib-table tbody#lib-table-rows tr.excluded
2137 13 Nov 13 nicklas 74 {
2805 15 Oct 14 nicklas 75   font-style: italic;
2805 15 Oct 14 nicklas 76   color: #666666;
2137 13 Nov 13 nicklas 77 }
2137 13 Nov 13 nicklas 78
2137 13 Nov 13 nicklas 79 #lib-table .check
2137 13 Nov 13 nicklas 80 {
2137 13 Nov 13 nicklas 81   width: 25px;
2137 13 Nov 13 nicklas 82   text-align: center;
2137 13 Nov 13 nicklas 83   border-left: 0;
2137 13 Nov 13 nicklas 84 }
2137 13 Nov 13 nicklas 85
2137 13 Nov 13 nicklas 86 #lib-table .name
2137 13 Nov 13 nicklas 87 {
2137 13 Nov 13 nicklas 88   width: 12em;
2137 13 Nov 13 nicklas 89 }
2137 13 Nov 13 nicklas 90
2137 13 Nov 13 nicklas 91 #lib-table .barcode
2137 13 Nov 13 nicklas 92 {
2137 13 Nov 13 nicklas 93   width: 6em;
2137 13 Nov 13 nicklas 94 }
2137 13 Nov 13 nicklas 95
2137 13 Nov 13 nicklas 96 #lib-table .plate
2137 13 Nov 13 nicklas 97 {
2137 13 Nov 13 nicklas 98   width: 12em;
2137 13 Nov 13 nicklas 99 }
2137 13 Nov 13 nicklas 100
2137 13 Nov 13 nicklas 101 #lib-table .remain
2137 13 Nov 13 nicklas 102 {
2137 13 Nov 13 nicklas 103   width: 4em;
2137 13 Nov 13 nicklas 104   text-align: center;
2137 13 Nov 13 nicklas 105 }
2137 13 Nov 13 nicklas 106
2454 23 May 14 nicklas 107 #lib-table .adapter
2454 23 May 14 nicklas 108 {
2454 23 May 14 nicklas 109   width: 4em;
2454 23 May 14 nicklas 110   text-align: center;
2454 23 May 14 nicklas 111 }
2137 13 Nov 13 nicklas 112
2454 23 May 14 nicklas 113
2137 13 Nov 13 nicklas 114 #lib-table .molarity
2137 13 Nov 13 nicklas 115 {
2137 13 Nov 13 nicklas 116   width: 4em;
2137 13 Nov 13 nicklas 117   text-align: center;
2137 13 Nov 13 nicklas 118 }
2137 13 Nov 13 nicklas 119
2137 13 Nov 13 nicklas 120 #lib-table .volume
2137 13 Nov 13 nicklas 121 {
2137 13 Nov 13 nicklas 122   width: 4em;
2137 13 Nov 13 nicklas 123   text-align: center;
2137 13 Nov 13 nicklas 124 }
2137 13 Nov 13 nicklas 125
2137 13 Nov 13 nicklas 126 #lib-table .eb
2137 13 Nov 13 nicklas 127 {
2137 13 Nov 13 nicklas 128   width: 4em;
2137 13 Nov 13 nicklas 129   text-align: center;
2137 13 Nov 13 nicklas 130 }
2137 13 Nov 13 nicklas 131
2805 15 Oct 14 nicklas 132 #lib-table .status
2805 15 Oct 14 nicklas 133 {
2805 15 Oct 14 nicklas 134   width: 20px;
2805 15 Oct 14 nicklas 135   max-width: 20px;
2805 15 Oct 14 nicklas 136   background-position: 50% 50%;
2805 15 Oct 14 nicklas 137   background-repeat: no-repeat;
2805 15 Oct 14 nicklas 138   border-right: 0;
2805 15 Oct 14 nicklas 139 }
2805 15 Oct 14 nicklas 140
2137 13 Nov 13 nicklas 141 td.volume, span.volume
2137 13 Nov 13 nicklas 142 {
2137 13 Nov 13 nicklas 143   color: #C80000;
2137 13 Nov 13 nicklas 144 }
2137 13 Nov 13 nicklas 145
2137 13 Nov 13 nicklas 146 td.eb, span.eb
2137 13 Nov 13 nicklas 147 {
2137 13 Nov 13 nicklas 148   color: #0000C8;
2137 13 Nov 13 nicklas 149 }
2137 13 Nov 13 nicklas 150
2137 13 Nov 13 nicklas 151 #lib-table td.remarks
2137 13 Nov 13 nicklas 152 {
2137 13 Nov 13 nicklas 153   font-style: italic;
2137 13 Nov 13 nicklas 154 }
2137 13 Nov 13 nicklas 155
2805 15 Oct 14 nicklas 156 #lib-table .warning .status
2137 13 Nov 13 nicklas 157 {
2137 13 Nov 13 nicklas 158   background-image: url('../images/warning.png');
2137 13 Nov 13 nicklas 159 }
2137 13 Nov 13 nicklas 160
2805 15 Oct 14 nicklas 161 #lib-table .lib-error .status
2137 13 Nov 13 nicklas 162 {
2137 13 Nov 13 nicklas 163   background-image: url('../images/error.png');
2137 13 Nov 13 nicklas 164   padding-left: 25px;
2805 15 Oct 14 nicklas 165   color: #C80000;  
2137 13 Nov 13 nicklas 166 }
2137 13 Nov 13 nicklas 167
2805 15 Oct 14 nicklas 168 #lib-table .lib-error .remarks
2805 15 Oct 14 nicklas 169 {
2805 15 Oct 14 nicklas 170   color: #C80000;  
2805 15 Oct 14 nicklas 171 }
2137 13 Nov 13 nicklas 172
2805 15 Oct 14 nicklas 173 .wizard.flash-error #lib-table .lib-error .status 
2805 15 Oct 14 nicklas 174 {
2805 15 Oct 14 nicklas 175   animation: enlarge 1s infinite;
2805 15 Oct 14 nicklas 176 }
2805 15 Oct 14 nicklas 177
2805 15 Oct 14 nicklas 178 .wizard.flash-error #lib-table .lib-error
2805 15 Oct 14 nicklas 179 {
2805 15 Oct 14 nicklas 180   animation: flash 1s infinite;
2805 15 Oct 14 nicklas 181 }
2805 15 Oct 14 nicklas 182
2805 15 Oct 14 nicklas 183
2137 13 Nov 13 nicklas 184 #lib-table-pool-summary td
2137 13 Nov 13 nicklas 185 {
2137 13 Nov 13 nicklas 186   font-weight: bold;
2137 13 Nov 13 nicklas 187 }
2137 13 Nov 13 nicklas 188 </style>
2137 13 Nov 13 nicklas 189 </base:head>
2805 15 Oct 14 nicklas 190 <base:body>
2137 13 Nov 13 nicklas 191
2137 13 Nov 13 nicklas 192   <p:path><p:pathelement 
2137 13 Nov 13 nicklas 193     title="Reggie" href="<%="../index.jsp?ID="+ID%>" 
2137 13 Nov 13 nicklas 194     /><p:pathelement title="Create manual pool" 
2137 13 Nov 13 nicklas 195     /></p:path>
2137 13 Nov 13 nicklas 196
2137 13 Nov 13 nicklas 197   <div class="content" id="content">
2137 13 Nov 13 nicklas 198
2805 15 Oct 14 nicklas 199   <form name="reggie" id="wizard" class="wizard">
2805 15 Oct 14 nicklas 200   <input type="hidden" name="poolName">
2137 13 Nov 13 nicklas 201   
2805 15 Oct 14 nicklas 202   <div class="step" id="step-1">
2805 15 Oct 14 nicklas 203     <div class="step-no">1</div>
2805 15 Oct 14 nicklas 204     <div class="step-title">Select pool options and libraries</div>
2805 15 Oct 14 nicklas 205     <div class="step-content">
2805 15 Oct 14 nicklas 206
2805 15 Oct 14 nicklas 207       <table class="step-form">
2805 15 Oct 14 nicklas 208       <tr>
2137 13 Nov 13 nicklas 209         <td class="prompt">Target molarity</td>
2137 13 Nov 13 nicklas 210         <td class="input">
3107 27 Jan 15 nicklas 211           <select name="target_molarity" id="target_molarity" style="width: 4em;">
3107 27 Jan 15 nicklas 212           <option value="1">1.0
3107 27 Jan 15 nicklas 213           <option value="2" selected>2.0
3107 27 Jan 15 nicklas 214           </select>
3107 27 Jan 15 nicklas 215           nM
2137 13 Nov 13 nicklas 216         </td>
3107 27 Jan 15 nicklas 217         <td class="status" id="target_molarity.status"></td>
2137 13 Nov 13 nicklas 218         <td class="help"></td>
2137 13 Nov 13 nicklas 219       </tr>
2805 15 Oct 14 nicklas 220       <tr>
2137 13 Nov 13 nicklas 221         <td class="prompt">Average volume / lib</td>
2137 13 Nov 13 nicklas 222         <td class="input">
2805 15 Oct 14 nicklas 223           <input type="text" class="text" name="target_volume" id="target_volume"
2805 15 Oct 14 nicklas 224             value="5" style="width: 4em;"> µl (2--20)
2137 13 Nov 13 nicklas 225         </td>
2137 13 Nov 13 nicklas 226         <td class="status" id="target_volume.status"></td>
2805 15 Oct 14 nicklas 227         <td class="help" rowspan="2">
2805 15 Oct 14 nicklas 228           <span id="target_volume.message" class="message"></span>
2137 13 Nov 13 nicklas 229           Select a target volume when mixing each lib to 2nM before pooling. 
2137 13 Nov 13 nicklas 230           Use the <b>Dynamic</b> strategy to prioritize final pool molarity by mixing 
2137 13 Nov 13 nicklas 231           different volume for each library. Use the <b>Fixed</b> strategy to mix all 
2137 13 Nov 13 nicklas 232           libraries to the given volume.
2137 13 Nov 13 nicklas 233         </td>
2137 13 Nov 13 nicklas 234       </tr>
2805 15 Oct 14 nicklas 235       <tr>
2137 13 Nov 13 nicklas 236         <td class="prompt">Mixing strategy</td>
2137 13 Nov 13 nicklas 237         <td class="input">
2805 15 Oct 14 nicklas 238           <label><input type="radio" name="mixing_strategy" id="mixing_strategy_dynamic" value="dynamic" checked
2137 13 Nov 13 nicklas 239             >Dynamic</label>
2805 15 Oct 14 nicklas 240           <label><input type="radio" name="mixing_strategy" id="mixing_strategy_fixed" value="fixed"
2137 13 Nov 13 nicklas 241             >Fixed</label>
2137 13 Nov 13 nicklas 242         </td>
2137 13 Nov 13 nicklas 243         <td class="status" id="mixing_strategy.status"></td>
2137 13 Nov 13 nicklas 244       </tr>
2137 13 Nov 13 nicklas 245       </table>
2137 13 Nov 13 nicklas 246       
3026 11 Dec 14 nicklas 247       <tbl:toolbar subclass="topborder bottomborder bg-filled-50">
2137 13 Nov 13 nicklas 248         <tbl:button 
2805 15 Oct 14 nicklas 249           id="btnSelectLibraries"
2137 13 Nov 13 nicklas 250           title="Select libraries&hellip;" 
2137 13 Nov 13 nicklas 251           image="<%=home+"/images/new.png"%>" 
2137 13 Nov 13 nicklas 252           tooltip="Select libraries to include in the pool"
2137 13 Nov 13 nicklas 253         />
2137 13 Nov 13 nicklas 254         <tbl:button 
2805 15 Oct 14 nicklas 255           id="btnRemove"
2137 13 Nov 13 nicklas 256           title="Remove" 
2137 13 Nov 13 nicklas 257           image="<%=home+"/images/delete.png"%>" 
2137 13 Nov 13 nicklas 258           tooltip="Remove the selected libraries from the pool"
2137 13 Nov 13 nicklas 259         />
2137 13 Nov 13 nicklas 260         <tbl:button 
2805 15 Oct 14 nicklas 261           id="btnTargetVolume"
2188 10 Jan 14 nicklas 262           title="Separate mix volume&hellip;" 
2188 10 Jan 14 nicklas 263           image="<%=home+"/images/specimen.png"%>" 
2188 10 Jan 14 nicklas 264           tooltip="Set volume to use in the pool for separately mixed libraries (dynamic mixing only)" 
2188 10 Jan 14 nicklas 265         />
2188 10 Jan 14 nicklas 266         <tbl:button 
2805 15 Oct 14 nicklas 267           id="btnComment"
2137 13 Nov 13 nicklas 268           title="Comments&hellip;" 
2137 13 Nov 13 nicklas 269           image="<%=home+"/images/comment.png"%>" 
2137 13 Nov 13 nicklas 270           tooltip="Add a comment to the selected libraries" 
2137 13 Nov 13 nicklas 271         />
2137 13 Nov 13 nicklas 272       </tbl:toolbar>
2151 26 Nov 13 nicklas 273
2137 13 Nov 13 nicklas 274       <div id="pool-table" class="bottomborder">
2805 15 Oct 14 nicklas 275       <table>
2137 13 Nov 13 nicklas 276       <tr>
2137 13 Nov 13 nicklas 277         <th id="pool-name" style="width: 25%;"></th>
2805 15 Oct 14 nicklas 278         <td style="border-left: 1px solid #A0A0A0;" rowspan="2">
2805 15 Oct 14 nicklas 279           <textarea name="poolComments" id="poolComments" style="width: 100%; height: 3.5em;"></textarea>
2805 15 Oct 14 nicklas 280         </td>
2137 13 Nov 13 nicklas 281       </tr>
2137 13 Nov 13 nicklas 282       <tr>
2137 13 Nov 13 nicklas 283         <td style="width: 25%;" id="pool-summary">0 libs • 0.00nM • 0.0µl</td>
2137 13 Nov 13 nicklas 284       </tr>
2137 13 Nov 13 nicklas 285       </table>
2137 13 Nov 13 nicklas 286       </div>
2137 13 Nov 13 nicklas 287       
2137 13 Nov 13 nicklas 288       <div id="lib-table" style="display: none;">
2151 26 Nov 13 nicklas 289       <div style="margin: 1em;" class="messagecontainer note">
2151 26 Nov 13 nicklas 290         <base:icon image="info.png"/> 
2151 26 Nov 13 nicklas 291         <b>Separate mix:</b> <span id="num_separate_mix"></span>, 
2151 26 Nov 13 nicklas 292         <b>Low quantity:</b> <span id="num_low_quantity"></span>, 
2151 26 Nov 13 nicklas 293         <b>Excluded:</b> <span id="num_excluded"></span>
2151 26 Nov 13 nicklas 294       </div>
2151 26 Nov 13 nicklas 295       <table class="bottomborder topborder">
3026 11 Dec 14 nicklas 296       <thead class="bg-filled-100">
2137 13 Nov 13 nicklas 297         <tr>
2137 13 Nov 13 nicklas 298           <th class="check"></th>
2137 13 Nov 13 nicklas 299           <th class="name"></th>
2137 13 Nov 13 nicklas 300           <th class="barcode"></th>
2137 13 Nov 13 nicklas 301           <th class="plate"></th>
2454 23 May 14 nicklas 302           <th class="remain">Remain</th>
2454 23 May 14 nicklas 303           <th class="adapter">Adapter</th>
2137 13 Nov 13 nicklas 304           <th class="molarity">DNA</th>
2137 13 Nov 13 nicklas 305           <th class="volume">Volume</th>
2137 13 Nov 13 nicklas 306           <th class="eb">EB</th>
2805 15 Oct 14 nicklas 307           <th class="remarks" colspan="2"></th>
2137 13 Nov 13 nicklas 308         </tr>
2137 13 Nov 13 nicklas 309         <tr>
2805 15 Oct 14 nicklas 310           <th class="check"><base:icon image="check_uncheck.png" tooltip="Check/uncheck all" id="checkAll" /></th>
2137 13 Nov 13 nicklas 311           <th class="name">Library</th>
2137 13 Nov 13 nicklas 312           <th class="barcode">Barcode</th>
2137 13 Nov 13 nicklas 313           <th class="plate">Work plate</th>
2137 13 Nov 13 nicklas 314           <th class="molarity">(µl)</th>
2454 23 May 14 nicklas 315           <th class="adapter">(%)</th>
2137 13 Nov 13 nicklas 316           <th class="molarity">(nM)</th>
2137 13 Nov 13 nicklas 317           <th class="volume">(µl)</th>
2137 13 Nov 13 nicklas 318           <th class="eb">(µl)</th>
2805 15 Oct 14 nicklas 319           <th class="remarks" colspan="2">Remarks</th>
2137 13 Nov 13 nicklas 320         </tr>
2137 13 Nov 13 nicklas 321       </thead>
2137 13 Nov 13 nicklas 322       <tbody id="lib-table-rows"></tbody>
2137 13 Nov 13 nicklas 323       <tbody style="border-bottom: 0;">
2137 13 Nov 13 nicklas 324         <tr id="lib-table-pool-summary">
3026 11 Dec 14 nicklas 325           <td colspan="8" class="bg-filled-100" style="text-align: right; border-left: 0;">EB volume to add</td>
2137 13 Nov 13 nicklas 326           <td class="eb" id="pool.eb"></td>
3026 11 Dec 14 nicklas 327           <td class="remarks bg-filled-100" id="pool.remarks" colspan="2"></td>
2137 13 Nov 13 nicklas 328         </tr>
2137 13 Nov 13 nicklas 329       </tbody>
2137 13 Nov 13 nicklas 330       </table>
2137 13 Nov 13 nicklas 331       <div style="margin: 1em; font-style: italic;">
2140 18 Nov 13 nicklas 332       * Low quantity = The remaining quantity of this library too low to mix to target molarity for the pool.
2137 13 Nov 13 nicklas 333       </div>
2137 13 Nov 13 nicklas 334       </div>
2137 13 Nov 13 nicklas 335       
2137 13 Nov 13 nicklas 336       <div id="not-selected" class="messagecontainer note">No libraries have been selected</div>
2805 15 Oct 14 nicklas 337     </div>
2137 13 Nov 13 nicklas 338   </div>
2137 13 Nov 13 nicklas 339   
2805 15 Oct 14 nicklas 340   <div id="wizard-status"></div>
2137 13 Nov 13 nicklas 341   
2805 15 Oct 14 nicklas 342   <table class="navigation" id="navigation">
2805 15 Oct 14 nicklas 343   <tr>
2805 15 Oct 14 nicklas 344     <td><base:button id="gocancel" title="Cancel" /></td>
2805 15 Oct 14 nicklas 345     <td><base:button id="gonext" title="Next" image="<%=home+"/images/gonext.png"%>" /></td>
2805 15 Oct 14 nicklas 346     <td><base:button id="goregister" title="Register" image="<%=home+"/images/import.png"%>"  /></td>
2805 15 Oct 14 nicklas 347     <td><base:button id="gorestart" title="Restart" image="<%=home+"/images/goback.png"%>" /></td>
2805 15 Oct 14 nicklas 348     <td id="gonext-message" class="message"></td>
2805 15 Oct 14 nicklas 349   </tr>
2137 13 Nov 13 nicklas 350   </table>
2137 13 Nov 13 nicklas 351   
2137 13 Nov 13 nicklas 352   </form>
2137 13 Nov 13 nicklas 353   </div>
2137 13 Nov 13 nicklas 354   
2137 13 Nov 13 nicklas 355 </base:body>
2137 13 Nov 13 nicklas 356 </base:page>
2137 13 Nov 13 nicklas 357 <%
2137 13 Nov 13 nicklas 358 }
2137 13 Nov 13 nicklas 359 finally
2137 13 Nov 13 nicklas 360 {
2137 13 Nov 13 nicklas 361   if (dc != null) dc.close();
2137 13 Nov 13 nicklas 362 }
2137 13 Nov 13 nicklas 363 %>