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 : 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' }
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 : ' ' }
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' }
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 : ' ' }
139 MFHD : {start : 18, len : 1, def : 'i' }
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' }
158 VIS : {start : 33, len : 1, def : ' ' }
161 VIS : {start : 16, len : 1, def : ' ' }
166 SCO : {start : 33, len : 1, def : ' ' },
167 REC : {start : 33, len : 1, def : 'n' }
170 SCO : {start : 16, len : 1, def : ' ' },
171 REC : {start : 16, len : 1, def : 'n' }
176 BKS : {start : 31, len : 1, def : '0' },
177 MAP : {start : 31, len : 1, def : '0' }
180 BKS : {start : 14, len : 1, def : '0' },
181 MAP : {start : 14, len : 1, def : '0' }
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 : ' ' }
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 : ' ' }
210 BKS : {start : 33, len : 1, def : '0' }
213 BKS : {start : 16, len : 1, def : '0' }
218 BKS : {start : 34, len : 1, def : ' ' }
221 BKS : {start : 17, len : 1, def : ' ' }
226 BKS : {start : 18, len : 4, def : ' ' }
229 BKS : {start : 1, len : 4, def : ' ' }
234 BKS : {start : 30, len : 1, def : '0' }
237 BKS : {start : 13, len : 1, def : '0' }
242 BKS : {start : 24, len : 4, def : ' ' },
243 SER : {start : 25, len : 3, def : ' ' }
246 BKS : {start : 7, len : 4, def : ' ' },
247 SER : {start : 8, len : 3, def : ' ' }
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 : ' ' }
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 : ' ' }
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' }
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 : ' ' }
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 : ' ' }
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 : ' ' }
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 : ' ' }
318 SER : {start : 34, len : 1, def : '0' }
321 SER : {start : 17, len : 1, def : '0' }
326 SER : {start : 33, len : 1, def : ' ' }
329 SER : {start : 16, len : 1, def : ' ' }
334 "AUT" : {"start" : 6, "len" : 1, "def" : ' ' }
339 "AUT" : {"start" : 7, "len" : 1, "def" : ' ' }
344 "AUT" : {"start" : 8, "len" : 1, "def" : ' ' }
349 "AUT" : {"start" : 9, "len" : 1, "def" : ' ' }
354 "AUT" : {"start" : 10, "len" : 1, "def" : ' ' }
359 "AUT" : {"start" : 11, "len" : 1, "def" : ' ' }
364 "AUT" : {"start" : 12, "len" : 1, "def" : ' ' }
369 "AUT" : {"start" : 13, "len" : 1, "def" : ' ' }
374 "AUT" : {"start" : 14, "len" : 1, "def" : ' ' }
379 "AUT" : {"start" : 15, "len" : 1, "def" : ' ' }
384 "AUT" : {"start" : 16, "len" : 1, "def" : ' ' }
389 "AUT" : {"start" : 17, "len" : 1, "def" : ' ' }
394 "AUT" : {"start" : 28, "len" : 1, "def" : ' ' }
399 "AUT" : {"start" : 29, "len" : 1, "def" : ' ' }
404 "AUT" : {"start" : 31, "len" : 1, "def" : ' ' }
409 "AUT" : {"start" : 32, "len" : 1, "def" : ' ' }
414 "AUT" : {"start" : 33, "len" : 1, "def" : ' ' }
419 "AUT" : {"start" : 38, "len" : 1, "def" : ' ' }
424 "AUT" : {"start" : 39, "len" : 1, "def" : ' ' }
429 MARC.Record._physical_characteristics = {
431 label : "Electronic Resource",
436 values: { a : "Tape Cartridge",
437 b : "Chip cartridge",
438 c : "Computer optical disk cartridge",
442 m : "Magneto-optical disk",
452 values: { a : "One color",
453 b : "Black-and-white",
457 n : "Not applicable",
464 label : "Dimensions",
465 values: { a : "3 1/2 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",
480 values: { ' ' : "No sound (Silent)",
487 label : "Image bit depth",
488 values: { mmm : "Multiple",
489 nnn : "Not applicable",
495 label : "File formats",
496 values: { a : "One file format",
497 m : "Multiple file formats",
503 label : "Quality assurance target(s)",
504 values: { a : "Absent",
505 n : "Not applicable",
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)",
518 n : "Not applicable",
524 label : "Level of compression",
525 values: { a : "Uncompressed",
534 label : "Reformatting quality",
535 values: { a : "Access",
536 n : "Not applicable",
550 values: { a : "Celestial globe",
551 b : "Planetary or lunar globe",
552 c : "Terrestrial globe",
553 e : "Earth moon globe",
561 values: { a : "One color",
567 label : "Physical medium",
568 values: { a : "Paper",
582 label : "Type of reproduction",
583 values: { f : "Facsimile",
584 n : "Not applicable",
597 values: { d : "Atlas",
602 r : "Remote-sensing image",
612 values: { a : "One color",
618 label : "Physical medium",
619 values: { a : "Paper",
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",
632 y : "Other photographic medium",
638 label : "Type of reproduction",
639 values: { f : "Facsimile",
640 n : "Not applicable",
647 label : "Production/reproduction details",
648 values: { a : "Photocopy, blueline print",
650 c : "Pre-production",
658 label : "Positive/negative",
659 values: { a : "Positive",
673 values: { a : "Aperture card",
674 b : "Microfilm cartridge",
675 c : "Microfilm cassette",
676 d : "Microfilm reel",
678 f : "Microfiche cassette",
686 label : "Positive/negative",
687 values: { a : "Positive",
695 label : "Dimensions",
696 values: { a : "8 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.)",
711 label : "Reduction ratio range/Reduction ratio",
712 values: { a : "Low (1-16x)",
713 b : "Normal (16-30x)",
715 d : "Very high (61-90x)",
718 v : "Reduction ratio varies"
724 values: { b : "Black-and-white",
733 label : "Emulsion on film",
734 values: { a : "Silver halide",
738 n : "Not applicable",
745 label : "Quality assurance target(s)",
746 values: { a : "1st gen. master",
747 b : "Printing master",
749 m : "Mixed generation",
755 label : "Base of film",
756 values: { a : "Safety base, undetermined",
757 c : "Safety base, acetate undetermined",
758 d : "Safety base, diacetate",
761 n : "Not applicable",
762 p : "Safety base, polyester",
763 r : "Safety base, mixed",
764 t : "Safety base, triacetate",
772 label : "Motion Picture",
777 values: { a : "Film cartridge",
787 values: { b : "Black-and-white",
797 label : "Motion picture presentation format",
798 values: { a : "Standard sound aperture, reduced frame",
799 b : "Nonanamorphic (wide-screen)",
801 d : "Anamorphic (wide-screen)",
802 e : "Other-wide screen format",
803 f : "Standard. silent aperture, full frame",
810 label : "Sound on medium or separate",
811 values: { a : "Sound on medium",
812 b : "Sound separate from medium",
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",
823 e : "Magnetic audio tape on reel",
824 f : "Magnetic audio tape in cassette",
825 g : "Optical and magnetic sound track on film",
834 label : "Dimensions",
835 values: { a : "Standard 8 mm.",
836 b : "Super 8 mm./single 8 mm.",
848 label : "Configuration of playback channels",
849 values: { k : "Mixed",
851 n : "Not applicable",
852 q : "Multichannel, surround or quadraphonic",
860 label : "Production elements",
861 values: { a : "Work print",
866 f : "Title bands/inter-title rolls",
867 g : "Production rolls",
868 n : "Not applicable",
875 label : "Non-projected Graphic",
880 values: { c : "Collage",
883 f : "Photo-mechanical print",
888 l : "Technical drawing",
890 o : "Flash/activity card",
898 values: { a : "One color",
899 b : "Black-and-white",
909 label : "Primary support material",
910 values: { a : "Canvas",
912 c : "Cardboard/illustration board",
918 m : "Mixed collection",
931 label : "Secondary support material",
932 values: { a : "Canvas",
934 c : "Cardboard/illustration board",
940 m : "Mixed collection",
954 label : "Projected Graphic",
959 values: { c : "Film cartridge",
961 f : "Film filmstrip type",
962 o : "Filmstrip roll",
971 values: { b : "Black-and-white",
975 n : "Not applicable",
982 label : "Base of emulsion",
983 values: { d : "Glass",
986 k : "Film base, other than safety film",
987 m : "Mixed collection",
995 label : "Sound on medium or separate",
996 values: { a : "Sound on medium",
997 b : "Sound separate from medium",
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",
1008 e : "Magnetic audio tape on reel",
1009 f : "Magnetic audio tape in cassette",
1010 g : "Optical and magnetic sound track on film",
1019 label : "Dimensions",
1020 values: { a : "Standard 8 mm.",
1021 b : "Super 8 mm./single 8 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.)",
1041 label : "Secondary support material",
1042 values: { c : "Cardboard",
1046 j : "Metal and glass",
1047 k : "Synthetics and glass",
1048 m : "Mixed collection",
1056 label : "Remote-sensing Image",
1061 values: { u : "Unspecified" }
1065 label : "Altitude of sensor",
1066 values: { a : "Surface",
1069 n : "Not applicable",
1076 label : "Attitude of sensor",
1077 values: { a : "Low oblique",
1080 n : "Not applicable",
1086 label : "Cloud cover",
1087 values: { 0 : "0-09%",
1097 n : "Not applicable",
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",
1120 label : "Platform use category",
1121 values: { a : "Meteorological",
1122 b : "Surface observing",
1123 c : "Space observing",
1125 n : "Not applicable",
1132 label : "Sensor type",
1133 values: { a : "Active",
1141 label : "Data type",
1142 values: { nn : "Not applicable",
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)",
1181 sa : "Magnetic field",
1182 ta : "Radiometric surveys"
1188 label : "Sound Recording",
1193 values: { d : "Sound disc",
1195 g : "Sound cartridge",
1196 i : "Sound-track film",
1198 s : "Sound cassette",
1199 t : "Sound-tape reel",
1201 w : "Wire recording",
1208 values: { a : "16 rpm",
1228 label : "Configuration of playback channels",
1229 values: { m : "Monaural",
1238 label : "Groove width or pitch",
1239 values: { m : "Microgroove/fine",
1240 n : "Not applicable",
1241 s : "Coarse/standard",
1248 label : "Dimensions",
1249 values: { a : "3 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",
1266 label : "Tape width",
1267 values: { l : "1/8 in.",
1269 n : "Not applicable",
1278 label : "Tape configuration ",
1279 values: { a : "Full (1) track",
1280 b : "Half (2) track",
1281 c : "Quarter (4) track",
1285 n : "Not applicable",
1292 label : "Special playback",
1293 values: { a : "NAB standard",
1294 b : "CCIR standard",
1295 c : "Dolby-B encoded, standard Dolby",
1297 e : "Digital recording",
1298 f : "Dolby-A encoded",
1299 g : "Dolby-C encoded",
1301 n : "Not applicable",
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",
1320 label : "Tactile Material",
1325 values: { a : "Moon",
1328 d : "Tactile, with no writing system",
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",
1349 label : "Level of contraction",
1350 values: { a : "Uncontracted",
1353 n : "Not applicable",
1360 label : "Braille music format",
1361 values: { a : "Bar over bar",
1363 c : "Line over line",
1366 f : "Section by section",
1369 i : "Spanner short form scoring",
1370 j : "Short form scoring",
1372 l : "Vertical score",
1373 n : "Not applicable",
1380 label : "Special physical characteristics",
1381 values: { a : "Print/braille",
1382 b : "Jumbo or enlarged braille",
1383 n : "Not applicable",
1391 label : "Videorecording",
1396 values: { c : "Videocartridge",
1398 f : "Videocassette",
1407 values: { b : "Black-and-white",
1410 n : "Not applicable",
1417 label : "Videorecording format",
1418 values: { a : "Beta",
1440 label : "Sound on medium or separate",
1441 values: { a : "Sound on medium",
1442 b : "Sound separate from medium",
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",
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",
1464 label : "Dimensions",
1465 values: { a : "8 mm.",
1477 label : "Configuration of playback channel",
1478 values: { k : "Mixed",
1480 n : "Not applicable",
1481 q : "Multichannel, surround or quadraphonic",
1491 MARC.Record.prototype.recordType = function () {
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);
1496 for (var t in MARC.Record._recType) {
1497 if (_t.match(MARC.Record._recType[t].Type) && _b.match(MARC.Record._recType[t].BLvl)) {
1501 return 'BKS'; // default
1504 MARC.Record.prototype.videorecordingFormatName = function () {
1505 var _7 = this.field('007').data;
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
1513 return MARC.Record._physical_characteristics.v.subfields.e.values[ _v_e ];
1519 MARC.Record.prototype.videorecordingFormatCode = function () {
1520 var _7 = this.field('007').data;
1522 if (_7 && _7.match(/^v/)) {
1524 MARC.Record._physical_characteristics.v.subfields.e.start,
1525 MARC.Record._physical_characteristics.v.subfields.e.len
1532 MARC.Record.prototype.extractFixedField = function (field, dflt) {
1533 if (!MARC.Record._ff_pos[field]) return null;
1535 var _l = this.leader;
1536 var _8 = this.field('008').data;
1537 var _6 = this.field('006').data;
1539 var rtype = this.recordType();
1543 if (MARC.Record._ff_pos[field].ldr && _l) {
1544 if (MARC.Record._ff_pos[field].ldr[rtype]) {
1546 MARC.Record._ff_pos[field].ldr[rtype].start,
1547 MARC.Record._ff_pos[field].ldr[rtype].len
1550 } else if (MARC.Record._ff_pos[field]._8 && _8) {
1551 if (MARC.Record._ff_pos[field]._8[rtype]) {
1553 MARC.Record._ff_pos[field]._8[rtype].start,
1554 MARC.Record._ff_pos[field]._8[rtype].len
1559 if (!val && MARC.Record._ff_pos[field]._6 && _6) {
1560 if (MARC.Record._ff_pos[field]._6[rtype]) {
1562 MARC.Record._ff_pos[field]._6[rtype].start,
1563 MARC.Record._ff_pos[field]._6[rtype].len
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;
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;
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;
1588 for (var j = 0; j < MARC.Record._ff_pos[field][p][rtype].len; j++) {
1599 MARC.Record.prototype.setFixedField = function (field, value) {
1600 if (!MARC.Record._ff_pos[field]) return null;
1602 var _l = this.leader;
1603 var _8 = this.field('008').data;
1604 var _6 = this.field('006').data;
1606 var rtype = this.recordType();
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);
1614 _l.substring(0, MARC.Record._ff_pos[field].ldr[rtype].start) +
1617 MARC.Record._ff_pos[field].ldr[rtype].start
1618 + MARC.Record._ff_pos[field].ldr[rtype].len
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) +
1628 MARC.Record._ff_pos[field]._8[rtype].start
1629 + MARC.Record._ff_pos[field]._8[rtype].len
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) +
1642 MARC.Record._ff_pos[field]._6[rtype].start
1643 + MARC.Record._ff_pos[field]._6[rtype].len