]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/index.xhtml
Improve Firefox/XULRunner Support
[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="main/JSAN.js">
78 </script>
79   <script type="text/javascript">
80       // <![CDATA[
81         
82                 //this function will allow for the "Hello, Staff Member" messages
83                 function init() { 
84                         SearchOnBlur();
85                         JSAN.use('OpenILS.data'); 
86                         var data = new OpenILS.data(); 
87                         data.stash_retrieve(); 
88                         document.getElementById('staffname').innerHTML = ", " + data.list.au[0].first_given_name(); 
89                         home_ou_id = data.list.au[0].ws_ou();
90                         xulG.set_tab_name('Portal');
91                 }
92                 function jb_open_eg_web_page(path, label) {
93                         var loc = urls.XUL_BROWSER + '?url=' + window.escape(xulG.url_prefix('EG_WEB_BASE') + '/' + path);
94
95                         xulG.set_tab( 
96                                 loc, 
97                                 {tab_name : label, browser : false }, 
98                                 {no_xulG : false, show_print_button : false, show_nav_buttons : true }
99                         );
100                 }
101                 function jb_open_eg_web_page_newtab(path, label) {
102                         var loc = urls.XUL_BROWSER + '?url=' + window.escape(xulG.url_prefix('EG_WEB_BASE') + '/' + path);
103
104                         xulG.new_tab( 
105                                 loc, 
106                                 {tab_name : label, browser : false }, 
107                                 {no_xulG : false, show_print_button : false, show_nav_buttons : true }
108                         );
109                 }
110                 
111                 //Place your helpdesk link here
112                 function helpdesk(newtab) {
113                         xulG.open_external("http://evergreen-ils.org/communicate.php");
114                 }
115                 
116                 //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
117                 //http://208.119.72.68/evergreen/evergreenmap.html
118                 function address_map(newtab) {
119                         loc = "http://maps.google.com";
120                         var params = {'tab_name':'Locate Address In Map'};
121                         
122                         if(newtab)
123                                 xulG.new_tab(loc, params, {}); 
124                         else
125                                 xulG.set_tab(loc, params, {}); 
126                 }
127                 function local_admin(newtab) {
128                         var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(urls.XUL_LOCAL_ADMIN + '?ses=' + window.escape(ses()) + '&session=' + window.escape(ses())); 
129                         var params = {'tab_name':'Local Administration', 'browser' : true };
130                         var content_params = { 'no_xulG' : false, 'show_nav_buttons' : true, 'show_print_button' : true };
131                         
132                         if(newtab)
133                                 xulG.new_tab(loc, params, content_params);
134                         else
135                                 xulG.set_tab(loc, params, content_params);
136                 }
137                 function copy_status(newtab) {
138                         if(newtab)
139                                 xulG.new_tab(urls.XUL_COPY_STATUS,{},{});
140                         else
141                                 xulG.set_tab(urls.XUL_COPY_STATUS,{},{});
142                 }
143                 function hold_pull_list(newtab) {
144                         var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape(urls.XUL_HOLD_PULL_LIST + '?ses=' + window.escape(ses()));
145                         var params = {'tab_name':'On Shelf Pull List'};
146                         
147                         if(newtab)
148                                 xulG.new_tab(loc, params);
149                         else
150                                 xulG.set_tab(loc, params);
151                 }
152                 function checkout(newtab) {
153                         if(newtab)
154                                 xulG.new_tab(urls.XUL_PATRON_BARCODE_ENTRY,{},{});
155                         else
156                                 xulG.set_tab(urls.XUL_PATRON_BARCODE_ENTRY,{},{});
157                 }
158                 function catalog(newtab) {
159                         var params = {'tab_name':'Catalog'};
160                         var content_params = { 'session' : ses(), 'authtime' : ses('authtime') };
161                         
162                         if(newtab)
163                                 xulG.new_tab(urls.XUL_OPAC_WRAPPER, params, content_params);
164                         else
165                                 xulG.set_tab(urls.XUL_OPAC_WRAPPER, params, content_params);
166                 }
167                 function z39_50(newtab) {
168                         if(newtab)
169                                 xulG.new_tab(urls.XUL_Z3950_IMPORT,{},{});
170                         else
171                                 xulG.set_tab(urls.XUL_Z3950_IMPORT,{},{});
172                 }
173                 function copy_buckets(newtab) {
174                         params = {'tab_name':'Copy Buckets'};
175                         if(newtab)
176                                 xulG.new_tab(urls.XUL_COPY_BUCKETS, params, {});
177                         else
178                                 xulG.set_tab(urls.XUL_COPY_BUCKETS, params, {});
179                 }
180                 function record_buckets(newtab) {
181                         params = {'tab_name':'Record Buckets'};
182                         if(newtab)
183                                 xulG.new_tab(urls.XUL_RECORD_BUCKETS, params, {});
184                         else
185                                 xulG.set_tab(urls.XUL_RECORD_BUCKETS, params, {});
186                 }
187                 function receipt_editor(newtab) {
188                         if(newtab)
189                                 xulG.new_tab(urls.XUL_PRINT_LIST_TEMPLATE_EDITOR, {}, {});
190                         else
191                                 xulG.set_tab(urls.XUL_PRINT_LIST_TEMPLATE_EDITOR, {}, {});
192                 }
193                 function checkin(newtab) {
194                         if(newtab)
195                                 xulG.new_tab(urls.XUL_CHECKIN,{},{});
196                         else
197                                 xulG.set_tab(urls.XUL_CHECKIN,{},{});
198                 }
199                 function MARC_batch_import(newtab) {
200                         if(newtab)
201                                 jb_open_eg_web_page_newtab('vandelay/vandelay', 'Server Settings');
202                         else
203                                 jb_open_eg_web_page('vandelay/vandelay', 'Server Settings');
204                 }
205                 function local_admin_reports(newtab) {
206                         var loc = urls.XUL_BROWSER + '?url=' + window.escape( xulG.url_prefix('XUL_REPORTS') + '?ses=' + ses());
207                         params = {'tab_name' : 'Reports', 'browser' : false }
208                         content_params = {'no_xulG' : false, 'show_print_button' : false, show_nav_buttons : true }
209                         if(newtab)
210                                 xulG.new_tab(loc, params, content_params);
211                         else
212                                 xulG.set_tab(loc, params, content_params);
213                 }
214                 function find_patron(newtab) {
215                         if(newtab)
216                                 xulG.new_patron_tab({},{});
217                         else
218                                 xulG.set_patron_tab({},{});
219                 }
220                 
221                 function spawn_search(s) {
222                         xulG.new_patron_tab( {}, { 'doit' : 1, 'query' : js2JSON(s) } );
223                 }
224                 function register_patron(newtab) {
225                         function spawn_editor(p) {
226                                 var url = urls.XUL_PATRON_EDIT;
227                                 var param_count = 0;
228                                 for (var i in p) {
229                                         if (param_count++ == 0) url += '?'; else url += '&amp;';
230                                         url += i + '=' + window.escape(p[i]);
231                                 }
232                                 var loc = urls.XUL_REMOTE_BROWSER + '?url=' + window.escape( url );
233                                 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 }});
234                         }
235                         
236                         var loc = urls.XUL_REMOTE_BROWSER  + '?url=' + window.escape( urls.XUL_PATRON_EDIT + '?ses=' + window.escape( ses() ) );
237                         var content_params = { 
238                                                      'show_print_button' : true , 
239                                                      'tab_name' : 'Register Patron' ,
240                                                      'passthru_content_params' : { 'spawn_search' : function(s) { spawn_search(s); },
241                                                                                     'spawn_editor' : spawn_editor }
242                                                  }
243                         if(newtab)
244                                 xulG.new_tab(loc, {}, content_params);
245                         else
246                                 xulG.set_tab(loc, {}, content_params);
247                 }
248                 function toggle_tpac(mode) {
249                     var use_tpac = false;
250                     var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces['nsIPrefBranch']);
251                     try {
252                         use_tpac = prefs.getBoolPref('oils.use_tpac');
253                     } catch (E) {
254                         dump('Failed to get current use_tpac setting - Assuming false: ' + E);
255                     }
256                     use_tpac = !use_tpac;
257                     prefs.setBoolPref('oils.use_tpac', use_tpac);
258                     var message = document.getElementById('tpac_toggled_on');
259                     if(!use_tpac) {
260                         message = document.getElementById('tpac_toggled_off');
261                     }
262                     message = message.textContent;
263                     alert(message);
264                 }
265                 // ]]>
266   </script>
267   <style type="text/css">
268 /*<![CDATA[*/
269   body {
270   font-family: "Trebuchet MS", Helvetica, Verdana, Arial, sans-serif;
271   }
272
273   hr {
274   border-style: solid;
275   border-color: black;
276   width: 180px;
277   }
278
279   a {
280   font-size: 85%;
281   font-weight: bold;
282   color: black;
283   text-decoration: none;
284   }
285
286   #alignment {
287         border-collapse: collapse;
288         border-style: none;
289         width: 100%;
290   }
291
292   #alignment td {
293         vertical-align: top;
294   }
295
296   .functionlist {
297         border-style: none;
298         margin-left: auto;
299         margin-right: auto;
300   }
301
302   .functionlist td {
303   text-align: left;
304         margin: 2px;
305         padding: 2px;
306   }
307
308   .functionalgroup {
309         text-align: center;
310   }
311
312   a img {
313         border-style: none;
314   }
315
316   .attribution {
317         font-size: 75%;
318   }
319
320   form {
321         margin: 0px;
322         padding: 0px;
323   }
324
325   .newtabimg {
326         float: right;
327         padding-left:4px;
328   }
329
330   .funcimg {
331         width: 48px;
332         height: 48px;
333   }
334
335   /*]]>*/
336   </style>
337   <style type="text/css">
338 /*<![CDATA[*/
339   body.c4 {margin-top: 0px; padding-top: 0px; background-image: url(skin/media/images/portal/background.png);}
340   td.c3 {border: 1px solid black; border-top: 0px; border-bottom: 0px;}
341   span.c2 {font-size:75%;}
342   div.c1 {text-align: center}
343   /*]]>*/
344   </style>
345 </head>
346
347 <body class="c4" onload="init();">
348   <div class="c1">
349     <img src="skin/media/images/portal/logo.png" height="121" width="396" alt="Evergreen logo" /><br />
350     &staff.client.portal.welcome;<span id="staffname"></span><br />
351     <br />
352   </div>
353
354   <table id="alignment">
355     <tr>
356       <td>
357         <div class="functionalgroup">
358           &staff.client.portal.circpatron;
359           <hr />
360
361           <table class="functionlist">
362             <tr>
363               <td height="50"><img src="skin/media/images/portal/forward.png" height="48" width="48"
364               onclick="try { checkout(false); } catch(E) { alert(E); }" alt=
365               "Check Out Items" /></td>
366
367               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
368               onclick="try { checkout(true); } catch(E) { alert(E); }" /><a href="#"
369               onclick=
370               "try { checkout(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.checkout;</a><br />
371               <a href="#" onclick=
372               "try { checkout(false); } catch(E) { alert(E); }; return false;"><span class="c2">
373               &staff.client.portal.retrievebc;</span></a></td>
374             </tr>
375
376             <tr>
377               <td height="50"><img src="skin/media/images/portal/back.png" height="48" width="48" onclick=
378               "try { checkin(false); } catch(E) { alert(E); }" alt=
379               "Check In Items" /></td>
380
381               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
382               onclick="try { checkin(true); } catch(E) { alert(E); }" /> <a href="#"
383               onclick=
384               "try { checkin(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.checkin;</a><br /></td>
385             </tr>
386
387             <tr>
388               <td height="50"><img src="skin/media/images/portal/registerpatron.png" height="48" width="48"
389               onclick="try { register_patron(false); } catch(E) { alert(E); }" alt=
390               "Register Patron" /></td>
391
392               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
393               onclick="try { register_patron(true); } catch(E) { alert(E); }" /> <a href=
394               "#" onclick=
395               "try { register_patron(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.patronreg;</a></td>
396             </tr>
397
398             <tr>
399               <td height="50"><img src="skin/media/images/portal/retreivepatron.png" height="48" width="48"
400               onclick="try { find_patron(false); } catch(E) { alert(E); }" alt=
401               "Search For Patron By Name" /></td>
402
403               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
404               onclick="try { find_patron(true); } catch(E) { alert(E); }" /> <a href="#"
405               onclick=
406               "try { find_patron(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.patronsearch;</a></td>
407             </tr>
408
409             <tr>
410               <td height="50"><img class="funcimg" src="skin/media/images/portal/holds.png" height="48"
411               width="48" onclick="try { hold_pull_list(false); } catch(E) { alert(E); }"
412               alt="Pull List for Hold Requests" /></td>
413
414               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
415               onclick="try { hold_pull_list(true); } catch(E) { alert(E); }" /> <a href=
416               "#" onclick=
417               "try { hold_pull_list(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.holdlist;</a></td>
418             </tr>
419 <!--
420             <tr>
421               <td height="50"><img src="skin/media/images/portal/map.PNG" alt="Locate Address In Map"
422               onclick="try { address_map(false); } catch(E) { alert(E); }" /></td>
423
424               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
425               onclick="try { address_map(true); } catch(E) { alert(E); }" /> <a href="#"
426               onclick=
427               "try { address_map(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.addrmap;</a></td>
428             </tr>
429 -->
430           </table>
431         </div>
432       </td>
433
434       <td class="c3">
435         <div class="functionalgroup">
436           &staff.client.portal.itemcataloging;
437           <hr />
438
439           <table class="functionlist">
440             <tr>
441               <td colspan="2" rowspan="1">
442                 <form action="#" onsubmit="return SearchOnSubmit();">
443                   <input id="quicksearch" onfocus="SearchOnFocus();" onblur=
444                   "SearchOnBlur();" /> <input value="Search" type="submit" />
445                 </form>
446               </td>
447             </tr>
448
449             <tr>
450               <td height="50"><img src="skin/media/images/portal/book.png" height="48" width="48" onclick=
451               "try { catalog(false); } catch(E) { alert(E); }" alt=
452               "Advanced Search" /></td>
453
454               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
455               onclick="try { catalog(true); } catch(E) { alert(E); }" /> <a href="#"
456               onclick=
457               "try { catalog(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.advsearch;</a></td>
458             </tr>
459
460             <tr>
461               <td height="50"><img src="skin/media/images/portal/book.png" height="48" width="48" onclick=
462               "try { copy_status(false); } catch(E) { alert(E); }" alt=
463               "Item Status / Display" /></td>
464
465               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
466               onclick="try { copy_status(true); } catch(E) { alert(E); }" /> <a href="#"
467               onclick=
468               "try { copy_status(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.itemstatus;</a></td>
469             </tr>
470
471             <tr>
472               <td height="50"><img src="skin/media/images/portal/batchimport.png" height="48" width="48"
473               onclick="try { MARC_batch_import(false); } catch(E) { alert(E); }" alt=
474               "MARC Batch Import / Export" /></td>
475
476               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
477               onclick="try { MARC_batch_import(true); } catch(E) { alert(E); }" />
478               <a href="#" onclick=
479               "try { MARC_batch_import(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.marcutil;</a></td>
480             </tr>
481
482             <tr>
483               <td height="50"><img src="skin/media/images/portal/z3950.png" height="48" width="48" onclick=
484               "try { z39_50(false); } catch(E) { alert(E); }" alt="Z39.50 Import" /></td>
485
486               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
487               onclick="try { z39_50(true); } catch(E) { alert(E); }" /> <a href="#"
488               onclick=
489               "try { z39_50(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.z3950;</a></td>
490             </tr>
491
492             <tr>
493               <td height="50"><img src="skin/media/images/portal/bucket.png" height="48" width="48" onclick=
494               "try { copy_buckets(false); } catch(E) { alert(E); }" alt=
495               "Copy Buckets" /></td>
496
497               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
498               onclick="try { copy_buckets(true); } catch(E) { alert(E); }" /> <a href="#"
499               onclick=
500               "try { copy_buckets(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.copybuckets;</a></td>
501             </tr>
502
503             <tr>
504               <td height="50"><img src="skin/media/images/portal/bucket.png" height="48" width="48" onclick=
505               "try { record_buckets(false); } catch(E) { alert(E); }" alt=
506               "Record Buckets" /></td>
507
508               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
509               onclick="try { record_buckets(true); } catch(E) { alert(E); }" /> <a href=
510               "index.html#" onclick=
511               "try { record_buckets(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.recordbuckets;</a></td>
512             </tr>
513           </table><br />
514         </div>
515       </td>
516
517       <td>
518         <div class="functionalgroup">
519           &staff.client.portal.admin;
520           <hr />
521
522           <table class="functionlist">
523             <tr>
524               <td height="50"><img src="skin/media/images/portal/helpdesk.png" height="48" width="48"
525               onclick="try { helpdesk(false); } catch(E) { alert(E); }" alt=
526               "Submit A Helpdesk Ticket" /></td>
527
528               <td><a href="#"
529               onclick="try { helpdesk(false); } catch(E) { alert(E); }">&staff.client.portal.helpdesk;</a></td>
530             </tr>
531
532             <tr>
533               <td height="50"><img src="skin/media/images/portal/reports.png" height="48" width="48"
534               onclick="try { local_admin_reports(false); } catch(E) { alert(E); }" alt=
535               "Reports" /></td>
536
537               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
538               onclick="try { local_admin_reports(true); } catch(E) { alert(E); }" />
539               <a href="#" onclick=
540               "try { local_admin_reports(false); } catch(E) { alert(E); }; return false;">
541               &staff.client.portal.reports;</a></td>
542             </tr>
543
544             <tr>
545               <td height="50"><img src="skin/media/images/portal/receipt_editor.png" height="48" width="48"
546               onclick="try { receipt_editor(false); } catch(E) { alert(E); }" alt=
547               "Edit Receipt Templates" /></td>
548
549               <td><img class="newtabimg" src="skin/media/images/portal/newtab2.PNG" alt="Open in a new tab"
550               onclick="try { receipt_editor(true); } catch(E) { alert(E); }" /> <a href=
551               "#" onclick=
552               "try { receipt_editor(false); } catch(E) { alert(E); }; return false;">&staff.client.portal.receipts;</a></td>
553             </tr>
554
555             <tr>
556               <td height="50"><img src="skin/media/images/portal/book.png" height="48" width="48"
557               onclick="try { toggle_tpac(); } catch(E) { alert(E) }; return false;" alt="&staff.client.portal.toggle_tpac;" /></td>
558
559               <td><a href="#"
560               onclick="try { toggle_tpac(); } catch(E) { alert(E); }; return false;">&staff.client.portal.toggle_tpac;</a></td>
561             </tr>
562           </table>
563         </div>
564         <span style="display:none" id="tpac_toggled_on">&staff.client.portal.toggle_tpac.message_on;</span>
565         <span style="display:none" id="tpac_toggled_off">&staff.client.portal.toggle_tpac.message_off;</span>
566       </td>
567     </tr>
568   </table>
569
570   <div class="attribution c1">&staff.client.portal.copyright;<br />
571   &staff.client.portal.poweredby; <img src="skin/media/images/portal/eg_tiny_logo.jpg" alt="Evergreen logo" /></div>
572 </body>
573 </html>
574
575