LP1147286 - Allow translating more of the staff client portal page.
[working/Evergreen.git] / Open-ILS / xul / staff_client / server / index.xhtml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!DOCTYPE html PUBLIC
4         "-//W3C//DTD XHTML 1.0 Transitional//EN" 
5         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
6         <!--#include virtual="/opac/locale/${locale}/lang.dtd"-->
7 ]>
8
9 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
10 <head>
11   <meta name="generator" content=
12   "HTML Tidy for Linux/x86 (vers 11 February 2007), see www.w3.org" />
13
14   <title>&staff.client.portal.title;</title>
15   <script type="text/javascript">
16 // <![CDATA[
17
18   // FIXME - some I18N love still needed in this file.  See @alt on img tags, and javascript for tab names
19
20   function SearchOnBlur() {
21         var textbox = document.getElementById("quicksearch");
22
23         if(textbox && textbox.value == "")
24                 textbox.style.background = "#FFFFFF url(\"skin/media/images/portal/eg_tiny_logo.jpg\") center no-repeat";
25   }
26
27   function SearchOnFocus() {
28         var textbox = document.getElementById("quicksearch");
29         
30         if(textbox)
31                 textbox.style.background = "#FFFFFF";
32   }
33
34   var home_ou_id = 1;
35
36   function SearchOnSubmit() {
37         var textbox = document.getElementById("quicksearch");
38         
39         //var home_ou_id = 1; // 1 = all org units. Should come from staff client scripts
40         // a quicksearch should probably just default to the whole system. Staff can narrow it down later if they want.
41         var search_depth = 0; // 0 = consortium, 1 = system, 2 = library, 3 = sub-library, etc.
42         
43         if(textbox && textbox.value != "") {
44                 var opac_url =  xulG.url_prefix('opac_rresult') + "?rt=keyword&tp=keyword&l=" + home_ou_id + "&d=" + search_depth +"&f=&t=" + escape(textbox.value);
45                 if (urls.opac_rresult.match(/\/eg\/opac\/results/)) {
46                     opac_url =  xulG.url_prefix('opac_rresult') + "?query=" + escape(textbox.value);
47                 }
48                 var params = {'tab_name':'Catalog'};
49                 var content_params = { 'session' : ses(), 'authtime' : ses('authtime'), 'opac_url' : opac_url };
50                 xulG.set_tab(urls.XUL_OPAC_WRAPPER, params, content_params);
51         }
52         
53         return false;
54   }
55   // ]]> 
56   </script>
57   <script type="text/javascript" src="main/constants.js">
58 </script>
59   <script type="text/javascript" src="/opac/common/js/utils.js">
60 </script>
61   <script type="text/javascript" src="/opac/common/js/CGI.js">
62 </script>
63   <script type="text/javascript" src="/opac/common/js/md5.js">
64 </script>
65   <script type="text/javascript" src="/opac/common/js/fmall.js">
66 </script>
67   <script type="text/javascript" src="/opac/common/js/fmgen.js">
68 </script>
69   <script type="text/javascript" src="/opac/common/js/RemoteRequest.js">
70 </script>
71   <script type="text/javascript" src="/opac/common/js/<!--#echo var='locale'-->/OrgTree.js">
72 </script>
73   <script type="text/javascript" src="/opac/common/js/org_utils.js">
74 </script>
75   <script type="text/javascript" src="OpenILS/global_util.js">
76 </script>
77   <script type="text/javascript" src="OpenILS/event_util.js">
78 </script>
79   <script type="text/javascript" src="main/JSAN.js">
80 </script>
81   <script type="text/javascript">
82       // <![CDATA[
83         
84                 //this function will allow for the "Hello, Staff Member" messages
85                 function init() { 
86                         document.getElementById('quicksearch').focus();
87                         SearchOnBlur();
88                         JSAN.use('OpenILS.data'); 
89                         var data = new OpenILS.data(); 
90                         data.stash_retrieve(); 
91                         document.getElementById('staffname').innerHTML = ", " + data.list.au[0].first_given_name(); 
92                         home_ou_id = data.list.au[0].ws_ou();
93                         xulG.set_tab_name('Portal');
94                 }
95                 function jb_open_eg_web_page(path, label) {
96                         var loc = urls.XUL_BROWSER + '?url=' + window.escape(xulG.url_prefix('EG_WEB_BASE') + '/' + path);
97
98                         xulG.set_tab( 
99                                 loc, 
100                                 {tab_name : label, browser : false }, 
101                                 {no_xulG : false, show_print_button : false, show_nav_buttons : true }
102                         );
103                 }
104                 function jb_open_eg_web_page_newtab(path, label) {
105                         var loc = urls.XUL_BROWSER + '?url=' + window.escape(xulG.url_prefix('EG_WEB_BASE') + '/' + path);
106
107                         xulG.new_tab( 
108                                 loc, 
109                                 {tab_name : label, browser : false }, 
110                                 {no_xulG : false, show_print_button : false, show_nav_buttons : true }
111                         );
112                 }
113                 
114                 //Place your helpdesk link here
115                 function helpdesk(newtab) {
116                         xulG.open_external("http://evergreen-ils.org/communicate.php");
117                 }
118                 
119                 //A good place for a Google map.  Evergreen Indiana uses GIS data to create a Google map to verify if a library is within district boundaries
120                 //http://208.119.72.68/evergreen/evergreenmap.html
121                 function address_map(newtab) {
122                         loc = "http://maps.google.com";
123                         var params = {'tab_name':'Locate Address In Map'};
124                         
125                         if(newtab)
126                                 xulG.new_tab(loc, params, {}); 
127                         else
128                                 xulG.set_tab(loc, params, {}); 
129                 }
130                 function local_admin(newtab) {
131                         var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(urls.XUL_LOCAL_ADMIN + '?ses=' + window.escape(ses()) + '&session=' + window.escape(ses())); 
132                         var params = {'tab_name':'Local Administration', 'browser' : true };
133                         var content_params = { 'no_xulG' : false, 'show_nav_buttons' : true, 'show_print_button' : true };
134                         
135                         if(newtab)
136                                 xulG.new_tab(loc, params, content_params);
137                         else
138                                 xulG.set_tab(loc, params, content_params);
139                 }
140                 function copy_status(newtab) {
141                         if(newtab)
142                                 xulG.new_tab(urls.XUL_COPY_STATUS,{},{});
143                         else
144                                 xulG.set_tab(urls.XUL_COPY_STATUS,{},{});
145                 }
146                 function hold_pull_list(newtab) {
147                         var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(urls.XUL_HOLD_PULL_LIST + '?ses=' + window.escape(ses()));
148                         var params = {'tab_name':'On Shelf Pull List'};
149                         
150                         if(newtab)
151                                 xulG.new_tab(loc, params);
152                         else
153                                 xulG.set_tab(loc, params);
154                 }
155                 function checkout(newtab) {
156                         if(newtab)
157                                 xulG.new_tab(urls.XUL_PATRON_BARCODE_ENTRY,{},{});
158                         else
159                                 xulG.set_tab(urls.XUL_PATRON_BARCODE_ENTRY,{},{});
160                 }
161                 function catalog(newtab) {
162                         var params = {'tab_name':'Catalog'};
163                         var content_params = { 'session' : ses(), 'authtime' : ses('authtime') };
164                         
165                         if(newtab)
166                                 xulG.new_tab(urls.XUL_OPAC_WRAPPER, params, content_params);
167                         else
168                                 xulG.set_tab(urls.XUL_OPAC_WRAPPER, params, content_params);
169                 }
170                 function z39_50(newtab) {
171                         if(newtab)
172                                 xulG.new_tab(urls.XUL_Z3950_IMPORT,{},{});
173                         else
174                                 xulG.set_tab(urls.XUL_Z3950_IMPORT,{},{});
175                 }
176                 function copy_buckets(newtab) {
177                         params = {'tab_name':'Copy Buckets'};
178                         if(newtab)
179                                 xulG.new_tab(urls.XUL_COPY_BUCKETS, params, {});
180                         else
181                                 xulG.set_tab(urls.XUL_COPY_BUCKETS, params, {});
182                 }
183                 function record_buckets(newtab) {
184                         params = {'tab_name':'Record Buckets'};
185                         if(newtab)
186                                 xulG.new_tab(urls.XUL_RECORD_BUCKETS, params, {});
187                         else
188                                 xulG.set_tab(urls.XUL_RECORD_BUCKETS, params, {});
189                 }
190                 function receipt_editor(newtab) {
191                         if(newtab)
192                                 xulG.new_tab(urls.XUL_PRINT_LIST_TEMPLATE_EDITOR, {}, {});
193                         else
194                                 xulG.set_tab(urls.XUL_PRINT_LIST_TEMPLATE_EDITOR, {}, {});
195                 }
196                 function checkin(newtab) {
197                         if(newtab)
198                                 xulG.new_tab(urls.XUL_CHECKIN,{},{});
199                         else
200                                 xulG.set_tab(urls.XUL_CHECKIN,{},{});
201                 }
202                 function MARC_batch_import(newtab) {
203                         if(newtab)
204                                 jb_open_eg_web_page_newtab('vandelay/vandelay', 'Server Settings');
205                         else
206                                 jb_open_eg_web_page('vandelay/vandelay', 'Server Settings');
207                 }
208                 function local_admin_reports(newtab) {
209                         var loc = urls.XUL_BROWSER + '?url=' + window.escape( xulG.url_prefix('XUL_REPORTS') + '?ses=' + ses());
210                         params = {'tab_name' : 'Reports', 'browser' : false }
211                         content_params = {'no_xulG' : false, 'show_print_button' : false, show_nav_buttons : true }
212                         if(newtab)
213                                 xulG.new_tab(loc, params, content_params);
214                         else
215                                 xulG.set_tab(loc, params, content_params);
216                 }
217                 function find_patron(newtab) {
218                         if(newtab)
219                                 xulG.new_patron_tab({},{});
220                         else
221                                 xulG.set_patron_tab({},{});
222                 }
223                 
224                 function spawn_search(s) {
225                         xulG.new_patron_tab( {}, { 'doit' : 1, 'query' : js2JSON(s) } );
226                 }
227                 function register_patron(newtab) {
228                         function spawn_editor(p) {
229                                 var url = urls.XUL_PATRON_EDIT;
230                                 var param_count = 0;
231                                 for (var i in p) {
232                                         if (param_count++ == 0) url += '?'; else url += '&amp;';
233                                         url += i + '=' + window.escape(p[i]);
234                                 }
235                                 var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape( url );
236                                 xulG.new_tab(loc, {}, { 'show_print_button' : true , 'tab_name' : 'Editing Related Patron' , 'passthru_content_params' : {'spawn_search' : function(s) { spawn_search(s); }, 'spawn_editor' : spawn_editor }});
237                         }
238                         
239                         var loc = urls.XUL_REMOTE_BROWSER  + '?url=' + window.escape( urls.XUL_PATRON_EDIT + '?ses=' + window.escape( ses() ) );
240                         var content_params = { 
241                                                      'show_print_button' : true , 
242                                                      'tab_name' : 'Register Patron' ,
243                                                      'passthru_content_params' : { 'spawn_search' : function(s) { spawn_search(s); },
244                                                                                     'spawn_editor' : spawn_editor }
245                                                  }
246                         if(newtab)
247                                 xulG.new_tab(loc, {}, content_params);
248                         else
249                                 xulG.set_tab(loc, {}, content_params);
250                 }
251                 function toggle_tpac(mode) {
252                     var use_tpac = false;
253                     var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces['nsIPrefBranch']);
254                     try {
255                         use_tpac = prefs.getBoolPref('oils.use_tpac');
256                     } catch (E) {
257                         dump('Failed to get current use_tpac setting - Assuming false: ' + E);
258                     }
259                     use_tpac = !use_tpac;
260                     prefs.setBoolPref('oils.use_tpac', use_tpac);
261                     var message = document.getElementById('tpac_toggled_on');
262                     if(!use_tpac) {
263                         message = document.getElementById('tpac_toggled_off');
264                     }
265                     message = message.textContent;
266                     alert(message);
267                 }
268                 // ]]>
269   </script>
270   <style type="text/css">
271 /*<![CDATA[*/
272   body {
273   font-family: "Trebuchet MS", Helvetica, Verdana, Arial, sans-serif;
274   }
275
276   hr {
277   border-style: solid;
278   border-color: black;
279   width: 180px;
280   }
281
282   a {
283   font-size: 85%;
284   font-weight: bold;
285   color: black;
286   text-decoration: none;
287   }
288
289   #alignment {
290         border-collapse: collapse;
291         border-style: none;
292         width: 100%;
293   }
294
295   #alignment td {
296         vertical-align: top;
297   }
298
299   .functionlist {
300         border-style: none;
301         margin-left: auto;
302         margin-right: auto;
303   }
304
305   .functionlist td {
306   text-align: left;
307         margin: 2px;
308         padding: 2px;
309   }
310
311   .functionalgroup {
312         text-align: center;
313   }
314
315   a img {
316         border-style: none;
317   }
318
319   .attribution {
320         font-size: 75%;
321   }
322
323   form {
324         margin: 0px;
325         padding: 0px;
326   }
327
328   .newtabimg {
329         float: right;
330         padding-left:4px;
331   }
332
333   .funcimg {
334         width: 48px;
335         height: 48px;
336   }
337
338   /*]]>*/
339   </style>
340   <style type="text/css">
341 /*<![CDATA[*/
342   body.c4 {margin-top: 0px; padding-top: 0px; background-image: url(skin/media/images/portal/background.png);}
343   td.c3 {border: 1px solid black; border-top: 0px; border-bottom: 0px;}
344   span.c2 {font-size:75%;}
345   div.c1 {text-align: center}
346   /*]]>*/
347   </style>
348 </head>
349
350 <body class="c4" onload="init();">
351   <div class="c1">
352     <img src="skin/media/images/portal/logo.png" height="121" width="396" alt="Evergreen logo" /><br />
353     &staff.client.portal.welcome;<span id="staffname"></span><br />
354     <br />
355   </div>
356
357   <table id="alignment">
358     <tr>
359       <td>
360         <div class="functionalgroup">
361           &staff.client.portal.circpatron;
362           <hr />
363
364           <table class="functionlist">
365             <tr>
366               <td height="50"><img src="skin/media/images/portal/forward.png" height="48" width="48"
367               onclick="try { checkout(false); } catch(E) { alert(E); }" alt=
368               "&staff.client.portal.checkout.description;" /></td>
369
370               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
371               onclick="try { checkout(true); } catch(E) { alert(E); }" /><a href="#"
372               onclick=
373               "try { checkout(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.checkout;</a><br />
374               <a href="#" onclick=
375               "try { checkout(false); } catch(E) { alert(E); }; return false;"><span class="c2">
376               &staff.client.portal.retrievebc;</span></a></td>
377             </tr>
378
379             <tr>
380               <td height="50"><img src="skin/media/images/portal/back.png" height="48" width="48" onclick=
381               "try { checkin(false); } catch(E) { alert(E); }" alt=
382               "&staff.client.portal.checkin.description;" /></td>
383
384               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
385               onclick="try { checkin(true); } catch(E) { alert(E); }" /> <a href="#"
386               onclick=
387               "try { checkin(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.checkin;</a><br /></td>
388             </tr>
389
390             <tr>
391               <td height="50"><img src="skin/media/images/portal/registerpatron.png" height="48" width="48"
392               onclick="try { register_patron(false); } catch(E) { alert(E); }" alt=
393               "&staff.client.portal.patronreg.description;" /></td>
394
395               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
396               onclick="try { register_patron(true); } catch(E) { alert(E); }" /> <a href=
397               "#" onclick=
398               "try { register_patron(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.patronreg;</a></td>
399             </tr>
400
401             <tr>
402               <td height="50"><img src="skin/media/images/portal/retreivepatron.png" height="48" width="48"
403               onclick="try { find_patron(false); } catch(E) { alert(E); }" alt=
404               "&staff.client.portal.patronsearch.description;" /></td>
405
406               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
407               onclick="try { find_patron(true); } catch(E) { alert(E); }" /> <a href="#"
408               onclick=
409               "try { find_patron(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.patronsearch;</a></td>
410             </tr>
411
412             <tr>
413               <td height="50"><img class="funcimg" src="skin/media/images/portal/holds.png" height="48"
414               width="48" onclick="try { hold_pull_list(false); } catch(E) { alert(E); }"
415               alt="&staff.client.portal.holdlist.description;" /></td>
416
417               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
418               onclick="try { hold_pull_list(true); } catch(E) { alert(E); }" /> <a href=
419               "#" onclick=
420               "try { hold_pull_list(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.holdlist;</a></td>
421             </tr>
422 <!--
423             <tr>
424               <td height="50"><img src="skin/media/images/portal/map.PNG" alt="Locate Address In Map"
425               onclick="try { address_map(false); } catch(E) { alert(E); }" /></td>
426
427               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
428               onclick="try { address_map(true); } catch(E) { alert(E); }" /> <a href="#"
429               onclick=
430               "try { address_map(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.addrmap;</a></td>
431             </tr>
432 -->
433           </table>
434         </div>
435       </td>
436
437       <td class="c3">
438         <div class="functionalgroup">
439           &staff.client.portal.itemcataloging;
440           <hr />
441
442           <table class="functionlist">
443             <tr>
444               <td colspan="2" rowspan="1">
445                 <form action="#" onsubmit="return SearchOnSubmit();">
446                   <input id="quicksearch" onfocus="SearchOnFocus();" onblur=
447                   "SearchOnBlur();" onkeydown="SearchOnFocus();" /> <input value="&staff.client.portal.search.button;" type="submit" />
448                 </form>
449               </td>
450             </tr>
451
452             <tr>
453               <td height="50"><img src="skin/media/images/portal/book.png" height="48" width="48" onclick=
454               "try { catalog(false); } catch(E) { alert(E); }" alt=
455               "&staff.client.portal.advsearch.description;" /></td>
456
457               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
458               onclick="try { catalog(true); } catch(E) { alert(E); }" /> <a href="#"
459               onclick=
460               "try { catalog(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.advsearch;</a></td>
461             </tr>
462
463             <tr>
464               <td height="50"><img src="skin/media/images/portal/book.png" height="48" width="48" onclick=
465               "try { copy_status(false); } catch(E) { alert(E); }" alt=
466               "&staff.client.portal.itemstatus.description;" /></td>
467
468               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
469               onclick="try { copy_status(true); } catch(E) { alert(E); }" /> <a href="#"
470               onclick=
471               "try { copy_status(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.itemstatus;</a></td>
472             </tr>
473
474             <tr>
475               <td height="50"><img src="skin/media/images/portal/batchimport.png" height="48" width="48"
476               onclick="try { MARC_batch_import(false); } catch(E) { alert(E); }" alt=
477               "&staff.client.portal.marcutil.description;" /></td>
478
479               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
480               onclick="try { MARC_batch_import(true); } catch(E) { alert(E); }" />
481               <a href="#" onclick=
482               "try { MARC_batch_import(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.marcutil;</a></td>
483             </tr>
484
485             <tr>
486               <td height="50"><img src="skin/media/images/portal/z3950.png" height="48" width="48" onclick=
487               "try { z39_50(false); } catch(E) { alert(E); }" alt="&staff.client.portal.z3950.description;" /></td>
488
489               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
490               onclick="try { z39_50(true); } catch(E) { alert(E); }" /> <a href="#"
491               onclick=
492               "try { z39_50(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.z3950;</a></td>
493             </tr>
494
495             <tr>
496               <td height="50"><img src="skin/media/images/portal/bucket.png" height="48" width="48" onclick=
497               "try { copy_buckets(false); } catch(E) { alert(E); }" alt=
498               "&staff.client.portal.copybuckets.description;" /></td>
499
500               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
501               onclick="try { copy_buckets(true); } catch(E) { alert(E); }" /> <a href="#"
502               onclick=
503               "try { copy_buckets(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.copybuckets;</a></td>
504             </tr>
505
506             <tr>
507               <td height="50"><img src="skin/media/images/portal/bucket.png" height="48" width="48" onclick=
508               "try { record_buckets(false); } catch(E) { alert(E); }" alt=
509               "&staff.client.portal.recordbuckets.description;" /></td>
510
511               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
512               onclick="try { record_buckets(true); } catch(E) { alert(E); }" /> <a href=
513               "index.html#" onclick=
514               "try { record_buckets(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.recordbuckets;</a></td>
515             </tr>
516           </table><br />
517         </div>
518       </td>
519
520       <td>
521         <div class="functionalgroup">
522           &staff.client.portal.admin;
523           <hr />
524
525           <table class="functionlist">
526             <tr>
527               <td height="50"><img src="skin/media/images/portal/helpdesk.png" height="48" width="48"
528               onclick="try { helpdesk(false); } catch(E) { alert(E); }" alt=
529               "&staff.client.portal.helpdesk.description;" /></td>
530
531               <td><a href="#"
532               onclick="try { helpdesk(false); } catch(E) { alert(E); }">&staff.client.portal.helpdesk;</a></td>
533             </tr>
534
535             <tr>
536               <td height="50"><img src="skin/media/images/portal/reports.png" height="48" width="48"
537               onclick="try { local_admin_reports(false); } catch(E) { alert(E); }" alt=
538               "&staff.client.portal.reports.description;" /></td>
539
540               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
541               onclick="try { local_admin_reports(true); } catch(E) { alert(E); }" />
542               <a href="#" onclick=
543               "try { local_admin_reports(false); } catch(E) { alert(E); }; return false;">
544               &staff.client.portal.reports;</a></td>
545             </tr>
546
547             <tr>
548               <td height="50"><img src="skin/media/images/portal/receipt_editor.png" height="48" width="48"
549               onclick="try { receipt_editor(false); } catch(E) { alert(E); }" alt=
550               "&staff.client.portal.receipts.description;" /></td>
551
552               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="&staff.client.portal.open_new_tab.description;"
553               onclick="try { receipt_editor(true); } catch(E) { alert(E); }" /> <a href=
554               "#" onclick=
555               "try { receipt_editor(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.receipts;</a></td>
556             </tr>
557
558             <tr>
559               <td height="50"><img src="skin/media/images/portal/book.png" height="48" width="48"
560               onclick="try { toggle_tpac(); } catch(E) { alert(E) }; return false;" alt="&staff.client.portal.toggle_tpac;" /></td>
561
562               <td><a href="#"
563               onclick="try { toggle_tpac(); } catch(E) { alert(E); }; return false;">&staff.client.portal.toggle_tpac;</a></td>
564             </tr>
565           </table>
566         </div>
567         <span style="display:none" id="tpac_toggled_on">&staff.client.portal.toggle_tpac.message_on;</span>
568         <span style="display:none" id="tpac_toggled_off">&staff.client.portal.toggle_tpac.message_off;</span>
569       </td>
570     </tr>
571   </table>
572
573   <div class="attribution c1">&staff.client.portal.copyright;<br />
574   &staff.client.portal.poweredby; <img src="skin/media/images/portal/eg_tiny_logo.jpg" alt="Evergreen logo" /></div>
575 </body>
576 </html>
577
578