Merge remote-tracking branch 'origin/new/bug_6858'
[koha.git] / koha-tmpl / opac-tmpl / prog / en / modules / opac-reserve.tt
1 [% INCLUDE 'doc-head-open.inc' %][% LibraryNameTitle or "Koha online" %] catalog ›  Placing a hold
2 [% INCLUDE 'doc-head-close.inc' %]
3 [% INCLUDE 'calendar.inc' %]
4 <script type="text/javascript">
5 // <![CDATA[
6  var MSG_NO_COPY_SELECTED = _("Expecting a specific copy selection.");
7
8  function prefixOf (s, tok) {
9      var index = s.indexOf(tok);
10      return s.substring(0, index);
11  }
12  function suffixOf (s, tok) {
13      var index = s.indexOf(tok);
14      return s.substring(index + 1);
15  }
16
17  $(document).ready(function() {
18     $('#hold-request-form').preventDoubleFormSubmit();
19
20     var copiesRowId = null;
21     var wasSpecific = false;
22     var lastCopiesRowId = null;
23         $(".checkitem").parent().click(function(e){
24                 if(e.target.tagName.toLowerCase() == 'td'){
25            $(this).find("input.checkitem").each( function() {
26                $(this).attr('checked', !$(this).attr('checked'));
27                         });
28                 }
29         });
30     // Hides all 'specific copy' table rows on load.
31     $(".copiesrow").hide();
32
33     $("#place_on_hdr").show();
34     $(".place_on_type").show();
35
36     // Replace non-JS single-selection with multi-selection capability.
37     $(".reserve_mode").val("multi");
38     $(".confirm_nonjs").remove();
39     $(".confirmjs_hold").each(function(){
40         var bib = $(this).attr("title");
41         var html = "<input type =\"checkbox\" class=\"confirmjs\" checked=\"checked\"";
42         html += "value=\"" + bib + "\"/>";
43         $(this).html(html);
44     });
45     $(".confirmjs_nohold").each(function(){
46         var bib = $(this).attr("title");
47         var html = "<input type =\"checkbox\" class=\"confirmjs\" disabled=\"disabled\"";
48         html += "value=\"" + bib + "\"/>";
49         $(this).html(html);
50     });
51
52     // Make sure a specific item was selected where specified
53     // before moving on to a new item.
54     function changeSelection (newCopiesRowId, isSpecific) {
55         if (copiesRowId && ((copiesRowId != newCopiesRowId) || (wasSpecific != isSpecific))) {
56             var biblioNum = suffixOf(copiesRowId, "_");
57
58             // If the 'specific copy' radio button was checked
59               if (wasSpecific && (copiesRowId != newCopiesRowId)) {
60                 // Find the selected copy
61                 var item = $(".checkitem_" + biblioNum + ":checked");
62                 if ($(item).size() == 0) {
63                     alert(MSG_NO_COPY_SELECTED);
64                     return false;
65                 }
66             }
67         }
68         copiesRowId = newCopiesRowId;
69         wasSpecific = isSpecific;
70         return true;
71     }
72
73     // When 'specific copy' radio button is clicked
74     $(".selectspecific").click(function() {
75
76         // Make sure all other specific copy table rows are hidden
77         biblioNum = suffixOf($(this).attr("id"), "_");
78         newCopiesRowId = "#copiesrow_" + biblioNum;
79
80         if (!changeSelection(newCopiesRowId, true)) {
81             return false;
82         }
83         $(".copiesrow:not(" + newCopiesRowId + ")").hide();
84
85         // Show the specific copy table for this radio button.
86         $(newCopiesRowId).show();
87     });
88
89
90     // When 'first available' radion button is clicked
91     $(".selectany").click(function() {
92         // Make sure all other specific copy table rows are hidden
93         biblioNum = suffixOf($(this).attr("id"), "_");
94         newCopiesRowId = "#copiesrow_" + biblioNum;
95
96         if (!changeSelection(newCopiesRowId, false)) {
97             return false;
98         }
99
100         // Hide the copies table row
101         $(".copiesrow").hide();
102     });
103
104     // When 'Place Hold' button is clicked
105     $(".placehold").click(function(){
106         var biblionumbers = "";
107         var selections = "";
108
109         if ($(".confirmjs:checked").size() == 0) {
110             alert(MSG_NO_RECORD_SELECTED);
111             return false;
112         }
113
114         // Find the items with the 'Hold' box checked
115         var badBib = null;
116         $(".confirmjs:checked").each(function() {
117             var biblioNum = $(this).val();
118             biblionumbers += biblioNum + "/";
119             selections += biblioNum + "/";
120
121             // If the 'specific copy' radio button is checked
122             if ($("#reqspecific_" + biblioNum + ":checked").size() > 0) {
123                 // Find the selected copy
124                 var item = $(".checkitem_" + biblioNum + ":checked");
125                 if ($(item).size() == 0) {
126                     badBib = biblioNum;
127                     return false;
128                 } else {
129                   selections += $(item).val();
130                 }
131             }
132             selections += "/";
133
134             // Add the pickup location
135             var branchSel = $("#branch_" + biblioNum);
136             if (branchSel.size() > 0) {
137                 selections += $(branchSel).val();
138             }
139             selections += "/";
140             return true;
141         });
142
143         if (badBib) {
144             alert(MSG_NO_COPY_SELECTED);
145             return false;
146         }
147
148         $("#selections").val(selections);
149         $("#biblionumbers").val(biblionumbers);
150
151         return true;
152     });
153
154  });
155 // ]]>
156 </script>
157 <style type="text/css">td ul { padding : 0; } td li { white-space: nowrap; font-size: 90%; list-style-type:none; padding : .3em 0; }</style>
158 </head>
159
160 <body id="opac-holds">
161   <div id="doc3" class="yui-t7">
162     [% INCLUDE 'masthead.inc' %]
163     <div id="bd">
164           <div id="yui-g">
165         <div id="holds" class="container">
166         [% IF ( message ) %]
167             [% IF ( GNA ) %]
168               <div id="gna" class="dialog alert">
169                 <p><strong>Sorry</strong>, you cannot place holds because the library doesn't have up-to-date <a href="/cgi-bin/koha/opac-userupdate.pl">contact information</a> on file.</p>
170               <p>Please contact your librarian, or use the <a href="/cgi-bin/koha/opac-userupdate.pl">online update form</a> to submit current information (<em>Please note:</em> there may be a delay in restoring your account if you submit online)</p>
171               </div>
172             [% END %]
173             [% IF ( lost ) %]
174               <div id="lost" class="dialog alert">
175                 <p><strong>Sorry</strong>, you cannot place holds because your library card has been marked as lost or stolen.</p>
176                 <p>If this is an error, please take your card to the circulation desk at your local library and the error will be corrected.</p>
177               </div>
178             [% END %]
179             [% IF ( debarred ) %]
180               <div id="debarred" class="dialog alert">
181                 <p><strong>Sorry</strong>, you cannot place holds because your account has been frozen.</p>
182                 <p>Usually the reason for freezing an account is old overdues or damage fees.   If <a href="/cgi-bin/koha/opac-user.pl">your account page</a> shows your account to be clear, please consult a librarian.</p>
183               </div>
184             [% END %]
185             [% IF ( too_much_oweing ) %]
186               <div id="too_much_oweing" class="dialog alert">
187                 Sorry, you cannot place holds because you owe [% too_much_oweing %].
188               </div>
189             [% END %]
190             [% IF ( too_many_reserves ) %]
191               <div id="too_many_reserves" class="dialog alert">Sorry, you cannot place more than [% too_many_reserves %] holds.
192               </div>
193             [% END %]
194             [% IF ( bad_biblionumber ) %]
195               <div id="bad_biblionumber" class="dialog alert">ERROR: No biblio record found for biblionumber [% bad_biblionumber %].</div>
196             [% END %]
197             [% IF ( no_items_selected ) %]
198               <div id="no_items_selected" class="dialog alert">
199                 You must select at least one item.
200               </div>
201             [% END %]
202             [% IF ( no_branch_selected ) %]
203               <div id="no_branch_selected" class="dialog alert">
204                 You must select a library for pickup.
205               </div>
206             [% END %]
207             [% IF ( no_biblionumber ) %]
208               <div id="no_biblionumber" class="dialog alert">ERROR: No biblionumber received.</div>
209             [% END %]
210             [% IF ( bad_data ) %]
211               <div id="bad_data" class="dialog alert">ERROR: Internal error: incomplete hold request.</div>
212             [% END %]
213           [% ELSE %]
214             [% IF ( none_available ) %]
215                 <div id="none_available" class="dialog alert"><strong>Sorry</strong>, none of these items can be placed on hold.
216                 </div>
217               [% END %]
218           [% END %]<!-- NAME="message" -->
219
220       [% UNLESS ( message ) %][% UNLESS ( none_available ) %]<h3>Confirm holds for:
221                       [% FOREACH USER_INF IN USER_INFO %]
222                         [% USER_INF.firstname %] [% USER_INF.surname %] ([% USER_INF.cardnumber %])
223                       [% END %]
224                     </h3>[% END %]
225               [% IF (RESERVE_CHARGE) %]
226               <div class="dialog alert" id="reserve_fee">
227                 There is a charge of [% RESERVE_CHARGE %] for placing this hold
228               </div>
229               [% END %]
230
231             <form action="/cgi-bin/koha/opac-reserve.pl" method="post" id="hold-request-form">
232             <input type="hidden" name="place_reserve" value="1"/>
233
234             <!-- These values are set dynamically by js -->
235             <input type="hidden" name="biblionumbers" id="biblionumbers"/>
236             <input type="hidden" name="selecteditems" id="selections"/>
237             <div id="bigloop">
238               <table id="bibitemloop">
239                 [% UNLESS ( none_available ) %]<tr>
240                   <th>Hold</th>
241                   <th>Title</th>
242                   [% UNLESS ( item_level_itypes ) %]
243                     <th>Item type</th>
244                   [% END %]
245                   [% IF showholds && showpriority %]
246                   <th>Holds and priority</th>
247                   [% ELSIF showholds %]
248                   <th>Holds</th>
249                   [% ELSIF showpriority %]
250                   <th>Priority</th>
251                   [% END %]
252                   [% IF ( reserve_in_future ) %]
253         <th>Hold starts on date</th>
254                   [% END %]
255         <th>Hold not needed after</th>
256                   [% IF ( OPACItemHolds ) %]
257                     <th id="place_on_hdr" style="display:none">Place on</th>
258                   [% END %]
259                   [% UNLESS ( singleBranchMode ) %]
260                     [% IF ( choose_branch ) %]
261                         <th>Pickup location</th>
262                     [% END %]
263                   [% END %]
264                 </tr>[% ELSE %]<tr><th colspan="5">Title</th></tr>[% END %]
265
266                 [% FOREACH bibitemloo IN bibitemloop %]
267                   <tr>
268                       [% IF ( bibitemloo.holdable ) %]
269                                           <td>
270                       <input class="reserve_mode" name="reserve_mode" type="hidden" value="single"/>
271                       <input class="single_bib" name="single_bib" type="hidden" value="[% bibitemloo.biblionumber %]"/>
272                         <span class="confirmjs_hold" title="[% bibitemloo.biblionumber %]"></span>
273                         <span class="confirm_nonjs">
274                           <input type="radio" class="confirmbox checkitem [% bibitemloo.checkitem_bib %]"
275                                  name="[% bibitemloo.checkitem_bib %]" checked="checked"
276                                  id="[% bibitemloo.checkitem_bib %]"
277                                  value="any" />
278                           <label class="confirm_label" for="[% bibitemloo.checkitem_bib %]">Next available copy</label>
279                         </span>
280                                         </td>
281                       [% ELSE %]
282                                           [% UNLESS ( none_available ) %]<td>&nbsp;</td>[% END %]
283                       [% END %]
284                     [% IF ( bibitemloo.holdable ) %]<td>[% ELSE %]<td colspan="5">[% END %]
285                       <a href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% bibitemloo.biblionumber %]">[% bibitemloo.title |html %][% IF ( bibitemloo.subtitle ) %] [% FOREACH subtitl IN bibitemloo.subtitle %][% subtitl.subfield %][% END %][% END %]</a>
286                       [% IF ( bibitemloo.author ) %],  by [% bibitemloo.author %][% END %]
287
288                       [% UNLESS ( bibitemloo.holdable ) %]
289
290                         [% IF ( bibitemloo.already_reserved ) %]
291                           <div class="bibmessage">You have already requested this title.</div>
292                         [% ELSE %]
293                           [% UNLESS ( bibitemloo.bib_available ) %]
294                             <div class="bibmessage">No available items.</div>
295                           [% ELSE %]
296                             <div class="bibmessage">This title cannot be requested.</div>
297                           [% END %]
298                         [% END %]
299
300
301                         [% END %]
302
303                     </td>
304                     [% IF ( bibitemloo.holdable ) %]
305             <!-- HOLDABLE -->
306                         [% UNLESS ( item_level_itypes ) %]
307                         <td>
308                             [% IF ( bibitemloo.imageurl ) %]<img src="[% bibitemloo.imageurl %]" alt="" />[% END %]
309                             [% bibitemloo.description %]
310                         </td>
311                         [% END %]
312                         [% IF showholds || showpriority %]
313                         <td>
314                         [% IF showpriority %] [% bibitemloo.rank %] [% END %]
315                         [% IF showholds && showpriority %] out of [% END %]
316                         [% IF showholds %] [% bibitemloo.reservecount %] [% END %]
317                         </td>
318                         [% END %]
319                 [% IF ( reserve_in_future ) %]
320                         <td>
321               <input name="reserve_date_[% bibitemloo.biblionumber %]" id="reserve_date_[% bibitemloo.biblionumber %]" size="10">
322               <script language="JavaScript" type="text/javascript">
323               //<![CDATA[
324               $("#reserve_date_[% bibitemloo.biblionumber %]").attr( 'readonly', 'readonly' );
325
326               var cal_img = document.createElement('img');
327               cal_img.src = "[% themelang %]/lib/calendar/cal.gif";
328               cal_img.alt = "Show Calendar";
329               cal_img.border = "0";
330               cal_img.id = "CalendarReserveDate[% bibitemloo.biblionumber %]";
331               cal_img.style.cursor = "pointer";
332               document.getElementById("reserve_date_[% bibitemloo.biblionumber %]").parentNode.appendChild( cal_img );
333
334               function validate[% bibitemloo.biblionumber %](date) {
335                   var today = new Date();
336                         if ( (date > today) ||
337                                 ( date.getDate() == today.getDate() &&
338                                   date.getMonth() == today.getMonth() &&
339                                   date.getFullYear() == today.getFullYear() ) ) {
340                             return false;
341                         } else {
342                             return true;
343                         }
344               };
345               Calendar.setup(
346               {
347                 inputField : "reserve_date_[% bibitemloo.biblionumber %]",
348                 ifFormat : "[% DHTMLcalendar_dateformat %]",
349                 button : "CalendarReserveDate[% bibitemloo.biblionumber %]",
350                 disableFunc : validate[% bibitemloo.biblionumber %],
351                 dateStatusFunc : validate[% bibitemloo.biblionumber %],
352                 firstDay : [% CalendarFirstDayOfWeek %]
353               }
354               );
355               //]]>
356               </script>
357       <p style="margin:.3em 2em;">
358       <a href="#" style="font-size:85%;text-decoration:none;" onclick="document.getElementById('reserve_date_[% bibitemloo.biblionumber %]').value='';return false;">Clear date</a></p>
359                 </td>[% END %]
360
361                     [% END %]
362         [% IF ( bibitemloo.holdable ) %]<td>
363         <input name="expiration_date_[% bibitemloo.biblionumber %]" id="expiration_date_[% bibitemloo.biblionumber %]" size="10" readonly="readonly" />
364         <img src="[% themelang %]/lib/calendar/cal.gif" alt="Show Calendar" border="0" id="CalendarExpirationDate_[% bibitemloo.biblionumber %]" style="cursor: pointer;" />
365         <script language="JavaScript" type="text/javascript">
366       //<![CDATA[
367       function validate1(date) {
368         var today = new Date();
369         if ( (date > today) ||
370                       ( date.getDate() == today.getDate() &&
371                         date.getMonth() == today.getMonth() &&
372                         date.getFullYear() == today.getFullYear() ) ) {
373           return false;
374         } else {
375           return true;
376         }
377       };
378       Calendar.setup(
379         {
380           inputField : "expiration_date_[% bibitemloo.biblionumber %]",
381           ifFormat : "[% DHTMLcalendar_dateformat %]",
382           button : "CalendarExpirationDate_[% bibitemloo.biblionumber %]",
383           disableFunc : validate1,
384           dateStatusFunc : validate1,
385           firstDay : [% CalendarFirstDayOfWeek %]
386         }
387       );
388       //]]>
389         </script>
390       <p style="margin:.3em 2em;">
391       <a href="#" style="font-size:85%;text-decoration:none;" onclick="document.getElementById('expiration_date_[% bibitemloo.biblionumber %]').value='';return false;">Clear date</a></p>
392     </td>[% END %]
393
394                     [% IF ( bibitemloo.holdable ) %]
395                     <!-- HOLD ABLE -->
396                     [% IF ( OPACItemHolds ) %]
397                     <!-- ITEM HOLDS -->
398                                           <td class="place_on_type" style="display:none">
399                                             <ul>
400                                                 <li>
401                                                   [% UNLESS ( bibitemloo.holdable ) %]
402                                                     <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]"
403                                                            id="reqany_[% bibitemloo.biblionumber %]"
404                                                            class="selectany"
405                                                            value="Any"
406                                                            disabled="disabled"
407                                                     />
408                                                   [% ELSE %]
409                                                     <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]"
410                                                            id="reqany_[% bibitemloo.biblionumber %]"
411                                                            class="selectany"
412                                                            value="Any"
413                                                            checked="checked"
414                                                     />
415                                                   [% END %]
416                                                   <label for="reqany_[% bibitemloo.biblionumber %]">Next available copy</label>
417                                                 </li>
418                                                 <li>
419                                                   [% UNLESS ( bibitemloo.holdable ) %]
420                                                     <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]"
421                                                            id="reqspecific_[% bibitemloo.biblionumber %]"
422                                                            class="selectspecific"
423                                                            disabled="disabled"
424                                                            value="Specific"
425                                                     />
426                                                   [% ELSE %]
427                                                     <input type="radio" name="reqtype_[% bibitemloo.biblionumber %]"
428                                                            id="reqspecific_[% bibitemloo.biblionumber %]"
429                                                            class="selectspecific"
430                                                            value="Specific"
431                                                     />
432                                                   [% END %]
433                                                   <label for="reqspecific_[% bibitemloo.biblionumber %]">A specific copy</label>
434                                                 </li>
435                                             </ul>
436                                           </td>
437                                         [% END %][% END %]
438
439                     [% UNLESS ( singleBranchMode ) %]
440                         [% IF ( bibitemloo.holdable ) %]
441                             [% IF ( choose_branch ) %]
442                                            <td>
443                          [% UNLESS ( bibitemloo.holdable ) %]
444                             <select name="branch" id="branch_[% bibitemloo.biblionumber %]" disabled="disabled">
445                               [% FOREACH branchChoicesLoo IN bibitemloo.branchChoicesLoop %]
446                                 [% IF ( branchChoicesLoo.selected ) %]
447                                   <option value="[% branchChoicesLoo.value %]" selected="selected">[% branchChoicesLoo.branchname %]</option>
448                                 [% ELSE %]
449                                   <option value="[% branchChoicesLoo.value %]">[% branchChoicesLoo.branchname %]</option>
450                                 [% END %]
451                               [% END %]
452                           </select>
453                           [% ELSE %]
454                             <select name="branch" id="branch_[% bibitemloo.biblionumber %]">
455                               [% FOREACH branchChoicesLoo IN bibitemloo.branchChoicesLoop %]
456                                 [% IF ( branchChoicesLoo.selected ) %]
457                                   <option value="[% branchChoicesLoo.value %]" selected="selected">[% branchChoicesLoo.branchname %]</option>
458                                 [% ELSE %]
459                                   <option value="[% branchChoicesLoo.value %]">[% branchChoicesLoo.branchname %]</option>
460                                 [% END %]
461                               [% END %]
462                             </select>
463                           [% END %]
464                        </td>
465                             [% END %]
466                         [% END %]
467                     [% END %]
468                   </tr>
469
470                   [% IF ( OPACItemHolds ) %]
471                   [% IF ( bibitemloo.holdable ) %]
472                     <tr class="copiesrow" id="copiesrow_[% bibitemloo.biblionumber %]">
473                       <td>&nbsp;</td>
474                       <td colspan="[% itemtable_colspan %]">
475                         <table>
476                           <caption>Select a specific copy:</caption>
477                           <tr>
478                             <th>Copy</th>
479                             [% IF ( item_level_itypes ) %]
480                               <th>Item type</th>
481                             [% END %]
482                             <th>Barcode</th>
483                             [% UNLESS ( singleBranchMode ) %]
484                               <th>Home library</th>
485                               <th>Last location</th>
486                             [% END %]
487                             <th>Call number</th>
488                             [% IF ( bibitemloo.itemdata_enumchron ) %]
489                               <th>Vol info</th>
490                             [% END %]
491                             <th>Information</th>
492                           </tr>
493
494                           [% FOREACH itemLoo IN bibitemloo.itemLoop %]
495                             <tr class="[% itemLoo.backgroundcolor %]">
496                               <td>
497                                 [% IF ( itemLoo.available ) %]
498                                   <input type="radio" class="checkitem checkitem_[% bibitemloo.biblionumber %]" name="checkitem_[% bibitemloo.biblionumber %]"
499                                          value="[% itemLoo.itemnumber %]" />
500                                 [% ELSE %]
501                                   <input disabled="disabled" type="radio" class="checkitem" name="checkitem" value="[% itemLoo.itemnumber %]" />
502                                   <img src="/opac-tmpl/[% theme %]/famfamfam/silk/cross.png" alt="Cannot be put on hold" title="Cannot be put on hold" />
503                                 [% END %] [% IF ( itemLoo.copynumber ) %][% itemLoo.copynumber %][% END %]
504                               </td>
505                               [% IF ( item_level_itypes ) %]
506                                 <td>
507                                   [% UNLESS ( noItemTypeImages ) %]
508                                   [% IF ( itemLoo.imageurl ) %]<img src="[% itemLoo.imageurl %]" alt="" />[% END %]
509                                   [% END %]
510                                                                 [% itemLoo.description %]
511                                 </td>
512                               [% END %]
513                               <td>[% itemLoo.barcode %]</td>
514                               [% UNLESS ( singleBranchMode ) %]
515                                 <td>[% itemLoo.homeBranchName %]</td>
516                                 <td>[% itemLoo.holdingBranchName %]</td>
517                               [% END %]
518                               <td>[% itemLoo.callNumber %]</td>
519                               [% IF ( itemLoo.itemdata_enumchron ) %]<!-- test -->
520                                 <td>[% itemLoo.enumchron %]</td>
521                               [% END %]
522                               <td>
523                                 [% IF ( itemLoo.dateDue ) %]
524                                   <span class="checkedout">Due [% itemLoo.dateDue %]</span>
525                                 [% ELSIF ( itemLoo.transfertwhen ) %]
526                                   <span class="intransit">In transit from [% itemLoo.transfertfrom %],
527                                     to [% itemLoo.transfertto %], since [% itemLoo.transfertwhen %]</span>
528                                 [% END %]
529                                 [% IF ( itemLoo.message ) %]
530                                   <span class="lost">Unavailable (lost or missing)</span>
531                                 [% END %]
532                                 [% IF ( itemLoo.notforloan ) %]
533                                   <span class="notforloan">Not for loan ([% itemLoo.notforloanvalue %])</span>
534                                 [% END %]
535                                 [% IF ( itemLoo.reservedate ) %]
536                                   <span class="waiting">[% IF ( itemLoo.waitingdate ) %]Waiting[% ELSE %]On hold[% END %] for patron
537                                     [% IF ( itemLoo.waitingdate ) %]at[% ELSE %]expected at[% END %] [% itemLoo.ExpectedAtLibrary %]
538                                     since
539                                     [% IF ( itemLoo.waitingdate ) %][% itemLoo.waitingdate %][% ELSE %][% IF ( itemLoo.reservedate ) %][% itemLoo.reservedate %][% END %][% END %].
540                                   </span>
541                                 [% ELSE %]
542                                   <span class="notonhold">Not on hold</span>
543                                 [% END %]&nbsp;
544                               </td>
545                             </tr>
546                           [% END %]
547                         </table>
548                       </td>
549                     </tr>
550                   [% END %]<!-- bib_available -->
551                   [% END %]<!-- OPACItemHolds -->
552                 [% END %]
553               </table><!-- bibitemloop -->
554               [% END %] <!-- if message -->
555             </div><!-- bigloop -->
556
557             [% UNLESS ( message ) %]
558             [% UNLESS ( none_available ) %]
559             <input type="submit" value="Place Hold" class="placehold" />
560             [% END %]
561             [% END %]
562
563             </form>
564
565         </div><!-- holds -->
566       </div><!-- yui-g -->
567     </div><!-- bd    -->
568   </div><!-- doc3  -->
569
570 <div><!-- The following include seems to have an extra "/div" in it... -->
571 [% INCLUDE 'opac-bottom.inc' %]