// defining order strings
var alfString = "Alfisols: \"... soils that have an ochric epipedon, an argillic horizon, and moderate to high base saturation ...\"";
var andString = "Andisols: \"... soil developing in volcanic ejecta ... and/or in volcaniclastic materials, the colloidal fraction ... is dominated by short-range-order minerals or Al-humus complexes  ...\"";
var idString = "Aridisols: \"... based on limited soil moisture available for growth of most plants ... the moisture regime is aridic ... the dominant process is one of accumulation and concentration of weathering products ...\"";
var entString = "Entisols: \"... soils that have little or no evidence of the development of pedogenic horizons.  Most have ochric epipedon. Very few have an anthropic epipedon. A few that have a sandy or sandy-skeletal particle-size class have a horizon that woujld be a cambic horizon were it not for the particle-size class exclusion ... soil material is not in place long enough for pedogeic processes to form distinctive horizons ...\"";
var elString = "Gelisols: \"... soils with gelic materials underlain by permafrost.  Diagnostic horizons may or may not be present ... Cryoturbation is an important process in many Gelisols and results in irregular or broken horizons ...\"";
var histString = "Histosols: \"... soils forming in organic soil materials ... a soil without permafrost is classified as a Histosol if half or more of the upper 80 cm is organic ...\"";
var eptString = "Inceptisols: \"... soils that are of cool to very warm, humid and subhumid regions and that have a cambic horizon and an ochric epipedon ... In some areas Inceptisols are soils with minimal development, while in other areas they are soils with diagnostic horizons that merely fail the criteria of the other soil orders ...\"";
var ollString = "Mollisols: \"... commonly are the very dark colored, base-rich, mineral soils of the steppes.  Nearly all of these soils have a mollic epipedon.  Many also have an argillic, natric, or calcic horizon.  A few have an albic horizon.  Some also have duripan or a petrocalcic horizon ... Soils with permafrost and a mollic epipedon are Gelisols ...\"";
var oxString = "Oxisols: \"... weathered soils that are low in fertility.  They are most common on the gentle slopes of geologically old surfaces in tropical and subtropical regions.  Their profiles are distinctive because of a lack of obvious horizons ... Oxisols consist mainly of quartz, kaolinite, oxides and organic matter ...\"";
var odString = "Spodosols: \"... feature ... common to most Spodosols is the presence of a spodic horizon, in which amorphous mixtures of organic matter and aluminum, with or without iron, have accumulated.  The spodic horizon may be destroyed by cultivation, yet spodic materials may still be present ... Most spodosols have few clay-sized phyllosilicates.  The particle-size class is mostly sandy, sandy-skeletal, coarse-loamy, loamy-skeletal, or coarse-silty ...\"";
var ultString = "Ultisols: \"... soils that have an argillic or kandic horizon with low base saturation.  They may have any soil temperature regime and any moisture regime except aridic. There is more precipitation than evapotranspiration at some season, and some water moves through the soils and into a moist or wet substratum ...\"";
var ertString = "Vertisols: \" ... clayey soils that have deep, wide cracks for some time during the year and have slickensides within 100 cm of the mineral soil surface.  They shrink when dry and swell when moistened ...\"";
var orderStringArray = new Array(alfString,andString,idString,entString,elString,histString,
                                  eptString,ollString,oxString,odString,ultString,ertString);
// defining arrays of suborders
var Alfisols = new Array("Aqualfs","Cryalfs","Udalfs","Ustalfs","Xeralfs");
var Andisols = new Array("Aquands","Cryands","Torrands","Udands","Ustands","Vitrands","Xerands");
var Aridisols = new Array("Argids","Cambids","Calcids","Cryids","Durids","Gypsids","Salids");
var Entisols = new Array("Aquents","Arents","Fluvents","Orthents","Psamments");
var Gelisols = new Array("Histels","Orthels","Turbels");
var Histosols = new Array("Fibrists","Folists","Hemists","Saprists");
var Inceptisols = new Array("Anthrepts","Aquepts","Cryepts","Udepts","Ustepts","Xerepts");
var Mollisols = new Array("Albolls","Aquolls","Cryolls","Rendolls","Udolls","Ustolls","Xerolls");
var Oxisols = new Array("Aquox","Perox","Torrox","Udox","Ustox");
var Spodosols = new Array("Aquods","Cryods","Humods","Orthods");
var Ultisols = new Array("Aquults","Humults","Udults","Ustults","Xerults");
var Vertisols = new Array("Aquerts","Cryerts","Torrerts","Uderts","Usterts","Xererts");
// end of defining arrays of suborders

// defining arrays of great groups
   // Order Alfisols
var Aqualfs = new Array("Albaqualfs","Cryaqualfs","Duraqualfs","Plinthaqualfs","Natraqualfs","Fragiaqualfs",
                        "Kandiaqualfs","Vermaqualfs","Glossaqualfs","Epiaqualfs",
					    "Endoaqualfs");
var Cryalfs = new Array("Palecryalfs","Glossocryalfs","Haplocryalfs");
var Udalfs = new Array("Natrudalfs","Ferrudalfs","Fraglossudalfs","Fragiudalfs","Kandiudalfs",
                       "Kanhapludalfs","Paleudalfs","Rhodudalfs","Glossudalfs","Hapludalfs");
var Ustalfs = new Array("Durustalfs","Plinthustalfs","Natrustalfs","Kandiustalfs","Kanhaplustalfs",
                        "Paleustalfs","Rhodustalfs","Haplustalfs");
var Xeralfs = new Array("Durixeralfs","Natrixeralfs","Fragixeralfs","Plinthoxeralfs","Rhodoxeralfs",
                        "Palexeralfs","Haploxeralfs");
   // Order Andisols
var Aquands = new Array("Cryaquands","Placaquands","Duraquands","Vitraquands","Melanaquands",
                        "Epiaquands","Endoaquands");
var Cryands = new Array("Duricryands","Hydrocryands","Melanocryands","Fulvicryands","Vitricryands",
                        "Haplocryands");
var Torrands = new Array("Duritorrands","Vitritorrands","Haplotorrands");
var Udands = new Array("Placudands","Durudands","Melanudands","Hydrudands","Fulvudands",
                       "Hapludands");
var Ustands = new Array("Durustands","Haplustands");
var Vitrands = new Array("Ustivitrands","Udivitrands");
var Xerands = new Array("Vitrixerands","Melanoxerands","Haploxerands");
   // Order Aridisols
var Argids = new Array("Petroargids","Natrargids","Paleargids","Gypsiargids","Calciargids",
                       "Haplargids");
var Cambids = new Array("Aquicambids","Petrocambids","Anthracambids","Haplocambids");
var Calcids = new Array("Petrocalcids","Haplocalcids");
var Cryids = new Array("Salicryids","Petrocryids","Gypsicryids","Argicryids","Calcicryids",
                       "Haplocryids");
var Durids = new Array("Natridurids","Argidurids","Haplodurids");
var Gypsids = new Array("Petrogypsids","Natrigypsids","Argigypsids","Calcigypsids","Haplogypsids");
var Salids = new Array("Aquisalids","Haplosalids");
   // Order Entisols
var Aquents = new Array("Sulfaquents","Hydraquents","Cryaquents","Psammaquents","Fluvaquents",
                        "Epiaquents","Endoaquents");
var Arents = new Array("Ustarents","Xerarents","Torriarents","Udarents");
var Fluvents = new Array("Cryofluvents","Xerofluvents","Ustifluvents","Torrifluvents","Udifluvents");
var Orthents = new Array("Cryorthents","Torriorthents","Xerorthents","Ustorthents","Udorthents");
var Psamments = new Array("Cryopsamments","Torripsamments","Quartzipsamments","Ustipsamments",
                          "Xeropsamments","Udipsamments");
   // Order Gelisols
var Histels = new Array("Folistels","Glacistels","Fibristels","Hemistels","Sapristels");
var Turbels = new Array("Histoturbels","Aquiturbels","Anhyturbels","Molliturbels","Umbriturbels",
                        "Psammmoturbels","Haploturbels");
var Orthels = new Array("Historthels","Aquorthels","Anhyorthels","Mollorthels","Umbrorthels",
                        "Argiorthels","Psammorthels","Haplorthels");
   // Order Histosols
var Fibrists = new Array("Cryofibrists","Sphagnofibrists","Haplofibrists");
var Folists = new Array("Cryofolists","Torrifolists","Ustifolists","Udifolists");
var Hemists = new Array("Sulfohemists","Sulfihemists","Luvihemists","Cryohemists","Haplohemists");
var Saprists = new Array("Sulfosaprists","Sulfisaprists","Cryosaprists","Haplosaprists");
   // Order Inceptisol
var Anthrepts = new Array("Plagganthrepts","Haplanthrepts");
var Aquepts = new Array("Sulfaquepts","Petraquepts","Halaquepts","Fragiaquepts","Cryaquepts",
                        "Vermaquepts","Humaquepts","Epiaquepts","Endoaquepts");
var Cryepts = new Array("Eutrocryepts","Dystrocryepts");
var Ustepts = new Array("Durustepts","Calciustepts","Dystrustepts","Haplustepts");
var Xerepts = new Array("Durixerepts","Calcixerepts","Fragixerepts","Dystroxerepts","Haploxerepts");
var Udepts = new Array("Sulfudepts","Durudepts","Fragiudepts","Eutrudepts","Dystrudepts");
   // Order Mollisols
var Albolls = new Array("Natralbolls","Argialbolls");
var Aquolls = new Array("Cryaquolls","Duraquolls","Natraquolls","Calciaquolls","Argiaquolls",
                        "Epiaquolls","Endoaquolls");
var Cryolls = new Array("Duricryolls","Natricryolls","Palecryolls","Argicryolls","Calcicryolls",
                        "Haplocryolls");
var Rendolls = new Array("Cryrendolls","Haprendolls");
var Xerolls = new Array("Durixerolls","Natrixerolls","Palexerolls","Calcixerolls",
                        "Argixerolls","Haploxerolls");
var Ustolls = new Array("Durustolls","Natrustolls","Calciustolls","Paleustolls","Argiustolls",
                        "Vermustolls","Haplustolls");
var Udolls = new Array("Natrudolls","Calciudolls","Paleudolls","Argiudolls","Vermudolls","Hapludolls");
   // Order Oxisols
var Aquox = new Array("Acraquox","Plinthaquox","Eutraquox","Haplaquox");
var Perox = new Array("Sombriperox","Acroperox","Eutroperox","Kandiperox","Haploperox");
var Torrox = new Array("Acrotorrox","Eutrotorrox","Haplotorrox");
var Ustox = new Array("Sombriustox","Acrustox","Eutrustox","Kandiustox","Haplustox");
var Udox = new Array("Sombriudox","Acrudox","Eutrudox","Kandiudox","Hapludox");
   // Order Spodosols
var Aquods = new Array("Cryaquods","Alaquods","Fragiaquods","Placaquods","Duraquods",
                       "Epiaquods","Endoaquods");
var Cryods = new Array("Placocryods","Duricryods","Humicryods","Haplocryods");
var Humods = new Array("Placohumods","Durihumods","Fragihumods","Haplohumods");
var Orthods = new Array("Placorthods","Durorthods","Fragiorthods","Alorthods","Haplorthods");
   // Order Ultisols
var Aquults = new Array("Plinthaquults","Fragiaquults","Albaquults","Kandiaquults","Kanhaplaquults",
                        "Paleaquults","Umbraquults","Epiaquults","Endoaquults");
var Humults = new Array("Sombrihumults","Plinthohumults","Kandihumults","Kanhaplohumults",
                        "Palehumults","Haplohumults");
var Udults = new Array("Plinthudults","Fragiudults","Kandiudults","Kanhapludults","Paleudults",
                       "Rhodudults","Hapludults");
var Ustults = new Array("Plinthustults","Kandiustults","Kanhaplustults","Paleustults",
                        "Rhodustults","Haplustults");
var Xerults = new Array("Palexerults","Haploxerults");
   // Order Vertisols
var Aquerts = new Array("Salaquerts","Duraquerts","Natraquerts","Calciaquerts","Dystraquerts",
                        "Epiaquerts","Endoaquerts");
var Cryerts = new Array("Humicryerts","Haplocryerts");
var Xererts = new Array("Durixererts","Calcixererts","Haploxererts");
var Torrerts = new Array("Salitorrerts","Gypsitorrerts","Calcitorrerts","Haplotorrerts");
var Usterts = new Array("Dystrusterts","Salusterts","Gypsiusterts","Calciusterts","Haplusterts");
var Uderts = new Array("Dystruderts","Hapluderts");
// end of defining arrays of great groups

// defining arrays of subgroup modifiers
// Order Alfisols                                                                                                                                                                                                                                                                                    // defining arrays of subgroup modifiers
  // Suborder Aqualfs
var Cryaqualfs = new Array("Typic");
var Plinthaqualfs = new Array("Typic");
var Duraqualfs = new Array("Typic");
var Natraqualfs = new Array("Vertic","Vermic","Albic_Glossic","Albic","Glossic","Mollic","Typic");
var Fragiaqualfs = new Array("Vermic","Aeric","Plinthic","Humic","Typic");
var Kandiaqualfs = new Array("Arenic","Grossarenic","Plinthic","Aeric_Umbric","Aeric","Umbric","Typic");
var Albaqualfs = new Array("Arenic","Aeric_Vertic","Chromic_Vertic","Vertic","Udollic",
                           "Aeric","Aquandic","Mollic","Umbric","Typic");
var Glossaqualfs = new Array("Histic","Arenic","Aeric_Fragic","Fragic","Aeric","Mollic","Typic");
var Epiaqualfs = new Array("Aeric_Chromic","Vertic","Aeric_Vertic","Chromic_Vertic",
                           "Vertic","Aquandic","Aeric_Fragic","Fragic","Arenic","Grossarenic",
						   "Aeric_Umbric","Udollic","Aeric","Mollic","Umbric","Typic");
var Endoaqualfs = new Array("Aquandic","Chromic_Vertic","Vertic","Aeric_Fragic",
                            "Fragic","Arenic","Grossarenic","Udollic","Aeric_Umbric",
							"Aeric","Mollic","Umbric","Typic");
var Vermaqualfs = new Array("Natric","Typic");
  // Suborder Cryalfs
var Palecryalfs = new Array("Andic","Vitrandic","Aquic","Oxyaquic","Xeric",
                            "Ustic","Mollic","Umbric","Typic");
var Glossocryalfs = new Array("Lithic","Vertic","Andic","Vitrandic","Aquic",
                              "Oxyaquic","Fragic","Xerollic","Umbric_Xeric","Ustollic",
							  "Xeric","Ustic","Mollic","Umbric","Eutric","Typic");
var Haplocryalfs = new Array("Lithic","Vertic","Andic","Vitrandic","Aquic","Oxyaquic",
                             "Lamellic","Psammentic","Inceptic","Xerollic","Umbric_Xeric",
                             "Ustollic","Xeric","Ustic","Mollic","Umbric","Eutric","Typic");
  // Suborder Ustalfs
var Durustalfs = new Array("Typic");
var Plinthustalfs = new Array("Typic");
var Natrustalfs = new Array("Salidic","Leptic_Torrertic","Torrertic","Aquertic",
                            "Aridic_Leptic","Vertic","Aquic_Arenic","Aquic",
							"Arenic","Petrocalcic","Leptic","Haplargdic","Aridic","Mollic","Typic");
var Kandiustalfs = new Array("Grossarenic","Aquic_Arenic","Plinthic","Aquic","Arenic_Aridic",
                             "Arenic","Aridic","Udic","Rhodic","Typic");
var Kanhaplustalfs = new Array("Lithic","Aquic","Aridic","Udic","Rhodic","Typic");
var Paleustalfs = new Array("Aquertic","Oxyaquic_Vertic","Udertic","Vertic","Aquic_Arenic",
                            "Aquic","Oxyaquic","Lamellic","Psammentic","Arenic_Aridic",
						    "Grossarenic","Arenic","Plinthic","Petrocalcic","Calcidic",
						    "Aridic","Kandic","Rhodic","Ultic","Udic","Typic");
var Rhodustalfs = new Array("Lithic","Kanhaplic","Udic","Typic");
var Haplustalfs = new Array("Lithic","Aquertic","Oxyaquic_Vertic","Torrertic",
                            "Udertic","Vertic","Aquic_Arenic","Aquultic","Aquic",
                            "Oxyaquic","Vitrandic","Lamellic","Psammentic","Arenic_Aridic",
                            "Arenic","Calcidic","Aridic","Kanhaplic","Inceptic",
                            "Calcic_Udic","Ultic","Calcic","Udic","Typic");
  // Suborder Xeralfs
var Durixeralfs = new Array("Natric","Vertic","Aquic","Abruptic_Haplic","Abruptic","Haplic","Typic");
var Natrixeralfs = new Array("Vertic","Aquic","Typic");
var Fragixeralfs = new Array("Andic","Vitrandic","Mollic","Aquic","Inceptic","Typic");
var Plinthoxeralfs = new Array("Typic");
var Rhodoxeralfs = new Array("Lithic","Vertic","Petrocalcic","Calcic","Inceptic","Typic");
var Palexeralfs = new Array("Vertic","Aquandic","Andic","Vitrandic","Fragiaquic",
                            "Aquic","Petrocalcic","Lamellic","Psammentic","Arenic",
						    "Natric","Fragic","Calcic","Plinthic","Ultic","Haplic","Mollic","Typic");
var Haploxeralfs = new Array("Lithic_Mollic","Lithic_Ruptic_Inceptic","Lithic","Vertic","Aquandic",
                             "Andic","Vitrandic","Fragiaquic","Aquultic","Aquic",
							 "Natric","Fragic","Lamellic","Psammentic","Plinthic","Calcic","Inceptic",
						     "Ultic","Mollic","Typic");
  // Suborder Udalfs
var Natrudalfs = new Array("Vertic","Glossaquic","Aquic","Typic");
var Ferrudalfs = new Array("Aquic","Typic");
var Fraglossudalfs = new Array("Andic","Vitrandic","Aquic","Oxyaquic","Typic");
var Fragiudalfs = new Array("Andic","Vitrandic","Aquic","Oxyaquic","Typic");
var Kandiudalfs = new Array("Plinthaquic","Aquic","Oxyaquic","Arenic_Plinthic","Grossarenic_Plinthic",
                            "Arenic","Grossarenic","Plinthic","Rhodic","Mollic","Typic");
var Kanhapludalfs = new Array("Lithic","Aquic","Oxyaquic","Rhodic","Typic");
var Paleudalfs = new Array("Vertic","Andic","Vitrandic","Fragiaquic","Plinthaquic",
                           "Glossaquic","Albaquic","Aquic","Anthraquic","Oxyaquic","Fragic",
						   "Arenic_Plinthic","Grossarenic_Plinthic","Lamellic","Psammentic","Arenic",
						   "Grossarenic","Plinthic","Glossic","Rhodic","Mollic","Typic");
var Rhodudalfs = new Array("Typic");
var Glossudalfs = new Array("Aquertic","Oxyaquic_Vertic","Vertic","Aquandic","Andic",
                            "Vitrandic","Fragiaquic","Aquic","Oxyaquic","Fragic",
						    "Arenic","Haplic","Typic");
var Hapludalfs = new Array("Lithic","Aquertic_Chromic","Aquertic","Oxyaquic_Vertic","Chromic_Vertic",
                           "Vertic","Andic","Vitrandic","Fragiaquic","Fragic_Oxyaquic",
                           "Aquic_Arenic","Albaquultic","Albaquic","Glossaquic","Aquultic",
                           "Aquollic","Aquic","Anthraquic","Oxyaquic","Fragic",
                           "Lamellic","Psammentic","Arenic","Glossic","Inceptic",
						   "Ultic","Mollic","Typic");
//Order Andisols
  //suborder Aquands
var Cryaquands = new Array("Lithic","Histic","Thaptic","Typic");
var Placaquands = new Array("Lithic","Duric","Histic","Thaptic","Typic");
var Duraquands = new Array("Histic","Acraquoxic","Thaptic","Typic");
var Vitraquands = new Array("Lithic","Duric","Histic","Thaptic","Typic");
var Melanaquands = new Array("Lithic","Acraquoxic","Hydric_Pachic","Hydric","Pachic","Thaptic","Typic");
var Epiaquands = new Array("Duric","Histic","Alic","Hydric","Thaptic","Typic");
var Endoaquands = new Array("Lithic","Duric","Histic","Alic","Hydric","Thaptic","Typic");
  // suborder Cryands	
var Duricryands = new Array("Aquic","Typic");
var Hydrocryands = new Array("Lithic","Placic","Aquic","Thaptic","Typic");
var Melanocryands = new Array("Lithic","Vitric","Typic");
var Fulvicryands = new Array("Lithic","Pachic","Typic");
var Vitricryands = new Array("Lithic","Aquic","Oxyaquic","Thaptic","Humic_Xeric","Xeric","Ultic","Alfic","Humic","Typic");
var Haplocryands = new Array("Lithic","Alic","Aquic","Acrudoxic","Vitric","Thaptic","Xeric","Typic");
  //suborder Torrands	
var Duritorrands = new Array("Petrocalcic","Vitric","Typic");
var Vitritorrands = new Array("Lithic","Duric","Aquic","Calcic","Typic");
var Haplotorrands = new Array("Lithic","Duric","Calcic","Typic");
  //suborder Xerands
var Vitrixerands = new Array("Lithic","Aquic","Thaptic","Alfic_Humic","Ultic","Alfic","Humic","Typic");
var Melanoxerands = new Array("Pachic","Typic");
var Haploxerands = new Array("Lithic","Aquic","Thaptic","Calcic","Ultic","Alfic_Humic","Alfic","Humic","Typic");
  //suborder Vitrands
var Ustivitrands = new Array("Lithic","Aquic","Thaptic","Calcic","Humic","Typic");
var Udivitrands = new Array("Lithic","Aquic","Thaptic","Ultic","Alfic","Humic","Typic");
  //suborder Ustands
var Durustands = new Array("Aquic","Thaptic","Humic","Typic");
var Haplustands = new Array("Lithic","Aquic","Dystric_Vitric","Vitric","Pachic","Thaptic",
				"Calcic","Dystric","Oxic","Ultic","Alfic","Humic","Typic");
  //suborder Udands
var Placudands = new Array("Lithic","Aquic","Acrudoxic","Hydric","Typic");
var Durudands = new Array("Aquic","Acrudoxic","Hydric","Pachic","Typic");
var Melanudands = new Array("Lithic","Anthraquic","Aquic","Acrudoxic_Vitric","Acrudoxic_Hydric","Acrudoxic","Pachic_Vitric",
				"Vitric","Hydric_Pachic","Pachic","Hydric","Thaptic","Ultic","Eutric","Typic");
var Hydrudands = new Array("Lithic","Aquic","Acrudoxic_Thaptic","Acrudoxic","Thaptic","Eutric","Ultic","Typic");
var Fulvudands = new Array("Eutric_Lithic","Lithic","Aquic","Hydric","Acrudoxic","Ultic","Eutric_Pachic","Eutric","Pachic",
				"Thaptic","Typic");
var Hapludands = new Array("Lithic","Anthraquic","Aquic_Duric","Duric","Alic","Aquic","Acrudoxic_Hydric","Acrudoxic_Thaptic",
				"Acrudoxic_Ultic","Acrudoxic","Vitric","Hydric_Thaptic","Hydric","Eutric_Thaptic","Thaptic",
				"Eutric","Oxic","Ultic","Alfic","Typic");

// Order Aridisols
  //suborder Cryids
var Salicryids = new Array("Aquic","Typic");                                                                               
var Petrocryids = new Array("Xereptic","Duric_Xeric","Duric","Petrogypsic","Xeric","Ustic","Typic");
var Gypsicryids = new Array("Calcic","Vitrixerandic","Vitrandic","Typic");
var Argicryids = new Array("Lithic","Vertic","Natric","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
var Calcicryids = new Array("Lithic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
var Haplocryids = new Array("Lithic","Vertic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
  //suborder Salids
var Aquisalids = new Array("Gypsic","Calcic","Typic");
var Haplosalids = new Array("Duric","Petrogypsic","Gypsic","Calcic","Typic");
  //suborder Durids
var Natridurids = new Array("Vertic","Aquic_Natrargidic","Aquic","Natrixeralfic","Natrargidic","Vitrixerandic",
				"Vitrandic","Xeric","Typic");
var Argidurids = new Array("Vertic","Aquic","Abruptic_Xeric","Abruptic","Haploxeralfic","Argidic","Vitrixerandic",
				"Vitrandic","Xeric","Ustic","Typic");
var Haplodurids = new Array("Aquicambidic","Aquic","Xereptic","Cambidic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
  //suborder Gypsids
var Petrogypsids = new Array("Petrocalcic","Calcic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
var Natrigypsids = new Array("Lithic","Vertic","Petronodic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
var Argigypsids = new Array("Lithic","Vertic","Calcic","Petronodic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
var Calcigypsids = new Array("Lithic","Petronodic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
var Haplogypsids = new Array("Lithic","Leptic","Sodic","Petronodic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
  //suborder Argids
var Petroargids = new Array("Petrogypsic_Ustic","Petrogypsic","Duric_Xeric","Duric","Natric","Xeric","Ustic","Typic");
var Natrargids = new Array("Lithic_Xeric","Lithic_Ustic","Lithic","Vertic","Aquic","Durinodic_Xeric","Durinodic","Petronodic",
				"Glossic_Ustic","Haplic_Ustic","Haploxeralfic","Haplic","Vitrixerandic","Vitrandic",
				"Xeric","Ustic","Glossic","Typic");
var Paleargids = new Array("Vertic","Aquic","Arenic_Ustic","Arenic","Calcic","Durinodic_Xeric","Durinodic","Petronodic_Ustic",
				"Petronodic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
var Gypsiargids = new Array("Aquic","Durinodic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
var Calciargids = new Array("Lithic","Xerertic","Ustertic","Vertic","Aquic","Arenic_Ustic","Arenic","Durinodic_Xeric",
				"Durinodic","Petronodic_Xeric","Petronodic_Ustic","Petronodic","Vitrixerandic","Vitrandic",
				"Xeric","Ustic","Typic");
var Haplargids = new Array("Lithic_Ruptic_Entic","Lithic_Xeric","Lithic_Ustic","Lithic","Xerertic","Ustertic","Vertic",
				"Aquic","Arenic_Ustic","Arenic","Durinodic_Xeric","Durinodic","Petronodic_Ustic",
				"Petronodic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
  //suborder Calcids
var Petrocalcids = new Array("Aquic","Natric","Xeralfic","Ustalfic","Argic","Calcic_Lithic","Calcic","Xeric","Ustic","Typic");
var Haplocalcids = new Array("Lithic_Xeric","Lithic_Ustic","Lithic","Vertic","Aquic_Durinodic","Aquic","Duric_Xeric",
				"Duric","Durinodic_Xeric","Durinodic","Petronodic_Xeric","Petronodic_Ustic","Petronodic",
				"Sodic_Xeric","Sodic_Ustic","Sodic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
  //suborder Cambids
var Aquicambids  = new Array("Sodic","Durinodic_Xeric","Durinodic","Petronodic","Vitrixerandic","Vitrandic","Fluventic",
				"Xeric","Ustic","Typic");
var Petrocambids = new Array("Sodic","Vitrixerandic","Vitrandic","Xeric","Ustic","Typic");
var Anthracambids = new Array("Typic");
var Haplocambids = new Array("Lithic_Xeric","Lithic_Ustic","Lithic","Xerertic","Ustertic","Vertic","Durinodic_Xeric",
				"Durinodic","Petronodic_Xeric","Petronodic_Ustic","Petronodic","Sodic_Xeric","Sodic_Ustic",
				"Sodic","Vitrixerandic","Vitrandic","Xerofluventic","Ustifluventic","Fluventic","Xeric",
				"Ustic","Typic");

// Order Entisols
  //suborder Aquents
var Sulfaquents = new Array("Haplic","Histic","Thapto_Histic","Typic");
var Hydraquents = new Array("Sulfic","Sodic","Thaptic_Histic","Typic");
var Cryaquents = new Array("Aquandic","Typic");
var Psammaquents = new Array("Lithic","Sodic","Spodic","Humaqueptic","Mollic","Typic");
var Fluvaquents = new Array("Sulfic","Vertic","Thapto_Histic","Aquandic","Aeric","Humaqueptic","Mollic","Typic");
var Epiaquents = new Array("Aeric","Humaqueptic","Mollic","Typic");
var Endoaquents = new Array("Sulfic","Lithic","Sodic","Aeric","Humaqueptic","Mollic","Typic");
  //suborder Arents
var Ustarents = new Array("Haplic");
var Xerarents = new Array("Sodic","Duric","Alfic","Haplic");
var Torriarents = new Array("Sodic","Duric","Haplic");
var Udarents = new Array("Alfic","Ultic","Mollic","Haplic");
  //suborder Psamments
var Cryopsamments = new Array("Lithic","Aquic","Oxyaquic","Vitrandic","Spodic","Lamellic","Typic");
var Torripsamments = new Array("Lithic","Vitrandic","Haploduridic","Ustic","Xeric","Rhodic","Typic");
var Quartzipsamments = new Array("Lithic","Aquodic","Aquic","Oxyaquic","Ustoxic","Udoxic","Plinthic","Lamellic_Ustic",
				"Lamellic","Ustic","Xeric","Spodic","Typic");
var Ustipsamments = new Array("Lithic","Aquic","Oxyaquic","Aridic","Lamellic","Rhodic","Typic");
var Xeropsamments = new Array("Lithic","Aquic_Durinodic","Aquic","Oxyaquic","Vitrandic","Durinodic","Lamellic","Dystric","Typic");
var Udipsamments = new Array("Lithic","Aquic","Oxyaquic","Spodic","Lamellic","Plagganthreptic","Typic");
  //suborder Fluvents
var Cryofluvents = new Array("Andic","Vitrandic","Aquic","Oxyaquic","Mollic","Typic");
var Xerofluvents = new Array("Vertic","Aquandic","Andic","Vitrandic","Aquic","Oxyaquic","Durinodic","Mollic","Typic");
var Ustifluvents = new Array("Aquertic","Torrertic","Vertic","Anthraquic","Aquic","Oxyaquic","Aridic","Udic","Mollic","Typic");
var Torrifluvents = new Array("Ustertic","Vertic","Vitrixerandic","Vitrandic","Aquic","Oxyaquic","Duric_Xeric","Duric",
				"Ustic","Xeric","Anthropic","Typic");
var Udifluvents = new Array("Aquertic","Vertic","Andic","Vitrandic","Aquic","Oxyaquic","Mollic","Typic");
  //suborder Orthents
var Cryorthents = new Array("Lithic","Vitrandic","Aquic","Oxyaquic","Lamellic","Typic");
var Torriorthents = new Array("Lithic_Ustic","Lithic_Xeric","Lithic","Xerertic","Ustertic","Vertic","Vitrandic","Aquic",
				"Oxyaquic","Duric","Ustic","Xeric","Typic");
var Xerorthents = new Array("Lithic","Vitrandic","Aquic","Oxyaquic","Durinodic","Dystric","Typic");
var Ustorthents = new Array("Aridic_Lithic","Lithic","Torrertic","Vertic","Anthraquic","Aquic","Oxyaquic","Durinodic",
				"Vitritorrandic","Vitrandic","Aridic","Udic","Vermic","Typic");
var Udorthents = new Array("Lithic","Vitrandic","Aquic","Oxyaquic","Vermic","Typic");

// Order Gelisols
  //suborder Histels
var Folistels = new Array("Lithic","Glacic","Typic");
var Glacistels = new Array("Hemic","Sapric","Typic");
var Fibristels = new Array("Lithic","Terric","Fluvaquentic","Sphagnic","Typic");
var Hemistels = new Array("Lithic","Terric","Fluvaquentic","Typic");
var Sapristels = new Array("Lithic","Terric","Fluvaquentic","Typic");
  //suborder Turbels
var Histoturbels = new Array("Lithic","Glacic","Ruptic","Typic");
var Aquiturbels = new Array("Lithic","Glacic","Sulfuric","Ruptic_Histic","Psammentic","Typic");
var Anhyturbels = new Array("Lithic","Glacic","Petrogypsic","Gypsic","Nitric","Salic","Calcic","Typic");
var Molliturbels = new Array("Lithic","Glacic","Vertic","Andic","Vitrandic","Cumulic","Aquic","Typic");
var Umbriturbels = new Array("Lithic","Glacic","Vertic","Andic","Vitrandic","Cumulic","Aquic","Typic");
var Psammoturbels = new Array("Lithic","Glacic","Spodic","Typic");
var Haploturbels = new Array("Lithic","Glacic","Aquic","Typic");
  //suborder Orthels
var Historthels = new Array("Lithic","Glacic","Ruptic","Typic");
var Aquorthels = new Array("Lithic","Glacic","Sulfuric","Ruptic_Histic","Andic","Vitrandic","Salic","Psammentic","Typic");
var Anhyorthels = new Array("Lithic","Glacic","Petrogypsic","Gypsic","Nitric","Salic","Calcic","Typic");
var Mollorthels = new Array("Lithic","Glacic","Vertic","Andic","Vitrandic","Cumulic","Aquic","Typic");
var Umbrorthels = new Array("Lithic","Glacic","Vertic","Andic","Vitrandic","Cumulic","Aquic","Typic");
var Argiorthels = new Array("Lithic","Glacic","Natric","Typic");
var Psammorthels = new Array("Lithic","Glacic","Spodic","Typic");
var Haplorthels = new Array("Lithic","Glacic","Aquic","Typic");

// Order Histosols
  //suborder Folists
var Cryofolists = new Array("Lithic","Typic");
var Torrifolists = new Array("Lithic","Typic");
var Ustifolists = new Array("Lithic","Typic");
var Udifolists = new Array("Lithic","Typic");
  //suborder Fibrists
var Cryofibrists = new Array("Hydric","Lithic","Terric","Fluvaquentic","Sphagnic","Typic");
var Sphagnofibrists = new Array("Hydric","Lithic","Limnic","Terric","Fluvaquentic","Hemic","Typic");
var Haplofibrists = new Array("Hydric","Lithic","Limnic","Terric","Fluvaquentic","Hemic","Typic");
  //suborder Saprists
var Sulfosaprists = new Array("Typic");
var Sulfisaprists = new Array("Terric","Typic");
var Cryosaprists = new Array("Lithic","Terric","Fluvaquentic","Typic");
var Haplosaprists = new Array("Lithic","Limnic","Halic_Terric","Halic","Terric","Fluvaquentic","Hemic","Typic");
  //suborder Hemists
var Sulfohemists = new Array("Typic");
var Sulfihemists = new Array("Terric","Typic");
var Luvihemists = new Array("Typic");
var Cryohemists = new Array("Hydric","Lithic","Terric","Fluvaquentic","Typic");
var Haplohemists = new Array("Hydric","Lithic","Limnic","Terric","Fluvaquentic","Fibric","Sapric","Typic");

// Order Inceptisols
  //suborder Aquepts
var Sulfaquepts = new Array("Salidic","Hydraquentic","Typic");
var Petraquepts = new Array("Histic_Placic","Placic","Plinthic","Typic");
var Halaquepts = new Array("Vertic","Aquandic","Duric","Aeric","Typic");
var Fragiaquepts = new Array("Aeric","Humic","Typic");
var Cryaquepts = new Array("Sulfic","Histic_Lithic","Lithic","Vertic","Histic","Aquandic","Fluvaquentic","Aeric_Humic",
				"Aeric","Humic","Typic");
var Vermaquepts = new Array("Sodic","Typic");
var Humaquepts = new Array("Hydraquentic","Histic","Aquandic","Cumulic","Fluvaquentic","Aeric","Typic");
var Epiaquepts = new Array("Vertic","Aquandic","Fluvaquentic","Fragic","Aeric","Humic","Mollic","Typic");
var Endoaquepts = new Array("Sulfic","Lithic","Vertic","Aquandic","Fluvaquentic","Fragic","Aeric","Humic","Mollic","Typic");
  //suborder Anthrepts
var Plagganthrepts = new Array("Typic");
var Haplanthrepts = new Array("Typic");
  //suborder Cryepts
var Eutrocryepts = new Array("Humic_Lithic","Lithic","Andic","Vitrandic","Aquic","Oxyaquic","Lamellic","Xeric","Ustic",
				"Humic","Typic");
var Dystrocryepts = new Array("Humic_Lithic","Lithic","Andic","Vitrandic","Aquic","Oxyaquic","Lamellic","Spodic","Xeric",
				"Ustic","Humic","Typic");
  //suborder Ustepts
var Durustepts = new Array("Typic");
var Calciustepts = new Array("Lithic_Petrocalcic","Lithic","Torrertic","Vertic","Petrocalcic","Gypsic","Aquic","Aridic","Udic","Typic");
var Dystrustepts = new Array("Lithic","Andic","Vitrandic","Aquic","Fluventic","Oxic","Humic","Typic");
var Haplustepts = new Array("Aridic_Lithic","Lithic","Udertic","Torrertic","Vertic","Andic","Vitrandic","Anthraquic",
				"Aquic","Oxyaquic","Oxic","Lamellic","Torrifluventic","Udifluventic","Fluventic","Gypsic",
				"Haplocalcidic","Calcic_Udic","Calcic","Aridic","Dystric","Udic","Typic");
  //suborder Xerepts
var Durixerepts = new Array("Aquandic","Andic","Vitrandic","Aquic","Entic","Typic");
var Calcixerepts = new Array("Lithic","Vertic","Petrocalcic","Sodic","Vitrandic","Aquic","Typic");
var Fragixerepts = new Array("Andic","Vitrandic","Aquic","Humic","Typic");
var Dystroxerepts = new Array("Humic_Lithic","Lithic","Aquandic","Andic","Vitrandic","Fragiaquic","Fluvaquentic","Aquic",
				"Oxyaquic","Fragic","Fluventic_Humic","Fluventic","Humic","Typic");
var Haploxerepts = new Array("Humic_Lithic","Lithic","Vertic","Aquandic","Andic","Vitrandic","Gypsic","Aquic","Lamellic",
				"Fragic","Fluventic","Calcic","Humic","Typic");
  //suborder Udepts
var Sulfudepts = new Array("Typic");
var Durudepts = new Array("Aquandic","Andic","Vitrandic","Aquic","Typic");
var Fragiudepts = new Array("Andic","Vitrandic","Aquic","Humic","Typic");
var Eutrudepts = new Array("Humic_Lithic","Lithic","Aquertic","Vertic","Andic","Vitrandic","Anthraquic","Fragiaquic","Fluvaquentic",
				"Aquic_Dystric","Aquic","Oxyaquic","Fragic","Lamellic","Dystric_Fluventic","Fluventic",
				"Arenic","Dystric","Rendollic","Humic","Ruptic_Alfic","Typic");
var Dystrudepts = new Array("Humic_Lithic","Lithic","Vertic","Aquandic","Andic","Vitrandic","Fragiaquic","Fluvaquentic",
				"Aquic_Humic","Aquic","Oxyaquic","Fragic","Lamellic","Humic_Psammentic","Fluventic_Humic",
				"Fluventic","Spodic","Oxic","Humic_Pachic","Humic","Ruptic_Alfic","Ruptic_Ultic","Typic");

// Order Mollisols  
  //suborder Albolls
var Natralbolls = new Array("Leptic","Typic");
var Argialbolls = new Array("Xerertic","Vertic","Argiaquic_Xeric","Argiaquic","Xeric","Aquandic","Typic");
  //suborder Aquolls
var Cryaquolls = new Array("Vertic","Histic","Thapto_Histic","Aquandic","Argic","Calcic","Cumulic","Typic");
var Duraquolls = new Array("Natric","Vertic","Argic","Typic");
var Natraquolls = new Array("Vertic","Typic");
var Calciaquolls = new Array("Petrocalcic","Aeric","Typic");
var Argiaquolls = new Array("Arenic","Grossarenic","Vertic","Abruptic","Typic");
var Epiaquolls = new Array("Cumulic_Vertic","Fluvaquentic_Vertic","Vertic","Histic","Thapto_Histic","Aquandic","Duric",
				"Cumulic","Fluvaquentic","Typic");
var Endoaquolls = new Array("Lithic","Cumulic_Vertic","Fluvaquentic_Vertic","Vertic","Histic","Thapto_Histic","Aquandic",
				"Duric","Cumulic","Fluvaquentic","Typic");
  //suborder Rendolls
var Cryrendolls = new Array("Lithic","Typic");
var Haprendolls = new Array("Lithic","Vertic","Inceptic","Entic","Typic");
  //suborder Cryolls
var Duricryolls = new Array("Argic","Typic");
var Natricryolls = new Array("Typic");
var Palecryolls = new Array("Aquic","Oxyaquic","Abruptic","Pachic","Ustic","Xeric","Typic");
var Argicryolls = new Array("Lithic","Vertic","Andic","Vitrandic","Abruptic","Aquic","Oxyaquic","Pachic","Alfic","Ustic",
				"Xeric","Typic");
var Calcicryolls = new Array("Lithic","Petrocalcic","Pachic","Ustic","Xeric","Typic");
var Haplocryolls = new Array("Lithic","Vertic","Andic","Vitrandic","Aquic_Cumulic","Cumulic","Fluvaquentic","Aquic","Oxyaquic",
				"Calcic_Pachic","Pachic","Fluventic","Calcic","Ustic","Xeric","Typic");
  //suborder Xerolls
var Durixerolls = new Array("Vertic","Vitritorrandic","Vitrandic","Aquic","Paleargidic","Abruptic_Argiduridic","Cambidic",
				"Haploduridic","Argidic","Argiduridic","Haplic_Palexerollic","Palexerollic","Haplic_Haploxerollic",
				"Haploxerollic","Haplic","Typic");
var Natrixerolls = new Array("Vertic","Aquic_Duric","Aquic","Aridic","Duric","Typic");
var Palexerolls = new Array("Vertic","Vitrandic","Aquic","Pachic","Petrocalcidic","Duric","Aridic","Petrocalcic","Ultic",
				"Haplic","Typic");
var Calcixerolls = new Array("Lithic","Vertic","Aquic","Oxyaquic","Pachic","Vitrandic","Aridic","Vermic","Typic");
var Argixerolls = new Array("Lithic_Ultic","Lithic","Torrertic","Vertic","Andic","Vitritorrandic","Vitrandic","Aquultic",
				"Aquic","Oxyaquic","Alfic","Calcic_Pachic","Pachic_Ultic","Pachic","Argiduridic","Duric",
				"Calciargidic","Aridic","Calcic","Ultic","Typic");
var Haploxerolls = new Array("Lithic_Ultic","Lithic","Torrertic","Vertic","Vitritorrandic","Vitrandic","Aquic_Cumulic",
				"Cumulic_Ultic","Cumulic","Fluvaquentic","Aquic_Duric","Aquultic","Aquic","Oxyaquic",
				"Calcic_Pachic","Pachic_Ultic","Pachic","Torrifluventic","Duridic","Calcidic","Torripsammentic",
				"Torriorthentic","Aridic","Duric","Psammentic","Fluventic","Vermic","Calcic","Entic_Ultic",
				"Ultic","Entic","Typic");
  //suborder Ustolls
var Durustolls = new Array("Natric","Haploduridic","Argiduridic","Entic","Haplic","Typic");
var Natrustolls = new Array("Leptic_Torrertic","Torrertic","Leptic_Vertic","Glossic_Vertic","Vertic","Aridic_Leptic","Leptic",
				"Aquic","Aridic","Duric","Glossic","Typic");
var Calciustolls = new Array("Salidic","Lithic_Petrocalcic","Lithic","Torrertic","Udertic","Vertic","Petrocalcic","Gypsic",
				"Pachic","Aquic","Oxyaquic","Aridic","Udic","Typic");
var Paleustolls = new Array("Torrertic","Udertic","Vertic","Pachic","Aquic","Petrocalcic","Calcidic","Aridic","Udic","Calcic",
				"Entic","Typic");
var Argiustolls = new Array("Aridic_Lithic","Alfic_Lithic","Lithic","Torrertic","Udertic","Vertic","Andic","Vitritorrandic",
				"Vitrandic","Pachic","Aquic","Oxyaquic","Alfic","Calcidic","Aridic","Udic","Duric","Typic");
var Vermustolls = new Array("Lithic","Aquic","Pachic","Entic","Typic");
var Haplustolls = new Array("Salidic","Ruptic_Lithic","Lithic","Torrertic","Pachic_Udertic","Udertic","Vertic","Torroxic",
				"Oxic","Andic","Vitritorrandic","Vitrandic","Aquic_Cumulic","Cumulic","Anthraquic",
				"Fluvaquentic","Pachic","Aquic","Oxyaquic","Torrifluventic","Torriorthentic","Aridic",
				"Fluventic","Duric","Udorthentic","Udic","Entic","Typic");
  //suborder Udolls
var Natrudolls = new Array("Petrocalcic","Leptic_Vertic","Glossic_Vertic","Vertic","Leptic","Glossic","Calcic","Typic");
var Calciudolls = new Array("Lithic","Vertic","Aquic","Fluventic","Typic");
var Paleudolls = new Array("Vertic","Petrocalcic","Aquic","Pachic","Oxyaquic","Calcic","Typic");
var Argiudolls = new Array("Lithic","Aquertic","Oxyaquic_Vertic","Pachic_Vertic","Alfic_Vertic","Vertic","Andic","Vitrandic",
				"Aquic","Pachic","Oxyaquic","Lamellic","Psammentic","Arenic","Abruptic","Alfic","Oxic",
				"Calcic","Typic");
var Vermudolls = new Array("Lithic","Haplic","Typic");
var Hapludolls = new Array("Lithic","Aquertic","Vertic","Andic","Vitrandic","Aquic_Cumulic","Cumulic","Fluvaquentic","Aquic",
				"Pachic","Oxyaquic","Fluventic","Vermic","Calcic","Entic","Typic");

// Order Oxisols
  //suborder Aquox
var Acraquox = new Array("Plinthic","Aeric","Typic");
var Plinthaquox = new Array("Aeric","Typic");
var Eutraquox = new Array("Histic","Plinthic","Aeric","Humic","Typic");
var Haplaquox = new Array("Histic","Plinthic","Aeric","Humic","Typic");
  //suborder Torrox
var Acrotorrox = new Array("Petroferric","Lithic","Typic");
var Eutrotorrox = new Array("Petroferric","Lithic","Typic");
var Haplotorrox = new Array("Petroferric","Lithic","Typic");
  //suborder Ustox
var Sombriustox = new Array("Petroferric","Lithic","Humic","Typic");
var Acrustox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Anionic_Aquic","Anionic","Plinthic",
				"Aquic","Eutric","Humic_Rhodic","Humic_Xanthic","Humic","Rhodic","Xanthic","Typic");
var Eutrustox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Plinthaquic","Plinthic","Aquic",
				"Kandiustalfic","Humic_Inceptic","Inceptic","Humic_Rhodic","Humic_Xanthic","Humic","Rhodic",
				"Xanthic","Typic");
var Kandiustox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Plinthaquic","Plinthic","Aquic",
				"Humic_Rhodic","Humic_Xanthic","Humic","Rhodic","Xanthic","Typic");
var Haplustox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Plinthaquic","Plinthic","Aqueptic",
				"Aquic","Oxyaquic","Inceptic","Humic_Rhodic","Humic_Xanthic","Humic","Rhodic","Xanthic",
				"Typic");
  //suborder Perox
var Sombriperox = new Array("Petroferric","Lithic","Humic","Typic");
var Acroperox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Anionic","Plinthic","Aquic",
				"Humic_Rhodic","Humic_Xanthic","Humic","Rhodic","Xanthic","Typic");
var Eutroperox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Plinthaquic","Plinthic","Aquic",
				"Kandiudalfic","Humic_Inceptic","Inceptic","Humic_Rhodic","Humic_Xanthic","Humic","Rhodic",
				"Xanthic","Typic");
var Kandiperox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Plinthaquic","Plinthic","Aquic",
				"Andic","Humic_Rhodic","Humic_Xanthic","Humic","Rhodic","Xanthic","Typic");
var Haploperox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Plinthaquic","Plinthic","Aquic",
				"Andic","Humic_Rhodic","Humic_Xanthic","Humic","Rhodic","Xanthic","Typic");
  //suborder Udox
var Sombriudox = new Array("Petroferric","Lithic","Humic","Typic");
var Acrudox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Anionic_Aquic","Anionic","Plinthic",
				"Aquic","Eutric","Humic_Rhodic","Humic_Xanthic","Humic","Rhodic","Xanthic","Typic");
var Eutrudox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Plinthaquic","Plinthic",
				"Aquic","Kandiudalfic","Humic_Inceptic","Inceptic","Humic_Rhodic","Humic_Xanthic","Humic",
				"Rhodic","Xanthic","Typic");
var Kandiudox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Plinthaquic","Plinthic",
				"Aquic","Andic","Humic_Rhodic","Humic_Xanthic","Humic","Rhodic","Xanthic","Typic");
var Hapludox = new Array("Aquic_Petroferric","Petroferric","Aquic_Lithic","Lithic","Plinthaquic","Plinthic",
				"Aquic","Inceptic","Andic","Humic_Rhodic","Humic_Xanthic","Humic","Rhodic","Xanthic","Typic");

// Order Spodosols
  //suborder Aquods
var Cryaquods = new Array("Lithic","Placic","Duric","Andic","Entic","Typic");
var Alaquods = new Array("Lithic","Duric","Histic","Alfic_Arenic","Arenic_Ultic","Arenic_Umbric","Arenic","Grossarenic",
				"Alfic","Ultic","Aeric","Typic");
var Fragiaquods = new Array("Histic","Plagganthreptic","Argic","Typic");
var Placaquods = new Array("Andic","Typic");
var Duraquods = new Array("Histic","Andic","Typic");
var Epiaquods = new Array("Lithic","Histic","Andic","Alfic","Ultic","Umbric","Typic");
var Endoaquods = new Array("Lithic","Histic","Andic","Argic","Umbric","Typic");
  //suborder Cryods
var Placocryods = new Array("Andic","Humic","Typic");
var Duricryods = new Array("Aquandic","Andic","Aquic","Oxyaquic","Humic","Typic");
var Humicryods = new Array("Lithic","Aquandic","Andic","Aquic","Oxyaquic","Typic");
var Haplocryods = new Array("Lithic","Aquandic","Andic","Aquic","Oxyaquic","Entic","Typic");
 //suborder Humods
var Placohumods = new Array("Andic","Typic");
var Durihumods = new Array("Andic","Typic");
var Fragihumods = new Array("Typic");
var Haplohumods = new Array("Lithic","Andic","Plagganthreptic","Typic");
  //suborder Orthods
var Placorthods = new Array("Typic");
var Durorthods = new Array("Andic","Typic");
var Fragiorthods = new Array("Aquic","Alfic_Oxyaquic","Oxyaquic","Plagganthreptic","Alfic","Ultic","Entic","Typic");
var Alorthods = new Array("Oxyaquic","Arenic_Ultic","Arenic","Entic_Grossarenic","Entic","Grossarenic","Plagganthreptic",
				"Alfic","Ultic","Typic");
var Haplorthods = new Array("Entic_Lithic","Lithic","Fragiaquic","Aqualfic","Aquentic","Aquic","Alfic_Oxyaquic",
				"Oxyaquic_Ultic","Fragic","Lamellic","Oxyaquic","Andic","Alfic","Ultic","Entic","Typic");

// Order Ultisols
  //suborder Aquults
var Plinthaquults = new Array("Kandic","Typic");
var Fragiaquults = new Array("Aeric","Plinthic","Umbric","Typic");
var Albaquults = new Array("Vertic","Kandic","Aeric","Typic");
var Kandiaquults = new Array("Acraquoxic","Arenic_Plinthic","Arenic_Umbric","Arenic","Grossarenic","Plinthic","Aeric",
				"Umbric","Typic");
var Kanhaplaquults = new Array("Aquandic","Plinthic","Aeric_Umbric","Aeric","Umbric","Typic");
var Paleaquults = new Array("Vertic","Arenic_Plinthic","Arenic_Umbric","Arenic","Grossarenic","Plinthic","Aeric","Umbric",
				"Typic");
var Umbraquults = new Array("Plinthic","Typic");
var Epiaquults = new Array("Vertic","Aeric_Fragic","Arenic","Grossarenic","Fragic","Aeric","Typic");
var Endoaquults = new Array("Arenic","Grossarenic","Aeric","Typic");
  //suborder Humults
var Sombrihumults = new Array("Typic");
var Plinthohumults = new Array("Typic");
var Kandihumults = new Array("Andic_Ombroaquic","Ustandic","Andic","Aquic","Ombroaquic","Plinthic","Ustic","Xeric",
				"Anthropic","Typic");
var Kanhaplohumults = new Array("Lithic","Ustandic","Andic","Aquic","Ombroaquic","Ustic","Xeric","Anthropic","Typic");
var Palehumults = new Array("Aquandic","Andic","Aquic","Plinthic","Oxyaquic","Ustic","Xeric","Typic");
var Haplohumults = new Array("Lithic","Aquandic","Aquic","Andic","Plinthic","Oxyaquic","Ustic","Xeric","Typic");
  //suborder Udults
var Plinthudults = new Array("Typic");
var Fragiudults = new Array("Arenic","Plinthaquic","Glossaquic","Aquic","Plinthic","Glossic","Humic","Typic");
var Kandiudults = new Array("Arenic","Plinthaquic","Aquic_Arenic","Arenic_Plinthic","Arenic_Rhodic","Arenic",
				"Grossarenic_Plinthic","Grossarenic","Acrudoxic_Plinthic","Acrudoxic","Plinthaquic","Aquandic",
				"Andic","Aquic","Plinthic","Ombroaquic","Oxyaquic","Sombric","Rhodic","Typic");
var Kanhapludults = new Array("Lithic","Plinthaquic","Arenic_Plinthic","Arenic","Acrudoxic","Fragiaquic","Andic","Aquic",
				"Ombroaquic","Oxyaquic","Plinthic","Fragic","Rhodic","Typic");
var Paleudults = new Array("Vertic","Spodic","Arenic_Plinthaquic","Aquic_Arenic","Plinthaquic","Fragiaquic","Aquic",
				"Anthraquic","Oxyaquic","Lamellic","Arenic_Plinthic","Psammentic","Grossarenic_Plinthic",
				"Plinthic","Arenic_Rhodic","Arenic","Grossarenic","Fragic","Rhodic","Typic");
var Rhodudults = new Array("Lithic","Psammentic","Typic");
var Hapludults = new Array("Lithic_Ruptic_Entic","Lithic","Vertic","Fragiaquic","Aquic_Arenic","Aquic","Fragic","Oxyaquic",
				"Lamellic","Psammentic","Arenic","Grossarenic","Inceptic","Humic","Typic");
  //suborder Ustults
var Plinthustults = new Array("Haplic","Typic");
var Kandiustults = new Array("Acrustoxic","Aquic","Arenic_Plinthic","Arenic","Udandic","Andic","Plinthic","Aridic","Udic",
				"Rhodic","Typic");
var Kanhaplustults = new Array("Lithic","Acrustoxic","Aquic","Arenic","Udandic","Andic","Plinthic","Ombroaquic","Aridic",
				"Udic","Rhodic","Typic");
var Paleustults = new Array("Typic");
var Rhodustults = new Array("Lithic","Psammentic","Typic");
var Haplustults = new Array("Lithic","Petroferric","Aquic","Arenic","Ombroaquic","Plinthic","Kanhaplic","Typic");
  //suborder Xerults
var Palexerults = new Array("Aquandic","Aquic","Andic","Typic");
var Haploxerults = new Array("Lithic_Ruptic_Inceptic","Lithic","Aquic","Andic","Lamellic","Psammentic","Arenic",
				"Grossarenic","Typic");

// Order Vertisols
  //suborder Aquerts
var Salaquerts = new Array("Aridic","Ustic","Leptic","Entic","Chromic","Typic");
var Duraquerts = new Array("Aridic","Xeric","Ustic","Aeric","Chromic","Typic");
var Natraquerts = new Array("Typic");
var Calciaquerts = new Array("Aeric","Typic");
var Dystraquerts = new Array("Sulfaqueptic","Aridic","Ustic","Aeric","Leptic","Entic","Chromic","Typic");
var Epiaquerts = new Array("Halic","Sodic","Aridic","Xeric","Ustic","Aeric","Leptic","Entic","Chromic","Typic");
var Endoaquerts = new Array("Halic","Sodic","Aridic","Xeric","Ustic","Aeric","Leptic","Entic","Chromic","Typic");
  //suborder Cryerts
var Humicryerts = new Array("Sodic","Typic");
var Haplocryerts = new Array("Sodic","Chromic","Typic");
  //suborder Xererts
var Durixererts = new Array("Halic","Sodic","Aquic","Aridic","Udic","Haplic","Chromic","Typic");
var Calcixererts = new Array("Lithic","Petrocalcic","Aridic","Leptic","Entic","Chromic","Typic");
var Haploxererts = new Array("Lithic","Halic","Sodic","Aridic","Aquic","Udic","Leptic","Entic","Chromic","Typic");
  //suborder Torrerts
var Salitorrerts = new Array("Aquic","Leptic","Entic","Chromic","Typic");
var Gypsitorrerts = new Array("Chromic","Typic");
var Calcitorrerts = new Array("Petrocalcic","Leptic","Entic","Chromic","Typic");
var Haplotorrerts = new Array("Halic","Sodic","Leptic","Entic","Chromic","Typic");
  //suborder Usterts
var Dystrusterts = new Array("Lithic","Aquic","Aridic","Udic","Leptic","Entic","Chromic","Typic");
var Salusterts = new Array("Lithic","Sodic","Aquic","Aridic","Leptic","Entic","Chromic","Typic");
var Gypsiusterts = new Array("Lithic","Halic","Sodic","Aridic","Udic","Leptic","Entic","Chromic","Typic");
var Calciusterts = new Array("Lithic","Halic","Sodic","Petrocalcic","Aridic","Udic","Leptic","Entic","Chromic","Typic");
var Haplusterts = new Array("Lithic","Halic","Sodic","Petrocalcic","Gypsic","Calcic","Aridic_Leptic","Aridic","Leptic_Udic",
				"Entic_Udic","Chromic_Udic","Udic","Leptic","Entic","Chromic","Typic");
  //suborder Uderts
var Dystruderts = new Array("Aquic","Oxyaquic","Leptic","Entic","Chromic","Typic");
var Hapluderts = new Array("Lithic","Aquic","Oxyaquic","Leptic","Entic","Chromic","Typic");
// end of defining arrays of subgroup modifiers

// defining the suborder prefix strings
var Alb = "Alb: white - Presence of an albic horizon";
var Anthr = "Anthr: human - Modified by humans";
var Aqu = "Aqu: water - Aquic conditions";
var Ar = "Ar: plow - Mixed horizon";
// var Calc = "Calc: lime - Presence of a calcic horizon";
var Camb = "Camb: to exchange - Presence of a cambic horizon";
var Cry = "Cry: icy cold - Cold";
var Dur = "Dur: hard - Presence of a duripan";
var Fibr = "Fibr: fiber - Least decomposed stage";
var Fluv = "Fluv: river - Flood plain";
var Fol = "Fol: leaf - Mass of leaves";
var Gyps = "Gyps: gypsum - Presence of a gypsic horizon";
var Hem = "Hem: half - Intermediate stage of decomposition";
var Hist = "Hist: tissue - Presence of organic materials";
var Hum = "Hum: earth - Presence of organic matter";
var Orth = "Orth: true - The commonn ones";
var Per = "Per: throughout in time - Perudic moisture regime";
var Psamm = "Psamm: sand - Sandy texture";
var Rend = "Rend: Modified from Rendzina - High carbonate content";
var Sal = "Sal: salt - Presence of salic horizon";
var Sapr = "Sapr: rotten - Most decomposed stage";
var Torr = "Torr: hot and dry - Torric moisture regime";
var Turb = "Turb: disturbed - Presence of cryoturbation";
var Ud = "Ud: humid - Udic moisture regime";
var Ust = "Ust: burnt - Ustic moisture regime"; 
var Vitr = "Vitr: glass - Presence of glass";
var Xer = "Xeric: dry - Xeric moisture regime";

// defining great group prefix strings (only those different from suborder prefixes)
var Acr = "Acr: at the end - Extreme weathering";
var Al = "Al: aluminum - High aluminum, low iron";
var Anhy = "Anhy: waterless - Very dry";
var Argi_arg = "Argi,arg: white clay - Presence of an argillic horizon";
var Calci_calc = "Calci,calc: lime - A calcic horizon";
var Dystr_dys = "Dystr,dys: infertile - Low base saturation";
var Endo = "Endo: within - Implying a ground water table";
var Epi = "Epi: above - Implying a perched water table";
var Eutr = "Eutr: fertile - High base saturation";
var Ferr = "Ferr: iron - Presence of iron";
var Fragi = "Fragi: brittle - Presence of a fragipan";
var Fragloss = "Fragloss: - Presence of both a fragipan and a glossic horizon";
var Fulv = "Fulv: dull brownish yellow - Dark brown color, presence of organic carbon";
var Glac = "Glac: icy - Ice lenses or wedges";
var Gloss = "Gloss: tongue - Presence of a glossic horizon";
var Hal = "Hal: salt - Salty";
var Hapl_hap = "Hapl,hap: simple - Minimum horizon development";
var Hydr = "Hydr: water - Presence of water";
var Kand_kan = "Kand,kan: modified from kandite - 1:1 silicate clays";
var Luv = "Luv: to wash - Illuvial";
var Melan = "Melan: black - Black, presence of organic carbon";
var Moll = "Moll: soft - Presence of a mollic epipedon";
var Natr = "Natr: sodium - Presence of a natric horizon";
var Pale = "Pale: old - Excessive development";
var Petr = "Petr: rock - A Cemented horizon";
var Plac = "Plac: flat stone - Presence of a thin pan";
var Plagg = "Plagg: sod - Presence of a plaggen epipedon";
var Plinth = "Plinth: brick - Presence of plinthite (\"iron-rich, humus-poor mixture of clay with quartz ... dark red\")";
var Quartz = "Quartz: quartz - High quartz content";
var Rhod = "Rhod: rose - Dark red color";
var Sal="Sal: salt - ";
var Somb = "Somb: dark - Presence of a sombric horizon";
var Sphagn = "Sphagn: bog - Presence of sphagnum";
var Sulf = "Sulf: sulfur - Presence of sulfides or their oxidation products. Sulfo: oxidized sulfur products. Sulfi: reduced sulfur products";
var Umbr = "Umbr: shade - Presence of an umbric epipedon";
var Verm = "Verm: worm - Worm or mixed by animals";

// defining subgroup prefix strings 
var Abruptic = "Abruptic: torn off - Abrupt textural change";
var Abruptic_Haplic = "Abruptic Haplic: Presence of abrupt textural change, minimal development";
var Abruptic_Xeric = "Abruptic Xerandic: Presence of abrupt textural change, borderline Xeric moisture regime";
var Abruptic_Argiduridic = "Abruptic Argiduridic: Intergrade to great group Argidurids with presence of abrupt textural change";
var Acraquoxic = "Acraquoxic: Intergrade to great group Acraquox";
var Acrudoxic = "Acrudoxic: Intergrade to great group Acrudox";
var Acrudoxic_Arenic = "Acrudoxic Arenic: Intergrade to great group Acrudox with sandy material between 50 and 100 cm thick";
var Acrudoxic_Hydric = "Acrudoxic Hydric: Intergrade to great group Acrudox with high water retention";
var Acrudoxic_Plinthic = "Acrudoxic Plinthic: Intergrade to great group Acrudox with the presence of plinthite;"
var Acrudoxic_Thaptic = "Acrudoxic Thaptic: Intergrade to great group Acrudox with deeper hoizon possesing Mollic epipedon qualities";
var Acrudoxic_Vitric = "Acrudoxic Vitric: Intergrade to great group Acrudox with Andic (low bulk density, poorly crystalline) materials and soil properties;"
var Acrudoxic_Ultic = "Acrudoxic Ultic: Intergrade to great group Acrudox and order Ultisols;"
var Acrustoxic = "Acrustoxic: Intergrade to great group Acrustox";
var Aeric = "Aeric: air - Aeration";
var Aeric_Chromic = "Aeric Chromic: Aerated (color) with high chroma";
var Aeric_Fragic = "Aeric Fragic: Aerated (color) with fragic soil properties";
var Aeric_Humic = "Aeric Humic: Aerated (color) with high organic carbon epipedon";
var Aeric_Umbric = "Aeric Umbric: Aerated (color) with Umbric epipedon";
var Aeric_Vertic = "Aeric Vertic: Aerated (high chroma) intergrade to Vertisol";
var Albaquic = "Albaquic: Presence of an albic horizon and redox depletions";
var Albaquultic = "Albaquultic: Intergrade to great group Albaquult";
var Albic = "Albic: white - Presence of an albic horizon";
var Alfic = "Alfic: Intergrade to order Alfisols";
var Alfic_Arenic = "Alfic Arenic: Intergrade to order Alfisol with sandy material between 50 and 100 cm thick";
var Alfic_Grossarenic = "Alfic Grossarenic: Intergrade to order Alfisols with thick sandy layer";
var Alfic_Humic = "Alfic Humic: Intergrade to order Alfisols with high organic carbon epipedon";
var Alfic_Lithic = "Alfic Lithic: Intergrade to order Alfisols with lithic contact within tp 50 cm";
var Alfic_Oxyaquic = "Alfic Oxyaquic: Intergrade to order Alfisols, aerated (no redox depletions) but wet";
var Alfic_Vertic = "Alfic Vertic: Intergrade to order Alfisols and order Vertisols";
var Alic = "Alic: aluminum - High Al(3+) status";
var Andic = "Andic: Intergrade to Andisols";
var Andic_Ombroaquic = "Andic Ombro Aquic: Andic properties (low bulk density, poorly crystalline) with surface wetness and redox concentrations";
var Anionic = "Anionic: anion - Positively charged colloid";
var Anionic_Aquic = "Anionic Aquic: Positively charged colloids and redox depletions";
var Anthraquic = "Anthraquic: human and water - Controlled flooding";
var Anthropic = "Anthropic: human - An anthropic epipedon";
var Aqualfic = "Acqualfic: Intergrade to suborder Acqualfs";
var Aquandic = "Aquandic: Intergrade to suborder Aquands";
var Aquicambidic = "Aquicambidic: Intergrade to great group Aquicambid";
var Aquentic = "Aquentic: Intergrade to suborder Aquents";
var Aqueptic = "Aqueptic: Intergrade to suborder Aquepts";
var Aquertic = "Aquertic: Intergrade to suborder Aquerts";
var Aquertic_Chromic = "Aquertic Chromic: Intergrade to suborder Aquert with high chroma";
var Aquic = "Aquic: water - Evidence redox depletions";
var Aquic_Arenic = "Aquic Arenic: Evidence redox depletions, and sandy material between 50 and 100 cm thick";
var Aquic_Cumulic = "Aquic Cumulic: Redox depletions and thick Mollic epipedon";
var Aquic_Duric = "Aquic Duric: Redox depletions and cemented horizon";
var Aquic_Durinodic = "Aquic Durinodic: Evidence redox depletions, and presence of durinodes";
var Aquic_Dystric = "Aquic Dystric: Redox depletions and low base saturation";
var Aquic_Humic = "Aquic Humic: Redox depletions and organic matter";
var Aquic_Lithic = "Aquic Lithic: Redox depletions and shallow lithic contact";
var Aquic_Natrargidic = "Aquic Natrargidic: Intergrade to great group Natrargid with redox depletions";
var Aquic_Petroferric = "Aquic Petroferric: Redox depletions and presence of a petroferric contact (ironstone)";
var Aquodic = "Aquodic: Intergrade to suborder Aquods";
var Aquollic = "Aquollic: Intergrade to suborder Aquolls";
var Aquultic = "Aquultic: Intergrade to suborder Aquult";
var Arenic = "Arenic: sand - Sandy material between 50 and 100 cm thick";
var Arenic_Aridic = "Arenic Aridic: Sandy material between 50 and 100 cm thick, Aridic moisture regime";
var Arenic_Plinthaquic = "Arenic Plinthic Aquic: Sandy material between 50 and 100 cm thick, presence of plinthite, and redox depletions";
var Arenic_Plinthic = "Arenic Plinthic: Sandy material between 50 and 100 cm thick, presence of plinthite";
var Arenic_Rhodic = "Arenic Rhodic: Sandy material between 50 and 100 cm thick, red color";
var Arenic_Ultic = "Arenic Ultic: Intergrade to order Ultisol with sandy material between 50 and 100 cm thick";
var Arenic_Umbric = "Arenic Umbric: Sandy material between 50 and 100 cm thick, and Umbric epipedon";
var Arenic_Ustic = "Arenic Ustic: Sandy material between 50 and 100 cm thick, and borderline Ustic moisture regime";
var Argic = "Argic: Argillic horizon";
var Argidic = "Argidic: Intergrade to suborder Argids";
var Aridic = "Aridic:  Borderline aridic moisture regime";
var Aridic_Leptic = "Aridic_Leptic: Borderline Aridic moisture regime and thin soil"; 
var Aridic_Lithic = "Aridic Lithic: Aridic moisture regime with lithic contact within top 50 cm";
var Argiaquic = "Argiaquic: Intergrade to great group Argiaquolls";
var Argiaquic_Xeric  = "Argiaquic Xeric: Intergrade to great group Argiaquolls with Xeric moisture regime";
var Aridic_Leptic = "Aridic Leptic: A thin soil, borderline Aridic moisture regime";
var Aridic_Lithic = "Aridic Lithic: A lithic contact and borderline Aridic moisture regime";
var Argiduridic = "Argiduridic: Intergrade to great group Argidurids";
var Calcic = "Calcic: lime - Presence of a calcic horizon";
var Calcic_Lithic = "Calcic Lithic: Presence of a calcic horizon, and shallow lithic contact";
var Calcic_Pachic = "Calcic Pachic: Presence of a calcic horizon, and thick epipedon";
var Calcic_Udic = "Calcic Lithic: Presence of a calcic horizon, and borderline Udic moisture regime";
var Calciargidic =  "Calciargidic: Intergrade to great group Calciargids";
var Calcidic = "Calcidic: Intergrade to suborder Calcids";
var Cambidic = "Cambidic: Intergrade to suborder Cambids";
var Chromic = "Chromic: color - High chroma";
var Chromic_Udic = "Chromic Udic: High chroma, Udic moisture regime";
var Chromic_Vertic = "Chromic Vertic: High chroma intergrade to Vertisols";
var Cumulic = "Cumulic: heap - Thickened epipedon";
var Cumulic_Ultic = "Cumulic Ultic: Intergrade to order Ultisols with thickened epipedon";
var Cumulic_Vertic = "Cumulic Vertic: Thickened epipedon and cracks like Vertisols";
var Duric = "Duric: Having duripan qualities";
var Duric_Histic = "Duric Histic: Histic epipedon with region with duripan qualities";
var Duric_Xeric = "Duric Xeric: Histic epipedon with region, borderline Xeric moisture regime";
var Duridic = "Duridic: Intergrade to suborder Durids";
var Durinodic = "Durinodic: hard - Presence of durinodes";
var Durinodic_Xeric = "Durinodic Xeric: Presence of durinodes, borderline Xeric moisture regime";
var Dystric = "Dystric: Low base saturation";
var Entic = "Entic: Intergrade to order Entisols";
var Entic_Grossarenic = "Entic Grossarenic: Intergrade to order Entisols with thick sandy layer";
var Entic_Lithic = "Entic Lithic: Intergrade to order Entisols with a shallow lithic contact";
var Entic_Udic = "Entic Udic: Intergrade to order Entisols with Udic moisture regime";
var Entic_Ultic = "Entic Ultic: Intergrade to order Entisols and order Ultisols";
var Eutric = "Eutric: fertile - High base status";
var Dystric_Vitric = "Dystric Vitric: Low base saturation with andic (low bulk density, poorly crystalline) materials and soil properties";
var Dystric_Fluventic = "Dystric Fluventic: Intergrade to suborder Fluvents with low base saturation";
var Eutric_Lithic = "Eutric Lithic: High base status, and lithic contact";
var Eutric_Pachic = "Eutric Pachic: Low base saturation and high organic carbon";
var Eutric_Thaptic = "Eutric Thaptic: High base saturation and deeper horizon with Mollic epipedon qualities";
var Fragic = "Fragic: brittle - Presence of a fragipan";
var Fragiaquic = "Fragiaquic: Fragic soil properties and redox depletions";
var Fragic_Oxyaquic = "Fragic Oxyaquic: brittle - Presence of a fragipan, aerated with high chroma but has redox depletions";
var Fluventic = "Fluventic: Intergrade to suborder Fluvents";
var Fluventic_Humic = "Fluventic Humic: Intergrade to suborder Fluvents with Umbric or Mollic epipedon or deeper horizon with high organci carbon";
var Fluvaquentic = "Fluvaquentic: Intergrade to suborder Aquents";
var Fluvaquentic_Vertic = "Fluvaquentic Vertic: Intergrade to great group Fluvaqents with cracks like Vertisols";
var Glacic = "Glacic: icy - Presence of ice lenses or wedges";
var Glossaquic = "Glossaquic: Tongued horizon boundaries, and redox depletions";
var Glossic = "Glossic: tongue - Tongued horizon boundaries";
var Glossic_Ustic = "Glossic Ustic: Tongued horizon boundaries, Ustic moisture regime";
var Glossic_Vertic = "Glossic Vertic: Glossic horizon or fingering and cracks like Vertisols";
var Glossarenic = "Glossarenic: Thick sandy layer with tongued horizon boundaries";
var Glossarenic_Plinthic = "Glossarenic Plinthic: Thick sandy layer, presence of plinthite";
var Grossarenic = "Grossarenic: Thick and sand - Thick sandy layer";
var Grossarenic_Plinthic = "Grossarenic Plinthic: Thick sandy layer and the presence of plinthite";
var Gypsic = "Gypsic: gypsum - Presence of a gypsic horizon";
var Halic = "Halic: salt - Salty";
var Halic_Terric = "Halic Terric: Saline soil with mineral horizon within control section";
var Haplargdic = "Haplargdic: Intergrade to great group Haplargids";
var Haplic = "Haplic: Minimal development";
var Haplic_Ustic = "Haplic Ustic: Minimal development, and borderline Ustic moisture regime";
var Haplic_Palexerollic = "Haplic Palexerollic: Intergrade to great group Palexerolls with minimal horizon development";
var Haplocalcidic = "Haplocalcidic: Intergrade to great group Haplocalcids";
var Haploduridic = "Haploduridic: Intergrade to great group Halodurids";
var Haploxeralfic = "Haploxeralfic: Intergrade to great group Haploxeralfs";
var Haploxerollic = "Haploxerollic: Intergrade to great group Haploxerolls";
var Hemic = "Hemic: Hemic (intermediate decomposition) or Sapric (heavily decomposed) materials";
var Histic = "Histic: Histic epipedon";
var Histic_Lithic = "Histic Lithic: Histic epipedon with lithic contact within top 50 cm";
var Histic_Placic = "Histic Placic: Histic epipedon and Placic horizon";
var Humaqueptic = "Humaqueptic: Intergrade to great group Humaquept";
var Humic = "Humic: earth - Presence of organic matter or a Humic epipedon";
var Humic_Inceptic = "Humic Inceptic: Intergrade to order Inceptisols with an Umbric or Mollic epipedon";
var Humic_Lithic = "Humic Lithic: Umbric or Mollic epipedon and lithic contact within top 50 cm";
var Humic_Pachic = "Humic Pachic: Thick Umbric or Mollic epipedon";
var Humic_Psammentic = "Humic Psammentic: Intergrade to suborder Psamments with thick Umbric or Mollic epipedon";
var Humic_Rhodic = "Humic Rhodic: Thick Umbric or Mollic epipedon and dark red color";
var Humic_Xanthic = "Humic Xanthic: Thick Umbric or Mollic epipedon and yellow color";
var Humic_Xeric = "Humic Xeric: Mollic or Umbric epipedon, and Xeric moisture regime";
var Hydraquentic = "Hydraquentic: Intergrade to great group Hydraquents";
var Hydric = "Hydric: water - Presence of water";
var Hydric_Pachic = "Hydric Pachic: - Presence of water, and a thick epipedon";
var Hydric_Thaptic = "Hydric Thaptic: Presence of water with burried features";
var Inceptic = "Inceptic: Intergrade to order Inceptisols";
var Kandic = "Kandic: Modified from kandite - Presence of 1:1 layer silicate clays";
var Kandiudalfic = "Kandiudalfic: Intergrade to great group Kandiudalfs";
var Kandiustalfic = "Kandiustalfic: Intergrade to great group Kandiustalfs";
var Kanhaplic = "Kanhaplic: Presence of horizon that is similar but not quite Kandic horizon"; 
var Lamellic = "Lamellic: dim - Presence of lamellae";
var Lamellic_Ustic = "Lamellic Ustic: Presense of lamellae with Ustid moisture regime";
var Leptic = "Leptic: thin - A thin soil";
var Leptic_Udic = "Leptic Udic: A thin soil, and Udic moisture regime";
var Leptic_Torrertic = "Leptic Torrertic: A thin soil Intergrade to suborder Torrerts";
var Leptic_Vertic = "Leptic Vertic: A thin soil with cracks like Vertisols";
var Limnic = "Limnic: lake - Presence of a limnic layer";
var Lithic = "Lithic: stone - Presence of a shallow lithic contact (top 50 cm)";
var Lithic_Mollic = "Lithic Mollic: Mollic epipedon and shallow lithic contact";
var Lithic_Ruptic_Entic = "Lithic Ruptic Entic: Intergrade to order Entisols with shallow lithic contact and intermittent or broken horizons";
var Lithic_Ruptic_Inceptic = "Lithic Ruptic Inceptic: Intergrade to order Inceptisols with shallow lithic contact and intermittent or broken horizons";
var Lithic_Ustic = "Lithic Ustic: Presence of a shallow lithic contact (top 50 cm) and borderline Ustic moisture regime";
var Lithic_Ultic = "Lithic Ultic: Intergrade to order Ultisols with a shallow lithic contact (top 50 cm)";
var Lithic_Xeric = "Lithic Xeric: Presence of a shallow lithic contact (top 50 cm) and borderline Xeric moisture regime";
var Lithic_Petrocalcic = "Lithic Petrocalcic: Petrocalcic horizon and lithic contact within top 50 cm";
var Mollic = "Mollic: Intergrade to order Mollisols";
var Natric = "Natric: sodium - Presence of sodium";
var Natrargidic = "Natrargidic: Intergrade to great group Natriargids";
var Natrixeralfic = "Natrixeralfic: Intergrade to great group Natrixeralfs";
var Nitric = "Nitric: nitron - Presence of nitrate salts";
var Ombroaquic = "Ombroaquic: rain and aquic - Surface wetness";
var Oxyaquic = "Oxyaquic: oxygen and aquic - Aerated (no redox depletions) but wet";
var Oxyaquic_Ultic = "Oxyaquic Ultic: Intergrate to order Ultisols that is aerated (no redox depletions) but wet";
var Oxyaquic_Vertic = "Oxyaquic Vertic: Intergrate to order Vertisols that is aerated (no redox depletions) but wet";
var Oxic = "Oxic: Intergrade to order Oxisols";
var Pachic = "Pachic: thick - A thick epipedon";
var Pachic_Udertic = "Pachic Udertic: Intergrade to suborder Udert with deep mollic epipedon"; 
var Pachic_Ultic = "Pachic Ultic: Intergrade to order Ultisols with thick epipedon"; 
var Pachic_Vertic = "Pachic Vertic: Intergrade to order Vertisols with a thick, high organic carbon epipedon";
var Pachic_Vitric = "Pachic Vitric: A thick, high organic carbon epipedon with andic (low bulk density, poorly crystalline) materials and soil properties";
var Paleargidic = "Paleargidic: Intergrade to great group Paleargids";
var Palexerollic = "Palexerollic: Intergrade to great group Palexerolls";
var Petrocalcic = "Petrocalcidic: rock and calcium - Presence of a petrocalcic horizon";
var Petrocalcidic = "Petrocalcic: Intergrade to great group Petrocalcids";
var Petroferric = "Petroferric: rock and iron - Presence of a petroferric contact (ironstone)";
var Petrogypsic = "Petrogypsic: rock and gypsum - Presence of a petrogypsic horizon";
var Petrogypsic_Ustic = "Petrogypsic Ustic: Presence of a petrogypsic horizon, and borderline Ustic moisture regime";
var Petronodic = "Petronodic: rock and a little knot - Presence of concretions and/or nodules";
var Petronodic_Ustic = "Petronodic Ustic: Presence of concretions and/or nodules with borderline Ustic moisture regime";
var Petronodic_Xeric = "Petronodic Xeric: Presence of concretions and/or nodules with borderline Xeric moisture regime";
var Placic = "Placic: flat stone - Presence of a thin pan (placic horizon)";
var Plagganthreptic = "Plagganthreptic: Intergrade to great group Plagganthrepts";
var Plinthaquic = "Plinthaquic: Presence of plinthite and redox depletions";
var Plinthic = "Plinthic: brick - Presence of plinthite";
var Psammentic = "Psammentic: Intergrade to suborder Psamments";
var Rendollic = "Rendollic: Intergrade to suborder Rendolls";
var Rhodic = "Rhodic: rose - Dark red color";
var Ruptic = "Ruptic: broken - Intermittent or broken horizons";
var Ruptic_Alfic = "Ruptic Alfic - Intergrade to order Alfisols with discontinuous cambic horizon";
var Ruptic_Ultic = "Ruptic Ultic - Intergrade to order Ultisols";
var Ruptic_Histic = "Ruptic Histic: Organic soils that are discontinuous or have highly variable thickness at surface";
var Ruptic_Lithic = "Ruptic Lithic: Soils that have a shallow lithic contact and are discontinuous or have highly variable thickness at surface";
var Salidic = "Salidic: Integrade to suborder Salids";
var Salic = "Salic: Presence of salic horizon";
var Sapric  = "Sapric: Most decomposed stage";
var Sodic = "Sodic: sodium - Presence of sodium salts";
var Sodic_Ustic = "Sodic Ustic: Presence of sodium salts, and borderline Ustic moisture regime";
var Sodic_Xeric = "Sodic Xeric: Presence of sodium salts, and borderline Xeric moisture regime";
var Sombric = "Sombric: dark - Presence of a sombric horizon";
var Sphagnic = "Sphagnic: Presence of Sphagnum derived material";
var Spodic = "Spodic: Intergrade to order Spodosols";
var Sulfaqueptic = "Sulfaqueptic: Intergrade to great group Sulfaquepts";
var Sulfic = "Sulfic: sulfur - Presence of sulfides or their oxidation products";
var Sulfuric = "Sulfuric: Presence of a sulfuric horizon or sulfide materials";
var Terric = "Terric: earth - A mineral substratum";
var Thaptic = "Thapto(ic): buried - A buried soil";
var Thapto_Histic = "Thapto(ic)-Histic: A buried layer of organic soil materials";
var Thaptic_Histic = "Thapto(ic)-Histic: A buried layer of organic soil materials";
var Torrertic = "Torrertic: Intergrade to suborder Torrerts";
var Torrifluventic = "Torrifluventic: Intergrade to great group Torrifluvents";
var Torriorthentic = "Torriorthentic: Intergrade to great group Torriorthents";
var Torripsammentic = "Torripsammentic: Intergrade to great group Torripsamments";
var Torroxic = "Torroxic: Intergrade to suborder Torroxs";
var Typic = "Typic: To typify";
var Udandic = "Udandic: Intergrade to suborder Udand";
var Udertic = "Udertic: Intergrade to suborder Uderts";
var Udic = "Udic: Intergrade to udic moisture regime";
var Udifluventic = "Udifluventic: Intergrade to great group Udifluents";
var Udorthentic = "Udorthentic: Intergrade to great group Udorthents";
var Udoxic = "Udoxic: Intergrade to suborder Udoxs";
var Udollic = "Udollic: Intergrade to suborder Udolls";
var Ultic = "Ultic: Intergrade to order Ultisols";
var Umbric = "Umbric: Shade - Presence of an umbric epipedon";
var Umbric_Xeric = "Umbric Xeric: Umbric epipedon and Xeric moisture regime";
var Ustalfic = "Ustalfic: Intergrade to suborder Ustalfs";
var Ustandic = "Ustandic: Intergrade to suborder Ustand";
var Ustertic = "Ustertic: Intergrade to suborder Ustert";
var Ustic = "Ustic: Intergrade to Ustic moisture regime";
var Ustifluventic = "Ustifluventic: Intergrade to suborder fluvent with borderline Ustic moisture regime";
var Ustollic = "Ustollic: Intergrade to suborder Ustolls";
var Ustoxic = "Ustoxic: Intergrade to suborder Ustoxs";
var Vermic = "Vermic: worm - Evidence of bioturbation";
var Vertic = "Vertic: Intergrade to Vertisol";
var Vitrandic = "Vitrandic: Intergrade to suborder Vitrands";
var Vitric = "Vitric: Presence of andic (low bulk density, poorly crystalline) materials and soil properties";
var Vitritorrandic = "Vitritorrandic: Intergrade to great group Vitritorrands";
var Vitrixerandic = "Vitrixerandic: Intergrade to great group Vitrixerands";
var Xanthic = "Xanthic: xanthos - Yellow";
var Xeralfic = "Xeralfic: Intergrade to suborder Xeralfs";
var Xereptic = "Xereptic: Intergade to suborder Xerepts";
var Xerertic = "Xerertic: Intergrade to suborder Xererts";
var Xeric = "Xeric: Borderline Xeric moisture regime";
var Xerofluventic = "Xerofluventic: Intergrade to great group Xerofluvent";
var Xerollic = "Xerollic: Intergrade to suborder Xerolls";

function swapOptions(the_array_name,selectNmb)
  {
    var the_array = eval(the_array_name);
    setOptionText(window.document.SoilTax[selectNmb], the_array);
  }

function setOptionText(the_select, the_array)
  {
    the_select.options.length = the_array.length;
    for (var i=0; i < the_select.options.length; i++)
      {
        the_select.options[i].text = the_array[i];
      }
    the_select.options[0].selected = true;
  }

function getPrefix(soilName,controlNmb)
  {
    var prefix = soilName.substring(0,3);
//	alert("BEGIN:  soilName = " + soilName + "prefix = " + prefix);
	if ((soilName.substring(0,2) == "Al") && (soilName.substring(0,3) != "Alb"))
	  prefix = "Al";
	if ((soilName.substring(0,2) == "Ar") && (soilName.substring(0,3) != "Arg"))
	  prefix = "Ar";
	if (soilName.substring(0,5) == "Anthr")
	  prefix = "Anthr";
	if ((soilName.substring(0,4) == "Argi") || (soilName.substring(0,3) == "Arg"))
	  prefix = "Argi_arg";
	if (soilName.substring(0,4) == "Anhy")
	  prefix = "Anhy";
	if ((soilName.substring(0,5) == "Calci") || (soilName.substring(0,4) == "Calc"))
	  prefix = "Calci_calc";
	if (soilName.substring(0,4) == "Camb")
	  prefix = "Camb";
	if ((soilName.substring(0,5) == "Dystr") || (soilName.substring(0,3) == "Dys"))
	  prefix = "Dystr_dys";
	if (soilName.substring(0,4) == "Endo")
	  prefix = "Endo";
    if (soilName.substring(0,4) == "Eutr")
	  prefix = "Eutr";
    if (soilName.substring(0,1) == "F")
	  if (soilName.substring(0,3) == "Fol")
	    prefix = "Fol";
	   else if (soilName.substring(0,5) == "Fragi")
	      prefix = "Fragi";
	    else if (soilName.substring(0,8) == "Fragloss")
	       prefix = "Fragloss";
		  else prefix = soilName.substring(0,4);
    if (soilName.substring(0,1) == "G")
	  if (soilName.substring(0,5) == "Gloss")
	    prefix = "Gloss";
	   else prefix = soilName.substring(0,4);
    if (soilName.substring(0,4) == "Hist")
	  prefix = "Hist";
	if (soilName.substring(0,4) == "Hydr")
	  prefix = "Hydr";
	if ((soilName.substring(0,4) == "Hapl") || (soilName.substring(0,3) == "Hap"))
	  prefix = "Hapl_hap";
	if ((soilName.substring(0,4) == "Kand") || (soilName.substring(0,3) == "Kan"))
	  prefix = "Kand_kan";
    if (soilName.substring(0,5) == "Melan")
	  prefix = "Melan";
	if (soilName.substring(0,4) == "Moll")
	  prefix = "Moll";
	if (soilName.substring(0,4) == "Natr")
	  prefix = "Natr";
    if (soilName.substring(0,5) == "Ortho")
	  prefix = "Orth";
    if (soilName.substring(0,4) == "Orth")
	  prefix = "Orth";
    if (soilName.substring(0,1) == "P")
	  if (soilName.substring(0,6) == "Plinth")
	    prefix = "Plinth";
	   else if (soilName.substring(0,5) == "Psamm")
	     prefix = "Psamm";
		else if (soilName.substring(0,5) == "Plagg")
		  prefix = "Plagg";
         else if (soilName.substring(0,3) == "Per")
           prefix = "Per";
          else prefix = soilName.substring(0,4);
    if (soilName.substring(0,4) == "Rend")
	  prefix = "Rend";
    if (soilName.substring(0,6) == "Quartz")
	  prefix = "Quartz";
	if (soilName.substring(0,4) == "Rhod")
	  prefix = "Rhod";
	if (soilName.substring(0,1) == "S")
	  if (soilName.substring(0,3) == "Sal")
	    prefix = "Sal";
	   else if (soilName.substring(0,6) == "Sphagn")
	     prefix = "Sphagn";
        else prefix = soilName.substring(0,4);
    if (soilName.substring(0,1) == "T")
	  prefix = soilName.substring(0,4);
	if (soilName.substring(0,4) == "Umbr")
	  prefix = "Umbr";
	if (soilName.substring(0,2) == "Ud")
      prefix = "Ud";
	if (soilName.substring(0,1) == "V")
	  prefix = soilName.substring(0,4);
//	alert("END:  soilName = " + soilName + "prefix = " + prefix);

	for (var i=0; i < window.document.SoilTax[controlNmb-1].length; i++)
	 {
	  if ((window.document.SoilTax[controlNmb-1].options[i].text == prefix) || (window.document.SoilTax[controlNmb-1].options[i].value == prefix))
	        window.document.SoilTax[controlNmb-1].options[i].selected = true;    
	 }
	swapTextareaValue(prefix,controlNmb);
  }

function swapTextareaValue(thePrefixName,controlNmb)
  {
    var thePrefix = eval(thePrefixName);
	window.document.SoilTax[controlNmb].value = thePrefix;
  }

function initialize()
 {
   window.document.SoilTax.order.selectedIndex=0;
   swapOptions(window.document.SoilTax.order.options[0].text,1);
   swapOptions(window.document.SoilTax.subOrder.options[0].text,2);
   getPrefix(window.document.SoilTax.subOrder.options[0].text,6);
   getPrefix(window.document.SoilTax.greatGroup.options[0].text,8);
   swapOptions(window.document.SoilTax.greatGroup.options[0].text,3);
   window.document.SoilTax.orderText.value=
		           orderStringArray[window.document.SoilTax.order.selectedIndex];
 }

