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