]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/dojo/MARC/FixedFields.js
a8d18e82852f7d625c78ca7319b6a4d624bed0ad
[working/Evergreen.git] / Open-ILS / web / js / dojo / MARC / FixedFields.js
1 /* ---------------------------------------------------------------------------
2  * Copyright (C) 2011  Equinox Software, Inc.
3  * Mike Rylander <miker@esilibrary.com>
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  * ---------------------------------------------------------------------------
15  */
16
17 if(!dojo._hasResource["MARC.FixedFields"]) {
18
19     dojo.require('MARC.Record');
20
21     dojo._hasResource["MARC.FixedFields"] = true;
22     dojo.provide("MARC.FixedFields");
23
24     MARC.Record._recType = {
25         BKS : { Type : /[at]{1}/,    BLvl : /[acdm]{1}/ },
26         SER : { Type : /[a]{1}/,    BLvl : /[bsi]{1}/ },
27         VIS : { Type : /[gkro]{1}/,    BLvl : /[abcdmsi]{1}/ },
28         MIX : { Type : /[p]{1}/,    BLvl : /[cdi]{1}/ },
29         MAP : { Type : /[ef]{1}/,    BLvl : /[abcdmsi]{1}/ },
30         SCO : { Type : /[cd]{1}/,    BLvl : /[abcdmsi]{1}/ },
31         REC : { Type : /[ij]{1}/,    BLvl : /[abcdmsi]{1}/ },
32         COM : { Type : /[m]{1}/,    BLvl : /[abcdmsi]{1}/ },
33         AUT : { Type : /[z]{1}/,    BLvl : /.{1}/ },
34         MFHD : { Type : /[uvxy]{1}/,  BLvl : /.{1}/ }
35     };
36
37     MARC.Record._ff_pos = {
38         AccM : {
39             _8 : {
40                 SCO : {start: 24, len : 6, def : ' ' },
41                 REC : {start: 24, len : 6, def : ' ' }
42             },
43             _6 : {
44                 SCO : {start: 7, len : 6, def : ' ' },
45                 REC : {start: 7, len : 6, def : ' ' }
46             }
47         },
48         Alph : {
49             _8 : {
50                 SER : {start : 33, len : 1, def : ' ' }
51             },
52             _6 : {
53                 SER : {start : 16, len : 1, def : ' ' }
54             }
55         },
56         Audn : {
57             _8 : {
58                 BKS : {start : 22, len : 1, def : ' ' },
59                 SER : {start : 22, len : 1, def : ' ' },
60                 VIS : {start : 22, len : 1, def : ' ' },
61                 SCO : {start : 22, len : 1, def : ' ' },
62                 REC : {start : 22, len : 1, def : ' ' },
63                 COM : {start : 22, len : 1, def : ' ' }
64             },
65             _6 : {
66                 BKS : {start : 5, len : 1, def : ' ' },
67                 SER : {start : 5, len : 1, def : ' ' },
68                 VIS : {start : 5, len : 1, def : ' ' },
69                 SCO : {start : 5, len : 1, def : ' ' },
70                 REC : {start : 5, len : 1, def : ' ' },
71                 COM : {start : 5, len : 1, def : ' ' }
72             }
73         },
74         Biog : {
75             _8 : {
76                 BKS : {start : 34, len : 1, def : ' ' }
77             },
78             _6 : {
79                 BKS : {start : 17, len : 1, def : ' ' }
80             }
81         },
82         BLvl : {
83             ldr : {
84                 BKS : {start : 7, len : 1, def : 'm' },
85                 SER : {start : 7, len : 1, def : 's' },
86                 VIS : {start : 7, len : 1, def : 'm' },
87                 MIX : {start : 7, len : 1, def : 'c' },
88                 MAP : {start : 7, len : 1, def : 'm' },
89                 SCO : {start : 7, len : 1, def : 'm' },
90                 REC : {start : 7, len : 1, def : 'm' },
91                 COM : {start : 7, len : 1, def : 'm' }
92             }
93         },
94         Comp : {
95             _8 : {
96                 SCO : {start : 18, len : 2, def : 'uu'},
97                 REC : {start : 18, len : 2, def : 'uu'}
98             },
99             _6 : {
100                 SCO : {start : 1, len : 2, def : 'uu'},
101                 REC : {start : 1, len : 2, def : 'uu'}
102             },
103         },
104         Conf : {
105             _8 : {
106                 BKS : {start : 29, len : 1, def : '0' },
107                 SER : {start : 29, len : 1, def : '0' }
108             },
109             _6 : {
110                 BKS : {start : 11, len : 1, def : '0' },
111                 SER : {start : 11, len : 1, def : '0' }
112             }
113         },
114         Cont : {
115             _8 : {
116                 BKS : {start : 24, len : 4, def : ' ' },
117                 SER : {start : 25, len : 3, def : ' ' }
118             },
119             _6 : {
120                 BKS : {start : 7, len : 4, def : ' ' },
121                 SER : {start : 8, len : 3, def : ' ' }
122             }
123         },
124         CrTp : {
125             _8 : {
126                 MAP : {start: 25, len : 1, def : 'a' }
127             },
128             _6 : { 
129                 MAP : {start : 8, len : 1, def : 'a' }
130             }
131         },
132         Ctrl : {
133             ldr : {
134                 BKS : {start : 8, len : 1, def : ' ' },
135                 SER : {start : 8, len : 1, def : ' ' },
136                 VIS : {start : 8, len : 1, def : ' ' },
137                 MIX : {start : 8, len : 1, def : ' ' },
138                 MAP : {start : 8, len : 1, def : ' ' },
139                 SCO : {start : 8, len : 1, def : ' ' },
140                 REC : {start : 8, len : 1, def : ' ' },
141                 COM : {start : 8, len : 1, def : ' ' }
142             }
143         },
144         Ctry : {
145                 _8 : {
146                     BKS : {start : 15, len : 3, def : ' ' },
147                     SER : {start : 15, len : 3, def : ' ' },
148                     VIS : {start : 15, len : 3, def : ' ' },
149                     MIX : {start : 15, len : 3, def : ' ' },
150                     MAP : {start : 15, len : 3, def : ' ' },
151                     SCO : {start : 15, len : 3, def : ' ' },
152                     REC : {start : 15, len : 3, def : ' ' },
153                     COM : {start : 15, len : 3, def : ' ' }
154                 }
155             },
156         Date1 : {
157             _8 : {
158                 BKS : {start : 7, len : 4, def : ' ' },
159                 SER : {start : 7, len : 4, def : ' ' },
160                 VIS : {start : 7, len : 4, def : ' ' },
161                 MIX : {start : 7, len : 4, def : ' ' },
162                 MAP : {start : 7, len : 4, def : ' ' },
163                 SCO : {start : 7, len : 4, def : ' ' },
164                 REC : {start : 7, len : 4, def : ' ' },
165                 COM : {start : 7, len : 4, def : ' ' }
166             }
167         },
168         Date2 : {
169             _8 : {
170                 BKS : {start : 11, len : 4, def : ' ' },
171                 SER : {start : 11, len : 4, def : '9' },
172                 VIS : {start : 11, len : 4, def : ' ' },
173                 MIX : {start : 11, len : 4, def : ' ' },
174                 MAP : {start : 11, len : 4, def : ' ' },
175                 SCO : {start : 11, len : 4, def : ' ' },
176                 REC : {start : 11, len : 4, def : ' ' },
177                 COM : {start : 11, len : 4, def : ' ' }
178             }
179         },
180         Desc : {
181             ldr : {
182                 BKS : {start : 18, len : 1, def : ' ' },
183                 SER : {start : 18, len : 1, def : ' ' },
184                 VIS : {start : 18, len : 1, def : ' ' },
185                 MIX : {start : 18, len : 1, def : ' ' },
186                 MAP : {start : 18, len : 1, def : ' ' },
187                 SCO : {start : 18, len : 1, def : ' ' },
188                 REC : {start : 18, len : 1, def : ' ' },
189                 COM : {start : 18, len : 1, def : ' ' }
190             }
191         },
192         DtSt : {
193             _8 : {
194                 BKS : {start : 6, len : 1, def : ' ' },
195                 SER : {start : 6, len : 1, def : 'c' },
196                 VIS : {start : 6, len : 1, def : ' ' },
197                 MIX : {start : 6, len : 1, def : ' ' },
198                 MAP : {start : 6, len : 1, def : ' ' },
199                 SCO : {start : 6, len : 1, def : ' ' },
200                 REC : {start : 6, len : 1, def : ' ' },
201                 COM : {start : 6, len : 1, def : ' ' }
202             }
203         },
204         ELvl : {
205             ldr : {
206                 BKS : {start : 17, len : 1, def : ' ' },
207                 SER : {start : 17, len : 1, def : ' ' },
208                 VIS : {start : 17, len : 1, def : ' ' },
209                 MIX : {start : 17, len : 1, def : ' ' },
210                 MAP : {start : 17, len : 1, def : ' ' },
211                 SCO : {start : 17, len : 1, def : ' ' },
212                 REC : {start : 17, len : 1, def : ' ' },
213                 COM : {start : 17, len : 1, def : ' ' },
214                 AUT : {start : 17, len : 1, def : 'n' },
215                 MFHD : {start : 17, len : 1, def : 'u' }
216             }
217         },
218         EntW : {
219             _8 : {
220                 SER : {start : 24, len : 1, def : ' '}
221             },
222             _6 : {
223                 SER : {start : 7, len : 1, def : ' '}
224             }
225         },
226         Fest : {
227             _8 : {
228                 BKS : {start : 30, len : 1, def : '0' }
229             },
230             _6 : {
231                 BKS : {start : 13, len : 1, def : '0' }
232             }
233         },
234         File : {
235             _8 : {
236                 COM : {start: 26, len : 1, def : 'u' }
237             },
238             _6 : {
239                 COM : {start: 9, len : 1, def : 'u' }
240             }
241         },
242         FMus : {
243             _8 : {
244                 SCO : {start : 20, len : 1, def : 'u'},
245                 REC : {start : 20, len : 1, def : 'n'}
246             },
247             _6 : {
248                 SCO : {start : 3, len : 1, def : 'u'},
249                 REC : {start : 3, len : 1, def : 'n'}
250             },
251         },
252         Form : {
253             _8 : {
254                 BKS : {start : 23, len : 1, def : ' ' },
255                 SER : {start : 23, len : 1, def : ' ' },
256                 VIS : {start : 29, len : 1, def : ' ' },
257                 MIX : {start : 23, len : 1, def : ' ' },
258                 MAP : {start : 29, len : 1, def : ' ' },
259                 SCO : {start : 23, len : 1, def : ' ' },
260                 REC : {start : 23, len : 1, def : ' ' }
261             },
262             _6 : {
263                 BKS : {start : 6, len : 1, def : ' ' },
264                 SER : {start : 6, len : 1, def : ' ' },
265                 VIS : {start : 12, len : 1, def : ' ' },
266                 MIX : {start : 6, len : 1, def : ' ' },
267                 MAP : {start : 12, len : 1, def : ' ' },
268                 SCO : {start : 6, len : 1, def : ' ' },
269                 REC : {start : 6, len : 1, def : ' ' }
270             }
271         },
272         Freq : {
273             _8 : {
274                 SER : {start : 18, len : 1, def : ' '}
275             },
276             _6 : {
277                 SER : {start : 1, len : 1, def : ' '}
278             }
279         },
280         GPub : {
281             _8 : {
282                 BKS : {start : 28, len : 1, def : ' ' },
283                 SER : {start : 28, len : 1, def : ' ' },
284                 VIS : {start : 28, len : 1, def : ' ' },
285                 MAP : {start : 28, len : 1, def : ' ' },
286                 COM : {start : 28, len : 1, def : ' ' }
287             },
288             _6 : {
289                 BKS : {start : 11, len : 1, def : ' ' },
290                 SER : {start : 11, len : 1, def : ' ' },
291                 VIS : {start : 11, len : 1, def : ' ' },
292                 MAP : {start : 11, len : 1, def : ' ' },
293                 COM : {start : 11, len : 1, def : ' ' }
294             }
295         },
296         Ills : {
297             _8 : {
298                 BKS : {start : 18, len : 4, def : ' ' }
299             },
300             _6 : {
301                 BKS : {start : 1, len : 4, def : ' ' }
302             }
303         },
304         Indx : {
305             _8 : {
306                 BKS : {start : 31, len : 1, def : '0' },
307                 MAP : {start : 31, len : 1, def : '0' }
308             },
309             _6 : {
310                 BKS : {start : 14, len : 1, def : '0' },
311                 MAP : {start : 14, len : 1, def : '0' }
312             }
313         },
314         Item : {
315             ldr : {
316                 MFHD : {start : 18, len : 1, def : 'i' }
317             }
318         },
319         Lang : {
320             _8 : {
321                 BKS : {start : 35, len : 3, def : ' ' },
322                 SER : {start : 35, len : 3, def : ' ' },
323                 VIS : {start : 35, len : 3, def : ' ' },
324                 MIX : {start : 35, len : 3, def : ' ' },
325                 MAP : {start : 35, len : 3, def : ' ' },
326                 SCO : {start : 35, len : 3, def : ' ' },
327                 REC : {start : 35, len : 3, def : ' ' },
328                 COM : {start : 35, len : 3, def : ' ' }
329             }
330         },
331         LitF : {
332             _8 : {
333                 BKS : {start : 33, len : 1, def : '0' }
334             },
335             _6 : {
336                 BKS : {start : 16, len : 1, def : '0' }
337             }
338         },
339         LTxt : {
340             _8 : {
341                 SCO : {start : 30, len : 2, def : 'n'},
342                 REC : {start : 30, len : 2, def : ' '}
343             },
344             _6 : {
345                 SCO : {start : 13, len : 2, def : 'n'},
346                 REC : {start : 13, len : 2, def : ' '}
347             },
348         },
349         MRec : {
350             _8 : {
351                 BKS : {start : 38, len : 1, def : ' ' },
352                 SER : {start : 38, len : 1, def : ' ' },
353                 VIS : {start : 38, len : 1, def : ' ' },
354                 MIX : {start : 38, len : 1, def : ' ' },
355                 MAP : {start : 38, len : 1, def : ' ' },
356                 SCO : {start : 38, len : 1, def : ' ' },
357                 REC : {start : 38, len : 1, def : ' ' },
358                 COM : {start : 38, len : 1, def : ' ' }
359             }
360         },
361         Orig : {
362             _8 : {
363                 SER : {start : 22, len : 1, def : ' '}
364             },
365             _6 : {
366                 SER : {start: 5, len : 1, def: ' '}
367             }
368         },
369         Part : {
370             _8 : {
371                 SCO : {start : 21, len : 1, def : ' '},
372                 REC : {start : 21, len : 1, def : 'n'}
373             },
374             _6 : {
375                 SCO : {start : 4, len : 1, def : ' '},
376                 REC : {start : 4, len : 1, def : 'n'}
377             },
378         },
379         Proj : {
380             _8 : {
381                 MAP : {start : 22, len : 2, def : ' ' }
382             },
383             _6 : {
384                 MAP: {start : 5, len : 2, def : ' ' }
385             }
386         },
387         RecStat : {
388             ldr : {
389                 BKS : {start : 5, len : 1, def : 'n' },
390                 SER : {start : 5, len : 1, def : 'n' },
391                 VIS : {start : 5, len : 1, def : 'n' },
392                 MIX : {start : 5, len : 1, def : 'n' },
393                 MAP : {start : 5, len : 1, def : 'n' },
394                 SCO : {start : 5, len : 1, def : 'n' },
395                 REC : {start : 5, len : 1, def : 'n' },
396                 COM : {start : 5, len : 1, def : 'n' },
397                 MFHD: {start : 5, len : 1, def : 'n' },
398                 AUT : {start : 5, len : 1, def : 'n' }
399             }
400         },
401         Regl : {
402             _8 : {
403                 SER : {start : 19, len : 1, def : ' '}
404             },
405             _6 : {
406                 SER : {start : 2, len : 1, def : ' '}
407             }
408         },
409         Relf : {
410             _8 : {
411                 MAP : {start: 18, len : 4, def : ' '}
412             },
413             _6 : {
414                 MAP : {start: 1, len : 4, def : ' '}
415             }
416         },
417         'S/L' : {
418             _8 : {
419                 SER : {start : 34, len : 1, def : '0' }
420             },
421             _6 : {
422                 SER : {start : 17, len : 1, def : '0' }
423             }
424         },
425         SpFM : {
426             _8 : {
427                 MAP : {start: 33, len : 2, def : ' ' }
428             },
429             _6 : {
430                 MAP : {start: 16, len : 2, def : ' '}
431             }
432         },
433         Srce : {
434             _8 : {
435                 BKS : {start : 39, len : 1, def : 'd' },
436                 SER : {start : 39, len : 1, def : 'd' },
437                 VIS : {start : 39, len : 1, def : 'd' },
438                 SCO : {start : 39, len : 1, def : 'd' },
439                 REC : {start : 39, len : 1, def : 'd' },
440                 COM : {start : 39, len : 1, def : 'd' },
441                 MFHD : {start : 39, len : 1, def : 'd' },
442                 "AUT" : {"start" : 39, "len" : 1, "def" : 'd' }
443             }
444         },
445         SrTp : {
446             _8 : {
447                 SER : {start : 21, len : 1, def : ' '}
448             },
449             _6 : {
450                 SER : {start : 4, len : 1, def : ' '}
451             }
452         },
453         Tech : {
454             _8 : {
455                 VIS : {start : 34, len : 1, def : ' '}
456             },
457             _6 : {
458                 VIS : {start : 17, len : 1, def : ' '}
459             }
460         },
461         Time : {
462             _8 : {
463                 VIS : {start : 18, len : 3, def : ' '}
464             },
465             _6 : {
466                 VIS : {start : 1, len : 3, def : ' '}
467             }
468         },
469         TMat : {
470             _8 : {
471                 VIS : {start : 33, len : 1, def : ' ' }
472             },
473             _6 : {
474                 VIS : {start : 16, len : 1, def : ' ' }
475             }
476         },
477         TrAr : {
478             _8 : {
479                 SCO : {start : 33, len : 1, def : ' ' },
480                 REC : {start : 33, len : 1, def : 'n' }
481             },
482             _6 : {
483                 SCO : {start : 16, len : 1, def : ' ' },
484                 REC : {start : 16, len : 1, def : 'n' }
485             }
486         },
487         Type : {
488             ldr : {
489                 BKS : {start : 6, len : 1, def : 'a' },
490                 SER : {start : 6, len : 1, def : 'a' },
491                 VIS : {start : 6, len : 1, def : 'g' },
492                 MIX : {start : 6, len : 1, def : 'p' },
493                 MAP : {start : 6, len : 1, def : 'e' },
494                 SCO : {start : 6, len : 1, def : 'c' },
495                 REC : {start : 6, len : 1, def : 'i' },
496                 COM : {start : 6, len : 1, def : 'm' },
497                 AUT : {start : 6, len : 1, def : 'z' },
498                 MFHD : {start : 6, len : 1, def : 'y' }
499             }
500         },
501         "GeoSubd" : {
502              "_8" : {
503                  "AUT" : {"start" : 6, "len" : 1, "def" : ' ' }
504              }
505          },
506          "Roman" : {
507              "_8" : {
508                  "AUT" : {"start" : 7, "len" : 1, "def" : ' ' }
509              }
510          },
511          "CatLang" : {
512              "_8" : {
513                  "AUT" : {"start" : 8, "len" : 1, "def" : ' ' }
514              }
515          },
516          "Auth/Ref" : {
517              "_8" : {
518                  "AUT" : {"start" : 9, "len" : 1, "def" : ' ' }
519              }
520          },
521          "Rules" : {
522              "_8" : {
523                  "AUT" : {"start" : 10, "len" : 1, "def" : ' ' }
524              }
525          },
526          "SHSys" : {
527              "_8" : {
528                  "AUT" : {"start" : 11, "len" : 1, "def" : ' ' }
529              }
530          },
531          "Series" : {
532              "_8" : {
533                  "AUT" : {"start" : 12, "len" : 1, "def" : ' ' }
534              }
535          },
536          "SerNum" : {
537              "_8" : {
538                  "AUT" : {"start" : 13, "len" : 1, "def" : ' ' }
539              }
540          },
541          "NameUse" : {
542              "_8" : {
543                  "AUT" : {"start" : 14, "len" : 1, "def" : ' ' }
544              }
545          },
546          "Subj" : {
547              "_8" : {
548                  "AUT" : {"start" : 15, "len" : 1, "def" : ' ' }
549              }
550          },
551          "SerUse" : {
552              "_8" : {
553                  "AUT" : {"start" : 16, "len" : 1, "def" : ' ' }
554              }
555          },
556          "TypeSubd" : {
557              "_8" : {
558                  "AUT" : {"start" : 17, "len" : 1, "def" : ' ' }
559              }
560          },
561          "GovtAgn" : {
562              "_8" : {
563                  "AUT" : {"start" : 28, "len" : 1, "def" : ' ' }
564              }
565          },
566          "RefStatus" : {
567              "_8" : {
568                  "AUT" : {"start" : 29, "len" : 1, "def" : ' ' }
569              }
570          },
571          "UpdStatus" : {
572              "_8" : {
573                  "AUT" : {"start" : 31, "len" : 1, "def" : ' ' }
574              }
575          },
576          "Name" : {
577              "_8" : {
578                  "AUT" : {"start" : 32, "len" : 1, "def" : ' ' }
579              }
580          },
581          "Status" : {
582              "_8" : {
583                  "AUT" : {"start" : 33, "len" : 1, "def" : ' ' }
584              }
585          },
586          "ModRec" : {
587              "_8" : {
588                  "AUT" : {"start" : 38, "len" : 1, "def" : ' ' }
589              }
590          },
591          "Source" : {
592              "_8" : {
593                  "AUT" : {"start" : 39, "len" : 1, "def" : ' ' }
594              }
595          }
596     };
597     
598     MARC.Record._physical_characteristics = {
599         c : {
600             label     : "Electronic Resource",
601             subfields : {
602                 b : {    start : 1,
603                     len   : 1,
604                     label : "SMD",
605                     values: {    a : "Tape Cartridge",
606                             b : "Chip cartridge",
607                             c : "Computer optical disk cartridge",
608                             f : "Tape cassette",
609                             h : "Tape reel",
610                             j : "Magnetic disk",
611                             m : "Magneto-optical disk",
612                             o : "Optical disk",
613                             r : "Remote",
614                             u : "Unspecified",
615                             z : "Other"
616                     }
617                 },
618                 d : {    start : 3,
619                     len   : 1,
620                     label : "Color",
621                     values: {    a : "One color",
622                             b : "Black-and-white",
623                             c : "Multicolored",
624                             g : "Gray scale",
625                             m : "Mixed",
626                             n : "Not applicable",
627                             u : "Unknown",
628                             z : "Other"
629                     }
630                 },
631                 e : {    start : 4,
632                     len   : 1,
633                     label : "Dimensions",
634                     values: {    a : "3 1/2 in.",
635                             e : "12 in.",
636                             g : "4 3/4 in. or 12 cm.",
637                             i : "1 1/8 x 2 3/8 in.",
638                             j : "3 7/8 x 2 1/2 in.",
639                             n : "Not applicable",
640                             o : "5 1/4 in.",
641                             u : "Unknown",
642                             v : "8 in.",
643                             z : "Other"
644                     }
645                 },
646                 f : {    start : 5,
647                     len   : 1,
648                     label : "Sound",
649                     values: {    ' ' : "No sound (Silent)",
650                             a   : "Sound",
651                             u   : "Unknown"
652                     }
653                 },
654                 g : {    start : 6,
655                     len   : 3,
656                     label : "Image bit depth",
657                     values: {    mmm   : "Multiple",
658                             nnn   : "Not applicable",
659                             '---' : "Unknown"
660                     }
661                 },
662                 h : {    start : 9,
663                     len   : 1,
664                     label : "File formats",
665                     values: {    a : "One file format",
666                             m : "Multiple file formats",
667                             u : "Unknown"
668                     }
669                 },
670                 i : {    start : 10,
671                     len   : 1,
672                     label : "Quality assurance target(s)",
673                     values: {    a : "Absent",
674                             n : "Not applicable",
675                             p : "Present",
676                             u : "Unknown"
677                     }
678                 },
679                 j : {    start : 11,
680                     len   : 1,
681                     label : "Antecedent/Source",
682                     values: {    a : "File reproduced from original",
683                             b : "File reproduced from microform",
684                             c : "File reproduced from electronic resource",
685                             d : "File reproduced from an intermediate (not microform)",
686                             m : "Mixed",
687                             n : "Not applicable",
688                             u : "Unknown"
689                     }
690                 },
691                 k : {    start : 12,
692                     len   : 1,
693                     label : "Level of compression",
694                     values: {    a : "Uncompressed",
695                             b : "Lossless",
696                             d : "Lossy",
697                             m : "Mixed",
698                             u : "Unknown"
699                     }
700                 },
701                 l : {    start : 13,
702                     len   : 1,
703                     label : "Reformatting quality",
704                     values: {    a : "Access",
705                             n : "Not applicable",
706                             p : "Preservation",
707                             r : "Replacement",
708                             u : "Unknown"
709                     }
710                 }
711             }
712         },
713         d : {
714             label     : "Globe",
715             subfields : {
716                 b : {    start : 1,
717                     len   : 1,
718                     label : "SMD",
719                     values: {    a : "Celestial globe",
720                             b : "Planetary or lunar globe",
721                             c : "Terrestrial globe",
722                             e : "Earth moon globe",
723                             u : "Unspecified",
724                             z : "Other"
725                     }
726                 },
727                 d : {    start : 3,
728                     len   : 1,
729                     label : "Color",
730                     values: {    a : "One color",
731                             c : "Multicolored"
732                     }
733                 },
734                 e : {    start : 4,
735                     len   : 1,
736                     label : "Physical medium",
737                     values: {    a : "Paper",
738                             b : "Wood",
739                             c : "Stone",
740                             d : "Metal",
741                             e : "Synthetics",
742                             f : "Skins",
743                             g : "Textile",
744                             p : "Plaster",
745                             u : "Unknown",
746                             z : "Other"
747                     }
748                 },
749                 f : {    start : 5,
750                     len   : 1,
751                     label : "Type of reproduction",
752                     values: {    f : "Facsimile",
753                             n : "Not applicable",
754                             u : "Unknown",
755                             z : "Other"
756                     }
757                 }
758             }
759         },
760         a : {
761             label     : "Map",
762             subfields : {
763                 b : {    start : 1,
764                     len   : 1,
765                     label : "SMD",
766                     values: {    d : "Atlas",
767                             g : "Diagram",
768                             j : "Map",
769                             k : "Profile",
770                             q : "Model",
771                             r : "Remote-sensing image",
772                             s : "Section",
773                             u : "Unspecified",
774                             y : "View",
775                             z : "Other"
776                     }
777                 },
778                 d : {    start : 3,
779                     len   : 1,
780                     label : "Color",
781                     values: {    a : "One color",
782                             c : "Multicolored"
783                     }
784                 },
785                 e : {    start : 4,
786                     len   : 1,
787                     label : "Physical medium",
788                     values: {    a : "Paper",
789                             b : "Wood",
790                             c : "Stone",
791                             d : "Metal",
792                             e : "Synthetics",
793                             f : "Skins",
794                             g : "Textile",
795                             p : "Plaster",
796                             q : "Flexible base photographic medium, positive",
797                             r : "Flexible base photographic medium, negative",
798                             s : "Non-flexible base photographic medium, positive",
799                             t : "Non-flexible base photographic medium, negative",
800                             u : "Unknown",
801                             y : "Other photographic medium",
802                             z : "Other"
803                     }
804                 },
805                 f : {    start : 5,
806                     len   : 1,
807                     label : "Type of reproduction",
808                     values: {    f : "Facsimile",
809                             n : "Not applicable",
810                             u : "Unknown",
811                             z : "Other"
812                     }
813                 },
814                 g : {    start : 6,
815                     len   : 1,
816                     label : "Production/reproduction details",
817                     values: {    a : "Photocopy, blueline print",
818                             b : "Photocopy",
819                             c : "Pre-production",
820                             d : "Film",
821                             u : "Unknown",
822                             z : "Other"
823                     }
824                 },
825                 h : {    start : 7,
826                     len   : 1,
827                     label : "Positive/negative",
828                     values: {    a : "Positive",
829                             b : "Negative",
830                             m : "Mixed",
831                             n : "Not applicable"
832                     }
833                 }
834             }
835         },
836         h : {
837             label     : "Microform",
838             subfields : {
839                 b : {    start : 1,
840                     len   : 1,
841                     label : "SMD",
842                     values: {    a : "Aperture card",
843                             b : "Microfilm cartridge",
844                             c : "Microfilm cassette",
845                             d : "Microfilm reel",
846                             e : "Microfiche",
847                             f : "Microfiche cassette",
848                             g : "Microopaque",
849                             u : "Unspecified",
850                             z : "Other"
851                     }
852                 },
853                 d : {    start : 3,
854                     len   : 1,
855                     label : "Positive/negative",
856                     values: {    a : "Positive",
857                             b : "Negative",
858                             m : "Mixed",
859                             u : "Unknown"
860                     }
861                 },
862                 e : {    start : 4,
863                     len   : 1,
864                     label : "Dimensions",
865                     values: {    a : "8 mm.",
866                             e : "16 mm.",
867                             f : "35 mm.",
868                             g : "70mm.",
869                             h : "105 mm.",
870                             l : "3 x 5 in. (8 x 13 cm.)",
871                             m : "4 x 6 in. (11 x 15 cm.)",
872                             o : "6 x 9 in. (16 x 23 cm.)",
873                             p : "3 1/4 x 7 3/8 in. (9 x 19 cm.)",
874                             u : "Unknown",
875                             z : "Other"
876                     }
877                 },
878                 f : {    start : 5,
879                     len   : 4,
880                     label : "Reduction ratio range/Reduction ratio",
881                     values: {    a : "Low (1-16x)",
882                             b : "Normal (16-30x)",
883                             c : "High (31-60x)",
884                             d : "Very high (61-90x)",
885                             e : "Ultra (90x-)",
886                             u : "Unknown",
887                             v : "Reduction ratio varies"
888                     }
889                 },
890                 g : {    start : 9,
891                     len   : 1,
892                     label : "Color",
893                     values: {    b : "Black-and-white",
894                             c : "Multicolored",
895                             m : "Mixed",
896                             u : "Unknown",
897                             z : "Other"
898                     }
899                 },
900                 h : {    start : 10,
901                     len   : 1,
902                     label : "Emulsion on film",
903                     values: {    a : "Silver halide",
904                             b : "Diazo",
905                             c : "Vesicular",
906                             m : "Mixed",
907                             n : "Not applicable",
908                             u : "Unknown",
909                             z : "Other"
910                     }
911                 },
912                 i : {    start : 11,
913                     len   : 1,
914                     label : "Quality assurance target(s)",
915                     values: {    a : "1st gen. master",
916                             b : "Printing master",
917                             c : "Service copy",
918                             m : "Mixed generation",
919                             u : "Unknown"
920                     }
921                 },
922                 j : {    start : 12,
923                     len   : 1,
924                     label : "Base of film",
925                     values: {    a : "Safety base, undetermined",
926                             c : "Safety base, acetate undetermined",
927                             d : "Safety base, diacetate",
928                             l : "Nitrate base",
929                             m : "Mixed base",
930                             n : "Not applicable",
931                             p : "Safety base, polyester",
932                             r : "Safety base, mixed",
933                             t : "Safety base, triacetate",
934                             u : "Unknown",
935                             z : "Other"
936                     }
937                 }
938             }
939         },
940         m : {
941             label     : "Motion Picture",
942             subfields : {
943                 b : {    start : 1,
944                     len   : 1,
945                     label : "SMD",
946                     values: {    a : "Film cartridge",
947                             f : "Film cassette",
948                             r : "Film reel",
949                             u : "Unspecified",
950                             z : "Other"
951                     }
952                 },
953                 d : {    start : 3,
954                     len   : 1,
955                     label : "Color",
956                     values: {    b : "Black-and-white",
957                             c : "Multicolored",
958                             h : "Hand-colored",
959                             m : "Mixed",
960                             u : "Unknown",
961                             z : "Other"
962                     }
963                 },
964                 e : {    start : 4,
965                     len   : 1,
966                     label : "Motion picture presentation format",
967                     values: {    a : "Standard sound aperture, reduced frame",
968                             b : "Nonanamorphic (wide-screen)",
969                             c : "3D",
970                             d : "Anamorphic (wide-screen)",
971                             e : "Other-wide screen format",
972                             f : "Standard. silent aperture, full frame",
973                             u : "Unknown",
974                             z : "Other"
975                     }
976                 },
977                 f : {    start : 5,
978                     len   : 1,
979                     label : "Sound on medium or separate",
980                     values: {    a : "Sound on medium",
981                             b : "Sound separate from medium",
982                             u : "Unknown"
983                     }
984                 },
985                 g : {    start : 6,
986                     len   : 1,
987                     label : "Medium for sound",
988                     values: {    a : "Optical sound track on motion picture film",
989                             b : "Magnetic sound track on motion picture film",
990                             c : "Magnetic audio tape in cartridge",
991                             d : "Sound disc",
992                             e : "Magnetic audio tape on reel",
993                             f : "Magnetic audio tape in cassette",
994                             g : "Optical and magnetic sound track on film",
995                             h : "Videotape",
996                             i : "Videodisc",
997                             u : "Unknown",
998                             z : "Other"
999                     }
1000                 },
1001                 h : {    start : 7,
1002                     len   : 1,
1003                     label : "Dimensions",
1004                     values: {    a : "Standard 8 mm.",
1005                             b : "Super 8 mm./single 8 mm.",
1006                             c : "9.5 mm.",
1007                             d : "16 mm.",
1008                             e : "28 mm.",
1009                             f : "35 mm.",
1010                             g : "70 mm.",
1011                             u : "Unknown",
1012                             z : "Other"
1013                     }
1014                 },
1015                 i : {    start : 8,
1016                     len   : 1,
1017                     label : "Configuration of playback channels",
1018                     values: {    k : "Mixed",
1019                             m : "Monaural",
1020                             n : "Not applicable",
1021                             q : "Multichannel, surround or quadraphonic",
1022                             s : "Stereophonic",
1023                             u : "Unknown",
1024                             z : "Other"
1025                     }
1026                 },
1027                 j : {    start : 9,
1028                     len   : 1,
1029                     label : "Production elements",
1030                     values: {    a : "Work print",
1031                             b : "Trims",
1032                             c : "Outtakes",
1033                             d : "Rushes",
1034                             e : "Mixing tracks",
1035                             f : "Title bands/inter-title rolls",
1036                             g : "Production rolls",
1037                             n : "Not applicable",
1038                             z : "Other"
1039                     }
1040                 }
1041             }
1042         },
1043         k : {
1044             label     : "Non-projected Graphic",
1045             subfields : {
1046                 b : {    start : 1,
1047                     len   : 1,
1048                     label : "SMD",
1049                     values: {    c : "Collage",
1050                             d : "Drawing",
1051                             e : "Painting",
1052                             f : "Photo-mechanical print",
1053                             g : "Photonegative",
1054                             h : "Photoprint",
1055                             i : "Picture",
1056                             j : "Print",
1057                             l : "Technical drawing",
1058                             n : "Chart",
1059                             o : "Flash/activity card",
1060                             u : "Unspecified",
1061                             z : "Other"
1062                     }
1063                 },
1064                 d : {    start : 3,
1065                     len   : 1,
1066                     label : "Color",
1067                     values: {    a : "One color",
1068                             b : "Black-and-white",
1069                             c : "Multicolored",
1070                             h : "Hand-colored",
1071                             m : "Mixed",
1072                             u : "Unknown",
1073                             z : "Other"
1074                     }
1075                 },
1076                 e : {    start : 4,
1077                     len   : 1,
1078                     label : "Primary support material",
1079                     values: {    a : "Canvas",
1080                             b : "Bristol board",
1081                             c : "Cardboard/illustration board",
1082                             d : "Glass",
1083                             e : "Synthetics",
1084                             f : "Skins",
1085                             g : "Textile",
1086                             h : "Metal",
1087                             m : "Mixed collection",
1088                             o : "Paper",
1089                             p : "Plaster",
1090                             q : "Hardboard",
1091                             r : "Porcelain",
1092                             s : "Stone",
1093                             t : "Wood",
1094                             u : "Unknown",
1095                             z : "Other"
1096                     }
1097                 },
1098                 f : {    start : 5,
1099                     len   : 1,
1100                     label : "Secondary support material",
1101                     values: {    a : "Canvas",
1102                             b : "Bristol board",
1103                             c : "Cardboard/illustration board",
1104                             d : "Glass",
1105                             e : "Synthetics",
1106                             f : "Skins",
1107                             g : "Textile",
1108                             h : "Metal",
1109                             m : "Mixed collection",
1110                             o : "Paper",
1111                             p : "Plaster",
1112                             q : "Hardboard",
1113                             r : "Porcelain",
1114                             s : "Stone",
1115                             t : "Wood",
1116                             u : "Unknown",
1117                             z : "Other"
1118                     }
1119                 }
1120             }
1121         },
1122         g : {
1123             label     : "Projected Graphic",
1124             subfields : {
1125                 b : {    start : 1,
1126                     len   : 1,
1127                     label : "SMD",
1128                     values: {    c : "Film cartridge",
1129                             d : "Filmstrip",
1130                             f : "Film filmstrip type",
1131                             o : "Filmstrip roll",
1132                             s : "Slide",
1133                             t : "Transparency",
1134                             z : "Other"
1135                     }
1136                 },
1137                 d : {    start : 3,
1138                     len   : 1,
1139                     label : "Color",
1140                     values: {    b : "Black-and-white",
1141                             c : "Multicolored",
1142                             h : "Hand-colored",
1143                             m : "Mixed",
1144                             n : "Not applicable",
1145                             u : "Unknown",
1146                             z : "Other"
1147                     }
1148                 },
1149                 e : {    start : 4,
1150                     len   : 1,
1151                     label : "Base of emulsion",
1152                     values: {    d : "Glass",
1153                             e : "Synthetics",
1154                             j : "Safety film",
1155                             k : "Film base, other than safety film",
1156                             m : "Mixed collection",
1157                             o : "Paper",
1158                             u : "Unknown",
1159                             z : "Other"
1160                     }
1161                 },
1162                 f : {    start : 5,
1163                     len   : 1,
1164                     label : "Sound on medium or separate",
1165                     values: {    a : "Sound on medium",
1166                             b : "Sound separate from medium",
1167                             u : "Unknown"
1168                     }
1169                 },
1170                 g : {    start : 6,
1171                     len   : 1,
1172                     label : "Medium for sound",
1173                     values: {    a : "Optical sound track on motion picture film",
1174                             b : "Magnetic sound track on motion picture film",
1175                             c : "Magnetic audio tape in cartridge",
1176                             d : "Sound disc",
1177                             e : "Magnetic audio tape on reel",
1178                             f : "Magnetic audio tape in cassette",
1179                             g : "Optical and magnetic sound track on film",
1180                             h : "Videotape",
1181                             i : "Videodisc",
1182                             u : "Unknown",
1183                             z : "Other"
1184                     }
1185                 },
1186                 h : {    start : 7,
1187                     len   : 1,
1188                     label : "Dimensions",
1189                     values: {    a : "Standard 8 mm.",
1190                             b : "Super 8 mm./single 8 mm.",
1191                             c : "9.5 mm.",
1192                             d : "16 mm.",
1193                             e : "28 mm.",
1194                             f : "35 mm.",
1195                             g : "70 mm.",
1196                             j : "2 x 2 in. (5 x 5 cm.)",
1197                             k : "2 1/4 x 2 1/4 in. (6 x 6 cm.)",
1198                             s : "4 x 5 in. (10 x 13 cm.)",
1199                             t : "5 x 7 in. (13 x 18 cm.)",
1200                             v : "8 x 10 in. (21 x 26 cm.)",
1201                             w : "9 x 9 in. (23 x 23 cm.)",
1202                             x : "10 x 10 in. (26 x 26 cm.)",
1203                             y : "7 x 7 in. (18 x 18 cm.)",
1204                             u : "Unknown",
1205                             z : "Other"
1206                     }
1207                 },
1208                 i : {    start : 8,
1209                     len   : 1,
1210                     label : "Secondary support material",
1211                     values: {    c : "Cardboard",
1212                             d : "Glass",
1213                             e : "Synthetics",
1214                             h : "metal",
1215                             j : "Metal and glass",
1216                             k : "Synthetics and glass",
1217                             m : "Mixed collection",
1218                             u : "Unknown",
1219                             z : "Other"
1220                     }
1221                 }
1222             }
1223         },
1224         r : {
1225             label     : "Remote-sensing Image",
1226             subfields : {
1227                 b : {    start : 1,
1228                     len   : 1,
1229                     label : "SMD",
1230                     values: { u : "Unspecified" }
1231                 },
1232                 d : {    start : 3,
1233                     len   : 1,
1234                     label : "Altitude of sensor",
1235                     values: {    a : "Surface",
1236                             b : "Airborne",
1237                             c : "Spaceborne",
1238                             n : "Not applicable",
1239                             u : "Unknown",
1240                             z : "Other"
1241                     }
1242                 },
1243                 e : {    start : 4,
1244                     len   : 1,
1245                     label : "Attitude of sensor",
1246                     values: {    a : "Low oblique",
1247                             b : "High oblique",
1248                             c : "Vertical",
1249                             n : "Not applicable",
1250                             u : "Unknown"
1251                     }
1252                 },
1253                 f : {    start : 5,
1254                     len   : 1,
1255                     label : "Cloud cover",
1256                     values: {    0 : "0-09%",
1257                             1 : "10-19%",
1258                             2 : "20-29%",
1259                             3 : "30-39%",
1260                             4 : "40-49%",
1261                             5 : "50-59%",
1262                             6 : "60-69%",
1263                             7 : "70-79%",
1264                             8 : "80-89%",
1265                             9 : "90-100%",
1266                             n : "Not applicable",
1267                             u : "Unknown"
1268                     }
1269                 },
1270                 g : {    start : 6,
1271                     len   : 1,
1272                     label : "Platform construction type",
1273                     values: {    a : "Balloon",
1274                             b : "Aircraft-low altitude",
1275                             c : "Aircraft-medium altitude",
1276                             d : "Aircraft-high altitude",
1277                             e : "Manned spacecraft",
1278                             f : "Unmanned spacecraft",
1279                             g : "Land-based remote-sensing device",
1280                             h : "Water surface-based remote-sensing device",
1281                             i : "Submersible remote-sensing device",
1282                             n : "Not applicable",
1283                             u : "Unknown",
1284                             z : "Other"
1285                     }
1286                 },
1287                 h : {    start : 7,
1288                     len   : 1,
1289                     label : "Platform use category",
1290                     values: {    a : "Meteorological",
1291                             b : "Surface observing",
1292                             c : "Space observing",
1293                             m : "Mixed uses",
1294                             n : "Not applicable",
1295                             u : "Unknown",
1296                             z : "Other"
1297                     }
1298                 },
1299                 i : {    start : 8,
1300                     len   : 1,
1301                     label : "Sensor type",
1302                     values: {    a : "Active",
1303                             b : "Passive",
1304                             u : "Unknown",
1305                             z : "Other"
1306                     }
1307                 },
1308                 j : {    start : 9,
1309                     len   : 2,
1310                     label : "Data type",
1311                     values: {    nn : "Not applicable",
1312                             uu : "Unknown",
1313                             zz : "Other",
1314                             aa : "Visible light",
1315                             da : "Near infrared",
1316                             db : "Middle infrared",
1317                             dc : "Far infrared",
1318                             dd : "Thermal infrared",
1319                             de : "Shortwave infrared (SWIR)",
1320                             df : "Reflective infrared",
1321                             dv : "Combinations",
1322                             dz : "Other infrared data",
1323                             ga : "Sidelooking airborne radar (SLAR)",
1324                             gb : "Synthetic aperture radar (SAR-single frequency)",
1325                             gc : "SAR-multi-frequency (multichannel)",
1326                             gd : "SAR-like polarization",
1327                             ge : "SAR-cross polarization",
1328                             gf : "Infometric SAR",
1329                             gg : "Polarmetric SAR",
1330                             gu : "Passive microwave mapping",
1331                             gz : "Other microwave data",
1332                             ja : "Far ultraviolet",
1333                             jb : "Middle ultraviolet",
1334                             jc : "Near ultraviolet",
1335                             jv : "Ultraviolet combinations",
1336                             jz : "Other ultraviolet data",
1337                             ma : "Multi-spectral, multidata",
1338                             mb : "Multi-temporal",
1339                             mm : "Combination of various data types",
1340                             pa : "Sonar-water depth",
1341                             pb : "Sonar-bottom topography images, sidescan",
1342                             pc : "Sonar-bottom topography, near-surface",
1343                             pd : "Sonar-bottom topography, near-bottom",
1344                             pe : "Seismic surveys",
1345                             pz : "Other acoustical data",
1346                             ra : "Gravity anomales (general)",
1347                             rb : "Free-air",
1348                             rc : "Bouger",
1349                             rd : "Isostatic",
1350                             sa : "Magnetic field",
1351                             ta : "Radiometric surveys"
1352                     }
1353                 }
1354             }
1355         },
1356         s : {
1357             label     : "Sound Recording",
1358             subfields : {
1359                 b : {    start : 1,
1360                     len   : 1,
1361                     label : "SMD",
1362                     values: {    d : "Sound disc",
1363                             e : "Cylinder",
1364                             g : "Sound cartridge",
1365                             i : "Sound-track film",
1366                             q : "Roll",
1367                             s : "Sound cassette",
1368                             t : "Sound-tape reel",
1369                             u : "Unspecified",
1370                             w : "Wire recording",
1371                             z : "Other"
1372                     }
1373                 },
1374                 d : {    start : 3,
1375                     len   : 1,
1376                     label : "Speed",
1377                     values: {    a : "16 rpm",
1378                             b : "33 1/3 rpm",
1379                             c : "45 rpm",
1380                             d : "78 rpm",
1381                             e : "8 rpm",
1382                             f : "1.4 mps",
1383                             h : "120 rpm",
1384                             i : "160 rpm",
1385                             k : "15/16 ips",
1386                             l : "1 7/8 ips",
1387                             m : "3 3/4 ips",
1388                             o : "7 1/2 ips",
1389                             p : "15 ips",
1390                             r : "30 ips",
1391                             u : "Unknown",
1392                             z : "Other"
1393                     }
1394                 },
1395                 e : {    start : 4,
1396                     len   : 1,
1397                     label : "Configuration of playback channels",
1398                     values: {    m : "Monaural",
1399                             q : "Quadraphonic",
1400                             s : "Stereophonic",
1401                             u : "Unknown",
1402                             z : "Other"
1403                     }
1404                 },
1405                 f : {    start : 5,
1406                     len   : 1,
1407                     label : "Groove width or pitch",
1408                     values: {    m : "Microgroove/fine",
1409                             n : "Not applicable",
1410                             s : "Coarse/standard",
1411                             u : "Unknown",
1412                             z : "Other"
1413                     }
1414                 },
1415                 g : {    start : 6,
1416                     len   : 1,
1417                     label : "Dimensions",
1418                     values: {    a : "3 in.",
1419                             b : "5 in.",
1420                             c : "7 in.",
1421                             d : "10 in.",
1422                             e : "12 in.",
1423                             f : "16 in.",
1424                             g : "4 3/4 in. (12 cm.)",
1425                             j : "3 7/8 x 2 1/2 in.",
1426                             o : "5 1/4 x 3 7/8 in.",
1427                             s : "2 3/4 x 4 in.",
1428                             n : "Not applicable",
1429                             u : "Unknown",
1430                             z : "Other"
1431                     }
1432                 },
1433                 h : {    start : 7,
1434                     len   : 1,
1435                     label : "Tape width",
1436                     values: {    l : "1/8 in.",
1437                             m : "1/4in.",
1438                             n : "Not applicable",
1439                             o : "1/2 in.",
1440                             p : "1 in.",
1441                             u : "Unknown",
1442                             z : "Other"
1443                     }
1444                 },
1445                 i : {    start : 8,
1446                     len   : 1,
1447                     label : "Tape configuration ",
1448                     values: {    a : "Full (1) track",
1449                             b : "Half (2) track",
1450                             c : "Quarter (4) track",
1451                             d : "8 track",
1452                             e : "12 track",
1453                             f : "16 track",
1454                             n : "Not applicable",
1455                             u : "Unknown",
1456                             z : "Other"
1457                     }
1458                 },
1459                 m : {    start : 12,
1460                     len   : 1,
1461                     label : "Special playback",
1462                     values: {    a : "NAB standard",
1463                             b : "CCIR standard",
1464                             c : "Dolby-B encoded, standard Dolby",
1465                             d : "dbx encoded",
1466                             e : "Digital recording",
1467                             f : "Dolby-A encoded",
1468                             g : "Dolby-C encoded",
1469                             h : "CX encoded",
1470                             n : "Not applicable",
1471                             u : "Unknown",
1472                             z : "Other"
1473                     }
1474                 },
1475                 n : {    start : 13,
1476                     len   : 1,
1477                     label : "Capture and storage",
1478                     values: {    a : "Acoustical capture, direct storage",
1479                             b : "Direct storage, not acoustical",
1480                             d : "Digital storage",
1481                             e : "Analog electrical storage",
1482                             u : "Unknown",
1483                             z : "Other"
1484                     }
1485                 }
1486             }
1487         },
1488         f : {
1489             label     : "Tactile Material",
1490             subfields : {
1491                 b : {    start : 1,
1492                     len   : 1,
1493                     label : "SMD",
1494                     values: {    a : "Moon",
1495                             b : "Braille",
1496                             c : "Combination",
1497                             d : "Tactile, with no writing system",
1498                             u : "Unspecified",
1499                             z : "Other"
1500                     }
1501                 },
1502                 d : {    start : 3,
1503                     len   : 2,
1504                     label : "Class of braille writing",
1505                     values: {    a : "Literary braille",
1506                             b : "Format code braille",
1507                             c : "Mathematics and scientific braille",
1508                             d : "Computer braille",
1509                             e : "Music braille",
1510                             m : "Multiple braille types",
1511                             n : "Not applicable",
1512                             u : "Unknown",
1513                             z : "Other"
1514                     }
1515                 },
1516                 e : {    start : 4,
1517                     len   : 1,
1518                     label : "Level of contraction",
1519                     values: {    a : "Uncontracted",
1520                             b : "Contracted",
1521                             m : "Combination",
1522                             n : "Not applicable",
1523                             u : "Unknown",
1524                             z : "Other"
1525                     }
1526                 },
1527                 f : {    start : 6,
1528                     len   : 3,
1529                     label : "Braille music format",
1530                     values: {    a : "Bar over bar",
1531                             b : "Bar by bar",
1532                             c : "Line over line",
1533                             d : "Paragraph",
1534                             e : "Single line",
1535                             f : "Section by section",
1536                             g : "Line by line",
1537                             h : "Open score",
1538                             i : "Spanner short form scoring",
1539                             j : "Short form scoring",
1540                             k : "Outline",
1541                             l : "Vertical score",
1542                             n : "Not applicable",
1543                             u : "Unknown",
1544                             z : "Other"
1545                     }
1546                 },
1547                 g : {    start : 9,
1548                     len   : 1,
1549                     label : "Special physical characteristics",
1550                     values: {    a : "Print/braille",
1551                             b : "Jumbo or enlarged braille",
1552                             n : "Not applicable",
1553                             u : "Unknown",
1554                             z : "Other"
1555                     }
1556                 }
1557             }
1558         },
1559         v : {
1560             label     : "Videorecording",
1561             subfields : {
1562                 b : {    start : 1,
1563                     len   : 1,
1564                     label : "SMD",
1565                     values: {     c : "Videocartridge",
1566                             d : "Videodisc",
1567                             f : "Videocassette",
1568                             r : "Videoreel",
1569                             u : "Unspecified",
1570                             z : "Other"
1571                     }
1572                 },
1573                 d : {    start : 3,
1574                     len   : 1,
1575                     label : "Color",
1576                     values: {    b : "Black-and-white",
1577                             c : "Multicolored",
1578                             m : "Mixed",
1579                             n : "Not applicable",
1580                             u : "Unknown",
1581                             z : "Other"
1582                     }
1583                 },
1584                 e : {    start : 4,
1585                     len   : 1,
1586                     label : "Videorecording format",
1587                     values: {    a : "Beta",
1588                             b : "VHS",
1589                             c : "U-matic",
1590                             d : "EIAJ",
1591                             e : "Type C",
1592                             f : "Quadruplex",
1593                             g : "Laserdisc",
1594                             h : "CED",
1595                             i : "Betacam",
1596                             j : "Betacam SP",
1597                             k : "Super-VHS",
1598                             m : "M-II",
1599                             o : "D-2",
1600                             p : "8 mm.",
1601                             q : "Hi-8 mm.",
1602                             u : "Unknown",
1603                             v : "DVD",
1604                             z : "Other"
1605                     }
1606                 },
1607                 f : {    start : 5,
1608                     len   : 1,
1609                     label : "Sound on medium or separate",
1610                     values: {    a : "Sound on medium",
1611                             b : "Sound separate from medium",
1612                             u : "Unknown"
1613                     }
1614                 },
1615                 g : {    start : 6,
1616                     len   : 1,
1617                     label : "Medium for sound",
1618                     values: {    a : "Optical sound track on motion picture film",
1619                             b : "Magnetic sound track on motion picture film",
1620                             c : "Magnetic audio tape in cartridge",
1621                             d : "Sound disc",
1622                             e : "Magnetic audio tape on reel",
1623                             f : "Magnetic audio tape in cassette",
1624                             g : "Optical and magnetic sound track on motion picture film",
1625                             h : "Videotape",
1626                             i : "Videodisc",
1627                             u : "Unknown",
1628                             z : "Other"
1629                     }
1630                 },
1631                 h : {    start : 7,
1632                     len   : 1,
1633                     label : "Dimensions",
1634                     values: {    a : "8 mm.",
1635                             m : "1/4 in.",
1636                             o : "1/2 in.",
1637                             p : "1 in.",
1638                             q : "2 in.",
1639                             r : "3/4 in.",
1640                             u : "Unknown",
1641                             z : "Other"
1642                     }
1643                 },
1644                 i : {    start : 8,
1645                     len   : 1,
1646                     label : "Configuration of playback channel",
1647                     values: {    k : "Mixed",
1648                             m : "Monaural",
1649                             n : "Not applicable",
1650                             q : "Multichannel, surround or quadraphonic",
1651                             s : "Stereophonic",
1652                             u : "Unknown",
1653                             z : "Other"
1654                     }
1655                 }
1656             }
1657         }
1658     };
1659     
1660     MARC.Record.prototype.recordType = function () {
1661     
1662         var _t = this.leader.substr(MARC.Record._ff_pos.Type.ldr.BKS.start, MARC.Record._ff_pos.Type.ldr.BKS.len);
1663         var _b = this.leader.substr(MARC.Record._ff_pos.BLvl.ldr.BKS.start, MARC.Record._ff_pos.BLvl.ldr.BKS.len);
1664     
1665         for (var t in MARC.Record._recType) {
1666             if (_t.match(MARC.Record._recType[t].Type) && _b.match(MARC.Record._recType[t].BLvl)) {
1667                 return t;
1668             }
1669         }
1670         return 'BKS'; // default
1671     }
1672     
1673     MARC.Record.prototype.videorecordingFormatName = function () {
1674         var _7 = this.field('007').data;
1675     
1676         if (_7 && _7.match(/^v/)) {
1677             var _v_e = _7.substr(
1678                 MARC.Record._physical_characteristics.v.subfields.e.start,
1679                 MARC.Record._physical_characteristics.v.subfields.e.len
1680             );
1681     
1682             return MARC.Record._physical_characteristics.v.subfields.e.values[ _v_e ];
1683         }
1684     
1685         return null;
1686     }
1687     
1688     MARC.Record.prototype.videorecordingFormatCode = function () {
1689         var _7 = this.field('007').data;
1690     
1691         if (_7 && _7.match(/^v/)) {
1692             return _7.substr(
1693                 MARC.Record._physical_characteristics.v.subfields.e.start,
1694                 MARC.Record._physical_characteristics.v.subfields.e.len
1695             );
1696         }
1697     
1698         return null;
1699     }
1700     
1701     MARC.Record.prototype.extractFixedField = function (field, dflt) {
1702     if (!MARC.Record._ff_pos[field]) return null;
1703     
1704         var _l = this.leader;
1705         var _8 = this.field('008').data;
1706         var _6 = this.field('006').data;
1707     
1708         var rtype = this.recordType();
1709     
1710         var val;
1711     
1712         if (MARC.Record._ff_pos[field].ldr && _l) {
1713             if (MARC.Record._ff_pos[field].ldr[rtype]) {
1714                 val = _l.substr(
1715                     MARC.Record._ff_pos[field].ldr[rtype].start,
1716                     MARC.Record._ff_pos[field].ldr[rtype].len
1717                 );
1718             }
1719         } else if (MARC.Record._ff_pos[field]._8 && _8) {
1720             if (MARC.Record._ff_pos[field]._8[rtype]) {
1721                 val = _8.substr(
1722                     MARC.Record._ff_pos[field]._8[rtype].start,
1723                     MARC.Record._ff_pos[field]._8[rtype].len
1724                 );
1725             }
1726         }
1727     
1728         if (!val && MARC.Record._ff_pos[field]._6 && _6) {
1729             if (MARC.Record._ff_pos[field]._6[rtype]) {
1730                 val = _6.substr(
1731                     MARC.Record._ff_pos[field]._6[rtype].start,
1732                     MARC.Record._ff_pos[field]._6[rtype].len
1733                 );
1734             }
1735         }
1736
1737         if (!val && dflt) {
1738             val = '';
1739             var d;
1740             var p;
1741             if (MARC.Record._ff_pos[field].ldr && MARC.Record._ff_pos[field].ldr[rtype]) {
1742                 d = MARC.Record._ff_pos[field].ldr[rtype].def;
1743                 p = 'ldr';
1744             }
1745
1746             if (MARC.Record._ff_pos[field]._8 && MARC.Record._ff_pos[field]._8[rtype]) {
1747                 d = MARC.Record._ff_pos[field]._8[rtype].def;
1748                 p = '_8';
1749             }
1750
1751             if (!val && MARC.Record._ff_pos[field]._6 && MARC.Record._ff_pos[field]._6[rtype]) {
1752                 d = MARC.Record._ff_pos[field]._6[rtype].def;
1753                 p = '_6';
1754             }
1755
1756             if (p) {
1757                 for (var j = 0; j < MARC.Record._ff_pos[field][p][rtype].len; j++) {
1758                     val += d;
1759                 }
1760             } else {
1761                 val = null;
1762             }
1763         }
1764
1765         return val;
1766     }
1767
1768     MARC.Record.prototype.setFixedField = function (field, value) {
1769     if (!MARC.Record._ff_pos[field]) return null;
1770     
1771         var _l = this.leader;
1772         var _8 = this.field('008').data;
1773         var _6 = this.field('006').data;
1774     
1775         var rtype = this.recordType();
1776     
1777         var val;
1778     
1779         if (MARC.Record._ff_pos[field].ldr && _l) {
1780             if (MARC.Record._ff_pos[field].ldr[rtype]) { // It's in the leader
1781                 val = value.substr(0, MARC.Record._ff_pos[field].ldr[rtype].len);
1782                 this.leader =
1783                     _l.substring(0, MARC.Record._ff_pos[field].ldr[rtype].start) +
1784                     val +
1785                     _l.substring(
1786                         MARC.Record._ff_pos[field].ldr[rtype].start
1787                         + MARC.Record._ff_pos[field].ldr[rtype].len
1788                     );
1789             }
1790         } else if (MARC.Record._ff_pos[field]._8 && _8) {
1791             if (MARC.Record._ff_pos[field]._8[rtype]) { // Nope, it's in the 008
1792                 val = value.substr(0, MARC.Record._ff_pos[field]._8[rtype].len);
1793                 this.field('008').update(
1794                     _8.substring(0, MARC.Record._ff_pos[field]._8[rtype].start) +
1795                     val +
1796                     _8.substring(
1797                         MARC.Record._ff_pos[field]._8[rtype].start
1798                         + MARC.Record._ff_pos[field]._8[rtype].len
1799                     )
1800                 );
1801             }
1802         }
1803     
1804         if (!val && MARC.Record._ff_pos[field]._6 && _6) {
1805             if (MARC.Record._ff_pos[field]._6[rtype]) { // ok, maybe the 006?
1806                 val = value.substr(0, MARC.Record._ff_pos[field]._6[rtype].len);
1807                 this.field('006').update(
1808                     _6.substring(0, MARC.Record._ff_pos[field]._6[rtype].start) +
1809                     val +
1810                     _6.substring(
1811                         MARC.Record._ff_pos[field]._6[rtype].start
1812                         + MARC.Record._ff_pos[field]._6[rtype].len
1813                     )
1814                 );
1815             }
1816         }
1817
1818         return val;
1819     }
1820