Bug 5685: [OPAC follow-up] Validation of email address field
[koha.git] / koha-tmpl / opac-tmpl / bootstrap / en / modules / opac-memberentry.tt
1 [% USE Koha %]
2 [% USE KohaDates %]
3 [% SET userupdateview = 1 %]
4
5 [% INCLUDE 'doc-head-open.inc' %]
6     <title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog &rsaquo; [% IF action == 'edit' %]Update your personal details[% ELSE %]Register a new account[% END %]</title>
7 [% INCLUDE 'doc-head-close.inc' %]
8 [% BLOCK cssinclude %][% END %]
9 </head>
10
11 [% IF action == 'edit' %]
12 [% INCLUDE 'bodytag.inc' bodyid='opac-patron-update' %]
13 [% ELSE %]
14 <body id="opac-patron-registration" class="opac">
15 [% END %]
16 [% INCLUDE 'masthead.inc' %]
17
18 <div class="main">
19     <ul class="breadcrumb">
20         <li><a href="/cgi-bin/koha/opac-main.pl">Home</a> <span class="divider">&rsaquo;</span></li>
21         [% IF action == 'edit' %]
22             <li><a href="/cgi-bin/koha/opac-user.pl">[% borrower.firstname %] [% borrower.surname %]</a> <span class="divider">&rsaquo;</span></li>
23             <li><a href="#">Your personal details</a></li>
24         [% ELSE %]
25             <li><a href="#">Register a new account</a></li>
26         [% END %]
27     </ul>
28
29     <div class="container-fluid">
30         <div class="row-fluid">
31             <div class="span2">
32                 <div id="navigation">
33                     [% INCLUDE 'navigation.inc' IsPatronPage=1 %]
34                 </div>
35             </div>
36             <div class="span10">
37                 [% IF action == 'edit' %]
38                     <div id="update-account">
39                 [% ELSE %]
40                     <div id="add-account">
41                 [% END %]
42
43                 [% IF action == 'edit' %]
44                     [% UNLESS OPACPatronDetails %]
45                         <div class="alert alert-info">To make changes to your record please contact the library.</div>
46                     [% END %]
47                 [% END %]
48
49                 [% IF empty_mandatory_fields %]
50                     <div class="alert">You have not filled out all required fields. Please fill in all missing fields and resubmit.</div>
51                 [% END %]
52
53                 [%  IF invalid_form_fields %]
54                     <div class="alert alert-error"><strong>The following fields contain invalid information:</strong>
55                         <ul>
56                             [% FOREACH field IN invalid_form_fields %]
57                                 [% IF field == "email" %]<li>Contact information: <a href="#borrower_email">primary email address</a></li>[% END %]
58                                 [% IF field == "emailpro" %]<li>Contact information: <a href="#borrower_emailpro">secondary email address</a></li>[% END %]
59                                 [% IF field == "B_email" %]<li>Alternate address information: <a href="#borrower_B_email">email address</a></li>[% END %]
60                             [% END %]
61                         </ul>
62                         Please correct the errors and resubmit.
63                     </div>
64                 [% END %]
65
66                 [% IF failed_captcha %]
67                     <div class="alert">You typed in the wrong characters in the box before submitting. Please try again.</div>
68                 [% END %]
69
70                 <form method="post" action="/cgi-bin/koha/opac-memberentry.pl" id="memberentry-form">
71
72                 [% UNLESS hidden.defined('branchcode') %]
73                     <fieldset class="rows" id="memberentry_library">
74
75                         <legend id="library_legend">Library</legend>
76                             <ol>
77                                 [% UNLESS hidden.defined('cardnumber') %]
78                                 <li>
79                                     <label>Card number:</label>
80                                     [% borrower.cardnumber %]
81                                 </li>
82                                 [% END %]
83
84                                 [% UNLESS hidden.defined('dateexpiry') %]
85                                 <li>
86                                     <label>Expiration date:</label>
87                                     [% borrower.dateexpiry | $KohaDates  %]
88                                 </li>
89                                 [% END %]
90
91                                 [% UNLESS hidden.defined('branchcode') %]
92                                     <li>
93                                         [% IF mandatory.defined('branchcode') %]
94                                             <label for="borrower_branchcode" class="required">
95                                         [% ELSE %]
96                                             <label for="borrower_branchcode">
97                                         [% END %]
98                                         Home library:</label>
99
100                                         <select id="borrower_branchcode" name="borrower_branchcode">
101                                             [% FOREACH b IN branches %]
102                                                 [% IF b.value == borrower.branchcode %]
103                                                     <option value="[% b.value %]" selected="selected">[% b.branchname %]</option>
104                                                 [% ELSE %]
105                                                     <option value="[% b.value %]">[% b.branchname %]</option>
106                                                 [% END %]
107                                             [% END %]
108                                         </select>
109                                     </li>
110                                 [% END %]
111                             </ol>
112                         </fieldset>
113                 [% END # / defined 'branchcode' %]
114
115                 [% UNLESS
116                     hidden.defined('title') && hidden.defined('surname') && hidden.defined('firstname') &&
117                     hidden.defined('dateofbirth') && hidden.defined('initials') && hidden.defined('othernames') &&
118                     hidden.defined('sex')
119                 %]
120                     <div class="row-fluid">
121                         [% IF ( display_patron_image ) %]
122                             <div class="span8">
123                         [% ELSE %]
124                             <div class="span12">
125                         [% END %]
126                             <fieldset class="rows" id="memberentry_identity">
127                                 <legend id="identity_legend">Identity</legend>
128
129                                 <ol>
130                                     [% UNLESS hidden.defined('title') || !member_titles %]
131                                         <li>
132                                             [% IF mandatory.defined('title') %]
133                                                 <label for="borrower_title" class="required">
134                                             [% ELSE %]
135                                                 <label for="borrower_title">
136                                             [% END %]
137                                             Salutation:</label>
138
139                                             <select id="borrower_title" name="borrower_title">
140                                                 [% FOREACH mt IN member_titles %]
141                                                     [% IF mt == borrower.title %]
142                                                         <option value="[% mt %]" selected="selected">[% mt %]</option>
143                                                     [% ELSE %]
144                                                         <option value="[% mt %]">[% mt %]</option>
145                                                     [% END %]
146                                                 [% END %]
147                                             </select>
148                                         </li>
149                                     [% END %]
150
151                                     [% UNLESS hidden.defined('surname') %]
152                                         <li>
153                                             [% IF mandatory.defined('surname') %]
154                                                 <label for="borrower_surname" class="required">
155                                             [% ELSE %]
156                                                 <label for="borrower_surname">
157                                             [% END %]
158                                             Surname:</label>
159
160                                             <input type="text" id="borrower_surname" name="borrower_surname" value="[% borrower.surname %]" />
161                                             [% IF mandatory.defined('surname') %]<span class="required">Required</span>[% END %]
162                                         </li>
163                                     [% END %]
164
165                                     [% UNLESS hidden.defined('firstname') %]
166                                         <li>
167                                             [% IF mandatory.defined('firstname') %]
168                                                 <label for="borrower_firstname" class="required">
169                                             [% ELSE %]
170                                                 <label for="borrower_firstname">
171                                             [% END %]
172                                             First name:</label>
173
174                                             <input type="text" id="borrower_firstname" name="borrower_firstname" value="[% borrower.firstname %]" />
175                                             [% IF mandatory.defined('firstname') %]<span class="required">Required</span>[% END %]
176                                         </li>
177                                     [% END %]
178
179                                     [% UNLESS hidden.defined('dateofbirth') %]
180                                         <li>
181                                             [% IF mandatory.defined('dateofbirth') %]
182                                                 <label for="borrower_dateofbirth" class="required">
183                                             [% ELSE %]
184                                                 <label for="borrower_dateofbirth">
185                                             [% END %]
186                                             Date of birth:</label>
187
188                                             <input type="text" id="borrower_dateofbirth" name="borrower_dateofbirth" value="[% borrower.dateofbirth | $KohaDates %]" size="10" />
189
190                                             [% UNLESS action == 'edit' && !OPACPatronDetails %]
191                                                 [% UNLESS ( mandatory.defined('dateofbirth') ) %]
192                                                     <a href="#" style="font-size:85%;text-decoration:none;" onclick="document.getElementById('borrower_dateofbirth').value='';return false;">Clear date</a>
193                                                 [% END %]
194                                             [% END %]
195
196                                             [% IF mandatory.defined('dateofbirth') %]<span class="required">Required</span>[% END %]
197                                         </li>
198                                     [% END %]
199
200                                     [% UNLESS hidden.defined('initials') %]
201                                         <li>
202                                             [% IF mandatory.defined('initials') %]
203                                                 <label for="borrower_initials" class="required">
204                                             [% ELSE %]
205                                                 <label for="borrower_initials">
206                                             [% END %]
207                                             Initials:</label>
208
209                                             <input type="text" id="borrower_initials" name="borrower_initials" value="[% borrower.initials %]" />
210                                             [% IF mandatory.defined('initials') %]<span class="required">Required</span>[% END %]
211                                         </li>
212                                     [% END %]
213
214                                     [% UNLESS hidden.defined('othernames') %]
215                                         <li>
216                                             [% IF mandatory.defined('othernames') %]
217                                                 <label for="borrower_othernames" class="required">
218                                             [% ELSE %]
219                                                 <label for="borrower_othernames">
220                                             [% END %]
221                                             Other names:</label>
222
223                                             <input type="text" id="borrower_othernames" name="borrower_othernames" value="[% borrower.othernames %]" />
224                                             [% IF mandatory.defined('othernames') %]<span class="required">Required</span>[% END %]
225                                         </li>
226                                     [% END %]
227
228                                     [% UNLESS hidden.defined('sex') %]
229                                         <li class="lradio">
230                                             <label for="sex-female" class="radio inline">Female:</label>
231                                             [% IF borrower.sex == 'F' %]
232                                                 <input type="radio" name="borrower_sex" id="sex-female" value="F" checked="checked" />
233                                             [% ELSE %]
234                                                 <input type="radio" name="borrower_sex" id="sex-female" value="F" />
235                                             [% END %]
236
237                                             <label for="sex-male" class="radio inline">Male:</label>
238                                             [% IF borrower.sex == 'M' %]
239                                                 <input type="radio" name="borrower_sex" id="sex-male" value="M" checked="checked" />
240                                             [% ELSE %]
241                                                 <input type="radio" name="borrower_sex" id="sex-male" value="M" />
242                                             [% END %]
243
244                                             <label for="sex-none" class="radio inline">N/A:</label>
245                                             [% IF borrower.sex == '' %]
246                                                 <input type="radio" name="borrower_sex" id="sex-none" value="" checked="checked" />
247                                             [% ELSE %]
248                                                 <input type="radio" name="borrower_sex" id="sex-none" value="" />
249                                             [% END %]
250
251                                             [% IF mandatory.defined('sex') %]<span class="required">Required</span>[% END %]
252                                         </li>
253                                     [% END %]
254                                 </ol>
255                             </fieldset>
256                            </div>
257                         [% IF ( display_patron_image ) %]
258                             <div class="span4">
259                                 <p class="patronimage">
260                                    <img src="/cgi-bin/koha/opac-patron-image.pl" alt="" />
261                                 </p>
262                             </div>
263                         [% END %]
264                     </div>
265                 [% END # /UNLESS fields hidden %]
266
267                 [% UNLESS
268                     hidden.defined('streetnumber') && hidden.defined('address') && hidden.defined('address2') &&
269                     hidden.defined('city') && hidden.defined('state') && hidden.defined('zipcode') &&
270                     hidden.defined('country')
271                 %]
272                     <fieldset class="rows" id="memberentry_mainaddress">
273                         <legend id="mainaddress_legend">Main address</legend>
274
275                         <ol>
276                             [% UNLESS hidden.defined('streetnumber') %]
277                                 <li>
278                                     [% IF mandatory.defined('streetnumber') %]
279                                         <label for="borrower_streetnumber" class="required">
280                                     [% ELSE %]
281                                         <label for="borrower_streetnumber">
282                                     [% END %]
283                                     Street number:</label>
284
285                                     <input type="text" id="borrower_streetnumber" name="borrower_streetnumber" value="[% borrower.streetnumber %]" />
286                                     [% IF mandatory.defined('streetnumber') %]<span class="required">Required</span>[% END %]
287                                 </li>
288                             [% END %]
289
290                             [% UNLESS hidden.defined('address') %]
291                                 <li>
292                                     [% IF mandatory.defined('address') %]
293                                         <label for="borrower_address" class="required">
294                                     [% ELSE %]
295                                         <label for="borrower_address">
296                                     [% END %]
297                                     Address:</label>
298
299                                     <input type="text" id="borrower_address" name="borrower_address" value="[% borrower.address %]" />
300                                     [% IF mandatory.defined('address') %]<span class="required">Required</span>[% END %]
301                                 </li>
302                             [% END %]
303
304                             [% UNLESS hidden.defined('address2') %]
305                                 <li>
306                                     [% IF mandatory.defined('address2') %]
307                                         <label for="borrower_address2" class="required">
308                                     [% ELSE %]
309                                         <label for="borrower_address2">
310                                     [% END %]
311                                     Address 2:</label>
312
313                                     <input type="text" id="borrower_address2" name="borrower_address2" value="[% borrower.address2 %]" />
314                                     [% IF mandatory.defined('address2') %]<span class="required">Required</span>[% END %]
315                                 </li>
316                             [% END %]
317
318                             [% UNLESS hidden.defined('city') %]
319                                 <li>
320                                     [% IF mandatory.defined('city') %]
321                                         <label for="borrower_city" class="required">
322                                     [% ELSE %]
323                                         <label for="borrower_city">
324                                     [% END %]
325                                     City:</label>
326
327                                     <input type="text" id="borrower_city" name="borrower_city" value="[% borrower.city %]" />
328                                     [% IF mandatory.defined('city') %]<span class="required">Required</span>[% END %]
329                                 </li>
330                             [% END %]
331
332                             [% UNLESS hidden.defined('state') %]
333                                 <li>
334                                     [% IF mandatory.defined('state') %]
335                                         <label for="borrower_state" class="required">
336                                     [% ELSE %]
337                                         <label for="borrower_state">
338                                     [% END %]
339                                     State:</label>
340
341                                     <input type="text" id="borrower_state" name="borrower_state" value="[% borrower.state %]" />
342                                     [% IF mandatory.defined('state') %]<span class="required">Required</span>[% END %]
343                                 </li>
344                             [% END %]
345
346                             [% UNLESS hidden.defined('zipcode') %]
347                                 <li>
348                                     [% IF mandatory.defined('zipcode') %]
349                                         <label for="borrower_zipcode" class="required">
350                                     [% ELSE %]
351                                         <label for="borrower_zipcode">
352                                     [% END %]
353                                     Zip/Postal code:</label>
354
355                                     <input type="text" id="borrower_zipcode" name="borrower_zipcode" value="[% borrower.zipcode %]" />
356                                     [% IF mandatory.defined('zipcode') %]<span class="required">Required</span>[% END %]
357                                 </li>
358                             [% END %]
359
360                             [% UNLESS hidden.defined('country') %]
361                                 <li>
362                                     [% IF mandatory.defined('country') %]
363                                         <label for="borrower_country" class="required">
364                                     [% ELSE %]
365                                         <label for="borrower_country">
366                                     [% END %]
367                                     Country:</label>
368
369                                     <input type="text" id="borrower_country" name="borrower_country" value="[% borrower.country %]" />
370                                     [% IF mandatory.defined('country') %]<span class="required">Required</span>[% END %]
371                                 </li>
372                             [% END %]
373
374                         </ol>
375                     </fieldset>
376                 [% END %]
377
378                 [% UNLESS
379                     hidden.defined('phone') && hidden.defined('phonepro') && hidden.defined('mobile') &&
380                     hidden.defined('email') && hidden.defined('emailpro') && hidden.defined('fax')
381                 %]
382                     <fieldset class="rows" id="memberentry_contact">
383                         <legend id="contact_legend">Contact information</legend>
384
385                         <ol>
386                             [% UNLESS hidden.defined('phone') %]
387                                 <li>
388                                     [% IF mandatory.defined('phone') %]
389                                         <label for="borrower_phone" class="required">
390                                     [% ELSE %]
391                                         <label for="borrower_phone">
392                                     [% END %]
393                                     Primary phone:</label>
394
395                                     <input type="text" id="borrower_phone" name="borrower_phone" value="[% borrower.phone %]" />
396                                     [% IF mandatory.defined('phone') %]<span class="required">Required</span>[% END %]
397                                 </li>
398                             [% END %]
399
400                             [% UNLESS hidden.defined('phonepro') %]
401                                 <li>
402                                     [% IF mandatory.defined('phonepro') %]
403                                         <label for="borrower_phonepro" class="required">
404                                     [% ELSE %]
405                                         <label for="borrower_phonepro">
406                                     [% END %]
407                                     Secondary phone:</label>
408
409                                     <input type="text" id="borrower_phonepro" name="borrower_phonepro" value="[% borrower.phonepro %]" />
410                                     [% IF mandatory.defined('phonepro') %]<span class="required">Required</span>[% END %]
411                                 </li>
412                             [% END %]
413
414                             [% UNLESS hidden.defined('mobile') %]
415                                 <li>
416                                     [% IF mandatory.defined('mobile') %]
417                                         <label for="borrower_mobile" class="required">
418                                     [% ELSE %]
419                                         <label for="borrower_mobile">
420                                     [% END %]
421                                     Other phone:</label>
422
423                                     <input type="text" id="borrower_mobile" name="borrower_mobile" value="[% borrower.mobile %]" />
424                                     [% IF mandatory.defined('mobile') %]<span class="required">Required</span>[% END %]
425                                 </li>
426                             [% END %]
427
428                             [% UNLESS hidden.defined('email') %]
429                                 <li>
430                                     [% IF mandatory.defined('email') %]
431                                         <label for="borrower_email" class="required">
432                                     [% ELSE %]
433                                         <label for="borrower_email">
434                                     [% END %]
435                                     Primary email:</label>
436
437                                     <input type="text" id="borrower_email" name="borrower_email" value="[% borrower.email %]" />
438                                     [% IF mandatory.defined('email') %]<span class="required">Required</span>[% END %]
439                                 </li>
440                             [% END %]
441
442                             [% UNLESS hidden.defined('emailpro') %]
443                                 <li>
444                                     [% IF mandatory.defined('emailpro') %]
445                                         <label for="borrower_emailpro" class="required">
446                                     [% ELSE %]
447                                         <label for="borrower_emailpro">
448                                     [% END %]
449                                     Secondary email:</label>
450
451                                     <input type="text" id="borrower_emailpro" name="borrower_emailpro" value="[% borrower.emailpro %]" />
452                                     [% IF mandatory.defined('emailpro') %]<span class="required">Required</span>[% END %]
453                                 </li>
454                             [% END %]
455
456                             [% UNLESS hidden.defined('fax') %]
457                                 <li>
458                                     [% IF mandatory.defined('fax') %]
459                                         <label for="borrower_fax" class="required">
460                                     [% ELSE %]
461                                         <label for="borrower_fax">
462                                     [% END %]
463                                     Fax:</label>
464
465                                     <input type="text" id="borrower_fax" name="borrower_fax" value="[% borrower.fax %]" />
466                                     [% IF mandatory.defined('fax') %]<span class="required">Required</span>[% END %]
467                                 </li>
468                             [% END %]
469                         </ol>
470                     </fieldset>
471                 [% END %]
472
473                 [% UNLESS
474                     hidden.defined('B_address') && hidden.defined('B_address2') && hidden.defined('B_city') &&
475                     hidden.defined('B_state') && hidden.defined('B_zipcode') && hidden.defined('B_country') &&
476                     hidden.defined('B_phone') && hidden.defined('B_email') && hidden.defined('contactnote')
477                 %]
478                     <fieldset class="rows" id="memberentry_alternateaddress">
479                         <legend id="alternateaddress_legend">Alternate address</legend>
480
481                         <ol>
482                             [% UNLESS hidden.defined('B_address') %]
483                                 <li>
484                                     [% IF mandatory.defined('B_address') %]
485                                         <label for="borrower_B_address" class="required">
486                                     [% ELSE %]
487                                         <label for="borrower_B_address">
488                                     [% END %]
489                                     Address:</label>
490
491                                     <input type="text" id="borrower_B_address" name="borrower_B_address" value="[% borrower.B_address %]" />
492                                     [% IF mandatory.defined('B_address') %]<span class="required">Required</span>[% END %]
493                                 </li>
494                             [% END %]
495
496                             [% UNLESS hidden.defined('B_address2') %]
497                                 <li>
498                                     [% IF mandatory.defined('B_address2') %]
499                                         <label for="borrower_B_address2" class="required">
500                                     [% ELSE %]
501                                         <label for="borrower_B_address2">
502                                     [% END %]
503                                     Address 2:</label>
504
505                                     <input type="text" id="borrower_B_address2" name="borrower_B_address2" value="[% borrower.B_address2 %]" />
506                                     [% IF mandatory.defined('B_address2') %]<span class="required">Required</span>[% END %]
507                                 </li>
508                             [% END %]
509
510                             [% UNLESS hidden.defined('B_city') %]
511                                 <li>
512                                     [% IF mandatory.defined('B_city') %]
513                                         <label for="borrower_B_city" class="required">
514                                     [% ELSE %]
515                                         <label for="borrower_B_city">
516                                     [% END %]
517                                     City:</label>
518
519                                     <input type="text" id="borrower_B_city" name="borrower_B_city" value="[% borrower.B_city %]" />
520                                     [% IF mandatory.defined('B_city') %]<span class="required">Required</span>[% END %]
521                                 </li>
522                             [% END %]
523
524                             [% UNLESS hidden.defined('B_state') %]
525                                 <li>
526                                     [% IF mandatory.defined('B_state') %]
527                                         <label for="borrower_B_state" class="required">
528                                     [% ELSE %]
529                                         <label for="borrower_B_state">
530                                     [% END %]
531                                     State:</label>
532
533                                     <input type="text" id="borrower_B_state" name="borrower_B_state" value="[% borrower.B_state %]" />
534                                     [% IF mandatory.defined('B_state') %]<span class="required">Required</span>[% END %]
535                                 </li>
536                             [% END %]
537
538                             [% UNLESS hidden.defined('B_zipcode') %]
539                                 <li>
540                                     [% IF mandatory.defined('B_zipcode') %]
541                                         <label for="borrower_B_zipcode" class="required">
542                                     [% ELSE %]
543                                         <label for="borrower_B_zipcode">
544                                     [% END %]
545                                     Zip/Postal code:</label>
546
547                                     <input type="text" id="borrower_B_zipcode" name="borrower_B_zipcode" value="[% borrower.B_zipcode %]" />
548                                     [% IF mandatory.defined('B_zipcode') %]<span class="required">Required</span>[% END %]
549                                 </li>
550                             [% END %]
551
552                             [% UNLESS hidden.defined('B_country') %]
553                                 <li>
554                                     [% IF mandatory.defined('B_country') %]
555                                         <label for="borrower_B_country" class="required">
556                                     [% ELSE %]
557                                         <label for="borrower_B_country">
558                                     [% END %]
559                                     Country:</label>
560
561                                     <input type="text" id="borrower_B_country" name="borrower_B_country" value="[% borrower.B_country %]" />
562                                     [% IF mandatory.defined('B_country') %]<span class="required">Required</span>[% END %]
563                                 </li>
564                             [% END %]
565
566                             [% UNLESS hidden.defined('B_phone') %]
567                                 <li>
568                                     [% IF mandatory.defined('B_phone') %]
569                                         <label for="borrower_B_phone" class="required">
570                                     [% ELSE %]
571                                         <label for="borrower_B_phone">
572                                     [% END %]
573                                     Phone:</label>
574
575                                     <input type="text" id="borrower_B_phone" name="borrower_B_phone" value="[% borrower.B_phone %]" />
576                                     [% IF mandatory.defined('B_phone') %]<span class="required">Required</span>[% END %]
577                                 </li>
578                             [% END %]
579
580                             [% UNLESS hidden.defined('B_email') %]
581                                 <li>
582                                     [% IF mandatory.defined('B_email') %]
583                                         <label for="borrower_B_email" class="required">
584                                     [% ELSE %]
585                                         <label for="borrower_B_email">
586                                     [% END %]
587                                     Email:</label>
588
589                                     <input type="text" id="borrower_B_email" name="borrower_B_email" value="[% borrower.B_email %]" />
590                                     [% IF mandatory.defined('B_email') %]<span class="required">Required</span>[% END %]
591                                 </li>
592                             [% END %]
593
594                             [% UNLESS hidden.defined('contactnote') %]
595                                 <li>
596                                     [% IF mandatory.defined('contactnote') %]
597                                         <label for="borrower_contactnote" class="required">
598                                     [% ELSE %]
599                                         <label for="borrower_contactnote">
600                                     [% END %]
601                                     Contact note:</label>
602
603                                     <textarea id="borrower_contactnote" name="borrower_contactnote" cols="30" rows="2">[% borrower.contactnote %]</textarea>
604                                     [% IF mandatory.defined('contactnote') %]<span class="required">Required</span>[% END %]
605                                 </li>
606                             [% END %]
607
608                         </ol>
609                     </fieldset>
610                 [% END %]
611
612                 [% UNLESS
613                     hidden.defined('altcontactsurname') && hidden.defined('altcontactfirstname') && hidden.defined('altcontactaddress1') &&
614                     hidden.defined('altcontactaddress2') && hidden.defined('altcontactaddress3') && hidden.defined('altcontactstate') &&
615                     hidden.defined('altcontactzipcode') && hidden.defined('altcontactcountry') && hidden.defined('altcontactphone')
616                 %]
617                     <fieldset class="rows" id="memberentry_alternatecontact">
618                         <legend id="alternatecontact_legend">Alternate contact</legend>
619
620                         <ol>
621                             [% UNLESS hidden.defined('altcontactsurname') %]
622                                 <li>
623                                     [% IF mandatory.defined('altcontactsurname') %]
624                                         <label for="borrower_altcontactsurname" class="required">
625                                     [% ELSE %]
626                                         <label for="borrower_altcontactsurname">
627                                     [% END %]
628                                     Surname:</label>
629
630                                     <input type="text" id="borrower_altcontactsurname" name="borrower_altcontactsurname" value="[% borrower.altcontactsurname %]" />
631                                     [% IF mandatory.defined('altcontactsurname') %]<span class="required">Required</span>[% END %]
632                                 </li>
633                             [% END %]
634
635                             [% UNLESS hidden.defined('altcontactfirstname') %]
636                                 <li>
637                                     [% IF mandatory.defined('altcontactfirstname') %]
638                                         <label for="borrower_altcontactfirstname" class="required">
639                                     [% ELSE %]
640                                         <label for="borrower_altcontactfirstname">
641                                     [% END %]
642                                     First name:</label>
643
644                                     <input type="text" id="borrower_altcontactfirstname" name="borrower_altcontactfirstname" value="[% borrower.altcontactfirstname %]" />
645                                     [% IF mandatory.defined('altcontactfirstname') %]<span class="required">Required</span>[% END %]
646                                 </li>
647                             [% END %]
648
649                             [% UNLESS hidden.defined('altcontactaddress1') %]
650                                 <li>
651                                     [% IF mandatory.defined('altcontactaddress1') %]
652                                         <label for="borrower_altcontactaddress1" class="required">
653                                     [% ELSE %]
654                                         <label for="borrower_altcontactaddress1">
655                                     [% END %]
656                                     Address:</label>
657
658                                     <input type="text" id="borrower_altcontactaddress1" name="borrower_altcontactaddress1" value="[% borrower.altcontactaddress1 %]" />
659                                     [% IF mandatory.defined('altcontactaddress1') %]<span class="required">Required</span>[% END %]
660                                 </li>
661                             [% END %]
662
663                             [% UNLESS hidden.defined('altcontactaddress2') %]
664                                 <li>
665                                     [% IF mandatory.defined('altcontactaddress2') %]
666                                         <label for="borrower_altcontactaddress2" class="required">
667                                     [% ELSE %]
668                                         <label for="borrower_altcontactaddress2">
669                                     [% END %]
670                                     Address 2:</label>
671
672                                     <input type="text" id="borrower_altcontactaddress2" name="borrower_altcontactaddress2" value="[% borrower.altcontactaddress2 %]" />
673                                     [% IF mandatory.defined('altcontactaddress2') %]<span class="required">Required</span>[% END %]
674                                 </li>
675                             [% END %]
676
677                             [% UNLESS hidden.defined('altcontactaddress3') %]
678                                 <li>
679                                     [% IF mandatory.defined('altcontactaddress3') %]
680                                         <label for="borrower_altcontactaddress3" class="required">
681                                     [% ELSE %]
682                                         <label for="borrower_altcontactaddress3">
683                                     [% END %]
684                                     City:</label>
685
686                                     <input type="text" id="borrower_altcontactaddress3" name="borrower_altcontactaddress3" value="[% borrower.altcontactaddress3 %]" />
687                                     [% IF mandatory.defined('altcontactaddress3') %]<span class="required">Required</span>[% END %]
688                                 </li>
689                             [% END %]
690
691                             [% UNLESS hidden.defined('altcontactstate') %]
692                                 <li>
693                                     [% IF mandatory.defined('altcontactstate') %]
694                                         <label for="borrower_altcontactstate" class="required">
695                                     [% ELSE %]
696                                         <label for="borrower_altcontactstate">
697                                     [% END %]
698                                     State:</label>
699
700                                     <input type="text" id="borrower_altcontactstate" name="borrower_altcontactstate" value="[% borrower.altcontactstate %]" />
701                                     [% IF mandatory.defined('altcontactstate') %]<span class="required">Required</span>[% END %]
702                                 </li>
703                             [% END %]
704
705                             [% UNLESS hidden.defined('altcontactzipcode') %]
706                                 <li>
707                                     [% IF mandatory.defined('altcontactzipcode') %]
708                                         <label for="borrower_altcontactzipcode" class="required">
709                                     [% ELSE %]
710                                         <label for="borrower_altcontactzipcode">
711                                     [% END %]
712                                     Zip/Postal code:</label>
713
714                                     <input type="text" id="borrower_altcontactzipcode" name="borrower_altcontactzipcode" value="[% borrower.altcontactzipcode %]" />
715                                     [% IF mandatory.defined('altcontactzipcode') %]<span class="required">Required</span>[% END %]
716                                 </li>
717                             [% END %]
718
719                             [% UNLESS hidden.defined('altcontactcountry') %]
720                                 <li>
721                                     [% IF mandatory.defined('altcontactcountry') %]
722                                         <label for="borrower_altcontactcountry" class="required">
723                                     [% ELSE %]
724                                         <label for="borrower_altcontactcountry">
725                                     [% END %]
726                                     Country:</label>
727
728                                     <input type="text" id="borrower_altcontactcountry" name="borrower_altcontactcountry" value="[% borrower.altcontactcountry %]" />
729                                     [% IF mandatory.defined('altcontactcountry') %]<span class="required">Required</span>[% END %]
730                                 </li>
731                             [% END %]
732
733                             [% UNLESS hidden.defined('altcontactphone') %]
734                                 <li>
735                                     [% IF mandatory.defined('altcontactphone') %]
736                                         <label for="borrower_altcontactphone" class="required">
737                                     [% ELSE %]
738                                         <label for="borrower_altcontactphone">
739                                     [% END %]
740                                     Phone:</label>
741
742                                     <input type="text" id="borrower_altcontactphone" name="borrower_altcontactphone" value="[% borrower.altcontactphone %]" />
743                                     [% IF mandatory.defined('altcontactphone') %]<span class="required">Required</span>[% END %]
744                                 </li>
745                             [% END %]
746                         </ol>
747                     </fieldset>
748                 [% END %]
749
750                 [% UNLESS action == 'edit' %]
751                     <fieldset class="rows" id="memberentry_captcha">
752                         <ol>
753                             <li>
754                                 <label for="captcha" class="required">Verification:</label>
755
756                                 <input type="text" name="captcha" id="captcha" />
757                                 <input type="hidden" name="captcha_digest" value="[% captcha_digest %]" />
758
759                                 <span class="hint">Please type the following characters into the preceding box: <strong>[% captcha %]</strong></span>
760                                 <span class="hint">Note: The preceding box is case-sensitive. Ensure that the entered characters are in all-caps.</span>
761                             </li>
762                         </ol>
763                     </fieldset>
764                 [% END %]
765
766                 [% IF ( borrower.ExtendedPatronAttributes ) %]
767                     <fieldset class="rows">
768                         <legend>Additional information</legend>
769                         <ol>
770                             [% FOREACH patron_attribute IN borrower.patron_attributes %]
771                                 <li>
772                                     <label>[% patron_attribute.description %]:</label>
773                                     [% IF ( patron_attribute.value_description ) %]
774                                         [% patron_attribute.value_description %]
775                                     [% ELSE %]
776                                         [% patron_attribute.value |html_line_break %]
777                                     [% END %]
778                                 </li>
779                             [% END %]
780                         </ol>
781                     </fieldset>
782                 [% END %]
783
784                 [% IF action == 'edit' %]
785                     [% IF OPACPatronDetails %]
786                         <fieldset class="action">
787                             <input type="hidden" name="action" value="update" />
788                             <input type="submit" class="btn" value="Submit update request" />
789                         </fieldset>
790                     [% END %]
791                 [% ELSE %]
792                     <fieldset class="action">
793                         <input type="hidden" name="action" value="create" />
794                         <input type="submit" class="btn" value="Submit" />
795                     </fieldset>
796                 [% END %]
797
798                 </form>
799
800                     </div><!--/div id="update-account" -->
801                 </div>
802             </div>
803         </div>
804     </div>
805
806 [% INCLUDE 'opac-bottom.inc' %]
807 [% BLOCK jsinclude %]
808     <script type="text/javascript" src="[% interface %]/[% theme %]/lib/jquery/plugins/jquery.validate.min.js"></script>
809     <script type="text/javascript">
810         //<![CDATA[
811         $(document).ready(function() {
812             [% IF action == 'edit' && !OPACPatronDetails %]
813                 $("#memberentry-form :input").attr('readonly', true);
814                 $("#borrower_branchcode").attr('disabled',true);
815                 $("#borrower_title").attr('disabled',true);
816                 $('#memberentry-form :radio').attr('disabled',true);
817                 $('span.required').remove();
818                 $('label.required').removeClass('required');
819             [% ELSE %]
820                 $( "#borrower_dateofbirth" ).datepicker({ yearRange: "c-120:c" });
821             [% END %]
822             $("#memberentry-form").validate({
823                 rules: {
824                     borrower_email: {
825                         email: true
826                     },
827                     borrower_emailpro: {
828                         email: true
829                     },
830                     borrower_B_email: {
831                         email: true
832                     }
833                 },
834                 submitHandler: function(form) {
835                     if (form.beenSubmitted) {
836                         return false;
837                     }
838                     else {
839                         form.beenSubmitted = true;
840                         form.submit();
841                     }
842                 },
843                 errorPlacement: function(error, element) {
844                     offset = element.offset();
845                     error.insertAfter(element)
846                     error.addClass('error');  // add a class to the wrapper
847                     error.css('position', 'absolute');
848                     error.css('left', offset.left + element.outerWidth() + 10);
849                     error.css('top', offset.top);
850                     error.css('width', 'auto');
851                 }
852             });
853         });
854     //]]>
855     </script>
856 [% INCLUDE 'calendar.inc' %]
857 [% END %]