        function populateSelect(populatorID, populateeID, dbKey, defaultValue) {
        
          if(populatorID == null || populateeID == null || dbKey == null || populatorID == "" || populateeID == "" || dbKey == "") {
            alert("populateSelect(): missing parameters");
            return;
          }
          
          var passedData = new Object();
          
          passedData[dbKey] = $("#" + populatorID).val();
	  var p = document.getElementById("sprod_key");
          if(p)
            passedData["prod_key"] = p.value;
        
          $.post("simple_ajax_calls_yr.php", passedData,
            function (data) {
              // Assuming data is returned as: (key1#)value1;;(key2#)value2;;...
              // Keys are optional in the returned data
              //alert(data);
              var selectOptions = "";
              var kvPairs = data.split(";;");

              for(var i = 0; i < kvPairs.length; i++) {
                var key = "";
                var val = "";
                if(kvPairs[i].match("#") != null) {
                  var items = kvPairs[i].split("#");
                  key = items[0];
                  val = items[1];
                }
                else {
                  val = kvPairs[i];
                  key = val;
                }
                
                selectOptions += "<option value=\"" + val + "\">" + key + "</option>";
              }
              $("#" + populateeID).html(selectOptions);
              $("#" + populateeID).attr("disabled", "");
              var selectObj = document.getElementById(populateeID);
              if(selectObj != null) {
                if(defaultValue == null)
                  selectObj.selectedIndex = 0;
                else {
                  for(var x = 0; x < selectObj.options.length; x++) {
                    var defValIdx = 0;
                    if(selectObj.options[x].value == defaultValue)
                      defValIdx = x;
                  }
                  selectObj.selectedIndex = defValIdx;
                }
              }
            }
          );
        }

        function populateYears(setNumber) {
          $("#lr_car_motor_key" + setNumber).html("<option value=\"\">--Select one--</option>");
          $("#lr_car_motor_key" + setNumber).attr("disabled", "disabled");
          $("#lr_car_model_key" + setNumber).html("<option value=\"\">--Select one--</option>");
          $("#lr_car_model_key" + setNumber).attr("disabled", "disabled");          
          populateSelect("lr_car_make_key" + setNumber, "lr_car_year" + setNumber, "car_make_key");
        }
        
        function populateModels(setNumber) {
          var hiddenObj = document.getElementById("make_year" + setNumber);

          $("#lr_car_motor_key" + setNumber).html("<option value=\"\">--Select one--</option>");
          $("#lr_car_motor_key" + setNumber).attr("disabled", "disabled");
	  if(hiddenObj) {
            hiddenObj.value = document.getElementById("lr_car_make_key" + setNumber).value + "::" + document.getElementById("lr_car_year" + setNumber).value;
          }
	  else
            window.alert("Make and year not selected.");

          populateSelect("make_year" + setNumber, "lr_car_model_key" + setNumber, "make_year");          
        }
        
        function populateMotors(setNumber) {
          var hiddenObj = document.getElementById("make_model_year" + setNumber);

	  if(hiddenObj) {
            hiddenObj.value = document.getElementById("lr_car_make_key" + setNumber).value + "::" + document.getElementById("lr_car_model_key" + setNumber).value + "::" + document.getElementById("lr_car_year" + setNumber).value;
          }
	  else
            window.alert("Make, model and year not selected.");

          populateSelect("make_model_year" + setNumber, "lr_car_motor_key" + setNumber, "make_model_year");          
        }

