1 /* ---------------------------------------------------------------------------
2 * Copyright (C) 2011 Equinox Software, Inc.
3 * Mike Rylander <miker@esilibrary.com>
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.
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 * ---------------------------------------------------------------------------
17 if(!dojo._hasResource["MARC.FixedFields"]) {
19 dojo.require('MARC.Record');
21 dojo._hasResource["MARC.FixedFields"] = true;
22 dojo.provide("MARC.FixedFields");
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}/ }
37 MARC.Record._ff_pos = {
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 : ' ' }
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 : ' ' }
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 : ' ' }
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 : ' ' }
88 BKS : {start : 5, len : 1, def : 'n' },
89 SER : {start : 5, len : 1, def : 'n' },
90 VIS : {start : 5, len : 1, def : 'n' },
91 MIX : {start : 5, len : 1, def : 'n' },
92 MAP : {start : 5, len : 1, def : 'n' },
93 SCO : {start : 5, len : 1, def : 'n' },
94 REC : {start : 5, len : 1, def : 'n' },
95 COM : {start : 5, len : 1, def : 'n' },
96 MFHD: {start : 5, len : 1, def : 'n' },
97 AUT : {start : 5, len : 1, def : 'n' }
102 BKS : {start : 6, len : 1, def : 'a' },
103 SER : {start : 6, len : 1, def : 'a' },
104 VIS : {start : 6, len : 1, def : 'g' },
105 MIX : {start : 6, len : 1, def : 'p' },
106 MAP : {start : 6, len : 1, def : 'e' },
107 SCO : {start : 6, len : 1, def : 'c' },
108 REC : {start : 6, len : 1, def : 'i' },
109 COM : {start : 6, len : 1, def : 'm' },
110 AUT : {start : 6, len : 1, def : 'z' },
111 MFHD : {start : 6, len : 1, def : 'y' }
117 BKS : {start : 8, len : 1, def : ' ' },
118 SER : {start : 8, len : 1, def : ' ' },
119 VIS : {start : 8, len : 1, def : ' ' },
120 MIX : {start : 8, len : 1, def : ' ' },
121 MAP : {start : 8, len : 1, def : ' ' },
122 SCO : {start : 8, len : 1, def : ' ' },
123 REC : {start : 8, len : 1, def : ' ' },
124 COM : {start : 8, len : 1, def : ' ' }
129 BKS : {start : 7, len : 1, def : 'm' },
130 SER : {start : 7, len : 1, def : 's' },
131 VIS : {start : 7, len : 1, def : 'm' },
132 MIX : {start : 7, len : 1, def : 'c' },
133 MAP : {start : 7, len : 1, def : 'm' },
134 SCO : {start : 7, len : 1, def : 'm' },
135 REC : {start : 7, len : 1, def : 'm' },
136 COM : {start : 7, len : 1, def : 'm' }
141 BKS : {start : 18, len : 1, def : ' ' },
142 SER : {start : 18, len : 1, def : ' ' },
143 VIS : {start : 18, len : 1, def : ' ' },
144 MIX : {start : 18, len : 1, def : ' ' },
145 MAP : {start : 18, len : 1, def : ' ' },
146 SCO : {start : 18, len : 1, def : ' ' },
147 REC : {start : 18, len : 1, def : ' ' },
148 COM : {start : 18, len : 1, def : ' ' }
153 MFHD : {start : 18, len : 1, def : 'i' }
158 BKS : {start : 17, len : 1, def : ' ' },
159 SER : {start : 17, len : 1, def : ' ' },
160 VIS : {start : 17, len : 1, def : ' ' },
161 MIX : {start : 17, len : 1, def : ' ' },
162 MAP : {start : 17, len : 1, def : ' ' },
163 SCO : {start : 17, len : 1, def : ' ' },
164 REC : {start : 17, len : 1, def : ' ' },
165 COM : {start : 17, len : 1, def : ' ' },
166 AUT : {start : 17, len : 1, def : 'n' },
167 MFHD : {start : 17, len : 1, def : 'u' }
172 VIS : {start : 33, len : 1, def : ' ' }
175 VIS : {start : 16, len : 1, def : ' ' }
180 SCO : {start : 33, len : 1, def : ' ' },
181 REC : {start : 33, len : 1, def : 'n' }
184 SCO : {start : 16, len : 1, def : ' ' },
185 REC : {start : 16, len : 1, def : 'n' }
190 BKS : {start : 31, len : 1, def : '0' },
191 MAP : {start : 31, len : 1, def : '0' }
194 BKS : {start : 14, len : 1, def : '0' },
195 MAP : {start : 14, len : 1, def : '0' }
200 BKS : {start : 7, len : 4, def : ' ' },
201 SER : {start : 7, len : 4, def : ' ' },
202 VIS : {start : 7, len : 4, def : ' ' },
203 MIX : {start : 7, len : 4, def : ' ' },
204 MAP : {start : 7, len : 4, def : ' ' },
205 SCO : {start : 7, len : 4, def : ' ' },
206 REC : {start : 7, len : 4, def : ' ' },
207 COM : {start : 7, len : 4, def : ' ' }
212 BKS : {start : 11, len : 4, def : ' ' },
213 SER : {start : 11, len : 4, def : '9' },
214 VIS : {start : 11, len : 4, def : ' ' },
215 MIX : {start : 11, len : 4, def : ' ' },
216 MAP : {start : 11, len : 4, def : ' ' },
217 SCO : {start : 11, len : 4, def : ' ' },
218 REC : {start : 11, len : 4, def : ' ' },
219 COM : {start : 11, len : 4, def : ' ' }
224 BKS : {start : 33, len : 1, def : '0' }
227 BKS : {start : 16, len : 1, def : '0' }
232 BKS : {start : 34, len : 1, def : ' ' }
235 BKS : {start : 17, len : 1, def : ' ' }
240 BKS : {start : 18, len : 4, def : ' ' }
243 BKS : {start : 1, len : 4, def : ' ' }
248 BKS : {start : 30, len : 1, def : '0' }
251 BKS : {start : 13, len : 1, def : '0' }
256 BKS : {start : 29, len : 1, def : '0' },
257 SER : {start : 29, len : 1, def : '0' }
260 BKS : {start : 11, len : 1, def : '0' },
261 SER : {start : 11, len : 1, def : '0' }
266 BKS : {start : 24, len : 4, def : ' ' },
267 SER : {start : 25, len : 3, def : ' ' }
270 BKS : {start : 7, len : 4, def : ' ' },
271 SER : {start : 8, len : 3, def : ' ' }
276 BKS : {start : 28, len : 1, def : ' ' },
277 SER : {start : 28, len : 1, def : ' ' },
278 VIS : {start : 28, len : 1, def : ' ' },
279 MAP : {start : 28, len : 1, def : ' ' },
280 COM : {start : 28, len : 1, def : ' ' }
283 BKS : {start : 11, len : 1, def : ' ' },
284 SER : {start : 11, len : 1, def : ' ' },
285 VIS : {start : 11, len : 1, def : ' ' },
286 MAP : {start : 11, len : 1, def : ' ' },
287 COM : {start : 11, len : 1, def : ' ' }
292 BKS : {start : 39, len : 1, def : 'd' },
293 SER : {start : 39, len : 1, def : 'd' },
294 VIS : {start : 39, len : 1, def : 'd' },
295 SCO : {start : 39, len : 1, def : 'd' },
296 REC : {start : 39, len : 1, def : 'd' },
297 COM : {start : 39, len : 1, def : 'd' },
298 MFHD : {start : 39, len : 1, def : 'd' },
299 "AUT" : {"start" : 39, "len" : 1, "def" : 'd' }
304 BKS : {start : 22, len : 1, def : ' ' },
305 SER : {start : 22, len : 1, def : ' ' },
306 VIS : {start : 22, len : 1, def : ' ' },
307 SCO : {start : 22, len : 1, def : ' ' },
308 REC : {start : 22, len : 1, def : ' ' },
309 COM : {start : 22, len : 1, def : ' ' }
312 BKS : {start : 5, len : 1, def : ' ' },
313 SER : {start : 5, len : 1, def : ' ' },
314 VIS : {start : 5, len : 1, def : ' ' },
315 SCO : {start : 5, len : 1, def : ' ' },
316 REC : {start : 5, len : 1, def : ' ' },
317 COM : {start : 5, len : 1, def : ' ' }
322 BKS : {start : 23, len : 1, def : ' ' },
323 SER : {start : 23, len : 1, def : ' ' },
324 VIS : {start : 29, len : 1, def : ' ' },
325 MIX : {start : 23, len : 1, def : ' ' },
326 MAP : {start : 29, len : 1, def : ' ' },
327 SCO : {start : 23, len : 1, def : ' ' },
328 REC : {start : 23, len : 1, def : ' ' }
331 BKS : {start : 6, len : 1, def : ' ' },
332 SER : {start : 6, len : 1, def : ' ' },
333 VIS : {start : 12, len : 1, def : ' ' },
334 MIX : {start : 6, len : 1, def : ' ' },
335 MAP : {start : 12, len : 1, def : ' ' },
336 SCO : {start : 6, len : 1, def : ' ' },
337 REC : {start : 6, len : 1, def : ' ' }
342 SER : {start : 34, len : 1, def : '0' }
345 SER : {start : 17, len : 1, def : '0' }
350 SER : {start : 33, len : 1, def : ' ' }
353 SER : {start : 16, len : 1, def : ' ' }
358 "AUT" : {"start" : 6, "len" : 1, "def" : ' ' }
363 "AUT" : {"start" : 7, "len" : 1, "def" : ' ' }
368 "AUT" : {"start" : 8, "len" : 1, "def" : ' ' }
373 "AUT" : {"start" : 9, "len" : 1, "def" : ' ' }
378 "AUT" : {"start" : 10, "len" : 1, "def" : ' ' }
383 "AUT" : {"start" : 11, "len" : 1, "def" : ' ' }
388 "AUT" : {"start" : 12, "len" : 1, "def" : ' ' }
393 "AUT" : {"start" : 13, "len" : 1, "def" : ' ' }
398 "AUT" : {"start" : 14, "len" : 1, "def" : ' ' }
403 "AUT" : {"start" : 15, "len" : 1, "def" : ' ' }
408 "AUT" : {"start" : 16, "len" : 1, "def" : ' ' }
413 "AUT" : {"start" : 17, "len" : 1, "def" : ' ' }
418 "AUT" : {"start" : 28, "len" : 1, "def" : ' ' }
423 "AUT" : {"start" : 29, "len" : 1, "def" : ' ' }
428 "AUT" : {"start" : 31, "len" : 1, "def" : ' ' }
433 "AUT" : {"start" : 32, "len" : 1, "def" : ' ' }
438 "AUT" : {"start" : 33, "len" : 1, "def" : ' ' }
443 "AUT" : {"start" : 38, "len" : 1, "def" : ' ' }
448 "AUT" : {"start" : 39, "len" : 1, "def" : ' ' }
453 MARC.Record._physical_characteristics = {
455 label : "Electronic Resource",
460 values: { a : "Tape Cartridge",
461 b : "Chip cartridge",
462 c : "Computer optical disk cartridge",
466 m : "Magneto-optical disk",
476 values: { a : "One color",
477 b : "Black-and-white",
481 n : "Not applicable",
488 label : "Dimensions",
489 values: { a : "3 1/2 in.",
491 g : "4 3/4 in. or 12 cm.",
492 i : "1 1/8 x 2 3/8 in.",
493 j : "3 7/8 x 2 1/2 in.",
494 n : "Not applicable",
504 values: { ' ' : "No sound (Silent)",
511 label : "Image bit depth",
512 values: { mmm : "Multiple",
513 nnn : "Not applicable",
519 label : "File formats",
520 values: { a : "One file format",
521 m : "Multiple file formats",
527 label : "Quality assurance target(s)",
528 values: { a : "Absent",
529 n : "Not applicable",
536 label : "Antecedent/Source",
537 values: { a : "File reproduced from original",
538 b : "File reproduced from microform",
539 c : "File reproduced from electronic resource",
540 d : "File reproduced from an intermediate (not microform)",
542 n : "Not applicable",
548 label : "Level of compression",
549 values: { a : "Uncompressed",
558 label : "Reformatting quality",
559 values: { a : "Access",
560 n : "Not applicable",
574 values: { a : "Celestial globe",
575 b : "Planetary or lunar globe",
576 c : "Terrestrial globe",
577 e : "Earth moon globe",
585 values: { a : "One color",
591 label : "Physical medium",
592 values: { a : "Paper",
606 label : "Type of reproduction",
607 values: { f : "Facsimile",
608 n : "Not applicable",
621 values: { d : "Atlas",
626 r : "Remote-sensing image",
636 values: { a : "One color",
642 label : "Physical medium",
643 values: { a : "Paper",
651 q : "Flexible base photographic medium, positive",
652 r : "Flexible base photographic medium, negative",
653 s : "Non-flexible base photographic medium, positive",
654 t : "Non-flexible base photographic medium, negative",
656 y : "Other photographic medium",
662 label : "Type of reproduction",
663 values: { f : "Facsimile",
664 n : "Not applicable",
671 label : "Production/reproduction details",
672 values: { a : "Photocopy, blueline print",
674 c : "Pre-production",
682 label : "Positive/negative",
683 values: { a : "Positive",
697 values: { a : "Aperture card",
698 b : "Microfilm cartridge",
699 c : "Microfilm cassette",
700 d : "Microfilm reel",
702 f : "Microfiche cassette",
710 label : "Positive/negative",
711 values: { a : "Positive",
719 label : "Dimensions",
720 values: { a : "8 mm.",
725 l : "3 x 5 in. (8 x 13 cm.)",
726 m : "4 x 6 in. (11 x 15 cm.)",
727 o : "6 x 9 in. (16 x 23 cm.)",
728 p : "3 1/4 x 7 3/8 in. (9 x 19 cm.)",
735 label : "Reduction ratio range/Reduction ratio",
736 values: { a : "Low (1-16x)",
737 b : "Normal (16-30x)",
739 d : "Very high (61-90x)",
742 v : "Reduction ratio varies"
748 values: { b : "Black-and-white",
757 label : "Emulsion on film",
758 values: { a : "Silver halide",
762 n : "Not applicable",
769 label : "Quality assurance target(s)",
770 values: { a : "1st gen. master",
771 b : "Printing master",
773 m : "Mixed generation",
779 label : "Base of film",
780 values: { a : "Safety base, undetermined",
781 c : "Safety base, acetate undetermined",
782 d : "Safety base, diacetate",
785 n : "Not applicable",
786 p : "Safety base, polyester",
787 r : "Safety base, mixed",
788 t : "Safety base, triacetate",
796 label : "Motion Picture",
801 values: { a : "Film cartridge",
811 values: { b : "Black-and-white",
821 label : "Motion picture presentation format",
822 values: { a : "Standard sound aperture, reduced frame",
823 b : "Nonanamorphic (wide-screen)",
825 d : "Anamorphic (wide-screen)",
826 e : "Other-wide screen format",
827 f : "Standard. silent aperture, full frame",
834 label : "Sound on medium or separate",
835 values: { a : "Sound on medium",
836 b : "Sound separate from medium",
842 label : "Medium for sound",
843 values: { a : "Optical sound track on motion picture film",
844 b : "Magnetic sound track on motion picture film",
845 c : "Magnetic audio tape in cartridge",
847 e : "Magnetic audio tape on reel",
848 f : "Magnetic audio tape in cassette",
849 g : "Optical and magnetic sound track on film",
858 label : "Dimensions",
859 values: { a : "Standard 8 mm.",
860 b : "Super 8 mm./single 8 mm.",
872 label : "Configuration of playback channels",
873 values: { k : "Mixed",
875 n : "Not applicable",
876 q : "Multichannel, surround or quadraphonic",
884 label : "Production elements",
885 values: { a : "Work print",
890 f : "Title bands/inter-title rolls",
891 g : "Production rolls",
892 n : "Not applicable",
899 label : "Non-projected Graphic",
904 values: { c : "Collage",
907 f : "Photo-mechanical print",
912 l : "Technical drawing",
914 o : "Flash/activity card",
922 values: { a : "One color",
923 b : "Black-and-white",
933 label : "Primary support material",
934 values: { a : "Canvas",
936 c : "Cardboard/illustration board",
942 m : "Mixed collection",
955 label : "Secondary support material",
956 values: { a : "Canvas",
958 c : "Cardboard/illustration board",
964 m : "Mixed collection",
978 label : "Projected Graphic",
983 values: { c : "Film cartridge",
985 f : "Film filmstrip type",
986 o : "Filmstrip roll",
995 values: { b : "Black-and-white",
999 n : "Not applicable",
1006 label : "Base of emulsion",
1007 values: { d : "Glass",
1010 k : "Film base, other than safety film",
1011 m : "Mixed collection",
1019 label : "Sound on medium or separate",
1020 values: { a : "Sound on medium",
1021 b : "Sound separate from medium",
1027 label : "Medium for sound",
1028 values: { a : "Optical sound track on motion picture film",
1029 b : "Magnetic sound track on motion picture film",
1030 c : "Magnetic audio tape in cartridge",
1032 e : "Magnetic audio tape on reel",
1033 f : "Magnetic audio tape in cassette",
1034 g : "Optical and magnetic sound track on film",
1043 label : "Dimensions",
1044 values: { a : "Standard 8 mm.",
1045 b : "Super 8 mm./single 8 mm.",
1051 j : "2 x 2 in. (5 x 5 cm.)",
1052 k : "2 1/4 x 2 1/4 in. (6 x 6 cm.)",
1053 s : "4 x 5 in. (10 x 13 cm.)",
1054 t : "5 x 7 in. (13 x 18 cm.)",
1055 v : "8 x 10 in. (21 x 26 cm.)",
1056 w : "9 x 9 in. (23 x 23 cm.)",
1057 x : "10 x 10 in. (26 x 26 cm.)",
1058 y : "7 x 7 in. (18 x 18 cm.)",
1065 label : "Secondary support material",
1066 values: { c : "Cardboard",
1070 j : "Metal and glass",
1071 k : "Synthetics and glass",
1072 m : "Mixed collection",
1080 label : "Remote-sensing Image",
1085 values: { u : "Unspecified" }
1089 label : "Altitude of sensor",
1090 values: { a : "Surface",
1093 n : "Not applicable",
1100 label : "Attitude of sensor",
1101 values: { a : "Low oblique",
1104 n : "Not applicable",
1110 label : "Cloud cover",
1111 values: { 0 : "0-09%",
1121 n : "Not applicable",
1127 label : "Platform construction type",
1128 values: { a : "Balloon",
1129 b : "Aircraft-low altitude",
1130 c : "Aircraft-medium altitude",
1131 d : "Aircraft-high altitude",
1132 e : "Manned spacecraft",
1133 f : "Unmanned spacecraft",
1134 g : "Land-based remote-sensing device",
1135 h : "Water surface-based remote-sensing device",
1136 i : "Submersible remote-sensing device",
1137 n : "Not applicable",
1144 label : "Platform use category",
1145 values: { a : "Meteorological",
1146 b : "Surface observing",
1147 c : "Space observing",
1149 n : "Not applicable",
1156 label : "Sensor type",
1157 values: { a : "Active",
1165 label : "Data type",
1166 values: { nn : "Not applicable",
1169 aa : "Visible light",
1170 da : "Near infrared",
1171 db : "Middle infrared",
1172 dc : "Far infrared",
1173 dd : "Thermal infrared",
1174 de : "Shortwave infrared (SWIR)",
1175 df : "Reflective infrared",
1176 dv : "Combinations",
1177 dz : "Other infrared data",
1178 ga : "Sidelooking airborne radar (SLAR)",
1179 gb : "Synthetic aperture radar (SAR-single frequency)",
1180 gc : "SAR-multi-frequency (multichannel)",
1181 gd : "SAR-like polarization",
1182 ge : "SAR-cross polarization",
1183 gf : "Infometric SAR",
1184 gg : "Polarmetric SAR",
1185 gu : "Passive microwave mapping",
1186 gz : "Other microwave data",
1187 ja : "Far ultraviolet",
1188 jb : "Middle ultraviolet",
1189 jc : "Near ultraviolet",
1190 jv : "Ultraviolet combinations",
1191 jz : "Other ultraviolet data",
1192 ma : "Multi-spectral, multidata",
1193 mb : "Multi-temporal",
1194 mm : "Combination of various data types",
1195 pa : "Sonar-water depth",
1196 pb : "Sonar-bottom topography images, sidescan",
1197 pc : "Sonar-bottom topography, near-surface",
1198 pd : "Sonar-bottom topography, near-bottom",
1199 pe : "Seismic surveys",
1200 pz : "Other acoustical data",
1201 ra : "Gravity anomales (general)",
1205 sa : "Magnetic field",
1206 ta : "Radiometric surveys"
1212 label : "Sound Recording",
1217 values: { d : "Sound disc",
1219 g : "Sound cartridge",
1220 i : "Sound-track film",
1222 s : "Sound cassette",
1223 t : "Sound-tape reel",
1225 w : "Wire recording",
1232 values: { a : "16 rpm",
1252 label : "Configuration of playback channels",
1253 values: { m : "Monaural",
1262 label : "Groove width or pitch",
1263 values: { m : "Microgroove/fine",
1264 n : "Not applicable",
1265 s : "Coarse/standard",
1272 label : "Dimensions",
1273 values: { a : "3 in.",
1279 g : "4 3/4 in. (12 cm.)",
1280 j : "3 7/8 x 2 1/2 in.",
1281 o : "5 1/4 x 3 7/8 in.",
1282 s : "2 3/4 x 4 in.",
1283 n : "Not applicable",
1290 label : "Tape width",
1291 values: { l : "1/8 in.",
1293 n : "Not applicable",
1302 label : "Tape configuration ",
1303 values: { a : "Full (1) track",
1304 b : "Half (2) track",
1305 c : "Quarter (4) track",
1309 n : "Not applicable",
1316 label : "Special playback",
1317 values: { a : "NAB standard",
1318 b : "CCIR standard",
1319 c : "Dolby-B encoded, standard Dolby",
1321 e : "Digital recording",
1322 f : "Dolby-A encoded",
1323 g : "Dolby-C encoded",
1325 n : "Not applicable",
1332 label : "Capture and storage",
1333 values: { a : "Acoustical capture, direct storage",
1334 b : "Direct storage, not acoustical",
1335 d : "Digital storage",
1336 e : "Analog electrical storage",
1344 label : "Tactile Material",
1349 values: { a : "Moon",
1352 d : "Tactile, with no writing system",
1359 label : "Class of braille writing",
1360 values: { a : "Literary braille",
1361 b : "Format code braille",
1362 c : "Mathematics and scientific braille",
1363 d : "Computer braille",
1364 e : "Music braille",
1365 m : "Multiple braille types",
1366 n : "Not applicable",
1373 label : "Level of contraction",
1374 values: { a : "Uncontracted",
1377 n : "Not applicable",
1384 label : "Braille music format",
1385 values: { a : "Bar over bar",
1387 c : "Line over line",
1390 f : "Section by section",
1393 i : "Spanner short form scoring",
1394 j : "Short form scoring",
1396 l : "Vertical score",
1397 n : "Not applicable",
1404 label : "Special physical characteristics",
1405 values: { a : "Print/braille",
1406 b : "Jumbo or enlarged braille",
1407 n : "Not applicable",
1415 label : "Videorecording",
1420 values: { c : "Videocartridge",
1422 f : "Videocassette",
1431 values: { b : "Black-and-white",
1434 n : "Not applicable",
1441 label : "Videorecording format",
1442 values: { a : "Beta",
1464 label : "Sound on medium or separate",
1465 values: { a : "Sound on medium",
1466 b : "Sound separate from medium",
1472 label : "Medium for sound",
1473 values: { a : "Optical sound track on motion picture film",
1474 b : "Magnetic sound track on motion picture film",
1475 c : "Magnetic audio tape in cartridge",
1477 e : "Magnetic audio tape on reel",
1478 f : "Magnetic audio tape in cassette",
1479 g : "Optical and magnetic sound track on motion picture film",
1488 label : "Dimensions",
1489 values: { a : "8 mm.",
1501 label : "Configuration of playback channel",
1502 values: { k : "Mixed",
1504 n : "Not applicable",
1505 q : "Multichannel, surround or quadraphonic",
1515 MARC.Record.prototype.recordType = function () {
1517 var _t = this.leader.substr(MARC.Record._ff_pos.Type.ldr.BKS.start, MARC.Record._ff_pos.Type.ldr.BKS.len);
1518 var _b = this.leader.substr(MARC.Record._ff_pos.BLvl.ldr.BKS.start, MARC.Record._ff_pos.BLvl.ldr.BKS.len);
1520 for (var t in MARC.Record._recType) {
1521 if (_t.match(MARC.Record._recType[t].Type) && _b.match(MARC.Record._recType[t].BLvl)) {
1525 return 'BKS'; // default
1528 MARC.Record.prototype.videorecordingFormatName = function () {
1529 var _7 = this.field('007').data;
1531 if (_7 && _7.match(/^v/)) {
1532 var _v_e = _7.substr(
1533 MARC.Record._physical_characteristics.v.subfields.e.start,
1534 MARC.Record._physical_characteristics.v.subfields.e.len
1537 return MARC.Record._physical_characteristics.v.subfields.e.values[ _v_e ];
1543 MARC.Record.prototype.videorecordingFormatCode = function () {
1544 var _7 = this.field('007').data;
1546 if (_7 && _7.match(/^v/)) {
1548 MARC.Record._physical_characteristics.v.subfields.e.start,
1549 MARC.Record._physical_characteristics.v.subfields.e.len
1556 MARC.Record.prototype.extractFixedField = function (field, dflt) {
1557 if (!MARC.Record._ff_pos[field]) return null;
1559 var _l = this.leader;
1560 var _8 = this.field('008').data;
1561 var _6 = this.field('006').data;
1563 var rtype = this.recordType();
1567 if (MARC.Record._ff_pos[field].ldr && _l) {
1568 if (MARC.Record._ff_pos[field].ldr[rtype]) {
1570 MARC.Record._ff_pos[field].ldr[rtype].start,
1571 MARC.Record._ff_pos[field].ldr[rtype].len
1574 } else if (MARC.Record._ff_pos[field]._8 && _8) {
1575 if (MARC.Record._ff_pos[field]._8[rtype]) {
1577 MARC.Record._ff_pos[field]._8[rtype].start,
1578 MARC.Record._ff_pos[field]._8[rtype].len
1583 if (!val && MARC.Record._ff_pos[field]._6 && _6) {
1584 if (MARC.Record._ff_pos[field]._6[rtype]) {
1586 MARC.Record._ff_pos[field]._6[rtype].start,
1587 MARC.Record._ff_pos[field]._6[rtype].len
1596 if (MARC.Record._ff_pos[field].ldr && MARC.Record._ff_pos[field].ldr[rtype]) {
1597 d = MARC.Record._ff_pos[field].ldr[rtype].def;
1601 if (MARC.Record._ff_pos[field]._8 && MARC.Record._ff_pos[field]._8[rtype]) {
1602 d = MARC.Record._ff_pos[field]._8[rtype].def;
1606 if (!val && MARC.Record._ff_pos[field]._6 && MARC.Record._ff_pos[field]._6[rtype]) {
1607 d = MARC.Record._ff_pos[field]._6[rtype].def;
1612 for (var j = 0; j < MARC.Record._ff_pos[field][p][rtype].len; j++) {
1623 MARC.Record.prototype.setFixedField = function (field, value) {
1624 if (!MARC.Record._ff_pos[field]) return null;
1626 var _l = this.leader;
1627 var _8 = this.field('008').data;
1628 var _6 = this.field('006').data;
1630 var rtype = this.recordType();
1634 if (MARC.Record._ff_pos[field].ldr && _l) {
1635 if (MARC.Record._ff_pos[field].ldr[rtype]) { // It's in the leader
1636 val = value.substr(0, MARC.Record._ff_pos[field].ldr[rtype].len);
1638 _l.substring(0, MARC.Record._ff_pos[field].ldr[rtype].start) +
1641 MARC.Record._ff_pos[field].ldr[rtype].start
1642 + MARC.Record._ff_pos[field].ldr[rtype].len
1645 } else if (MARC.Record._ff_pos[field]._8 && _8) {
1646 if (MARC.Record._ff_pos[field]._8[rtype]) { // Nope, it's in the 008
1647 val = value.substr(0, MARC.Record._ff_pos[field]._8[rtype].len);
1648 this.field('008').update(
1649 _8.substring(0, MARC.Record._ff_pos[field]._8[rtype].start) +
1652 MARC.Record._ff_pos[field]._8[rtype].start
1653 + MARC.Record._ff_pos[field]._8[rtype].len
1659 if (!val && MARC.Record._ff_pos[field]._6 && _6) {
1660 if (MARC.Record._ff_pos[field]._6[rtype]) { // ok, maybe the 006?
1661 val = value.substr(0, MARC.Record._ff_pos[field]._6[rtype].len);
1662 this.field('006').update(
1663 _6.substring(0, MARC.Record._ff_pos[field]._6[rtype].start) +
1666 MARC.Record._ff_pos[field]._6[rtype].start
1667 + MARC.Record._ff_pos[field]._6[rtype].len