Gcatname = new Array();
Gcatval = new Array();
Gcatcont = new Array();

function Gmakecat(next, val, name, parent) {
   Gcatval[next] = val;
   Gcatname[next] = name;
   Gcatcont[next] = new Array();
   i = Gcatcont[parent].length;
   Gcatcont[parent][i] = next;

   return next;
}

function Gsetupcats(c1, c2, c3) {
   cat1 = document.getElementById("Gcat1");

   cat = 0;
   i = 0;
   cat1.options[i++] = new Option("Select category ...", "");
   var selIdx = 0;
   for (j=0; j < Gcatcont[cat].length; j++) {
      name = Gcatname[Gcatcont[cat][j]];
      val = Gcatval[Gcatcont[cat][j]];
      cat1.options[i++] = new Option(name, val);
      if (val == c1) {
        selIdx = i-1;
      }
   }
   cat1.selectedIndex = selIdx;

   Gsetcat2(true, c2);
   Gsetcat3(true, c3);
}

function Gsetupsearchcats(c1, c2, c3) {
   cat1 = document.getElementById("Gcat1");

   if (cat1) {
   cat = 0;
   i = 0;
   cat1.options[i++] = new Option("Any", "0");
   var selIdx = 0;
   for (j=0; j < Gcatcont[cat].length; j++) {
      name = Gcatname[Gcatcont[cat][j]];
      val = Gcatval[Gcatcont[cat][j]];
      cat1.options[i++] = new Option(name, val);
      if (val == c1) {
        selIdx = i-1;
      }
   }
   cat1.selectedIndex = selIdx;
   }
   Gsetsearchcat2(true, c2);
   Gsetsearchcat3(true, c3);
}

function Gsetcat2(select, c2) {
   cat1 = document.getElementById("Gcat1");
   chosen1 = 0;
   if (cat1) {
      chosen1 = cat1.selectedIndex;
      value1 = cat1.options[chosen1].value;
   } else {
      cat1 = document.getElementById("pcode");
      if (cat1) {
         chosen1 = cat1.selectedIndex;
         if (cat1.options[chosen1].value.charAt(0) == 'G') {
            value1 = cat1.options[chosen1].value.charAt(1);
         } else {
         	chosen1 = 0;
         }
      }
   }
   
   cat2 = document.getElementById("Gcat2");
   cat2.length = 0;
   cat2.options[0] = new Option("None", "");

   if (chosen1 != 0) {
      cat = 0;
      var catmenu = -1;
      for (j=0; j < Gcatcont[cat].length; j++) {
         if (value1 == Gcatval[Gcatcont[cat][j]]) {
            catmenu = Gcatcont[cat][j];
            break;
         }
      }
      
      if (catmenu != -1 && Gcatcont[catmenu].length > 0) {
      	 var i = 1;
         var selIdx = 0;
         for (j=0; j < Gcatcont[catmenu].length; j++) {
            name = Gcatname[Gcatcont[catmenu][j]];
            val = Gcatval[Gcatcont[catmenu][j]]
            cat2.options[i++] = new Option(name, val);
            if (select && val == c2) {
               selIdx = i-1;
            }
         }
         if (select) {
            cat2.selectedIndex = selIdx;
         }
      }
   } else {
   		cat2.options[0] = new Option("Select category","");
   }
   
   Gsetcat3(false, "");
}

function Gsetcat3(select, c3) {
   // find top level category
   cat1 = document.getElementById("Gcat1");
   chosen1 = 0;
   if (cat1) {
      chosen1 = cat1.selectedIndex;
      value1 = cat1.options[chosen1].value;
   } else {
      cat1 = document.getElementById("pcode");
      if (cat1) {
         chosen1 = cat1.selectedIndex;
         if (cat1.options[chosen1].value.charAt(0) == 'G') {
            value1 = cat1.options[chosen1].value.charAt(1);
         } else {
         	chosen1 = 0;
         }
      }
   }
   
   cat3 = document.getElementById("Gcat3");
   cat3.length = 0;
   cat3.options[0] = new Option("None", "");
   
   if (chosen1 != 0) {
      // find 2nd level category
      cat2 = document.getElementById("Gcat2");
      chosen2 = 0;
      if (cat2) {
         chosen2 = cat2.selectedIndex;
         value2 = cat2.options[chosen2].value;
      }
   
      if (chosen2 != 0) {
         cat = 0;
         var catmenu = -1;
         for (j=0; j < Gcatcont[cat].length; j++) {
            if (value1 == Gcatval[Gcatcont[cat][j]]) {
               catmenu = Gcatcont[cat][j];
               break;
            }
         }
         if (catmenu != -1 && Gcatcont[catmenu].length > 0) {
         	cat = catmenu;
         	catmenu = -1;
         	for (j=0; j < Gcatcont[cat].length; j++) {
               if (value2 == Gcatval[Gcatcont[cat][j]]) {
                  catmenu = Gcatcont[cat][j];
                  break;
               }
            }
         }
      
         if (catmenu != -1 && Gcatcont[catmenu].length > 0) {
            var i = 1;
            var selIdx = 0;
            for (j=0; j < Gcatcont[catmenu].length; j++) {
               name = Gcatname[Gcatcont[catmenu][j]];
               val = Gcatval[Gcatcont[catmenu][j]]
               cat3.options[i++] = new Option(name, val);
               if (select && val == c3) {
                  selIdx = i-1;
               }
            }
            if (select) {
               cat3.selectedIndex = selIdx;
            }
         }
      }
   }
}

function Gsetsearchcat2(select, c2) {
   cat1 = document.getElementById("Gcat1");
   chosen1 = 0;
   if (cat1) {
      chosen1 = cat1.selectedIndex;
      value1 = cat1.options[chosen1].value;
   } else {
      cat1 = document.getElementById("pcode");
      if (cat1) {
         chosen1 = cat1.selectedIndex;
         if (cat1.options[chosen1].value.charAt(0) == 'G') {
            value1 = cat1.options[chosen1].value.charAt(1);
         } else {
         	chosen1 = 0;
         }
      }
   }
   
   cat2 = document.getElementById("Gcat2");
   cat2.length = 0;
   cat2.options[0] = new Option("Any", "0");
   selIdx = 0;

   if (chosen1 != 0) {
      cat = 0;
      var catmenu = -1;
      for (j=0; j < Gcatcont[cat].length; j++) {
         if (value1 == Gcatval[Gcatcont[cat][j]]) {
            catmenu = Gcatcont[cat][j];
         }
      }

      if (catmenu != -1 && Gcatcont[catmenu].length > 0) {
      	 var i = 1;
         for (j=0; j < Gcatcont[catmenu].length; j++) {
            name = Gcatname[Gcatcont[catmenu][j]];
            val = Gcatval[Gcatcont[catmenu][j]]
            cat2.options[i++] = new Option(name, val);
            if (select && val == c2) {
               selIdx = i-1;
            }
         }
      }
   }
   cat2.selectedIndex = selIdx;
}

function Gsetsearchcat2b(value1) {
   cat2 = document.getElementById("Gcat2");
   cat2.length = 0;
   cat2.options[0] = new Option("Any", "0");
   selIdx = 0;

   cat = 0;
   var catmenu = -1;
   for (j=0; j < Gcatcont[cat].length; j++) {
      if (value1 == Gcatval[Gcatcont[cat][j]]) {
         catmenu = Gcatcont[cat][j];
      }
   }

   if (catmenu != -1 && Gcatcont[catmenu].length > 0) {
      var i = 1;
      for (j=0; j < Gcatcont[catmenu].length; j++) {
         name = Gcatname[Gcatcont[catmenu][j]];
         val = Gcatval[Gcatcont[catmenu][j]]
         cat2.options[i++] = new Option(name, val);
      }
   }
   cat2.selectedIndex = selIdx;
}

function Gsetsearchcat3(select, c3) {
   // find top level category
   cat1 = document.getElementById("Gcat1");
   chosen1 = 0;
   if (cat1) {
      chosen1 = cat1.selectedIndex;
      value1 = cat1.options[chosen1].value;
   } else {
      cat1 = document.getElementById("pcode");
      if (cat1) {
         chosen1 = cat1.selectedIndex;
         if (cat1.options[chosen1].value.charAt(0) == 'G') {
            value1 = cat1.options[chosen1].value.charAt(1);
         } else {
         	chosen1 = 0;
         }
      }
   }
   
   cat3 = document.getElementById("Gcat3");
   cat3.length = 0;
   cat3.options[0] = new Option("Any", "0");
   selIdx = 0;
   
   if (chosen1 != 0) {
      // find 2nd level category
      cat2 = document.getElementById("Gcat2");
      chosen2 = 0;
      if (cat2) {
         chosen2 = cat2.selectedIndex;
         value2 = cat2.options[chosen2].value;
      }
   
      if (chosen2 != 0) {
         cat = 0;
         var catmenu = -1;
         for (j=0; j < Gcatcont[cat].length; j++) {
            if (value1 == Gcatval[Gcatcont[cat][j]]) {
               catmenu = Gcatcont[cat][j];
               break;
            }
         }
         if (catmenu != -1 && Gcatcont[catmenu].length > 0) {
         	cat = catmenu;
         	catmenu = -1;
         	for (j=0; j < Gcatcont[cat].length; j++) {
               if (value2 == Gcatval[Gcatcont[cat][j]]) {
                  catmenu = Gcatcont[cat][j];
                  break;
               }
            }
         }
      
         if (catmenu != -1 && Gcatcont[catmenu].length > 0) {
            var i = 1;
            for (j=0; j < Gcatcont[catmenu].length; j++) {
               name = Gcatname[Gcatcont[catmenu][j]];
               val = Gcatval[Gcatcont[catmenu][j]]
               cat3.options[i++] = new Option(name, val);
               if (select && val == c3) {
                  selIdx = i-1;
               }
            }
         }
      }
   }
   cat3.selectedIndex = selIdx;
}

function Gbuildcats() {
Gcatname[0] = "Never seen";
Gcatval[0] = "";
Gcatcont[0] = new Array();

j=0;
idx1 = Gmakecat(++j, "C", "Compressors/Generators", 0);
   idx2 = Gmakecat(++j, "A", "Air Compressors", idx1);
   idx2 = Gmakecat(++j, "B", "Air Ends", idx1);
   idx2 = Gmakecat(++j, "C", "Air Receivers", idx1);
   idx2 = Gmakecat(++j, "D", "Diesel Compressors", idx1);
   idx2 = Gmakecat(++j, "E", "Electric Compressors", idx1);
   idx2 = Gmakecat(++j, "F", "Other", idx1);
idx1 = Gmakecat(++j, "K", "Construction Machinery", 0);
   idx2 = Gmakecat(++j, "A", "Backhoe", idx1);
   idx2 = Gmakecat(++j, "I", "Bulldozer", idx1);
   idx2 = Gmakecat(++j, "B", "Crawler Loader", idx1);
   idx2 = Gmakecat(++j, "K", "Drilling & Digging", idx1);
   idx2 = Gmakecat(++j, "L", "Excavator", idx1);
   idx2 = Gmakecat(++j, "C", "Log Loader", idx1);
   idx2 = Gmakecat(++j, "J", "Log Skidder", idx1);
   idx2 = Gmakecat(++j, "H", "Other", idx1);
   idx2 = Gmakecat(++j, "D", "Skidsteer", idx1);
   idx2 = Gmakecat(++j, "E", "Tool Carrier", idx1);
   idx2 = Gmakecat(++j, "F", "Underground Loader", idx1);
   idx2 = Gmakecat(++j, "G", "Wheel Loader", idx1);
idx1 = Gmakecat(++j, "D", "Conveyors/Elevators/Augers", 0);
   idx2 = Gmakecat(++j, "B", "Belt Conveyor", idx1);
   idx2 = Gmakecat(++j, "C", "Bucket Elevator", idx1);
   idx2 = Gmakecat(++j, "D", "Conveyor (General)", idx1);
   idx2 = Gmakecat(++j, "E", "Conveyor (Parts)", idx1);
   idx2 = Gmakecat(++j, "A", "Drive Augers", idx1);
   idx2 = Gmakecat(++j, "F", "Elevator", idx1);
   idx2 = Gmakecat(++j, "J", "Other", idx1);
   idx2 = Gmakecat(++j, "G", "Roller Conveyor", idx1);
   idx2 = Gmakecat(++j, "H", "Screw Conveyor", idx1);
   idx2 = Gmakecat(++j, "I", "Stackers", idx1);
idx1 = Gmakecat(++j, "R", "Cultivation/Tilling/Seeding", 0);
   idx2 = Gmakecat(++j, "A", "Aerator", idx1);
   idx2 = Gmakecat(++j, "B", "Airseeders", idx1);
   idx2 = Gmakecat(++j, "C", "Bedformers", idx1);
   idx2 = Gmakecat(++j, "D", "Chisel Plough", idx1);
   idx2 = Gmakecat(++j, "E", "Cultivators", idx1);
   idx2 = Gmakecat(++j, "F", "Disc Plough", idx1);
   idx2 = Gmakecat(++j, "G", "Furrow Press", idx1);
   idx2 = Gmakecat(++j, "H", "Harrows", idx1);
   idx2 = Gmakecat(++j, "I", "Land Plane", idx1);
   idx2 = Gmakecat(++j, "J", "Moulboard Plough", idx1);
   idx2 = Gmakecat(++j, "K", "Offset Disc", idx1);
   idx2 = Gmakecat(++j, "L", "Offset Harrow", idx1);
   idx2 = Gmakecat(++j, "U", "One Way Plough", idx1);
   idx2 = Gmakecat(++j, "W", "Other", idx1);
   idx2 = Gmakecat(++j, "M", "Planters", idx1);
   idx2 = Gmakecat(++j, "N", "Plough", idx1);
   idx2 = Gmakecat(++j, "O", "Power Harrow", idx1);
   idx2 = Gmakecat(++j, "P", "Ripper", idx1);
   idx2 = Gmakecat(++j, "Q", "Rotary Hoe", idx1);
   idx2 = Gmakecat(++j, "R", "Scarifier", idx1);
   idx2 = Gmakecat(++j, "S", "Seed & Super Units", idx1);
   idx2 = Gmakecat(++j, "T", "Seeders", idx1);
   idx2 = Gmakecat(++j, "V", "Sub Soiler", idx1);
idx1 = Gmakecat(++j, "A", "Engines", 0);
   idx2 = Gmakecat(++j, "A", "Diesel Engines", idx1);
   idx2 = Gmakecat(++j, "B", "Electric Engines", idx1);
   idx2 = Gmakecat(++j, "C", "Engines Misc", idx1);
   idx2 = Gmakecat(++j, "F", "Gas Engines", idx1);
   idx2 = Gmakecat(++j, "D", "Industrial Engines", idx1);
   idx2 = Gmakecat(++j, "H", "Other", idx1);
   idx2 = Gmakecat(++j, "E", "Petrol Engines", idx1);
   idx2 = Gmakecat(++j, "G", "Power Packs", idx1);
idx1 = Gmakecat(++j, "Z", "Everything Else", 0);
   idx2 = Gmakecat(++j, "A", "Other", idx1);
idx1 = Gmakecat(++j, "F", "Farming General", 0);
   idx2 = Gmakecat(++j, "D", "Cattle Equipment", idx1);
   idx2 = Gmakecat(++j, "A", "Cotton Equipment", idx1);
   idx2 = Gmakecat(++j, "C", "Dairy Equipment", idx1);
   idx2 = Gmakecat(++j, "B", "Farming Equipment", idx1);
   idx2 = Gmakecat(++j, "F", "Horse Equipment", idx1);
   idx2 = Gmakecat(++j, "G", "Other", idx1);
   idx2 = Gmakecat(++j, "E", "Sheep Equipment", idx1);
idx1 = Gmakecat(++j, "J", "Feeding Equipment", 0);
   idx2 = Gmakecat(++j, "A", "Calf Feeders", idx1);
   idx2 = Gmakecat(++j, "B", "Feed Mixers", idx1);
   idx2 = Gmakecat(++j, "C", "Feedout Wagon", idx1);
   idx2 = Gmakecat(++j, "D", "Hammer Mill", idx1);
   idx2 = Gmakecat(++j, "F", "Mixing Wagon", idx1);
   idx2 = Gmakecat(++j, "I", "Other", idx1);
   idx2 = Gmakecat(++j, "E", "Roller Mill", idx1);
   idx2 = Gmakecat(++j, "G", "Stock Feeders", idx1);
   idx2 = Gmakecat(++j, "H", "Troughs", idx1);
idx1 = Gmakecat(++j, "X", "Garages & Sheds", 0);
   idx2 = Gmakecat(++j, "A", "Other", idx1);
idx1 = Gmakecat(++j, "E", "General Engine Parts", 0);
   idx2 = Gmakecat(++j, "A", "Cam Shafts", idx1);
   idx2 = Gmakecat(++j, "B", "Crankshafts", idx1);
   idx2 = Gmakecat(++j, "C", "Cylinder Blocks", idx1);
   idx2 = Gmakecat(++j, "D", "Cylinder Heads", idx1);
   idx2 = Gmakecat(++j, "E", "Engine Compressors", idx1);
   idx2 = Gmakecat(++j, "F", "Fans", idx1);
   idx2 = Gmakecat(++j, "G", "Flywheels", idx1);
   idx2 = Gmakecat(++j, "H", "Injectors", idx1);
   idx2 = Gmakecat(++j, "I", "Oil Pumps", idx1);
   idx2 = Gmakecat(++j, "N", "Other", idx1);
   idx2 = Gmakecat(++j, "J", "Radiators", idx1);
   idx2 = Gmakecat(++j, "K", "Starter Engine", idx1);
   idx2 = Gmakecat(++j, "M", "Turbo Chargers", idx1);
   idx2 = Gmakecat(++j, "L", "Water Pumps", idx1);
idx1 = Gmakecat(++j, "V", "General Wanted Ads", 0);
   idx2 = Gmakecat(++j, "A", "Other", idx1);
idx1 = Gmakecat(++j, "G", "Harvesting Equipment", 0);
   idx2 = Gmakecat(++j, "A", "Chaser Bins", idx1);
   idx2 = Gmakecat(++j, "B", "Combine Harvester", idx1);
   idx2 = Gmakecat(++j, "C", "Cotton Picker", idx1);
   idx2 = Gmakecat(++j, "D", "Forage Harvester", idx1);
   idx2 = Gmakecat(++j, "E", "Harvestor Parts & Acessories", idx1);
   idx2 = Gmakecat(++j, "I", "Header", idx1);
   idx2 = Gmakecat(++j, "F", "Horticultural Harvestor", idx1);
   idx2 = Gmakecat(++j, "H", "Other", idx1);
   idx2 = Gmakecat(++j, "G", "Windrower", idx1);
idx1 = Gmakecat(++j, "H", "Hay & Silage", 0);
   idx2 = Gmakecat(++j, "A", "Bale Chopper", idx1);
   idx2 = Gmakecat(++j, "C", "Bale Feeder", idx1);
   idx2 = Gmakecat(++j, "B", "Bale Loader", idx1);
   idx2 = Gmakecat(++j, "D", "Bale Wagon", idx1);
   idx2 = Gmakecat(++j, "E", "Bale Wrapper", idx1);
   idx2 = Gmakecat(++j, "F", "Baler Round", idx1);
   idx2 = Gmakecat(++j, "G", "Baler Square", idx1);
   idx2 = Gmakecat(++j, "H", "Forage Wagon", idx1);
   idx2 = Gmakecat(++j, "J", "Hay Inverter", idx1);
   idx2 = Gmakecat(++j, "I", "Hay Mower", idx1);
   idx2 = Gmakecat(++j, "K", "Hay Rake", idx1);
   idx2 = Gmakecat(++j, "L", "Mower Conditioner", idx1);
   idx2 = Gmakecat(++j, "P", "Other", idx1);
   idx2 = Gmakecat(++j, "M", "Silage Misc", idx1);
   idx2 = Gmakecat(++j, "N", "Stack Spreaders", idx1);
   idx2 = Gmakecat(++j, "O", "Tedders", idx1);
idx1 = Gmakecat(++j, "I", "Lawn care & Power Products", 0);
   idx2 = Gmakecat(++j, "A", "Brush Cutter", idx1);
   idx2 = Gmakecat(++j, "I", "Chainsaws", idx1);
   idx2 = Gmakecat(++j, "B", "Garden General", idx1);
   idx2 = Gmakecat(++j, "C", "Mower", idx1);
   idx2 = Gmakecat(++j, "J", "Mulcher", idx1);
   idx2 = Gmakecat(++j, "H", "Other", idx1);
   idx2 = Gmakecat(++j, "D", "Ride On Mower", idx1);
   idx2 = Gmakecat(++j, "E", "Trimmer", idx1);
   idx2 = Gmakecat(++j, "F", "Turf Equipment", idx1);
   idx2 = Gmakecat(++j, "G", "Weed Eaters", idx1);
idx1 = Gmakecat(++j, "L", "Machinery Implements", 0);
   idx2 = Gmakecat(++j, "A", "Attachments", idx1);
   idx2 = Gmakecat(++j, "B", "Backhoe Units", idx1);
   idx2 = Gmakecat(++j, "C", "Blades", idx1);
   idx2 = Gmakecat(++j, "D", "Buckets", idx1);
   idx2 = Gmakecat(++j, "E", "Drills/Augers", idx1);
   idx2 = Gmakecat(++j, "F", "FEL Units", idx1);
   idx2 = Gmakecat(++j, "G", "Forestry Attachments", idx1);
   idx2 = Gmakecat(++j, "H", "Forks", idx1);
   idx2 = Gmakecat(++j, "I", "Grapples", idx1);
   idx2 = Gmakecat(++j, "J", "Hydraulic Hammer", idx1);
   idx2 = Gmakecat(++j, "P", "Other", idx1);
   idx2 = Gmakecat(++j, "K", "Quickhitch", idx1);
   idx2 = Gmakecat(++j, "L", "Rippers/Tynes", idx1);
   idx2 = Gmakecat(++j, "M", "Scoops", idx1);
   idx2 = Gmakecat(++j, "N", "Shears", idx1);
   idx2 = Gmakecat(++j, "O", "Trenching", idx1);
idx1 = Gmakecat(++j, "W", "Pumps & Generators", 0);
   idx2 = Gmakecat(++j, "K", "Generators", idx1);
   idx2 = Gmakecat(++j, "J", "Pumps", idx1);
      idx3 = Gmakecat(++j, "D", "General Pumps", idx2);
      idx3 = Gmakecat(++j, "C", "Hydraulic pumps", idx2);
      idx3 = Gmakecat(++j, "E", "Irrigation Pumps", idx2);
      idx3 = Gmakecat(++j, "A", "Submersible Pumps", idx2);
      idx3 = Gmakecat(++j, "B", "Vaccum Pumps", idx2);
idx1 = Gmakecat(++j, "M", "Silos/Bins/Hoppers", 0);
   idx2 = Gmakecat(++j, "A", "Bin", idx1);
   idx2 = Gmakecat(++j, "B", "Hopper", idx1);
   idx2 = Gmakecat(++j, "E", "Other", idx1);
   idx2 = Gmakecat(++j, "C", "Silo", idx1);
   idx2 = Gmakecat(++j, "D", "Waste Bin", idx1);
idx1 = Gmakecat(++j, "N", "Slashers", 0);
   idx2 = Gmakecat(++j, "C", "Other", idx1);
   idx2 = Gmakecat(++j, "B", "Slasher Parts", idx1);
   idx2 = Gmakecat(++j, "A", "Slasher/Topper", idx1);
idx1 = Gmakecat(++j, "O", "Spraying", 0);
   idx2 = Gmakecat(++j, "A", "Boom Sprayers", idx1);
   idx2 = Gmakecat(++j, "D", "Other", idx1);
   idx2 = Gmakecat(++j, "B", "Sprayers", idx1);
   idx2 = Gmakecat(++j, "C", "Sprayers ATV", idx1);
idx1 = Gmakecat(++j, "Q", "Storage & Watertanks", 0);
   idx2 = Gmakecat(++j, "A", "Storage", idx1);
      idx3 = Gmakecat(++j, "D", "Other", idx2);
      idx3 = Gmakecat(++j, "B", "Portable", idx2);
      idx3 = Gmakecat(++j, "A", "Rental", idx2);
      idx3 = Gmakecat(++j, "C", "Shipping Container", idx2);
   idx2 = Gmakecat(++j, "B", "Tanks", idx1);
      idx3 = Gmakecat(++j, "A", "Fibreglass Tanks", idx2);
      idx3 = Gmakecat(++j, "C", "Fuel Tanks", idx2);
      idx3 = Gmakecat(++j, "D", "Mixing Tanks", idx2);
      idx3 = Gmakecat(++j, "B", "Plastic Tanks", idx2);
      idx3 = Gmakecat(++j, "G", "Portable Water Tanks", idx2);
      idx3 = Gmakecat(++j, "E", "Steel Tanks", idx2);
      idx3 = Gmakecat(++j, "F", "Water Tanks", idx2);
idx1 = Gmakecat(++j, "S", "Tools/Parts", 0);
   idx2 = Gmakecat(++j, "A", "Air Tools", idx1);
   idx2 = Gmakecat(++j, "C", "Electric Tools", idx1);
   idx2 = Gmakecat(++j, "B", "Hand Tools", idx1);
   idx2 = Gmakecat(++j, "D", "Other", idx1);
idx1 = Gmakecat(++j, "U", "Tractor Implements/Parts", 0);
   idx2 = Gmakecat(++j, "A", "Front End Loaders", idx1);
   idx2 = Gmakecat(++j, "B", "Front Linkages & PTO", idx1);
   idx2 = Gmakecat(++j, "G", "Other", idx1);
   idx2 = Gmakecat(++j, "E", "Other Parts", idx1);
   idx2 = Gmakecat(++j, "C", "Tractor Attachments", idx1);
   idx2 = Gmakecat(++j, "D", "Tractor Diff/Axle", idx1);
   idx2 = Gmakecat(++j, "F", "Tyres / Wheels", idx1);
idx1 = Gmakecat(++j, "T", "Tractors", 0);
   idx2 = Gmakecat(++j, "A", "2x4 (0-100 HP)", idx1);
   idx2 = Gmakecat(++j, "B", "2x4 (100-200 HP)", idx1);
   idx2 = Gmakecat(++j, "C", "2x4 (200+ HP)", idx1);
   idx2 = Gmakecat(++j, "D", "2x4 Other", idx1);
   idx2 = Gmakecat(++j, "N", "4X4 Other", idx1);
   idx2 = Gmakecat(++j, "E", "4x4/FWA (0-100 HP)", idx1);
   idx2 = Gmakecat(++j, "F", "4x4/FWA (100-200 HP)", idx1);
   idx2 = Gmakecat(++j, "G", "4x4/FWA (200+ HP)", idx1);
   idx2 = Gmakecat(++j, "H", "4x4/FWA Other", idx1);
   idx2 = Gmakecat(++j, "J", "Crawler", idx1);
   idx2 = Gmakecat(++j, "M", "Other", idx1);
   idx2 = Gmakecat(++j, "I", "Row Crop", idx1);
   idx2 = Gmakecat(++j, "K", "Tractor FEL", idx1);
   idx2 = Gmakecat(++j, "L", "Vintage Tractors", idx1);
idx1 = Gmakecat(++j, "B", "Trailers/Tray & More", 0);
   idx2 = Gmakecat(++j, "A", "B-Double", idx1);
   idx2 = Gmakecat(++j, "Z", "Bike Trailer", idx1);
   idx2 = Gmakecat(++j, "B", "Bottom Dump", idx1);
   idx2 = Gmakecat(++j, "C", "Box Trailer", idx1);
   idx2 = Gmakecat(++j, "D", "Cable drum trailer", idx1);
   idx2 = Gmakecat(++j, "E", "Camel Tanker", idx1);
   idx2 = Gmakecat(++j, "F", "Car Carrier", idx1);
   idx2 = Gmakecat(++j, "G", "Convertible", idx1);
   idx2 = Gmakecat(++j, "2", "Cranes", idx1);
   idx2 = Gmakecat(++j, "Y", "Custom", idx1);
   idx2 = Gmakecat(++j, "H", "Dog Trailer", idx1);
   idx2 = Gmakecat(++j, "I", "Dolly trailer", idx1);
   idx2 = Gmakecat(++j, "J", "Drop Deck", idx1);
   idx2 = Gmakecat(++j, "K", "Dry Freight Van", idx1);
   idx2 = Gmakecat(++j, "L", "Extendable Trailer", idx1);
   idx2 = Gmakecat(++j, "M", "Flat Deck", idx1);
   idx2 = Gmakecat(++j, "N", "Grain Trailer", idx1);
   idx2 = Gmakecat(++j, "O", "Horse Floats", idx1);
   idx2 = Gmakecat(++j, "P", "LiveStock", idx1);
   idx2 = Gmakecat(++j, "Q", "Logging", idx1);
   idx2 = Gmakecat(++j, "R", "Low Loader", idx1);
   idx2 = Gmakecat(++j, "S", "Pig Trailer", idx1);
   idx2 = Gmakecat(++j, "T", "Plant Trailer", idx1);
   idx2 = Gmakecat(++j, "U", "Refrigerated", idx1);
   idx2 = Gmakecat(++j, "V", "Semi", idx1);
   idx2 = Gmakecat(++j, "W", "Side Lifter", idx1);
   idx2 = Gmakecat(++j, "X", "Trailer tipper", idx1);
   idx2 = Gmakecat(++j, "1", "Utility trays", idx1);

}
